ACTIVE, INSTALLED, RESOLVED, SIGNERS_ALL, SIGNERS_TRUSTED, START_ACTIVATION_POLICY, START_TRANSIENT, STARTING, STOP_TRANSIENT, STOPPING, UNINSTALLED| Modifier and Type | Method and Description |
|---|---|
<A> A |
adapt(Class<A> adapterType)
Adapt this Framework to the specified type.
|
int |
compareTo(Bundle o) |
Enumeration<URL> |
findEntries(String path,
String filePattern,
boolean recurse)
Returns
null as a framework implementation does not have a proper
bundle from which to return entries. |
BundleContext |
getBundleContext()
Returns this bundle's
BundleContext. |
long |
getBundleId()
Returns the Framework unique identifier.
|
File |
getDataFile(String filename)
Creates a
File object for a file in the persistent storage area
provided for this bundle by the Framework. |
URL |
getEntry(String path)
Returns
null as a framework implementation does not have a proper
bundle from which to return an entry. |
Enumeration<String> |
getEntryPaths(String path)
Returns
null as a framework implementation does not have a proper
bundle from which to return entry paths. |
Dictionary<String,String> |
getHeaders()
Returns this bundle's Manifest headers and values.
|
Dictionary<String,String> |
getHeaders(String locale)
Returns this bundle's Manifest headers and values localized to the
specified locale.
|
long |
getLastModified()
Returns the time when this bundle was last modified.
|
String |
getLocation()
Returns the Framework location identifier.
|
ServiceReference<?>[] |
getRegisteredServices()
Returns this bundle's
ServiceReference list for all services it
has registered or null if this bundle has no registered services. |
URL |
getResource(String name)
Find the specified resource from this bundle's class loader.
|
Enumeration<URL> |
getResources(String name)
Find the specified resources from this bundle's class loader.
|
ServiceReference<?>[] |
getServicesInUse()
Returns this bundle's
ServiceReference list for all services it
is using or returns null if this bundle is not using any
services. |
Map<X509Certificate,List<X509Certificate>> |
getSignerCertificates(int signersType)
Return the certificates for the signers of this bundle and the
certificate chains for those signers.
|
int |
getState()
Returns this bundle's current state.
|
String |
getSymbolicName()
Returns the symbolic name of this Framework.
|
Version |
getVersion()
Returns the version of this bundle as specified by its
Bundle-Version manifest header. |
boolean |
hasPermission(Object permission)
Determines if this bundle has the specified permissions.
|
void |
init()
Initialize this Framework.
|
Class<?> |
loadClass(String name)
Loads the specified class using this bundle's class loader.
|
void |
start()
Start this Framework.
|
void |
start(int options)
Start this Framework.
|
void |
stop()
Stop this Framework.
|
void |
stop(int options)
Stop this Framework.
|
void |
uninstall()
The Framework cannot be uninstalled.
|
void |
update()
Stop and restart this Framework.
|
void |
update(InputStream in)
Stop and restart this Framework.
|
FrameworkEvent |
waitForStop(long timeout)
Wait until this Framework has completely stopped.
|
public void init()
throws BundleException
Frameworkframework UUID.
Bundle.STARTING state.ConditionalPermissionAdmin.adaptable to the OSGi defined types to which
a system bundle can be adapted.
This Framework will not actually be started until start
is called.
This method does nothing if called when this Framework is in the
Bundle.STARTING, Bundle.ACTIVE or Bundle.STOPPING states.
init in interface FrameworkBundleException - If this Framework could not be initialized.public FrameworkEvent waitForStop(long timeout) throws InterruptedException
Frameworkstop and
update methods on a Framework performs an asynchronous stop of
the Framework. This method can be used to wait until the asynchronous
stop of this Framework has completed. This method will only wait if
called when this Framework is in the Bundle.STARTING, Bundle.ACTIVE,
or Bundle.STOPPING states. Otherwise it will return immediately.
A Framework Event is returned to indicate why this Framework has stopped.
waitForStop in interface Frameworktimeout - Maximum number of milliseconds to wait until this
Framework has completely stopped. A value of zero will wait
indefinitely.FrameworkEvent types may be returned by this
method.
STOPPED - This Framework has
been stopped. STOPPED_UPDATE - This
Framework has been updated which has shutdown and will now
restart.STOPPED_BOOTCLASSPATH_MODIFIED - This Framework has been stopped
and a bootclasspath extension bundle has been installed or
updated. The VM must be restarted in order for the changed boot
class path to take effect. ERROR - The Framework
encountered an error while shutting down or an error has occurred
which forced the framework to shutdown. WAIT_TIMEDOUT - This
method has timed out and returned before this Framework has
stopped.InterruptedException - If another thread interrupted the current
thread before or while the current thread was waiting for this
Framework to completely stop. The interrupted status of
the current thread is cleared when this exception is thrown.public Enumeration<URL> findEntries(String path, String filePattern, boolean recurse)
Frameworknull as a framework implementation does not have a proper
bundle from which to return entries.findEntries in interface BundlefindEntries in interface Frameworkpath - Ignored.filePattern - Ignored.recurse - Ignored.null as a framework implementation does not have a proper
bundle from which to return entries.public BundleContext getBundleContext()
BundleBundleContext. The returned
BundleContext can be used by the caller to act on behalf of this
bundle.
If this bundle is not in the Bundle.STARTING, Bundle.ACTIVE, or
Bundle.STOPPING states or this bundle is a fragment bundle, then this
bundle has no valid BundleContext. This method will return
null if this bundle has no valid BundleContext.
getBundleContext in interface BundleBundleContext for this bundle or null if this
bundle has no valid BundleContext.public long getBundleId()
FrameworkgetBundleId in interface BundlegetBundleId in interface FrameworkBundle.getBundleId()public URL getEntry(String path)
Frameworknull as a framework implementation does not have a proper
bundle from which to return an entry.public Enumeration<String> getEntryPaths(String path)
Frameworknull as a framework implementation does not have a proper
bundle from which to return entry paths.getEntryPaths in interface BundlegetEntryPaths in interface Frameworkpath - Ignored.null as a framework implementation does not have a proper
bundle from which to return entry paths.public Dictionary<String,String> getHeaders()
Bundle
Manifest header names are case-insensitive. The methods of the returned
Dictionary object must operate on header names in a
case-insensitive manner.
If a Manifest header value starts with "%", it must be
localized according to the default locale. If no localization is found
for a header value, the header value without the leading "%" is
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 UNINSTALLED state.
getHeaders in interface BundleDictionary object containing this
bundle's Manifest headers and values.Constants.BUNDLE_LOCALIZATIONpublic Dictionary<String,String> getHeaders(String locale)
Bundle
This method performs the same function as Bundle.getHeaders()
except the manifest header values are localized to the specified locale.
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 UNINSTALLED state, however the header
values must only be available in the raw and default locale values.
getHeaders in interface Bundlelocale - The locale name into which the header values are to be
localized. If the specified locale is 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
"%".Dictionary object containing this
bundle's Manifest headers and values.Bundle.getHeaders(),
Constants.BUNDLE_LOCALIZATIONpublic long getLastModified()
BundleThe time value is the number of milliseconds since January 1, 1970, 00:00:00 UTC.
getLastModified in interface Bundlepublic String getLocation()
FrameworkSystem Bundle" since this Framework is
also a System Bundle.getLocation in interface BundlegetLocation in interface FrameworkSystem Bundle".Bundle.getLocation(),
Constants.SYSTEM_BUNDLE_LOCATIONpublic ServiceReference<?>[] getRegisteredServices()
BundleServiceReference list for all services it
has registered or null if this bundle has no registered services.
If the Java runtime supports permissions, a ServiceReference
object to a service is included in the returned list only if the caller
has the ServicePermission to get the service using at least one
of the named classes the service was registered under.
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.
getRegisteredServices in interface BundleServiceReference objects or null.ServiceRegistration,
ServiceReference,
ServicePermissionpublic URL getResource(String name)
BundleINSTALLED, this method must
attempt to resolve this bundle before attempting to get the specified
resource. If this bundle cannot be resolved, then only this bundle must
be searched for the specified resource. Imported packages cannot be
searched when this bundle has not been resolved. If this bundle is a
fragment bundle then null is returned.
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.
getResource in interface Bundlename - The name of the resource. See ClassLoader.getResource
for a description of the format of a resource name.null 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.Bundle.getEntry(String),
Bundle.findEntries(String, String, boolean)public Enumeration<URL> getResources(String name) throws IOException
BundleINSTALLED, this method must
attempt to resolve this bundle before attempting to get the specified
resources. If this bundle cannot be resolved, then only this bundle must
be searched for the specified resources. Imported packages cannot be
searched when a bundle has not been resolved. If this bundle is a
fragment bundle then null is returned.
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 in interface Bundlename - The name of the resource. See
ClassLoader.getResources for a description of the format
of a resource name.null 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.IOException - If there is an I/O error.public ServiceReference<?>[] getServicesInUse()
BundleServiceReference list for all services it
is using or returns null if this bundle is not using any
services. A bundle is considered to be using a service if its use count
for that service is greater than zero.
If the Java Runtime Environment supports permissions, a
ServiceReference object to a service is included in the returned
list only if the caller has the ServicePermission to get the
service using at least one of the named classes the service was
registered under.
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.
getServicesInUse in interface BundleServiceReference objects or null.ServiceReference,
ServicePermissionpublic int getState()
BundleA bundle can be in only one state at any time.
public String getSymbolicName()
Frameworksystem.bundle" must be recognized as an alias to the
implementation-defined symbolic name since this Framework is also a
System Bundle.getSymbolicName in interface BundlegetSymbolicName in interface FrameworkBundle.getSymbolicName(),
Constants.SYSTEM_BUNDLE_SYMBOLICNAMEpublic boolean hasPermission(Object permission)
Bundle
If the Java Runtime Environment does not support permissions, this method
always returns true.
permission is of type Object to avoid referencing the
java.security.Permission class directly. This is to allow the
Framework to be implemented in Java environments which do not support
permissions.
If the Java Runtime Environment does support permissions, this bundle and
all its resources including embedded JAR files, belong to the same
java.security.ProtectionDomain; that is, they must share the same
set of permissions.
hasPermission in interface Bundlepermission - The permission to verify.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.public Class<?> loadClass(String name) throws ClassNotFoundException
Bundle
If this bundle is a fragment bundle then this method must throw a
ClassNotFoundException.
If this bundle's state is INSTALLED, this method must attempt to
resolve this bundle before attempting to load the class.
If this bundle cannot be resolved, a Framework event of type
FrameworkEvent.ERROR is fired containing a
BundleException with details of the reason this bundle could not
be resolved. This method must then throw a ClassNotFoundException.
If this bundle's state is UNINSTALLED, then an
IllegalStateException is thrown.
loadClass in interface Bundlename - The name of the class to load.ClassNotFoundException - If no such class can be found or if this
bundle is a fragment bundle or if the caller does not have the
appropriate AdminPermission[this,CLASS], and the Java
Runtime Environment supports permissions.public void start(int options)
throws BundleException
Framework
Calling this method is the same as calling Framework.start(). There are no
start options for the Framework.
start in interface Bundlestart in interface Frameworkoptions - Ignored. There are no start options for the Framework.BundleException - If this Framework could not be started.Framework.start()public void start()
throws BundleException
FrameworkThe following steps are taken to start this Framework:
Bundle.STARTING state,
initialize this Framework.beginning start
level framework property, as described in the Start Level
Specification. If this framework property is not specified, then the
start level of this Framework is moved to start level one (1). Any
exceptions that occur during bundle starting must be wrapped in a
BundleException and then published as a framework event of type
FrameworkEvent.ERRORBundle.ACTIVE.FrameworkEvent.STARTED is firedstart in interface Bundlestart in interface FrameworkBundleException - If this Framework could not be started.public void stop(int options)
throws BundleException
Framework
Calling this method is the same as calling Framework.stop(). There are no
stop options for the Framework.
stop in interface Bundlestop in interface Frameworkoptions - Ignored. There are no stop options for the Framework.BundleException - If stopping this Framework could not be
initiated.Framework.stop()public void stop()
throws BundleException
FrameworkThe method returns immediately to the caller after initiating the following steps to be taken on another thread.
Bundle.STOPPING.BundleException and then published as a framework
event of type FrameworkEvent.ERRORBundle.RESOLVED.waitForStop that the stop operation has completed.After being stopped, this Framework may be discarded, initialized or started.
stop in interface Bundlestop in interface FrameworkBundleException - If stopping this Framework could not be
initiated.public void uninstall()
throws BundleException
FrameworkThis method always throws a BundleException.
uninstall in interface Bundleuninstall in interface FrameworkBundleException - This Framework cannot be uninstalled.Bundle.stop()public void update()
throws BundleException
FrameworkThe method returns immediately to the caller after initiating the following steps to be taken on another thread.
Framework.stop() method to stop this
Framework.Framework.start() method to start this
Framework.update in interface Bundleupdate in interface FrameworkBundleException - If stopping and restarting this Framework could
not be initiated.Bundle.update(InputStream)public void update(InputStream in) throws BundleException
Framework
Calling this method is the same as calling Framework.update() except that
any provided InputStream is immediately closed.
update in interface Bundleupdate in interface Frameworkin - Any provided InputStream is immediately closed before returning
from this method and otherwise ignored.BundleException - If stopping and restarting this Framework could
not be initiated.Bundle.stop(),
Bundle.start()public Map<X509Certificate,List<X509Certificate>> getSignerCertificates(int signersType)
BundlegetSignerCertificates in interface BundlesignersType - If Bundle.SIGNERS_ALL is specified, then information
on all signers of this bundle is returned. If
Bundle.SIGNERS_TRUSTED is specified, then only information on
the signers of this bundle trusted by the framework is returned.X509Certificates 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.public Version getVersion()
BundleBundle-Version manifest header. If this bundle does not have a
specified version then Version.emptyVersion is returned.
This method must continue to return this bundle's version while this
bundle is in the UNINSTALLED state.
getVersion in interface Bundlepublic <A> A adapt(Class<A> adapterType)
Framework
Adapting this Framework to the specified type may require certain checks,
including security checks, to succeed. If a check does not succeed, then
this Framework cannot be adapted and null is returned. If this
Framework is not initialized, then null is
returned if the specified type is one of the OSGi defined types to which
a system bundle can be adapted.
adapt in interface Bundleadapt in interface FrameworkA - The type to which this Framework is to be adapted.adapterType - Class object for the type to which this Framework is to be
adapted.null if this Framework cannot be adaptedpublic int compareTo(Bundle o)
compareTo in interface Comparable<Bundle>public File getDataFile(String filename)
BundleFile object for a file in the persistent storage area
provided for this bundle by the Framework. This method will return
null if the platform does not have file system support or this
bundle is a fragment bundle.
A File object for the base directory of the persistent storage
area provided for this bundle by the Framework can be obtained by calling
this method with an empty string as filename.
If the Java Runtime Environment supports permissions, the Framework will
ensure that this bundle has the java.io.FilePermission with
actions read,write,delete for all files
(recursively) in the persistent storage area provided for this bundle.
getDataFile in interface Bundlefilename - A relative name to the file to be accessed.File object that represents the requested file or
null if the platform does not have file system support or
this bundle is a fragment bundle.Copyright © 2007–2016 The Apache Software Foundation. All rights reserved.