|
OSGi Service Platform Release 4 |
||||||||||
| 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 deleted
public 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
ConfigurationListeners 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 deleted
public 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
ConfigurationListeners 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 deleted
public 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 deletedConfigurationPluginpublic 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 |
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||