2009/5/8 AndreiJuan <[email protected]>

>
> Some third-party libraries rely on files placed under META-INF in "the
> classpath" for configuration -- Jersey and Hibernate, for example.
>  However,
> "the classpath" in an OSGi context does not exist any more in its "classic"
> (pre-OSGi) acceptance.
>
> With Jersey, copying the files under my own bundle proved to be a usable
> workaround and Jersey manages to load those files properly.  However,
> Hibernate (more exactly, org.hibernate.ejb.Ejb3Configuration) follows a
> different strategy: it asks the current thread's context classloader what
> the URL to the resource is, then it attempts to read from that URL itself.
>
> Although I'm setting the current thread's context class loader to be my
> bundle's classloader (in a static block at the top of my bundle activator),
> Ejb3Configuration fails to read that file when running in Felix, because
> the
> URL returned by the classloader is something like "bundle://...", which it
> does not know how to process.
>
> Is there a "Felix-recommended" (or perhaps better, OSGi-recommended) way of
> placing those "META-INF" resources?  (I cannot wait until all third-party
> bundles become OSGi-friendly, sorry.)
>
> The only thing I could think of was to set the current thread's context
> class loader not directly to my bundle's (Felix) class loader, but to a
> custom one that I write, and that for a certain (configurable) set of
> resources it returns "file://..." URLs to a custom directory within the
> container, and for everything else it defers to the Felix class loader.
>
> Any better idea would be appreciated.
>

you might want to look into using the "extender" pattern:

   http://www.osgi.org/blog/2007/06/osgi-and-hibernate.html

basically have one bundle that watches for other bundles - it scans
their META-INF contents and programmatically registers them with
the hibernate bundle

--
> View this message in context:
> http://www.nabble.com/Third-party-libraries-cannot-access-META-INF-filename-resources-tp23431881p23431881.html
> Sent from the Apache Felix - Users mailing list archive at Nabble.com.
>

-- 
Cheers, Stuart

Reply via email to