It has been quite a while now since our last post. But this time we have pretty good news. The development of our portlets made progress. My part – the image gallery – is near completion. The web front end part will be developed this weekend. Compared to other big open source galleries the set of user features is basic. Special though, comparing to other galleries, is the possibility to transparently use completely different content providers per folder for getting the images. One content folder could get its content from a content management system like Alfresco (this part is being developed at the moment), another content folder for example from the file system, Flickr or another CMS.

The user has the ability to create content folders and specify content providers for each of them. Each content provider has a different set of default properties which can be edited by the user. Via web front end the user can choose which content of the underlying content provider should be displayed.

A new content provider can be developed easily as there exists an API. To use the new content provider only two steps are necessary:

  1. Put the jar with the implemented content provider interfaces into the classpath of the image gallery and
  2. provide the full classpath to the content provider “main” class within the image gallery configuration file

As you can see the code is prepared to be enhanced easily and that is why we hope to elate other developers to join our project when the project thesis has been completed. When the interface development has been stabilized I will provide an UML-Class-Diagram to get an overview of the API.

Like any other image gallery the user will be able to organize his pictures in folders and have thumbnail images to preview them. ICEFaces 1.6 is used to provide the user with a rich Web 2.0 Experience and a clear user interface. At the moment there does not exist a possibility to upload pictures via the portlet itself. The upload is done via the content provider (eg CMS like Alfresco) and only displaying is done via the portlet.


Phillip Merensky


BannerAd Portlet – Update

October 12, 2007

I finished implementing the basic functions of the BannerAD portlet.It is now possible to let it show a Banner defined through an Image and Url, or custom HTML code e.g. an Iframe.
In the administration part of the portlet, you can add the banners and remove them.

As we do not want to develop a very basic portlet there is still there is some work left..
For example to let the user define on which portlet one banner is shown and on which banner is not. Also I have to optimize the Database access through 
Hibernate to avoid unnecessary read and write operations on the DB.
And finally clean up and comment my Code, so that fellow programmers interested in this portlet may understand it.

BannerAd Portlet

September 26, 2007

I am doing an BannerAd portlet, a portlet to show advertisments on the page similar to GoogleAdsense, but accessible for own Banners.
The portlet uses Icefaces and will show the Banner as Imagelink.

I am also working on an alternative to let the User execute Html Code in the Banner Portlet through an Iframe, but I am stuggling here with a refreshing Problem.

For persisting we chose to use Hibernate , I am still getting in this materia but it looks quite promising 😉

The Alfresco Story Part II

September 24, 2007

