Thomas Watson created FELIX-6050:
------------------------------------

             Summary: Get rid of SinglePrototypeRefPair
                 Key: FELIX-6050
                 URL: https://issues.apache.org/jira/browse/FELIX-6050
             Project: Felix
          Issue Type: Bug
          Components: Declarative Services (SCR)
    Affects Versions: scr-2.1.14
            Reporter: Thomas Watson
            Assignee: Thomas Watson


The SCR implementation has two classes that keep track of prototype references 
from a service component:

org.apache.felix.scr.impl.manager.MultiplePrototypeRefPair
org.apache.felix.scr.impl.manager.SinglePrototypeRefPair

I'm not entirely sure what motivated the need for Multiple vs. Single here.  
The Single one gets used if the service component is a singleton service 
component.  The Multiple one gets used for service components that are bundle 
or prototype service components.  The Multiple one will key the instances of 
the referenced prototype service by the ComponentContextImpl for the requiring 
service component.  That way if there are multiple instances of the requiring 
component each instance (and therefore ComponentContextImpl insteance) will get 
a unique instance of the required prototype service.

It appears the thought was that some optimizations could have been realized for 
the Singleton case so it has a specialized class separate from Multiple.  But I 
think this only makes the code hard to understand and I question that the 
current state of the code is providing any performance improvement.

I propose we remove the SinglePrototypeRefPair and rename the 
MultiplePrototypeRefPair to be simply PrototypeRefPair.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to