A {@code Configuration} object contains a configuration dictionary and allowsthe properties to be updated via this object. Bundles wishing to receive configuration dictionaries do not need to use this class - they register a {@code ManagedService} or {@code 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 {@code String} objects as keys. However, case must be preserved from the lastset key/value.
A configuration can be bound to a specific bundle or to a region of bundles using the location. In its simplest form the location is the location of the target bundle that registered a Managed Service or a Managed Service Factory. However, if the location starts with {@code ?} then thelocation indicates multiple delivery. In such a case the configuration must be delivered to all targets. If security is on, the Configuration Permission can be used to restrict the targets that receive updates. The Configuration Admin must only update a target when the configuration location matches the location of the target's bundle or the target bundle has a Configuration Permission with the action {@link ConfigurationPermission#TARGET} and a name that matches theconfiguration location. The name in the permission may contain wildcards ( {@code '*'}) to match the location using the same substring matching rules as {@link Filter}. Bundles can always create, manipulate, and be updated from configurations that have a location that matches their bundle location.
If a configuration's location is {@code null}, it is not yet bound to a location. It will become bound to the location of the first bundle that registers a {@code ManagedService} or {@code ManagedServiceFactory} objectwith the corresponding PID.
The same {@code Configuration} object is used for configuring both a ManagedService Factory and a Managed Service. When it is important to differentiate between these two the term "factory configuration" is used. @noimplement @author $Id: bc83a488c091cf0fbeb90e2c013f637bc82f2a26 $
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|