As promised in the comment of the Alfresco story I decided to describe the problems when working with the Alfresco community version within the Liferay portal in detail. I encountered the following two bugs in the current (2.1) Alfresco community version:

  1. Validation problems submitting a Web Form (http://issues.alfresco.com/browse/WCM-833)
  2. Problems completing the example press release (http://issues.alfresco.com/browse/WCM-342)

Concerning bug number one I was advised to test the development release of Alfresco 2.2 where the bug did not occur. I was quite glad about that. But when I tried to edit the form which I could submit before, it could not be submitted again. I do not know if this editing problem was related to my environment or an Alfresco bug because with a later nightly build (22th September) I could not reproduce it.

Concerning bug number two I do not think that it is grave because commenting out the appropriate line in the press-release.xsd file resolves it. In spite of everything it is a pity that the well documented WCM example does not work out of the box.

Finally I decided not to develop a news portlet for Alfresco because on one hand Liferay supports similar standalone functionality with the blog portlet which will be greatly enhanced in the forthcoming 5.0 release and on the other hand I did not want to develop a portlet which cannot be used with the current stable Alfresco release.

Instead I started to develop an image gallery based on but not limited to the Alfresco content repository. More about that later.

Greetings and enjoy the nice day (I am writing this on our terrace with blue sky above me (at least in south Germany))


PS I almost forgot something. I personally think that Alfresco is a really great CMS. I especially like the implementation of the web forms which is based on standard  XML schema. So keep up the good work and thanks for supporting the open source community with an enterprise content management system.

The Alfresco Story

September 20, 2007

Actually we are planning to develop an easy to use site news portlet based on the Alfresco Content Management System and the corresponding Alfresco content configuration files. Yesterday and today I evaluated Alfresco for that purpose. While using Alfresco within Liferay I found several bugs which made me think that the Web Content Management extension for Alfresco might not be production stable. After the whole evaluating and the attendant draw backs I am thinking of dropping the Alfresco side completely and developing a stand alone portlet.

So let us look into the advantages and disadvantages of implementing a news portlet based on Alfresco Content or developing it standalone.



  • Powerful and quite easy to build implementation of Web Forms. No GUI has to be implemented to submit content
  • coherent user interface for all content (if the target web site only uses Alfresco for its content management)
  • Powerful search and export features for individual content entries using Lucene, XSL, Freemarker and XSL-FO


  • Web Content Management (WCM) of Alfresco contains major bugs in the actual stable 2.1 version and in the current 2.2 development releases which partially avoid content submission
  • Content presentation is quite expensive as the content of the web forms is saved as xml data which needs to be transformed into html on the fly or cached for further use
  • Alfresco is a huge enterprise content management system for really big sites and tons of features. It might be too complex for smaller sites.


Advantages (also see disadvantages of Alfresco):

  • full control of all content aspects
  • lightweight
  • can be used without alfresco in every JSR-168 portlet container

Disadvantages (also see advantages of Alfresco):

  • complete content submission functionality must be implemented
  • simple workflow must be implemented
  • Websites which use alfresco might submit redundant data
  • Altogether at the current point more work

At the current point I tend to develop the standalone solution but I will think it over for some time.

Feel free to comment if you think I forgot something


Developer Woes

September 19, 2007

Yesterday was one of the days were everything begins promising and after hours and hours it ends in a developer desaster. Although I tried 13 hours to get a Liferay portlet with hibernate, icefaces and myfaces to work it did not work. After all these hours I think there might be a reason why Liferay distributes its icefaces sample portlet with the SUN Reference Implementation of Java Server Faces and not Apache’s MyFaces.

It all began yesterday morning when I accessed Alfresco which was deployed as a portlet within Liferay via the WSRP Api. Strange to say this worked out of the box which made me very happy and maybe also brought me the motivation to go on more than 12 hours from that point.

In the afternoon I simply needed a JSF Tag which can iterate over a List and display its content. After some googling I found out that there is no JSF tag which supports this function. So I decided to write my own JSF component with the help of some examples with similar functionality. Unfortunately this did not work out of the box and after some more googling I found out that Apache MyFaces provides a tag called dataList which exactly was what I needed. So why don’t switch to icefaces with MyFaces? This combination would have been phenomenal as there could have been a solution to also get tomahawk working and to have a really big choice of prebuilt JSF components then. Well it wouldn’t work. After many hours of experimenting it boilt down to one Exception within one of the Liferay portlet JSF helper classes. It looked like this helper class could not deal with the ICEFaces workaround of handling the FacesContext. After some more googling I found out that ICEFaces within portlets is not considered production ready until version 1.7 of ICEFaces and so I switched to MyFaces and Tomahawk instead of ICEFaces for this portlet completely. AJAX components are not that useful in this portlet context and so the switch is acceptable whereas the big amount of wasted time is not :-).

But that was yesterday. The Myfaces, Facelets example is working now within Liferay and hopefully the accessing of Alfresco will too.

Have a nice day



September 17, 2007

In this Blog we will document our progress in developing portlets, every community needs.

As there are still portlets missing for building enhanced communities, this project will provide portlets to close this gap.

The development process is going to be documented carefully within a project thesis at the University of Bamberg. After finishing the thesis there will be a basis for further open source development.