If you are looking for instructions on a successful deployment of an Exo Portal portlet you can stop reading now. This page merely describes an unsuccessful attempt and perhaps how one might continue. My impression is that it might require some source code compilation from the Exoplatform portal or a reimplementation of the classes that Exo portlets require.
I have spent some time looking at some of the Portlets that come bundled with the Exo Portal platform. Exo Platform is available as downloads in a variety of formats from a download repository. Iniitally I began work with the exoplatform-tomcat zip file and subsequently downloaded the src release when I ran into some problems.
At first glance the Exo portlets appear to be packaged such that they might be easily deployable into the uPortal framework. Looking at a demo version of the portal I thought that the Forums portlet looked interesting. The Forums portlet can be found in a communications.war file which also contains a wiki portlet.
Setting up a build environment
From a previous attempt at migrating portlets from the Liferay portal I had set up a build environment. Essentially, I have a base directory called /usr/local/src in which I've dropped the uPortal 2.5.1 release (/usr/local/src/uPortal_rel-2-5-1) and created a Portlets directory. Under the Portlets directory I created a communications directory which will serve as my build directory. Within the build directory I created build.xml/build.properties files for Ant. I also created src, web, lib, and dist directories.
First deployment attempt
First, I just tried copying the communications.war file into the dist directory, then from the uPortal build directory attempted an ant deployPortletApp task using the war file to deploy the portlet into Tomcat (version 5.5.9) . That produced the following error:
SEVERE: error listenerStart
Second deployment attempt
Next, I extracted the communications.war file into the web directory. The build task is set up to recreate the communications.war file in the dist directory. I wanted to look at the portlet.xml and web.xml files.
In the web.xml file a couple of listeners were defined as follows:
<listener> <listener-class>org.exoplatform.services.portletcontainer.impl.servlet.PortletApplicationListener</listener-class> </listener> <listener> <listener-class>com.sun.faces.config.ConfigureListener</listener-class> </listener>
Digging around in the Exo distribution I found that the first listener was defined in a jar file called jsf-impl-1.1.jar and the other in expoplatform.services.portlet-container.impl-1.0.jar.
Adding these two jar files to the lib directory, rebuilding the communications.jar file, and redeploying the portletApp produced the same SEVERE error.
At this point, I stopped my testing. My guess is that I would have to create implementations from the exoplatform.services.portlet-container.api.jar provided and probably a ConfigureListener as well.