I'd like to encourage a little more discussion on this topic. Mark commented on the bugzilla entry to the effect, IIUC, that he thought this was a geronimo problem. I did some more experimentation and I'm pretty sure it has nothing to do with geronimo specifically, but relates to how Class.forName works in osgi.

I've concluded from my experiments that Class.forName in osgi will only load classes from the current bundle and not from any bundles wired to the current bundle through package-imports. I think this means that with the current code all listeners have to be in the same jar as the catalina.jar classes or in a fragment bundle attached to it. I haven't tried using a fragment bundle so I don't know if it would actually work.

So, my conclusion is that the current code forces:
if you want listeners that don't come with tomcat, you have to put them in a fragment bundle or repackage all of tomcat to include them. Is this really the policy tomcat wants to adopt towards osgi environments? I would think that delegating all reflective class loading to a pluggable component would be a more extension-friendly approach.

BTW, has anyone tried to find out if the split into catalina.jar and coyote.jar works in osgi?

thanks
david jencks

On Dec 19, 2009, at 5:12 PM, David Jencks wrote:

In the tomcat-7 geronimo/osgi integration we've run into a problem when tomcat loads listener classes using Class.forName. Using the InstanceManager to just create the objects works fine for us.

In geronimo at the moment the InstanceManager has access to both application and system classes, so it can load just about anything that is supplied as a listener class. If listeners are supposed to only be system classes, perhaps adding another method to InstanceManager to create system objects would be appropriate.

If changing this is unacceptable for some reason we do have a couple of other solutions available such as overriding the method or adding the geronimo listener classes in a fragment bundle, but I think using the InstanceManager would be a more elegant solution.

See https://issues.apache.org/bugzilla/show_bug.cgi?id=48414 (patch included) and https://issues.apache.org/jira/browse/GERONIMO-4992

Many thanks!
david jencks


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to