Bhaskar Maddala wrote:
Got it thank you, all I care about is bundle 15 (for now at least), do
not see why I care about the jar (since we are not using fragments at
this time, using the bundle id should be sufficient).
That will be all for now, until I get stuck again ;)
Ok, well, you should be able to calculate this sort of information by
using PackageAdmin to determine all wirings for the bundle (i.e.,
imports, required bundles, and fragments). Then for a given class, you
would have to search the wiring to find out from where it comes. In some
cases, this won't be so easy, because you might have to look into the
contents of embedded JAR files...
Essentially, you will have to partial reimplement the OSGi class loader
search process.
-> richard
On Thu, Jun 5, 2008 at 10:31 AM, Richard S. Hall <[EMAIL PROTECTED]> wrote:
Bhaskar Maddala wrote:
Richard : I am not entirely certain I understand the distinction
between logical bundle and physical JAR (I get physical JAR but have
no idea what a logical bundle means - noob in subject). As a second
attempt in case I find the information I get from public classes to be
insufficient, I might try to do the "lot of not easy calculations",
would you (or anyone else) care to point me to resources I can look up
to understand what would need to be done.
Do you want to know that org.foo.FooClass comes from Bundle 15 (i.e., the
installed bundle with bundle ID 15) or do you want to know that it came from
/home/myhome/.felix/myprofile/bundle15/version0.0/bundle.jar ?
-> richard
Thanks
Bhaskar
On Thu, Jun 5, 2008 at 12:12 AM, Richard S. Hall <[EMAIL PROTECTED]>
wrote:
Niclas Hedhman wrote:
On Thursday 05 June 2008 04:44, Bhaskar Maddala wrote:
Question : Does anyone know of a way to search class spaces for the
location (bundle/jar file) from which a specified class is being
loaded?
If you are talking about Exported/Imported (i.e. public classes)
packages,
then you should be able to retrieve that info very easily from the
Package
Admin service.
For private packages, the answer from Richard seems to reflect(!)
reality,
and will be framework dependent.
Also, I guess my answer depends on what you mean by "location". If by
"location" you mean the actual provider (i.e., the logical bundle) of the
class or you mean the physical JAR file in the system. The former would
be
possible (but with a lot of not easy calculations), the latter would not
be
possible in a standard way.
-> richard