@ProviderType public interface Framework extends Bundle
Framework instances are created using a FrameworkFactory
. The methods
of this interface can be used to manage and control the created framework
instance.
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(java.lang.Class<A> type)
Adapt this Framework to the specified type.
|
java.util.Enumeration<java.net.URL> |
findEntries(java.lang.String path,
java.lang.String filePattern,
boolean recurse)
Returns
null as a framework implementation does not have a proper
bundle from which to return entries. |
long |
getBundleId()
Returns the Framework unique identifier.
|
java.net.URL |
getEntry(java.lang.String path)
Returns
null as a framework implementation does not have a proper
bundle from which to return an entry. |
java.util.Enumeration<java.lang.String> |
getEntryPaths(java.lang.String path)
Returns
null as a framework implementation does not have a proper
bundle from which to return entry paths. |
long |
getLastModified()
Returns the time when the set of bundles in this framework was last
modified.
|
java.lang.String |
getLocation()
Returns the Framework location identifier.
|
java.lang.String |
getSymbolicName()
Returns the symbolic name of this Framework.
|
void |
init()
Initialize this Framework.
|
void |
init(FrameworkListener... listeners)
Initialize this Framework.
|
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(java.io.InputStream in)
Stop and restart this Framework.
|
FrameworkEvent |
waitForStop(long timeout)
Wait until this Framework has completely stopped.
|
getBundleContext, getDataFile, getHeaders, getHeaders, getRegisteredServices, getResource, getResources, getServicesInUse, getSignerCertificates, getState, getVersion, hasPermission, loadClass
void init() throws BundleException
This method performs the same function as calling
init(FrameworkListener...)
with no framework listeners.
BundleException
- If this Framework could not be initialized.java.lang.SecurityException
- If the Java Runtime Environment supports
permissions and the caller does not have the appropriate
AdminPermission[this,EXECUTE]
or if there is a security
manager already installed and the
Constants.FRAMEWORK_SECURITY
configuration property is
set.init(FrameworkListener...)
void init(FrameworkListener... listeners) throws BundleException
framework UUID
.
Bundle.STARTING
state.ConditionalPermissionAdmin
.adaptable
to the OSGi defined types to which
a system bundle can be adapted.start
method of the extension bundle
activator for all resolved extension bundles.
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.
All framework events fired by this method are also delivered to the specified FrameworkListeners in the order they are specified before returning from this method. After returning from this method the specified listeners are no longer notified of framework events.
listeners
- Zero or more listeners to be notified when framework
events occur while initializing the framework. The specified
listeners do not need to be otherwise registered with the
framework. If a specified listener is registered with the
framework, it will be notified twice for each framework event.BundleException
- If this Framework could not be initialized.java.lang.SecurityException
- If the Java Runtime Environment supports
permissions and the caller does not have the appropriate
AdminPermission[this,EXECUTE]
or if there is a security
manager already installed and the
Constants.FRAMEWORK_SECURITY
configuration property is
set.FrameworkEvent waitForStop(long timeout) throws java.lang.InterruptedException
stop
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.
timeout
- 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_SYSTEM_REFRESHED
- The Framework has been stopped
because of a refresh operation on the system bundle. A new class
loader must be used to restart the Framework.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.java.lang.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.java.lang.IllegalArgumentException
- If the value of timeout is negative.void start() throws BundleException
The 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.ERROR
Bundle.ACTIVE
.FrameworkEvent.STARTED
is firedstart
in interface Bundle
BundleException
- If this Framework could not be started.java.lang.SecurityException
- If the caller does not have the appropriate
AdminPermission[this,EXECUTE]
, and the Java Runtime
Environment supports permissions.void start(int options) throws BundleException
Calling this method is the same as calling start()
. There are no
start options for the Framework.
start
in interface Bundle
options
- Ignored. There are no start options for the Framework.BundleException
- If this Framework could not be started.java.lang.SecurityException
- If the caller does not have the appropriate
AdminPermission[this,EXECUTE]
, and the Java Runtime
Environment supports permissions.start()
void stop() throws BundleException
The 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.ERROR
Bundle.RESOLVED
.waitForStop
that the stop operation has completed.After being stopped, this Framework may be discarded, initialized or started.
stop
in interface Bundle
BundleException
- If stopping this Framework could not be
initiated.java.lang.SecurityException
- If the caller does not have the appropriate
AdminPermission[this,EXECUTE]
, and the Java Runtime
Environment supports permissions.void stop(int options) throws BundleException
Calling this method is the same as calling stop()
. There are no
stop options for the Framework.
stop
in interface Bundle
options
- Ignored. There are no stop options for the Framework.BundleException
- If stopping this Framework could not be
initiated.java.lang.SecurityException
- If the caller does not have the appropriate
AdminPermission[this,EXECUTE]
, and the Java Runtime
Environment supports permissions.stop()
void uninstall() throws BundleException
This method always throws a BundleException.
uninstall
in interface Bundle
BundleException
- This Framework cannot be uninstalled.java.lang.SecurityException
- If the caller does not have the appropriate
AdminPermission[this,LIFECYCLE]
, and the Java Runtime
Environment supports permissions.Bundle.stop()
void update() throws BundleException
The method returns immediately to the caller after initiating the following steps to be taken on another thread.
update
in interface Bundle
BundleException
- If stopping and restarting this Framework could
not be initiated.java.lang.SecurityException
- If the caller does not have the appropriate
AdminPermission[this,LIFECYCLE]
, and the Java Runtime
Environment supports permissions.Bundle.update(InputStream)
void update(java.io.InputStream in) throws BundleException
Calling this method is the same as calling update()
except that
any provided InputStream is immediately closed.
update
in interface Bundle
in
- 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.java.lang.SecurityException
- If the caller does not have the appropriate
AdminPermission[this,LIFECYCLE]
, and the Java Runtime
Environment supports permissions.Bundle.stop()
,
Bundle.start()
long getBundleId()
getBundleId
in interface Bundle
Bundle.getBundleId()
java.lang.String getLocation()
System Bundle
" since this Framework is
also a System Bundle.getLocation
in interface Bundle
System Bundle
".java.lang.SecurityException
- If the caller does not have the appropriate
AdminPermission[this,METADATA]
, and the Java Runtime
Environment supports permissions.Bundle.getLocation()
,
Constants.SYSTEM_BUNDLE_LOCATION
java.lang.String getSymbolicName()
system.bundle
" must be recognized as an alias to the
implementation-defined symbolic name since this Framework is also a
System Bundle.getSymbolicName
in interface Bundle
Bundle.getSymbolicName()
,
Constants.SYSTEM_BUNDLE_SYMBOLICNAME
java.util.Enumeration<java.lang.String> getEntryPaths(java.lang.String path)
null
as a framework implementation does not have a proper
bundle from which to return entry paths.getEntryPaths
in interface Bundle
path
- Ignored.null
as a framework implementation does not have a proper
bundle from which to return entry paths.java.net.URL getEntry(java.lang.String path)
null
as a framework implementation does not have a proper
bundle from which to return an entry.long getLastModified()
The time value is the number of milliseconds since January 1, 1970, 00:00:00 UTC.
getLastModified
in interface Bundle
java.util.Enumeration<java.net.URL> findEntries(java.lang.String path, java.lang.String filePattern, boolean recurse)
null
as a framework implementation does not have a proper
bundle from which to return entries.findEntries
in interface Bundle
path
- Ignored.filePattern
- Ignored.recurse
- Ignored.null
as a framework implementation does not have a proper
bundle from which to return entries.<A> A adapt(java.lang.Class<A> type)
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 Bundle
A
- The type to which this Framework is to be adapted.type
- Class object for the type to which this Framework is to be
adapted.null
if this Framework cannot be adaptedCopyright © OSGi Alliance (2000, 2020). All Rights Reserved. Licensed under the OSGi Specification License, Version 2.0