When the implementation of {@code updated(Dictionary)} detects any kindof error in the configuration properties, it should create a new {@code ConfigurationException} which describes the problem. This canallow a management system to provide useful information to a human administrator.
If this method throws any other {@code Exception}, the Configuration Admin service must catch it and should log it.
The Configuration Admin service must call this method asynchronously with the method that initiated the callback. This implies that implementors of Managed Service can be assured that the callback will not take place during registration when they execute the registration in a synchronized method.
If the the location allows multiple managed services to be called back for a single configuration then the callbacks must occur in service ranking order. Changes in the location must be reflected by deleting the configuration if the configuration is no longer visible and updating when it becomes visible.
If no configuration exists for the corresponding PID, or the bundle has no access to the configuration, then the bundle must be called back with a {@code null} to signal that CM is active but there is no data. @param properties A copy of the Configuration properties, or {@code null}. This argument must not contain the "service.bundleLocation" property. The value of this property may be obtained from the {@code Configuration.getBundleLocation} method. @throws ConfigurationException when the update fails @security ConfigurationPermission[c.location,TARGET] Required by thebundle that registered this service
If the factory instance is registered with the Framework, then the configuration {@code properties} should be copied to its registryproperties. This is not mandatory and security sensitive properties should obviously not be copied.
If this method throws any {@code Exception}, the Configuration Admin service must catch it and should log it.
When the implementation of updated detects any kind of error in the configuration properties, it should create a new {@link ConfigurationException} which describes the problem.
The Configuration Admin service must call this method asynchronously. This implies that implementors of the {@code ManagedServiceFactory} classcan be assured that the callback will not take place during registration when they execute the registration in a synchronized method.
If the security allows multiple managed service factories to be called back for a single configuration then the callbacks must occur in service ranking order.
It is valid to create multiple factory instances that are bound to different locations. Managed Service Factory services must only be updated with configurations that are bound to their location or that start with the {@code ?} prefix and for which they have permission.Changes in the location must be reflected by deleting the corresponding configuration if the configuration is no longer visible or updating when it becomes visible. @param pid The PID for this configuration. @param properties A copy of the configuration properties. This argumentmust not contain the service.bundleLocation" property. The value of this property may be obtained from the {@code Configuration.getBundleLocation} method. @throws ConfigurationException when the configuration properties areinvalid. @security ConfigurationPermission[c.location,TARGET] Required by thebundle that registered this service
|
|
|
|
|
|
|
|