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.