public interface Configuration
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.
| Modifier and Type | Method and Description |
|---|---|
void |
delete()
Delete this
Configuration object. |
boolean |
equals(Object other)
Equality is defined to have equal PIDs
Two Configuration objects are equal when their PIDs are equal.
|
String |
getBundleLocation()
Get the bundle location.
|
String |
getFactoryPid()
For a factory configuration return the PID of the corresponding Managed
Service Factory, else return
null. |
String |
getPid()
Get the PID for this
Configuration object. |
Dictionary |
getProperties()
Return the properties of this
Configuration object. |
int |
hashCode()
Hash code is based on PID.
|
void |
setBundleLocation(String bundleLocation)
Bind this
Configuration object to the specified bundle
location. |
void |
update()
Update the
Configuration object with the current
properties. |
void |
update(Dictionary properties)
Update the properties of this
Configuration object. |
String getPid()
Configuration object.Configuration object.IllegalStateException - if this configuration has been deletedDictionary 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.IllegalStateException - if this configuration has been deletedvoid update(Dictionary properties) throws 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 initiates an asynchronous call to all
ConfigurationListeners with a
ConfigurationEvent.CM_UPDATED event.
properties - the new set of properties for this configurationIOException - if update cannot be made persistentIllegalArgumentException - if the Dictionary object
contains invalid configuration types or contains case variants of
the same key name.IllegalStateException - if this configuration has been deletedvoid delete()
throws 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 initiates an asynchronous call to all
ConfigurationListeners with a
ConfigurationEvent.CM_DELETED event.
IOException - If delete failsIllegalStateException - if this configuration has been deletedString getFactoryPid()
null.nullIllegalStateException - if this configuration has been deletedvoid update()
throws 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 initiate 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.
IOException - if update cannot access the properties in persistent
storageIllegalStateException - if this configuration has been deletedConfigurationPluginvoid setBundleLocation(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 nullIllegalStateException - If this configuration has been deleted.SecurityException - If the caller does not have
ConfigurationPermission[*,CONFIGURE].String getBundleLocation()
null if it is not yet bound to a bundle location.null.IllegalStateException - If this Configuration object
has been deleted.SecurityException - If the caller does not have
ConfigurationPermission[*,CONFIGURE].boolean equals(Object other)
Copyright © 2006–2013 The Apache Software Foundation. All rights reserved.