Recently I’ve been evaluating the landscape of J2EE-based portals that are available. As usual, there are the 2 main camps – commercial and open-source. With the exception of offerings like Epicentric (very expensive), most commercial portals seem tied to the application server of the vendor (Sun, BEA, etc), and as such, aren't options at the moment – portability is a requirement. On the open source front, I've narrowed the field to what seem to be the “Big 3” options – Liferay, Jetspeed, and Exo, but whether any of them are production-ready is another question.
Jetspeed is the Jakarta option, but won't be JSR-168 compliant until Jetspeed2. Since we're looking at an initial deployment before the end of the year, this is a showstopper. Other than that, their DB2 scripts were completely screwed up (they’d declare a column to ALWAYS be generated by an identity (serial field), and then try and specify a value for it in their insert scripts). Other than that, Apache Jakarta seems to have a servicable portal here. One key shortcoming is the lack of bundled portlets. When executives think that they want a portal, it's more than a framework and a load of built-in functionality (news aggregators, e-mail, etc). Jetspeed doesn’t have much of this functionality out of the box.
I've played around with the Exo Platform for a little bit, and didn’t have much of a problem getting it running. Both their blessing and their curse is their dependency on JBoss. On the one hand, it's ingenious – they've achieved the portal-nirvana of being able to hot-deploy your portlets in a .war separate from the portal itself. This does come at a cost, however. It appears they've integrated heavily with JMX and some JBoss-specific details to achieve this goal, and so I honestly have no idea how I would even begin to deploy it on an existing JBoss installation – the bundled download seems to be the only sane option. Also, after playing around with it for a bit, I found the documentation rather lacking in many respects, such as LDAP integration. In one sense, it's easy – simply changed the auth realm to work with LDAP. On the other hand, there’s no indication of what roles need to be assigned to your LDAP users to permit them to access portal resources. Both admin and use of this portal could be best summarized as confusing.
Lastly, Liferay. I looked at Liferay first, and have come back to it again after looking at everything else. It is by far the most complete portal when it comes to pre-built portlets, including e-mail, RSS, wiki, news, weather, etc. I'm still dealing with some DB2 issues, and it seems that portlet deployment on Liferay is no picnic, but LDAP authentication is now working (although not trivial to accomplish – you have to write your own LDAP authentication), and the problems I'm having are problems that I didn't even get far enough along with the other portals to experience. They also seem to have portlet hot-deployment high on their list. The SourceForge forums are worthless, but the mailing list is decently responsive, and while there may be some shortfalls in documentation, the documentation that does exist is very thorough, particularly the meticulous instructions on deploying Liferay from scratch on almost every major J2EE app server.
At this point, no J2EE portal seems to be the full solution. If you're already tied to a vendor, you might be best off considering their offering, since you've already sunk partly into their proprietary land. If you're looking for an open-source alternative, I think Liferay is the closest. Its ease-of-use clearly outshines the other 2 platforms, and its development team seems to be the most active. Regardless, my battles with the portals are far from over, and I'll try to give continued coverage as things unfold.