Candidate Portals

Document created by resplin Employee on Jun 6, 2015
Version 1Show Document
  • View in full screen mode

Obsolete Pages{{Obsolete}}

The official documentation is at: http://docs.alfresco.com



Research For Future Features


JBoss Portal


Home. Designed for JSR-168.


Liferay


Home. Designed for JSR-168.  Uses Spring & Hibernate, runs on variety of environments.

Architecture


  • Runs on top of any J2EE servlet container e.g. Tomcat etc.. So a full installation of JBoss is not required, but can run against most full application-servers out-the-box including JBoss, JRun, BEA, WebLogic and Orion.
  • Has a full set of Web Service interfaces to the portal and its libraries.
  • Built on top of the Spring and Hibernate frameworks. Portal itself is built using Struts and Struts Tiles.

Rendering

Every portlet on the page, whether minimized or not is always rendered fully into HTML. The Portal uses JavaScript and DHTML techniques to minimize/normalize a portlet i.e. The entire rendered view for the portlet is always present on the page but may be hidden using the techniques mentioned above.
For example, to render a page with 6 simple portlets (LifeRay demo site) outputs a page with >200K of source (not including images, style-sheets etc.) and an epic quantity of pointless white-space. A smaller page with a single non-complex maximized portlet was still >100K. By comparison, JBoss Portal 2.0 displaying a maximized AnyShare Document Library portlet output <64K.
However LifeRay interprets the JSR-168 “maximize�? mode to mean that a single portlet when maximized will completely to take over the screen real-estate. This means that the others portlets are not rendered at all.

JSR-168

Appears to have fully implemented the javax.portlet classes and required tag library.
Should be very little effort to move a pure JSR-168 portlet to the LifeRay portal with only the creation of an appropriate XML portlet deployment descriptor necessary.

Web Components

Several LifeRay example portlets are built using a modified Struts framework. Therefore this would be an acceptable simple solution to build AnyShare portlets against.

Deployment

Several fiddly XML files required to hot-deploy a third party portlet. Tricky to get the portlet to appear on the customise page screens. Would require some customisation to hide non-AnyShare portlets and customise the UI to our liking.

Example Portlets

Large number of examples >50 supplied. Including several nasty little java-applet based efforts including a calculator, paint program, games and chat applets. None of the pure portlets are particularly impressive application wise, but there are examples of the LifeRay specific features such as inter-portlet communication tags e.g. They have built a navigation portlet similar to what we might like to have.
The examples are collections of JSP pages built either using an ghastly mix of logic and HTML (very few tag abstractions) or instead using the integrated Struts web framework (better).
They have a example CMS portlet which is weak and not comparable to AnyShare.

Documentation and Support

Good mature docs for a free product; over 100MB of javadoc, a large FAQ, forums, mailing list, bug tracker and other online developer docs. Professional version with support and consultation available for additional cost.
Customising the template looks like it will be more work than say the relatively simple JBoss Portal template files.


uPortal


Home. Recently adapted to work with JSR-168 portlets.  Used at a large number of US universities.


GridSphere Portal


Home. 100% JSR-168 compliant. 


  • Uses Hibernate
  • Supports JSF
  • In addition to JSR-168 compatibility it supports IBM's websphere portlets
  • Role Based Access Control
  • Portlets can be reused as services for other portlets

Jetspeed


JetSpeed Home.


Pros


  • Velocity based layout so if you know Velocity syntax the whole look and feel can be customised
  • Only generates the HTML required for the page being shown
  • Has 'Portlication' - Portlets that run in full screen mode as a web application, can only have one active at a time.
  • Has navigation features apparently - can define menus and tab bars and there is mention of breadcrumbs
  • Has several bridges - Struts, JSF (!MyFaces), PHP & Perl plus others
  • Has a single sign on framework (holds credentials for other portlets to allow seamless login)
  • It does have it's own deployment mechanism allowing portlets to be packaged as self contained WAR files
  • It takes a LONG time to get up and running due to the fact you have to get the source from CVS (over an hour for me) and then build it using Maven (again, over an hour as it has to download ALL of it's dependent JARs)
  • There is a project called Fusion that puts a JSR 168 layer on top of JetSpeed 1.6 (maybe an option?)

Cons


  • Next to no documentation so you have no idea how to configure or customise anything as they have adopted JSR168 config files in this release and changed the syntax of their own config files
  • Feels heavyweight, slow to build (over 3 minutes, it uses Maven so what do you expect!), slow to startup (even in Tomcat), but this may be due to the amount of example apps it has!
  • The generated URLs for min, max links are very obscure, not as easy to copy to allow for cross portlet communication
  • JetSpeed 1.5 had a forwarding mechanism which looks like it can do the cross portlet communication but seems to have gone from JetSpeed 2

Conclusion


I'm on the fence with JetSpeed, it may be too early to judge. JetSpeed 1.5 with all the documentation feels like you could get somewhere with it and their feature list is certainly impressive. However, JetSpeed 2's lack of documentation (it's at pre-alpha stage right now) doesn't fill you with confidence for getting anything other than the simple example's working. Given a while for the release to mature and I think it will definitely be worth revisiting.

Attachments

    Outcomes