Erik,

Either of your options should work.  I prefer option 1 though :) 

Can you open a bug against Equinox->Framework and record your usecase in 
the bug report.  We may need to consider using the port to indicate a 
classpath entry in the bundle instead of an entry into the list of 
duplicate resources.  I think the OSGi spec is also vague in the area of 
bundle resource URLs.  We may need to go back to OSGi and ask for 
clarification.  Thanks.

Tom




Erik Bengtson <[EMAIL PROTECTED]> 
Sent by: [EMAIL PROTECTED]
08/27/2007 05:08 PM
Please respond to
Equinox development mailing list <equinox-dev@eclipse.org>


To
Equinox development mailing list <equinox-dev@eclipse.org>
cc

Subject
Re: [equinox-dev] getResources : bundleresource






Thomas,

You got my use case, and answered very well :). my bundles are deployed as 
inner
libraries.

Two options I know to solve my issue:
1) use bundles as real bundles :)
2) use FileLocator.resolve() to resolve the URL and load MANIFEST.MF files 
from
there.

If you have more options, I would appreciate.

Thanks,

Erik Bengtson

Quoting Thomas Watson <[EMAIL PROTECTED]>:

> I'm a bit confused by the usecase.  Are these real bundles or just inner
> jars which you use as inner libraries?  If they are real bundles then 
why
> don't you install them as real bundles instead?
>
> The bundleresource protocol uses the port as an index into the list of
> resources of a given name (e.g plugin.xml).  In your case it sounds like
> you have more resources named META-INF/MANIFEST.MF in your bundle than 
you
> do plugin.xml so the two lists and indexes do not match up.  For 
example,
> imagine you have a bundle which has  jars A, B, C, D which all have
> META-INF/MANIFEST.MF resources but only C and D have plugin.xml.  A call
> to classloader.getResources("plugin.xml") gives you something like this:
>
> bundleresource://26:0/plugin.xml (C)
> bundleresource://26:1/plugin.xml (D)
>
> A call to classloader.getResources("META-INF/MANIFEST.MF") gives you
> something like this:
>
> bundleresource://26:0/META-INF/MANIFEST.MF (base bundle)
> bundleresource://26:1/META-INF/MANIFEST.MF (A)
> bundleresource://26:2/META-INF/MANIFEST.MF (B)
> bundleresource://26:3/META-INF/MANIFEST.MF (C)
> bundleresource://26:4/META-INF/MANIFEST.MF (D)
>
> As you can see the resource indexes will not match for the two different
> resources (plugin.xml and METE-INF/MANIFEST.MF) from C and D.
>
> Tom
>
>
>
>
> Erik Bengtson <[EMAIL PROTECTED]>
> Sent by: [EMAIL PROTECTED]
> 08/27/2007 01:58 PM
> Please respond to
> Equinox development mailing list <equinox-dev@eclipse.org>
>
>
> To
> Equinox development mailing list <equinox-dev@eclipse.org>
> cc
>
> Subject
> [equinox-dev] getResources : bundleresource
>
>
>
>
>
>
> Hi,
>
> I have some bundles (B,C,D) that are not deployed as osgi bundles, but 
as
> libraries within a bundle (A).
>
> In bundle A, I have a custom internal registry of the plugin.xml from
> files
> (B,C,D).
>
> 1) find and load all plugin.xml files using classloader.getResources()
>
> I get an enumeration of:
>
> bundleresource://26:3/plugin.xml (D)
> bundleresource://26:2/plugin.xml (C)
> bundleresource://26:1/plugin.xml (B)
>
> So far so good, but now I have to load the corresponding
> /META-INF/MANIFEST.MF
> files from each bundle (B,C,D).
>
> 2) do:  -- new URL("bundleresource://26:3/META-INF/MANIFEST.MF");
>
> My problem is that it returns the MANIFEST.MF from bundle (C), instead 
of
> bundle
> (D).
>
> What am I doing wrong?
>
> Background: My project JPOX, a JDO/JPA implementation, is OSGi 
compatible
> and
> uses Eclipse Extension/Extension Points for declarative services. I have
> an
> internal registry of bundles/extension/extension points when running
> outside an
> osgi container.
>
> Regards,
>
> Erik Bengtson
> http://jpox.org
> _______________________________________________
> equinox-dev mailing list
> equinox-dev@eclipse.org
> https://dev.eclipse.org/mailman/listinfo/equinox-dev
>
>



_______________________________________________
equinox-dev mailing list
equinox-dev@eclipse.org
https://dev.eclipse.org/mailman/listinfo/equinox-dev

_______________________________________________
equinox-dev mailing list
equinox-dev@eclipse.org
https://dev.eclipse.org/mailman/listinfo/equinox-dev

Reply via email to