A Bundle object is the access point to define the lifecycle of an
installed bundle. Each bundle installed in the OSGi environment must have an
associated Bundle object.
A bundle must have a unique identity, a long, chosen by the
Framework. This identity must not change during the lifecycle of a bundle,
even when the bundle is updated. Uninstalling and then reinstalling the
bundle must create a new unique identity.
A bundle can be in one of six states:
Values assigned to these states have no specified ordering; they represent bit values that may be ORed together to determine if a bundle is in one of the valid states.
A bundle should only have active threads of execution when its state is one
of STARTING,ACTIVE, or STOPPING. An
UNINSTALLED bundle can not be set to another state; it is a zombie
and can only be reached because references are kept somewhere.
The Framework is the only entity that is allowed to create Bundle
objects, and these objects are only valid within the Framework that created
them.
Bundles have a natural ordering such that if two Bundles have the
same bundle id they are equal. A Bundle is
less than another Bundle if it has a lower bundle id and is greater if it has a higher bundle id.
| Modifier and Type | Field and Description |
|---|---|
| public static final int | ACTIVE
The bundle is now running. |
| public static final int | INSTALLED
The bundle is installed but not yet resolved. |
| public static final int | RESOLVED
The bundle is resolved and is able to be started. |
| public static final int | SIGNERS_ALL
Request that all certificates used to sign the bundle be returned. |
| public static final int | SIGNERS_TRUSTED
Request that only certificates used to sign the bundle that are trusted by the framework be returned. |
| public static final int | START_ACTIVATION_POLICY
The bundle start operation must activate the bundle according to the
bundle's declared |
| public static final int | START_TRANSIENT
The bundle start operation is transient and the persistent autostart setting of the bundle is not modified. |
| public static final int | STARTING
The bundle is in the process of starting. |
| public static final int | STOP_TRANSIENT
The bundle stop is transient and the persistent autostart setting of the bundle is not modified. |
| public static final int | STOPPING
The bundle is in the process of stopping. |
| public static final int | UNINSTALLED
The bundle is uninstalled and may not be used. |
| Modifier and Type | Method and Description |
|---|---|
| public < The type to which this bundle is to be adapted. A> A | |
| public Enumeration | Returns: An enumeration of URL objects for each matching entry, ornull if no matching entry could be found or if the caller
does not have the appropriate
AdminPermission[this,RESOURCE], and the Java Runtime
Environment supports permissions. The URLs are sorted such that
entries from this bundle are returned first followed by the
entries from attached fragments in attachment order. If this
bundle is a fragment, then only matching entries in this fragment
are returned.The path name in which to look. The path is always relative
to the root of this bundle and may begin with "/". A
path value of "/" indicates the root of this bundle. path, String The file name pattern for selecting entries in the
specified path. The pattern is only matched against the last
element of the entry path. If the entry is a directory then the
trailing "/" is not used for pattern matching. Substring
matching is supported, as specified in the Filter specification,
using the wildcard character ("*"). If null is
specified, this is equivalent to "*" and matches all
files. filePattern, boolean If recurse)true, recurse into subdirectories. Otherwise
only return entries from the specified path.Returns entries in this bundle and its attached fragments. |
| public BundleContext | Returns: ABundleContext for this bundle or null if this
bundle has no valid BundleContext.Returns this bundle's |
| public long | |
| public File | Returns: AFile object that represents the requested file or
null if the platform does not have file system support or
this bundle is a fragment bundle.A relative name to the file to be accessed. filename)Creates a |
| public URL | Returns: A URL to the entry, ornull if no entry could be found or
if the caller does not have the appropriate
AdminPermission[this,RESOURCE] and the Java Runtime
Environment supports permissions.The path name of the entry. path)Returns a URL to the entry at the specified path in this bundle. |
| public Enumeration | Returns: An Enumeration of the entry paths (String objects) or
null if no entry could be found or if the caller does not
have the appropriate AdminPermission[this,RESOURCE] and
the Java Runtime Environment supports permissions.The path name for which to return entry paths. path)Returns an Enumeration of all the paths ( |
| public Dictionary | Returns: An unmodifiableDictionary object containing this
bundle's Manifest headers and values.Returns this bundle's Manifest headers and values. |
| public Dictionary | Returns: An unmodifiableDictionary object containing this
bundle's Manifest headers and values.The locale name into which the header values are to be
localized. If the specified locale is locale)null then the locale
returned by java.util.Locale.getDefault is used. If the
specified locale is the empty string, this method will return the
raw (unlocalized) manifest headers including any leading
"%".Returns this bundle's Manifest headers and values localized to the specified locale. |
| public long | Returns: The time when this bundle was last modified.Returns the time when this bundle was last modified. |
| public String | Returns: The string representation of this bundle's location identifier.Returns this bundle's location identifier. |
| public ServiceReference | Returns: An array ofServiceReference objects or null.Returns this bundle's |
| public URL | Returns: A URL to the named resource, ornull if the resource
could not be found or if this bundle is a fragment bundle or if
the caller does not have the appropriate
AdminPermission[this,RESOURCE], and the Java Runtime
Environment supports permissions.The name of the resource. See name)ClassLoader.getResource
for a description of the format of a resource name.Find the specified resource from this bundle's class loader. |
| public Enumeration | Returns: An enumeration of URLs to the named resources, ornull if
the resource could not be found or if this bundle is a fragment
bundle or if the caller does not have the appropriate
AdminPermission[this,RESOURCE], and the Java Runtime
Environment supports permissions.The name of the resource. See
name)ClassLoader.getResources for a description of the format
of a resource name.Find the specified resources from this bundle's class loader. |
| public ServiceReference | Returns: An array ofServiceReference objects or null.Returns this bundle's |
| public Map | Returns: TheX509Certificates for the signers of this bundle and
the X509Certificate chains for those signers. The keys of
the Map are the X509Certificates of the signers
of this bundle. The value for a key is a List containing
the X509Certificate chain for the signer. The first item
in the List is the signer's X509Certificate which
is then followed by the rest of the X509Certificate
chain. The returned Map will be empty if there are no
signers. The returned Map is the property of the caller
who is free to modify it.If signersType)SIGNERS_ALL is specified, then information
on all signers of this bundle is returned. If
SIGNERS_TRUSTED is specified, then only information on
the signers of this bundle trusted by the framework is returned.Return the certificates for the signers of this bundle and the certificate chains for those signers. |
| public int | Returns: An element ofUNINSTALLED,INSTALLED,
RESOLVED, STARTING, STOPPING,
ACTIVE.Returns this bundle's current state. |
| public String | Returns: The symbolic name of this bundle ornull if this bundle
does not have a symbolic name.Returns the symbolic name of this bundle as specified by its
|
| public Version | Returns: The version of this bundle.Returns the version of this bundle as specified by its
|
| public boolean | Returns: true if this bundle has the specified permission or the
permissions possessed by this bundle imply the specified
permission; false if this bundle does not have the
specified permission or permission is not an
instanceof java.security.Permission.The permission to verify. permission)Determines if this bundle has the specified permissions. |
| public Class | |
| public void | start(int
The options for starting this bundle. See
options)START_TRANSIENT and START_ACTIVATION_POLICY. The
Framework must ignore unrecognized options.Starts this bundle. |
| public void | |
| public void | stop(int
The options for stopping this bundle. See
options)STOP_TRANSIENT. The Framework must ignore unrecognized
options.Stops this bundle. |
| public void | |
| public void | |
| public void | update(InputStream
The input)InputStream from which to read the new bundle or
null to indicate the Framework must create the input
stream from this bundle's Bundle-UpdateLocation Manifest header, if present, or this
bundle's original location. The input stream must always be closed
when this method completes, even if an exception is thrown.Updates this bundle from an |
| public void |
| ACTIVE | back to summary |
|---|---|
| public static final int ACTIVE The bundle is now running.
A bundle is in the
The value of | |
| INSTALLED | back to summary |
|---|---|
| public static final int INSTALLED The bundle is installed but not yet resolved.
A bundle is in the
This state is visible if the bundle's code dependencies are not resolved.
The Framework may attempt to resolve an
The value of | |
| RESOLVED | back to summary |
|---|---|
| public static final int RESOLVED The bundle is resolved and is able to be started.
A bundle is in the
Note that the bundle is not active yet. A bundle must be put in the
The value of | |
| SIGNERS_ALL | back to summary |
|---|---|
| public static final int SIGNERS_ALL Request that all certificates used to sign the bundle be returned.
| |
| SIGNERS_TRUSTED | back to summary |
|---|---|
| public static final int SIGNERS_TRUSTED Request that only certificates used to sign the bundle that are trusted by the framework be returned.
| |
| START_ACTIVATION_POLICY | back to summary |
|---|---|
| public static final int START_ACTIVATION_POLICY The bundle start operation must activate the bundle according to the
bundle's declared
This bit may be set when calling
| |
| START_TRANSIENT | back to summary |
|---|---|
| public static final int START_TRANSIENT The bundle start operation is transient and the persistent autostart setting of the bundle is not modified.
This bit may be set when calling
| |
| STARTING | back to summary |
|---|---|
| public static final int STARTING The bundle is in the process of starting.
A bundle is in the
If the bundle has a
The value of | |
| STOP_TRANSIENT | back to summary |
|---|---|
| public static final int STOP_TRANSIENT The bundle stop is transient and the persistent autostart setting of the bundle is not modified.
This bit may be set when calling
| |
| STOPPING | back to summary |
|---|---|
| public static final int STOPPING The bundle is in the process of stopping.
A bundle is in the
The value of | |
| UNINSTALLED | back to summary |
|---|---|
| public static final int UNINSTALLED The bundle is uninstalled and may not be used.
The
The value of | |
| adapt | back to summary |
|---|---|
| public <A> A adapt(Class<A> type) Adapt this bundle to the specified type.
Adapting this bundle to the specified type may require certain checks,
including security checks, to succeed. If a check does not succeed, then
this bundle cannot be adapted and
| |
| findEntries | back to summary |
|---|---|
| public Enumeration Returns entries in this bundle and its attached fragments. This bundle's
class loader is not used to search for entries. Only the contents of this
bundle and its attached fragments are searched for the specified entries.
If this bundle's state is This method is intended to be used to obtain configuration, setup, localization and other information from this bundle. This method takes into account that the "contents" of this bundle can be extended with fragments. This "bundle space" is not a namespace with unique members; the same entry name can be present multiple times. This method therefore returns an enumeration of URL objects. These URLs can come from different JARs but have the same path name. This method can either return only entries in the specified path or recurse into subdirectories returning entries in the directory tree beginning at the specified path. Fragments can be attached after this bundle is resolved, possibly changing the set of URLs returned by this method. If this bundle is not resolved, only the entries in the JAR file of this bundle are returned. Examples:
// List all XML files in the OSGI-INF directory and below
Enumeration e = b.findEntries("OSGI-INF", "*.xml", true);
// Find a specific localization file
Enumeration e = b.findEntries("OSGI-INF/l10n",
"bundle_nl_DU.properties", false);
if (e.hasMoreElements())
return (URL) e.nextElement();
URLs for directory entries must have their path end with "/". Note Jar and zip files are not required to include directory entries. URLs to directory entries will not be returned if the bundle contents do not contain directory entries.
| |
| getBundleContext | back to summary |
|---|---|
| public BundleContext getBundleContext() Returns this bundle's
If this bundle is not in the
| |
| getBundleId | back to summary |
|---|---|
| public long getBundleId() Returns this bundle's unique identifier. This bundle is assigned a unique identifier by the Framework when it was installed in the OSGi environment. A bundle's unique identifier has the following attributes:
This method must continue to return this bundle's unique identifier while
this bundle is in the
| |
| getDataFile | back to summary |
|---|---|
| public File getDataFile(String filename) Creates a
A
If the Java Runtime Environment supports permissions, the Framework will
ensure that this bundle has the
| |
| getEntry | back to summary |
|---|---|
| public URL getEntry(String path) Returns a URL to the entry at the specified path in this bundle. This bundle's class loader is not used to search for the entry. Only the contents of this bundle are searched for the entry. The specified path is always relative to the root of this bundle and may begin with "/". A path value of "/" indicates the root of this bundle. Note Jar and zip files are not required to include directory entries. URLs to directory entries will not be returned if the bundle contents do not contain directory entries.
| |
| getEntryPaths | back to summary |
|---|---|
| public Enumeration Returns an Enumeration of all the paths ( The specified path is always relative to the root of this bundle and may begin with a "/". A path value of "/" indicates the root of this bundle. Returned paths indicating subdirectory paths end with a "/". The returned paths are all relative to the root of this bundle and must not begin with "/". Note Jar and zip files are not required to include directory entries. Paths to directory entries will not be returned if the bundle contents do not contain directory entries.
| |
| getHeaders | back to summary |
|---|---|
| public Dictionary Returns this bundle's Manifest headers and values. This method returns all the Manifest headers and values from the main section of this bundle's Manifest file; that is, all lines prior to the first blank line.
Manifest header names are case-insensitive. The methods of the returned
For example, the following Manifest headers and values are included if they are present in the Manifest file:
Bundle-Name
Bundle-Vendor
Bundle-Version
Bundle-Description
Bundle-DocURL
Bundle-ContactAddress
This method must continue to return Manifest header information while
this bundle is in the
| |
| getHeaders | back to summary |
|---|---|
| public Dictionary Returns this bundle's Manifest headers and values localized to the specified locale.
This method performs the same function as If a Manifest header value starts with "%", it must be localized according to the specified locale. If a locale is specified and cannot be found, then the header values must be returned using the default locale. Localizations are searched for in the following order: bn + "_" + Ls + "_" + Cs + "_" + Vs bn + "_" + Ls + "_" + Cs bn + "_" + Ls bn + "_" + Ld + "_" + Cd + "_" + Vd bn + "_" + Ld + "_" + Cd bn + "_" + Ld bnWhere bn is this bundle's localization basename, Ls,
Cs and Vs are the specified locale (language, country,
variant) and Ld, Cd and Vd are the default locale
(language, country, variant).
If null is specified as the locale string, the header values must
be localized using the default locale. If the empty string ("")
is specified as the locale string, the header values must not be
localized and the raw (unlocalized) header values, including any leading
"%", must be returned. If no localization is found for a header
value, the header value without the leading "%" is returned.
This method must continue to return Manifest header information while
this bundle is in the
| |
| getLastModified | back to summary |
|---|---|
| public long getLastModified() Returns the time when this bundle was last modified. A bundle is considered to be modified when it is installed, updated or uninstalled. The time value is the number of milliseconds since January 1, 1970, 00:00:00 UTC.
| |
| getLocation | back to summary |
|---|---|
| public String getLocation() Returns this bundle's location identifier.
The location identifier is the location passed to
This method must continue to return this bundle's location identifier
while this bundle is in the
| |
| getRegisteredServices | back to summary |
|---|---|
| public ServiceReference Returns this bundle's
If the Java runtime supports permissions, a The list is valid at the time of the call to this method, however, as the Framework is a very dynamic environment, services can be modified or unregistered at anytime.
| |
| getResource | back to summary |
|---|---|
| public URL getResource(String name) Find the specified resource from this bundle's class loader.
This bundle's class loader is called to search for the specified
resource. If this bundle's state is Note Jar and zip files are not required to include directory entries. URLs to directory entries will not be returned if the bundle contents do not contain directory entries.
| |
| getResources | back to summary |
|---|---|
| public Enumeration Find the specified resources from this bundle's class loader.
This bundle's class loader is called to search for the specified
resources. If this bundle's state is Note Jar and zip files are not required to include directory entries. URLs to directory entries will not be returned if the bundle contents do not contain directory entries.
| |
| getServicesInUse | back to summary |
|---|---|
| public ServiceReference Returns this bundle's
If the Java Runtime Environment supports permissions, a
The list is valid at the time of the call to this method, however, as the Framework is a very dynamic environment, services can be modified or unregistered at anytime.
| |
| getSignerCertificates | back to summary |
|---|---|
| public Map Return the certificates for the signers of this bundle and the certificate chains for those signers.
| |
| getState | back to summary |
|---|---|
| public int getState() Returns this bundle's current state. A bundle can be in only one state at any time.
| |
| getSymbolicName | back to summary |
|---|---|
| public String getSymbolicName() Returns the symbolic name of this bundle as specified by its
This method must continue to return this bundle's symbolic name while
this bundle is in the
| |
| getVersion | back to summary |
|---|---|
| public Version getVersion() Returns the version of this bundle as specified by its
This method must continue to return this bundle's version while this
bundle is in the
| |
| hasPermission | back to summary |
|---|---|
| public boolean hasPermission(Object permission) Determines if this bundle has the specified permissions.
If the Java Runtime Environment does not support permissions, this method
always returns
If the Java Runtime Environment does support permissions, this bundle and
all its resources including embedded JAR files, belong to the same
| |
| loadClass | back to summary |
|---|---|
| public Class Loads the specified class using this bundle's class loader.
If this bundle is a fragment bundle then this method must throw a
If this bundle's state is
If this bundle cannot be resolved, a Framework event of type
If this bundle's state is
| |
| start | back to summary |
|---|---|
| public void start(int options) throws BundleException Starts this bundle.
If this bundle's state is If the current start level is less than this bundle's start level:
When the Framework's current start level becomes equal to or more than this bundle's start level, this bundle will be started. Otherwise, the following steps are required to start this bundle:
| |
| start | back to summary |
|---|---|
| public void start() throws BundleException Starts this bundle with no options.
This method performs the same function as calling
| |
| stop | back to summary |
|---|---|
| public void stop(int options) throws BundleException Stops this bundle. The following steps are required to stop a bundle:
| |
| stop | back to summary |
|---|---|
| public void stop() throws BundleException Stops this bundle with no options.
This method performs the same function as calling
| |
| uninstall | back to summary |
|---|---|
| public void uninstall() throws BundleException Uninstalls this bundle.
This method causes the Framework to notify other bundles that this bundle
is being uninstalled, and then puts this bundle into the
If this bundle has exported any packages, the Framework must continue to
make these packages available to their importing bundles until the
The following steps are required to uninstall a bundle:
| |
| update | back to summary |
|---|---|
| public void update(InputStream input) throws BundleException Updates this bundle from an
If the specified
If this bundle's state is
If this bundle has exported any packages that are imported by another
bundle, these packages must remain exported until the
The following steps are required to update a bundle:
| |
| update | back to summary |
|---|---|
| public void update() throws BundleException Updates this bundle.
This method performs the same function as calling
| |