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