ACTIVE, INSTALLED, RESOLVED, SIGNERS_ALL, SIGNERS_TRUSTED, START_ACTIVATION_POLICY, START_TRANSIENT, STARTING, STOP_TRANSIENT, STOPPING, UNINSTALLED
Constructor and Description |
---|
EquinoxLauncher(Map<String,String> configuration) |
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()
Framework
framework 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.
public FrameworkEvent waitForStop(long timeout) throws InterruptedException
Framework
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.
waitForStop
in interface Framework
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_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)
Framework
null
as a framework implementation does not have a proper
bundle from which to return entries.findEntries
in interface Bundle
findEntries
in interface Framework
path
- Ignored.filePattern
- Ignored.recurse
- Ignored.null
as a framework implementation does not have a proper
bundle from which to return entries.public BundleContext getBundleContext()
Bundle
BundleContext
. 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 Bundle
BundleContext
for this bundle or null
if this
bundle has no valid BundleContext
.public long getBundleId()
Framework
getBundleId
in interface Bundle
getBundleId
in interface Framework
Bundle.getBundleId()
public URL getEntry(String path)
Framework
null
as a framework implementation does not have a proper
bundle from which to return an entry.public Enumeration<String> getEntryPaths(String path)
Framework
null
as a framework implementation does not have a proper
bundle from which to return entry paths.getEntryPaths
in interface Bundle
getEntryPaths
in interface Framework
path
- 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 Bundle
Dictionary
object containing this
bundle's Manifest headers and values.Constants.BUNDLE_LOCALIZATION
public 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 Bundle
locale
- 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_LOCALIZATION
public long getLastModified()
Bundle
The time value is the number of milliseconds since January 1, 1970, 00:00:00 UTC.
getLastModified
in interface Bundle
public String getLocation()
Framework
System Bundle
" since this Framework is
also a System Bundle.getLocation
in interface Bundle
getLocation
in interface Framework
System Bundle
".Bundle.getLocation()
,
Constants.SYSTEM_BUNDLE_LOCATION
public ServiceReference<?>[] getRegisteredServices()
Bundle
ServiceReference
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 Bundle
ServiceReference
objects or null
.ServiceRegistration
,
ServiceReference
,
ServicePermission
public URL getResource(String name)
Bundle
INSTALLED
, 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 Bundle
name
- 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
Bundle
INSTALLED
, 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 Bundle
name
- 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()
Bundle
ServiceReference
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 Bundle
ServiceReference
objects or null
.ServiceReference
,
ServicePermission
public int getState()
Bundle
A bundle can be in only one state at any time.
public String getSymbolicName()
Framework
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
getSymbolicName
in interface Framework
Bundle.getSymbolicName()
,
Constants.SYSTEM_BUNDLE_SYMBOLICNAME
public 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 Bundle
permission
- 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 Bundle
name
- 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 Bundle
start
in interface Framework
options
- Ignored. There are no start options for the Framework.BundleException
- If this Framework could not be started.Framework.start()
public void start() throws BundleException
Framework
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
start
in interface Framework
BundleException
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 Bundle
stop
in interface Framework
options
- 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
Framework
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
stop
in interface Framework
BundleException
- If stopping this Framework could not be
initiated.public void uninstall() throws BundleException
Framework
This method always throws a BundleException.
uninstall
in interface Bundle
uninstall
in interface Framework
BundleException
- This Framework cannot be uninstalled.Bundle.stop()
public void update() throws BundleException
Framework
The 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 Bundle
update
in interface Framework
BundleException
- 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 Bundle
update
in interface Framework
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.Bundle.stop()
,
Bundle.start()
public Map<X509Certificate,List<X509Certificate>> getSignerCertificates(int signersType)
Bundle
getSignerCertificates
in interface Bundle
signersType
- 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.X509Certificate
s for the signers of this bundle and
the X509Certificate
chains for those signers. The keys of
the Map
are the X509Certificate
s 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()
Bundle
Bundle-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 Bundle
public <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 Bundle
adapt
in interface Framework
A
- 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)
Bundle
File
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 Bundle
filename
- 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–2018 The Apache Software Foundation. All rights reserved.