Enhance EquinoxServiceDiscoverer to use bundle trackers
-------------------------------------------------------

                 Key: TUSCANY-3900
                 URL: https://issues.apache.org/jira/browse/TUSCANY-3900
             Project: Tuscany
          Issue Type: Improvement
    Affects Versions: Java-SCA-2.0
            Reporter: Greg Dritschler
            Priority: Minor
         Attachments: TUSCANY-3900.patch

Each time that the EquinoxServiceDiscoverer is called to find a service, it 
obtains the list of bundles in the bundle context and filters them to identify 
the Tuscany bundle providers.  This could be improved by using a bundle tracker 
to maintain a list of matching bundles.  There actually is some bundle tracker 
code in the class but it is unused.  I am attaching a patch to utilize the 
bundle tracker.

The patch creates two bundle trackers, one for all bundles and one for the 
Tuscany service providing bundles.  I changed getBundles() to get the list of 
bundles from the appropriate tracker rather than the bundle context.

There are open questions in the code about what state a bundle should be in to 
be considered.  I tried to maintain compatibility with the existing filtering 
code (isProviderBundle) which accepts all states except UNINSTALLED.  Therefore 
I changed the bundle tracker constructor to include all bundle states except 
UNINSTALLED.  I removed the check in addingBundle() for a STOPPED event because 
this was not a criteria used in isProviderBundle().

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to