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
ConfigurationListener
s 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
ConfigurationListener
s with a
ConfigurationEvent.CM_DELETED
event.
IOException
- If delete failsIllegalStateException
- if this configuration has been deletedString getFactoryPid()
null
.null
IllegalStateException
- 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 deletedConfigurationPlugin
void 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 null
IllegalStateException
- 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 © 2018 JBoss by Red Hat. All rights reserved.