Great. Then it is nice to know that it can be done by a separate bundle. Perhaps Equinox should package it up separately so that it can be used on other frameworks. :-)

-> richard

Jeff McAffer wrote:
I'm not sure I would call it "baked in". FileLocator itself is just a helper that aquires a "URLConverter" service. It happens that that service is provided by the system bundle since it is the same code that is used by the framework to do nested JAR and native code extraction. Your characterization of the processing is exactly what the service does.

Jeff




"Richard S. Hall" <[EMAIL PROTECTED]> 09/13/2006 10:17 PM
Please respond to
felix-dev@incubator.apache.org


To
felix-dev@incubator.apache.org
cc

Subject
Re: OSGi URL to file






Jeff McAffer wrote:
In practice this takes things that you would get back from getResource
or
getEntry and converts them to file:. In the case of a directory based bundle, the file is likely already directly in the filesystem so its
file:
url is returned. In the case of a JAR'd bundle, the file (or directory)

is extracted to a cache and that location returned.

If that's the case, then why not just write a simple utility library bundle that provides the code to do this? It doesn't seem like it needs to be baked into the framework. Simply check to see if the URL is a file, if so you are done, if not, then copy the resource to the bundle's private area and return that file.

-> richard

Jeff




"Richard S. Hall" <[EMAIL PROTECTED]> 09/13/2006 07:52 PM
Please respond to
felix-dev@incubator.apache.org


To
felix-dev@incubator.apache.org
cc

Subject
Re: OSGi URL to file






No, there is no standard way, nor any equivalent method in Felix.

This is something you could construct for Felix, perhaps, but it seems like bad form since the whole point of getResource() is to eliminate the

dependencies on file locations.

And what happens if the resource is in a JAR file, then it will never be

a file: resource?

You might be trying to do something and this is the only way to do it, but it would certainly be better if there was another way.

-> richard

Erik Bengtson wrote:

Hi,

I need to convert the URL given by
URL url =


Bundle.loadClass('something').getClassLoader().getResource('anotherthing');
Using equinox I get "bundleresource://" protocol, so I want to convert
to

file://.

To convert I use:

URL fileURL = org.eclipse.core.runtime.FileLocator.toFileURL(url);

Is there an Felix equivalent or in the OSGI standard?

Thanks,

Erik Bengtson


PS:
Richard,

thanks for the previous answer regarding best pratices on dependencies.





Reply via email to