Alexander Klimetschek created SLING-2575:
--------------------------------------------

             Summary: Helper for tracking a multi-cardinality OSGi service 
reference
                 Key: SLING-2575
                 URL: https://issues.apache.org/jira/browse/SLING-2575
             Project: Sling
          Issue Type: Improvement
          Components: Commons
            Reporter: Alexander Klimetschek
            Priority: Minor


Managing a SCR @Reference that's basically a list is very difficult when 
compared to the simple unary, static reference. It seems a typical use case is 
0..n cardinality, dynamic policy and ordered by service ranking with the higher 
ranked ones first. This supports the use case to ask a list of services and 
have the first responding one win.

There is the 
[ServiceTracker|http://www.osgi.org/javadoc/r4v42/org/osgi/util/tracker/ServiceTracker.html],
 but its getServiceReferences() method does not return the list sorted in any 
way, only gives your references and not the typed object(s) and it's a bit 
cumbersome to use.

A typical manual approach can be seen in the 
[SlingPostServlet|http://svn.apache.org/repos/asf/sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/SlingPostServlet.java]
 in the register*() methods. Important is to handle thread-safeness.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to