On Nov 5, 2009, at 10:36 AM, Rick McGuire wrote:
I've run into another place where a method that previously use a
classloader argument now takes a bundle, and I'm not sure what the
appropriate method for mapping this back to a bundle would be. This
is in the EJBHelper class, where it's doing this:
attributeStore.setValue(absName.getArtifact(), absName,
gAttributeInfo, propertyValue,
Thread.currentThread().getContextClassLoader());
the class loader involved is the thread context class loader, which
we might be able to map to a bundle, but this might be a case where
it might be appropriate to just take a classloader in this context.
The classloader passed to the setValue() method is just used to
resolve a property class from a class name, and this need not
necessarily be sourced from a bundle instance. If we still feel we
need to use a bundle, then I think we need to have a utility of some
sort that can attempt to figure out from a class loader instance
what the bundle mapping is.
I don't know what the solution for this is. For now I'd suggest
adding back the method that uses a classloader, if the thread context
classloader will still work.
I'd guess that the osgi way of doing this would be to have a
propertyEditor service that bundles register with when they supply
property editors (this is probably the wrong way of thinking about
it-- but it seems similar to what Guillaume does with the spec service
discovery stuff)
Alternatively maybe we want a thread contextBundle?
Does anyone know what Aries does about TCCL?
thanks
david jencks
Rick