You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Felix Meschberger (JIRA)" <ji...@apache.org> on 2009/01/19 08:51:59 UTC

[jira] Updated: (FELIX-887) Ensure BundleListeners are not forgotten about

     [ https://issues.apache.org/jira/browse/FELIX-887?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Felix Meschberger updated FELIX-887:
------------------------------------

    Attachment: FELIX-887.patch

Proposed patch to enhance support for bundle and service events:

  * LocalRepositoryImpl is maintained by RepositoryAdminImpl
  * LocalRepositoryImpl reacts to bundle and service events and
       updates the last modified timestamp and resource list
  * ResolverImpl uses LocalRepositoryImpl last modified to check for any
       modifications between resolve() and deploy()

There is one catch: Service event reaction might be rather expensive, since on every service registration or unregistration the owning bundle is removed and added again, which might be a reather big overkill; especially when using declarative services, where the components and hence services are only registered when the bundle is already active.

A better solution might be to allow the removal of a capatbility from a bundle resource.

> Ensure BundleListeners are not forgotten about
> ----------------------------------------------
>
>                 Key: FELIX-887
>                 URL: https://issues.apache.org/jira/browse/FELIX-887
>             Project: Felix
>          Issue Type: Improvement
>          Components: Bundle Repository (OBR)
>    Affects Versions: bundlerepository-1.2.0
>            Reporter: Felix Meschberger
>         Attachments: FELIX-887.patch
>
>
> As discussed in FELIX-884, the LocalRepositoryImpl class registers a BundleListener, which is only unregistered if the resovle() method of the owning ResovlerImpl is called. But this just creates anothter BundleListener. If multiple ResolverImpl instances are created, the system will fill up with  BundleListener instances, which will never be used again and only be cleaned up, when the OBR bundle is stopped.

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