|
OSGi™ Service Platform Release 4 Version 4.1 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
The configuration information for a ManagedService
or
ManagedServiceFactory
object.
The Configuration Admin service uses this interface to represent the
configuration information for a ManagedService
or for a
service instance of a ManagedServiceFactory
.
A Configuration
object contains a configuration dictionary and
allows the properties to be updated via this object. Bundles wishing to
receive configuration dictionaries do not need to use this class - they
register a ManagedService
or
ManagedServiceFactory
. Only administrative bundles, and
bundles wishing to update their own configurations need to use this class.
The properties handled in this configuration have case insensitive
String
objects as keys. However, case is preserved from the
last set key/value.
A configuration can be bound to a bundle location (
Bundle.getLocation()
). The purpose of binding a
Configuration
object to a location is to make it impossible
for another bundle to forge a PID that would match this configuration. When a
configuration is bound to a specific location, and a bundle with a different
location registers a corresponding ManagedService
object or
ManagedServiceFactory
object, then the configuration is not
passed to the updated method of that object.
If a configuration's location is null
, it is not yet bound to
a location. It will become bound to the location of the first bundle that
registers a ManagedService
or
ManagedServiceFactory
object with the corresponding PID.
The same Configuration
object is used for configuring both a
Managed Service Factory and a Managed Service. When it is important to
differentiate between these two the term "factory configuration" is used.
Method Summary | |
void |
delete()
Delete this Configuration object. |
boolean |
equals(java.lang.Object other)
Equality is defined to have equal PIDs Two Configuration objects are equal when their PIDs are equal. |
java.lang.String |
getBundleLocation()
Get the bundle location. |
java.lang.String |
getFactoryPid()
For a factory configuration return the PID of the corresponding Managed Service Factory, else return null . |
java.lang.String |
getPid()
Get the PID for this Configuration object. |
java.util.Dictionary |
getProperties()
Return the properties of this Configuration object. |
int |
hashCode()
Hash code is based on PID. |
void |
setBundleLocation(java.lang.String bundleLocation)
Bind this Configuration object to the specified bundle
location. |
void |
update()
Update the Configuration object with the current
properties. |
void |
update(java.util.Dictionary properties)
Update the properties of this Configuration object. |
Method Detail |
public java.lang.String getPid()
Configuration
object.
Configuration
object.
java.lang.IllegalStateException
- if this configuration has been deletedpublic java.util.Dictionary getProperties()
Configuration
object.
The Dictionary
object returned is a private copy for the
caller and may be changed without influencing the stored configuration.
The keys in the returned dictionary are case insensitive and are always
of type String
.
If called just after the configuration is created and before update has
been called, this method returns null
.
null
. These properties must not contain the
"service.bundleLocation" property. The value of this property may
be obtained from the getBundleLocation
method.
java.lang.IllegalStateException
- if this configuration has been deletedpublic void update(java.util.Dictionary properties) throws java.io.IOException
Configuration
object.
Stores the properties in persistent storage after adding or overwriting
the following properties:
String
.
If the corresponding Managed Service/Managed Service Factory is registered, its updated method must be called asynchronously. Else, this callback is delayed until aforementioned registration occurs.
Also intiates an asynchronous call to all
ConfigurationListener
s with a
ConfigurationEvent.CM_UPDATED
event.
properties
- the new set of properties for this configuration
java.io.IOException
- if update cannot be made persistent
java.lang.IllegalArgumentException
- if the Dictionary
object
contains invalid configuration types or contains case variants of
the same key name.
java.lang.IllegalStateException
- if this configuration has been deletedpublic void delete() throws java.io.IOException
Configuration
object.
Removes this configuration object from the persistent store. Notify
asynchronously the corresponding Managed Service or Managed Service
Factory. A ManagedService
object is notified by a call to
its updated
method with a null
properties
argument. A ManagedServiceFactory
object is notified by a
call to its deleted
method.
Also intiates an asynchronous call to all
ConfigurationListener
s with a
ConfigurationEvent.CM_DELETED
event.
java.io.IOException
- If delete fails
java.lang.IllegalStateException
- if this configuration has been deletedpublic java.lang.String getFactoryPid()
null
.
null
java.lang.IllegalStateException
- if this configuration has been deletedpublic void update() throws java.io.IOException
Configuration
object with the current
properties.
Initiate the updated
callback to the Managed Service or
Managed Service Factory with the current properties asynchronously.
This is the only way for a bundle that uses a Configuration Plugin
service to initate a callback. For example, when that bundle detects a
change that requires an update of the Managed Service or Managed Service
Factory via its ConfigurationPlugin
object.
java.io.IOException
- if update cannot access the properties in persistent
storage
java.lang.IllegalStateException
- if this configuration has been deletedConfigurationPlugin
public void setBundleLocation(java.lang.String bundleLocation)
Configuration
object to the specified bundle
location.
If the bundleLocation parameter is null
then the
Configuration
object will not be bound to a location. It
will be set to the bundle's location before the first time a Managed
Service/Managed Service Factory receives this Configuration
object via the updated method and before any plugins are called. The
bundle location will be set persistently.
bundleLocation
- a bundle location or null
java.lang.IllegalStateException
- If this configuration has been deleted.
java.lang.SecurityException
- If the caller does not have
ConfigurationPermission[*,CONFIGURE]
.public java.lang.String getBundleLocation()
null
if it is not yet bound to a bundle location.
null
.
java.lang.IllegalStateException
- If this Configuration
object
has been deleted.
java.lang.SecurityException
- If the caller does not have
ConfigurationPermission[*,CONFIGURE]
.public boolean equals(java.lang.Object other)
other
- Configuration
object to compare against
true
if equal, false
if not a
Configuration
object or one with a different PID.public int hashCode()
|
OSGi™ Service Platform Release 4 Version 4.1 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |