org.eclipse.jetty.osgi.boot.utils
Interface BundleFileLocatorHelper

All Known Implementing Classes:
DefaultFileLocatorHelper

public interface BundleFileLocatorHelper

From a bundle to its location on the filesystem. Assumes the bundle is not a jar.

Author:
hmalphettes

Field Summary
static String CLASS_NAME
          The name of the custom implementation for this interface in a fragment.
static BundleFileLocatorHelper DEFAULT
          The default instance supports felix and equinox
 
Method Summary
 Enumeration<URL> findEntries(org.osgi.framework.Bundle bundle, String entryPath)
          Helper method equivalent to Bundle#getEntry(String entryPath) except that it searches for entries in the fragments by using the findEntries method.
 File getBundleInstallLocation(org.osgi.framework.Bundle bundle)
          Works with equinox, felix, nuxeo and probably more.
 File getFileInBundle(org.osgi.framework.Bundle bundle, String path)
          Locate a file inside a bundle.
 File[] locateJarsInsideBundle(org.osgi.framework.Bundle bundle)
          If the bundle is a jar, returns the jar.
 

Field Detail

CLASS_NAME

static final String CLASS_NAME
The name of the custom implementation for this interface in a fragment.

See Also:
Constant Field Values

DEFAULT

static final BundleFileLocatorHelper DEFAULT
The default instance supports felix and equinox

Method Detail

getBundleInstallLocation

File getBundleInstallLocation(org.osgi.framework.Bundle bundle)
                              throws Exception
Works with equinox, felix, nuxeo and probably more. Not exactly in the spirit of OSGi but quite necessary to support self-contained webapps and other situations.

Currently only works with bundles that are not jar.

Parameters:
bundle - The bundle
Returns:
Its installation location as a file.
Throws:
Exception

getFileInBundle

File getFileInBundle(org.osgi.framework.Bundle bundle,
                     String path)
                     throws Exception
Locate a file inside a bundle.

Parameters:
bundle -
path -
Returns:
file object
Throws:
Exception

locateJarsInsideBundle

File[] locateJarsInsideBundle(org.osgi.framework.Bundle bundle)
                              throws Exception
If the bundle is a jar, returns the jar. If the bundle is a folder, look inside it and search for jars that it returns.

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.

Parameters:
bundle -
Returns:
The jar(s) file that is either the bundle itself, either the jars embedded inside it.
Throws:
Exception

findEntries

Enumeration<URL> findEntries(org.osgi.framework.Bundle bundle,
                             String entryPath)
Helper method equivalent to Bundle#getEntry(String entryPath) except that it searches for entries in the fragments by using the findEntries method.

Parameters:
bundle -
entryPath -
Returns:
null or all the entries found for that path.


Copyright © 1995-2011 Mort Bay Consulting. All Rights Reserved.