Hello, I have been developing application for Liferay for about one month now and I thought it would be a nice idea to share my experience. This is no thorough review of the product, just my personal experience with Liferay.
For those who don’t know what Liferay is: it is a portal server based on Java technology. It allows you to create portal and community websites easily. It provides more than 60 out-of-the-box and ready-to-use application called ‘portlets’. Those ‘portlets’ range from simple editorial blocks to blog engine and a chat portlet. It contains a full blown content management system and some powerful collaboration tools. See http://www.liferay.com/web/guest/products/portal/features for a comprehensive list of features.
Anyway, I have been working with Liferay for about one month now, specifically for one project. I won’t elaborate on the project in details but it is a career portal with jobs, resumes and company presentations. I have developed a considerable part of the code myself and it has been an interesting experience because I never wrote one line of Java before: I have a c++/.NET background. Fortunately, I have a good, experienced Java team to back me up.
Okay, lets get back to the subject now. I will separate my experiences into three categories:
The good
In my opinion Liferay is a complete product, the out of the box portlets are useful and you can actually create a full portal just with those portlets: that is impressive.
I also like the fact that Liferay provides pre-packaged version of their portal software which you can download and run without any special configuration. You can get a Liferay portal up and running in 5 minutes.
The Liferay community is active. You can find a lot of information in the WIKI and on the forum. I also like the fact that Liferay provides seminars around the world, to me that is a sign of professionalism.
I also like the fact that Liferay offers custom JS and CSS includes per portlet, this allows me add style and JavaScript without having to code it into the portlet itself or in a Liferay theme.
The API is pretty powerful and usable, although it is hard to find out how it works (seen second point of The Bad).
The bad
What I think is really bad on Liferay is that there are still some major bugs open in version 5.2.3. Those bugs should have been fixed a long time ago IMHO. I am not sure if those bugs are fixed in the enterprise version of Liferay, so I am judging on that. For example LPS-114.
One other thing I think is bad on Liferay is the lack of API documentation. It is really hard to find how certain things are achieved or what methods do exactly. For example I have spend some hours finding out how I can retrieve a list of pages of the current community. I have searched the Liferay Wiki, the Liferay forums and used Google without success: I ended up reverse engineering Liferay itself. It is working beautifully now but it wasn’t a good experience figuring it out.
The Ugly
Even though Liferay is supposed to be fully compliant with JSR-168 and JSR-286, I can’t get the custom portlet mode to work properly. Although this seems to be an optional part of the JSR-286 I assume that a enterprise product like Liferay would support this feature. I had to apply a work around which resulted in ugly code.
Considering all above points, I can say I am fairly impressed by the Liferay portal. I would choose it again for portal project.
Please let me know if you agree or disagree with me, lets get into a debate regardin Liferay! It deserves it!