public class DefaultFileLocatorHelper extends java.lang.Object implements BundleFileLocatorHelper
From a bundle to its location on the filesystem. Assumes the bundle is not a jar.
CLASS_NAME, DEFAULT
Constructor and Description |
---|
DefaultFileLocatorHelper() |
Modifier and Type | Method and Description |
---|---|
java.util.Enumeration<java.net.URL> |
findEntries(org.osgi.framework.Bundle bundle,
java.lang.String entryPath)
Helper method equivalent to Bundle#getEntry(String entryPath) except that
it searches for entries in the fragments by using the Bundle#findEntries
method.
|
java.io.File |
getBundleInstallLocation(org.osgi.framework.Bundle bundle)
Works with equinox, felix, nuxeo and probably more.
|
java.io.File |
getFileInBundle(org.osgi.framework.Bundle bundle,
java.lang.String path)
Locate a file inside a bundle.
|
java.net.URL |
getFileURL(java.net.URL url)
Only useful for equinox: on felix we get the file:// url already.
|
java.net.URL |
getLocalURL(java.net.URL url)
Only useful for equinox: on felix we get the file:// or jar:// url
already.
|
java.io.File[] |
locateJarsInsideBundle(org.osgi.framework.Bundle bundle)
If the bundle is a jar, returns the jar.
|
static boolean |
match(java.lang.String name,
java.lang.String... names) |
public static boolean match(java.lang.String name, java.lang.String... names)
public java.io.File getBundleInstallLocation(org.osgi.framework.Bundle bundle) throws java.lang.Exception
getBundleInstallLocation
in interface BundleFileLocatorHelper
bundle
- The bundlejava.lang.Exception
- if unable to get the bundle install locationpublic java.io.File getFileInBundle(org.osgi.framework.Bundle bundle, java.lang.String path) throws java.lang.Exception
getFileInBundle
in interface BundleFileLocatorHelper
bundle
- the bundlepath
- the pathjava.lang.Exception
- if unable to get the file in the bundlepublic java.util.Enumeration<java.net.URL> findEntries(org.osgi.framework.Bundle bundle, java.lang.String entryPath)
findEntries
in interface BundleFileLocatorHelper
bundle
- the bundleentryPath
- the entry pathpublic java.io.File[] locateJarsInsideBundle(org.osgi.framework.Bundle bundle) throws java.lang.Exception
Good enough for our purpose (TldLocationsCache when it scans for tld files inside jars alone. In fact we only support the second situation for development purpose where the bundle was imported in pde and the classes kept in a jar.
locateJarsInsideBundle
in interface BundleFileLocatorHelper
bundle
- the bundlejava.lang.Exception
- if unable to locate the jarspublic java.net.URL getLocalURL(java.net.URL url) throws java.lang.Exception
Get a URL to the bundle entry that uses a common protocol (i.e. file: jar: or http: etc.).
getLocalURL
in interface BundleFileLocatorHelper
url
- the urljava.lang.Exception
- if unable to get the local urlpublic java.net.URL getFileURL(java.net.URL url) throws java.lang.Exception
Get a URL to the content of the bundle entry that uses the file: protocol. The content of the bundle entry may be downloaded or extracted to the local file system in order to create a file: URL.
getFileURL
in interface BundleFileLocatorHelper
url
- the urljava.lang.Exception
- if unable to get the file urlCopyright © 1995–2023 Webtide. All rights reserved.