[
https://issues.apache.org/jira/browse/FELIX-1488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12743990#action_12743990
]
Felix Meschberger commented on FELIX-1488:
------------------------------------------
There is use case not convered by just transiently keeping the dynamic bindings:
1. create configuration pid1
2. start bundle b1 with managed service pid1
==> configuration is provided to managed service and bound to b1
3. stop bundle b1
==> configuration is still bound to b1
4. restart configuration admin service
==> configuration must still be bound to b1
Hence the dynamic bindings must also be persisted to survice configuration
admin restarts. To facilitate the management of the dynamic bindings we do not
store them inside the configuration objects but separately. This allows for
simpler cleanup on configuration admin restart (i.e. not requiring to load and
verify all configurations).
Implemented storage of dynamic bindings (outside of the actual configuration)
along with unit and integration tests in Rev. 804891
> Configuration binding is broken
> -------------------------------
>
> Key: FELIX-1488
> URL: https://issues.apache.org/jira/browse/FELIX-1488
> Project: Felix
> Issue Type: Bug
> Components: Configuration Admin
> Affects Versions: configadmin-1.0.10
> Reporter: Felix Meschberger
> Assignee: Felix Meschberger
> Fix For: configadmin-1.0.12
>
>
> Configuration can be statically or dynamically bound:
> * A configuration is statically bound by explicitly calling the
> Configuration.setBundleLocation method or
> by creating the configuration object with a non-null bundle location.
> Static binding must be persisted and
> is only reset by explicitly calling the setBundleLocation with a null
> argument.
> * A configuration may dynamically bound if the configuration has been
> created with a null bundle location and
> the setBundleLocation has not been called (or called with a null
> argument). If such an unbound configuration
> is provided to a ManagedService[Factory] it is dynamically bound to the
> service's bundle. Such bundle
> binding is not persisted.
> The reason why dynamic binding need not be persisted is actually an
> implementation detail because we keep used configurations in an internal
> cache. Entries in the cache are only removed if the configuration is deleted
> or if the configuration admin service is stopped. In the first case, bundle
> binding is lost anyway. In the second case dynamic bundle bindings will be
> recreated on configuration admin service restart when the configurations are
> supplied to ManagedService[Factory] services again.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.