[ 
https://issues.apache.org/jira/browse/FELIX-884?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12664991#action_12664991
 ] 

Felix Meschberger commented on FELIX-884:
-----------------------------------------

I don't think that it is required currently to track services, since the 
LocalRepositoryImpl and hence the LocalResourceInstances only live for the 
duration of the Resolver.resolve() and subsequent Resolver.deploy() call. In 
particular the deploy() method fails if a bundle changes state between the 
resolve() and the deploy() method call.

What we might do is add a service listener which invalidates the 
LocalRepositoryImpl in the same way as a bundle change invalidates it. But I am 
not sure, whether we should really react to service changes.

If that changes, listening for service changes might make sense.

(this is highlights another potential issue: The LocalRepositoryImpl 
constructor causes a SynchronizedBundleListener to be registered, which is only 
unregistered when the LocaleRepositoryImpl.dispose() method is called or when 
the OBR bundle is stopped. Maybe the deploy() method should dispose the 
LocalRepositoryImpl when finishing. But this is a side-track).

> OBR should expose registered services as capabilities of local repository
> -------------------------------------------------------------------------
>
>                 Key: FELIX-884
>                 URL: https://issues.apache.org/jira/browse/FELIX-884
>             Project: Felix
>          Issue Type: Improvement
>          Components: Bundle Repository (OBR)
>    Affects Versions: bundlerepository-1.2.0
>            Reporter: Felix Meschberger
>         Attachments: FELIX-884.patch
>
>
> The OBR implementation exposes the current state of the framework as a 
> Repository, the LocalRepository. This provides the installed bundles as parts 
> provided by a repository with their capabilities. These capabilities do not 
> currently only reflect the currently installed set of bundles and their 
> static setup such as package import/export and service import/export. The 
> actually registered services, though are not exposed as capabilities 
> whatsoever.
> So if for example, the OPS4J Pax Web Service bundle registers an HttpService 
> instance. But this fact is not reflected by a ExportService header. Trying to 
> install a bundle from the OBR which requires an HttpService fails, since the 
> actually registered HttpService is not provided as a capability.
> I suggest, the LocalRepository exposes all registered services (just their 
> names would probably do it) as capabilities of the system bundle. This is not 
> entirely correct but should probably be enough to satisfy the requirements of 
> bundles.
> WDYT ?
> Ref: Discussion on user list at http://markmail.org/message/ivkdvhpk4gclkylv

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to