|
OSGi Service Platform Release 4 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
A service interface for processing configuration dictionary before the update.
A bundle registers a ConfigurationPlugin
object in order to
process configuration updates before they reach the Managed Service or
Managed Service Factory. The Configuration Admin service will detect
registrations of Configuration Plugin services and must call these services
every time before it calls the ManagedService
or
ManagedServiceFactory
updated
method. The Configuration
Plugin service thus has the opportunity to view and modify the properties
before they are passed to the ManagedS ervice or Managed Service Factory.
Configuration Plugin (plugin) services have full read/write access to all
configuration information. Therefore, bundles using this facility should be
trusted. Access to this facility should be limited with
ServicePermission[REGISTER, ConfigurationPlugin]
. Implementations
of a Configuration Plugin service should assure that they only act on
appropriate configurations.
The Integer
service.cmRanking
registration property may
be specified. Not specifying this registration property, or setting it to
something other than an Integer
, is the same as setting it to the
Integer
zero. The service.cmRanking
property determines
the order in which plugins are invoked. Lower ranked plugins are called
before higher ranked ones. In the event of more than one plugin having the
same value of service.cmRanking
, then the Configuration Admin
service arbitrarily chooses the order in which they are called.
By convention, plugins with service.cmRanking< 0
or
service.cmRanking > 1000
should not make modifications to the
properties.
The Configuration Admin service has the right to hide properties from plugins, or to ignore some or all the changes that they make. This might be done for security reasons. Any such behavior is entirely implementation defined.
A plugin may optionally specify a cm.target
registration property
whose value is the PID of the Managed Service or Managed Service Factory
whose configuration updates the plugin is intended to intercept. The plugin
will then only be called with configuration updates that are targetted at the
Managed Service or Managed Service Factory with the specified PID. Omitting
the cm.target
registration property means that the plugin is
called for all configuration updates.
Field Summary | |
static java.lang.String |
CM_RANKING
A service property to specify the order in which plugins are invoked. |
static java.lang.String |
CM_TARGET
A service property to limit the Managed Service or Managed Service Factory configuration dictionaries a Configuration Plugin service receives. |
Method Summary | |
void |
modifyConfiguration(ServiceReference reference,
java.util.Dictionary properties)
View and possibly modify the a set of configuration properties before they are sent to the Managed Service or the Managed Service Factory. |
Field Detail |
public static final java.lang.String CM_TARGET
String[]
of PIDs. A Configuration
Admin service must call a Configuration Plugin service only when this
property is not set, or the target service's PID is listed in this
property.
public static final java.lang.String CM_RANKING
Integer
ranking of the plugin. Not
specifying this registration property, or setting it to something other
than an Integer
, is the same as setting it to the
Integer
zero. This property determines the order in which
plugins are invoked. Lower ranked plugins are called before higher ranked
ones.
Method Detail |
public void modifyConfiguration(ServiceReference reference, java.util.Dictionary properties)
service.cmRanking
property. If this property is undefined or
is a non- Integer
type, 0 is used.
This method should not modify the properties unless the
service.cmRanking
of this plugin is in the range
0 <= service.cmRanking <= 1000
.
If this method throws any Exception
, the Configuration Admin
service must catch it and should log it.
reference
- reference to the Managed Service or Managed Service
Factoryproperties
- The configuration properties. This argument must not
contain the "service.bundleLocation" property. The value of this
property may be obtained from the
Configuration.getBundleLocation
method.
|
OSGi Service Platform Release 4 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |