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 <[email protected]>
To
Equinox development mailing list <[email protected]>
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
[email protected]
https://dev.eclipse.org/mailman/listinfo/equinox-dev
_______________________________________________
equinox-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/equinox-dev