Package org.nuxeo.osgi
Class JarBundleFile
- java.lang.Object
-
- org.nuxeo.osgi.JarBundleFile
-
- All Implemented Interfaces:
BundleFile
- Direct Known Subclasses:
NestedJarBundleFile
public class JarBundleFile extends Object implements BundleFile
- Author:
- Bogdan Stefanescu
-
-
Constructor Summary
Constructors Constructor Description JarBundleFile(File file)
JarBundleFile(JarFile jarFile)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Close underlying file resources *static void
extractNestedJar(JarFile file, String path, File dest)
static void
extractNestedJar(JarFile file, ZipEntry entry, File dest)
Enumeration<URL>
findEntries(String name, String pattern, boolean recurse)
Finds entries in that bundle.Collection<BundleFile>
findNestedBundles(File tmpDir)
Get a list with nested bundles or null if none.URL
getEntry(String name)
Gets the entry at the given path in this bundle.Enumeration<String>
getEntryPaths(String path)
Returns an Enumeration of all the paths (String
objects) to entries within the bundle whose longest sub-path matches the supplied path argument.protected URL
getEntryUrl(String name)
File
getFile()
Gets the current location of the bundle as a file.String
getFileName()
Gets the original file name of this bundle.URL
getJarURL()
String
getLocation()
Gets the original location of this bundle.Manifest
getManifest()
Gets the bundle manifest.Collection<BundleFile>
getNestedBundles(File tmpDir)
Gets a list with nested bundles or null if none.String
getSymbolicName()
Gets this bundle symbolic name.URL
getURL()
Gets the current location of the bundle as an URL (it may be different from the original location).boolean
isDirectory()
Checks if this bundle is a directory (an exploded jar).boolean
isJar()
Checks if this bundle is a JAR.String
toString()
-
-
-
Constructor Detail
-
JarBundleFile
public JarBundleFile(File file) throws IOException
- Throws:
IOException
-
JarBundleFile
public JarBundleFile(JarFile jarFile)
-
-
Method Detail
-
findEntries
public Enumeration<URL> findEntries(String name, String pattern, boolean recurse)
Description copied from interface:BundleFile
Finds entries in that bundle.- Specified by:
findEntries
in interfaceBundleFile
- See Also:
Bundle.findEntries(String, String, boolean)
-
getEntry
public URL getEntry(String name)
Description copied from interface:BundleFile
Gets the entry at the given path in this bundle.- Specified by:
getEntry
in interfaceBundleFile
- Returns:
- the entry URL if any null otherwise
- See Also:
Bundle.getEntry(String)
-
getEntryPaths
public Enumeration<String> getEntryPaths(String path)
Description copied from interface:BundleFile
Returns an Enumeration of all the paths (String
objects) to entries within the bundle whose longest sub-path matches the supplied path argument.- Specified by:
getEntryPaths
in interfaceBundleFile
- See Also:
Bundle.getEntryPaths(String)
-
getFile
public File getFile()
Description copied from interface:BundleFile
Gets the current location of the bundle as a file.- Specified by:
getFile
in interfaceBundleFile
- Returns:
- the bundle file or null if the bundle is not a file
-
getFileName
public String getFileName()
Description copied from interface:BundleFile
Gets the original file name of this bundle.- Specified by:
getFileName
in interfaceBundleFile
- Returns:
- the bundle file name
-
getLocation
public String getLocation()
Description copied from interface:BundleFile
Gets the original location of this bundle.This is an URI string pointing to the original locatioon of the bundle.
- Specified by:
getLocation
in interfaceBundleFile
- Returns:
- the location
-
getManifest
public Manifest getManifest()
Description copied from interface:BundleFile
Gets the bundle manifest.- Specified by:
getManifest
in interfaceBundleFile
- Returns:
- the bundle manifest
-
getNestedBundles
public Collection<BundleFile> getNestedBundles(File tmpDir) throws IOException
Description copied from interface:BundleFile
Gets a list with nested bundles or null if none. The bundle Manifest headers Bundle-ClassPath and Class-Path will be used to retrieve nested jars.- Specified by:
getNestedBundles
in interfaceBundleFile
- Parameters:
tmpDir
- optional temporary dir if the nested bundle should be extracted from an archive- Throws:
IOException
-
extractNestedJar
public static void extractNestedJar(JarFile file, String path, File dest) throws IOException
- Throws:
IOException
-
extractNestedJar
public static void extractNestedJar(JarFile file, ZipEntry entry, File dest) throws IOException
- Throws:
IOException
-
findNestedBundles
public Collection<BundleFile> findNestedBundles(File tmpDir) throws IOException
Description copied from interface:BundleFile
Get a list with nested bundles or null if none. The bundle file will be scanned for nested JARs.- Specified by:
findNestedBundles
in interfaceBundleFile
- Parameters:
tmpDir
- optional temporary dir if the nested bundle should be extracted from an archive- Throws:
IOException
-
getSymbolicName
public String getSymbolicName()
Description copied from interface:BundleFile
Gets this bundle symbolic name. If this bundle is an OSGi bundle, then the Bundle-SymbolicName manifest header is returned, otherwise null is returned.- Specified by:
getSymbolicName
in interfaceBundleFile
- Returns:
- null if not an OSGi bundle, the OSGI bundle symbolic name otherwise
-
getURL
public URL getURL()
Description copied from interface:BundleFile
Gets the current location of the bundle as an URL (it may be different from the original location).- Specified by:
getURL
in interfaceBundleFile
- Returns:
- the bundle url
-
getJarURL
public URL getJarURL()
-
isDirectory
public boolean isDirectory()
Description copied from interface:BundleFile
Checks if this bundle is a directory (an exploded jar).- Specified by:
isDirectory
in interfaceBundleFile
- Returns:
- true if the bundle is a directory, false otherwise
-
isJar
public boolean isJar()
Description copied from interface:BundleFile
Checks if this bundle is a JAR.- Specified by:
isJar
in interfaceBundleFile
- Returns:
- true if the bundle is a JAR, false otherwise
-
getEntryUrl
protected final URL getEntryUrl(String name) throws MalformedURLException
- Throws:
MalformedURLException
-
close
public void close() throws IOException
Description copied from interface:BundleFile
Close underlying file resources *- Specified by:
close
in interfaceBundleFile
- Throws:
IOException
-
-