[
https://issues.apache.org/jira/browse/FELIX-4029?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13638862#comment-13638862
]
Herko ter Horst commented on FELIX-4029:
----------------------------------------
What I'm assuming is that because the class name is separated from the filter
in the API, it is reasonable to assume that implementations may treat it
separately as well.
I'm not suggesting the DM ServiceTracker bends over backwards to accommodate a
specific implementation, I'm suggesting NOT to force the use of a filter for
the class name when the class name is available separately anyway. Doing that
has no negative impact on the Felix implementation, except to "ensure" that the
objectClass part of the filter is indeed the first clause, but it will have a
beneficial effect on implementations that have special indices for the class
name.
> Improve use of BundleContext.getServiceReferences() API in ServiceTracker
> -------------------------------------------------------------------------
>
> Key: FELIX-4029
> URL: https://issues.apache.org/jira/browse/FELIX-4029
> Project: Felix
> Issue Type: Improvement
> Components: Dependency Manager
> Affects Versions: dependencymanager-3.1.0
> Reporter: Herko ter Horst
> Labels: performance
>
> The org.apache.felix.dm.tracker.ServiceTracker implementation currently does
> not take full advantage of the BundleContext.getServiceReferences() API when
> retrieving initial service references on "open".
> The getServiceReferences() method accepts a class name and a filter. The
> ServiceTracker accepts either one (but not both). However, it transforms the
> class name into a filter and calls getServiceReferences() with only the
> filter.
> This prevents BundleContext implementations from taking advantage of the
> class name parameter. At least one implementation (Equinox) indexes service
> references by their service interface. The fact that the class name is not
> available leads to reduced performance in this case.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira