Marcel Offermans created FELIX-4314:
---------------------------------------

             Summary: Split service registration to solve visibility issue in 
autoconf
                 Key: FELIX-4314
                 URL: https://issues.apache.org/jira/browse/FELIX-4314
             Project: Felix
          Issue Type: Bug
          Components: Deployment Admin
            Reporter: Marcel Offermans
            Assignee: Marcel Offermans


The current implementation of autoconf registers itself as both a 
ResourceProcessor and EventHandler. The first because, obviously, it is a 
resource processor. The second because it wants to know when the deployment 
session ends, which is signalled through an event.

This creates an interesting visibility issue, especially when bootstrapping an 
OSGi framework by installing a deployment package containing "everything".

Initially this means there is just some management agent available. Through 
DeploymentAdmin the agent installs the deployment package which contains 
bundles and configuration data. The bundles that are included contain 
EventAdmin and ConfigurationAdmin.

Let's also assume that the management agent has no dependency on EventAdmin, 
not even its API, because a) it does not want to depend on it (through an 
ImportPackage) and b) it does not want to provide and depend on it either 
(because it tries to isolate itself as much as possible from the rest of the 
framework).

This creates an interesting problem: because autoconf registers as both a 
ResourceProcessor and EventHandler, and EventHandler is not visible to the 
agent, it will *not* see the resource processor either. Therefore the 
deployment will fail in a way that is hard to debug (if you inspect the 
registry, the service is there, it's just that the agent is not allowed to see 
it).

The easiest solution is to split the registration into two. First just register 
as a ResourceProcessor and then, separately, also register as an EventHandler. 
In fact, in this case, we can defer the latter a bit until we are actually 
interested in the event.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to