Inter-portlet Communication in GateIn/JBossEPP and session sharing between portlet application context
nicolavirgilio Feb 3, 2012 11:45 AMHi,
I am opening this new topic in the hope someone here can help me with a problem I am facing with GateIn/JBoss EPP 5.1.
I am trying to implement IPC (inter-portlets communication) between 2 portlets and based on what I need to accomplish I feel quite limited by spec (2.0) itself. I will explain briefly the case.
I am developing a portal based application comprised of several portlet applications (deployed as distinct wars). Some of the portlets which lives in different pages needs to share/communicate some data (i.e. parameters). This communication not necessarily needs to happen in both directions, so let's say 1 portlet write/send some data where another portlet from a different page/war will need to read the same data with the twist of a page redirection from one portlet to the other. This is to put it simple, now let me give me some more details about regarding the interactions between these two portlets.
In my specific case, there is one portletA sitting on a pageA and which renders an action URL in its render phase. When this actionURL is clicked and the action phase of portletA is invoked it has to redirect to portletB onto a different pageB. What I want to do is to pass during the redirection a number of parameters to portletB. One additional detail is that portletA and portletB lives in 2 different webapps thus excluding the use of a shared session object to pass attributes for our purpose. More over portletB is a thirty-party portlet which we don't have source code but it does support a number of publicRenderParameters out of the box with the optional extension API to allow more publicRenderParameters in case needed .
IPC from spec 2.0 allows the use of public render parameters between portlets in different pages and from different webapps. Unfortunately sendRedirect (called in the action phase of portletA) would fail if render params are set during this same phase. I am able to share the params across the two portlets from two different apps and living in different pages but redirection from A to B is not possible under this condition.
The question that want to ask is, has JBoss in version 5.1 or eventually the recent build 5.2 some sort of IPC implementation in its container that allows the sharing of attributes between portlets regardless of which apps they belong to or where it is instanced from (page)? Something like a session object living in the portal container context rather than the portlet context or webapp context. I know that there are some portal products that have something similar, like portal page parameter in websphere for example or a portal session sharing in liferay. Is there anything like this in JBoss?
Any help would be very appreciated
Many thanks
Massimo