[ https://issues.apache.org/jira/browse/TUSCANY-3900?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ant elder updated TUSCANY-3900: ------------------------------- Fix Version/s: Java-SCA-2.0 > 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 > Fix For: Java-SCA-2.0 > > 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