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

Reply via email to