Nuxeo ECM Projects 5.4.3-SNAPSHOT

org.nuxeo.osgi
Class JarBundleFile

java.lang.Object
  extended by org.nuxeo.osgi.JarBundleFile
All Implemented Interfaces:
BundleFile
Direct Known Subclasses:
NestedJarBundleFile

public class JarBundleFile
extends Object
implements BundleFile

Author:
Bogdan Stefanescu

Constructor Summary
JarBundleFile(File file)
           
JarBundleFile(JarFile jarFile)
           
 
Method Summary
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.
 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()
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

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 interface BundleFile
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 interface BundleFile
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 interface BundleFile
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 interface BundleFile
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 interface BundleFile
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 interface BundleFile
Returns:
the location

getManifest

public Manifest getManifest()
Description copied from interface: BundleFile
Gets the bundle manifest.

Specified by:
getManifest in interface BundleFile
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 interface BundleFile
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 interface BundleFile
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 interface BundleFile
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 interface BundleFile
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 interface BundleFile
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 interface BundleFile
Returns:
true if the bundle is a JAR, false otherwise

toString

public String toString()
Overrides:
toString in class Object

Nuxeo ECM Projects 5.4.3-SNAPSHOT

Copyright © 2011 Nuxeo SAS. All Rights Reserved.