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. >> >> > > >