On Dec 14, 2006, at 8:01 AM, Brian Chan wrote:
Here's the scenario, I need portal-kernel.jar to be shared between
the "portal" classloader, and any other hot deployable wars in
Geronimo. This works fine in Tomcat and JBoss, but the behavior is
slightly off in Geronimo (I think it's because the Geronimo
classloader is actually much more flexible, hence the behavior
change).
I've tried using the shared lib directory, and added the correct
syntax in geronimo-web.xml, BUT, the portlet WAR actually sees the
singles created from portal-kernel.jar as a separate instance.
Meaning, it's giving me a copy of the shared lib between the two
wars, and not really giving me the same one.
Then for whatever reason the copy in shared/lib is not the one your
app is using. The most obvious way this could happen would be if you
had <inverse-classloading/> in the environment element in your
geronimo plan.
We use singletons in portal-kernel to wire info via interfaces from
the portal to portlets.
I got around this by deploying the portal as a WAR, then having the
portlets "depend" on the portal WAR. That gets around the problem,
but it doesn't let me do that if I try to deploy Liferay as an EAR
becuase there' isn't the idea of a WEB-INF/lib in the EAR.
I've even tried deploying portal-kernel as a separate CAR, and then
having the portal AND the portlets depend on the CAR, but for some
reason, I still keep getting copies of the portal-kernel and not
really using the same instance.
That looks kinda like the same problem. Have you tried building
copies of the portal and portlets that don't have any copies of
portal-kernel in them? That's what I did integrating jetspeed2 in
geronimo and is the approach I would recommend.
can you provide some pointers to the geronimo plan, and maybe the
spec deployment descriptors?
thanks
david jencks
Thanks everyone.
--
Brian Chan
Chief Software Architect
Liferay, Inc.
Enterprise. Open Source. For Life.
Mobile: (626) 806-1190
Skype: brianchan_dot_com