[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: NEW ISSUE: Constructor selection algorithm is not well defined
TARGET: Java Component Implementation DESCRIPTION: Constructor selection algorithm is not well defined Conformance statement JCI50004 says the following: The constructor to use for the creation of an implementation instance MUST be selected by the SCA runtime using the sequence: 1. A declared constructor annotated with a @Constructor annotation. 2. A declared constructor that unambiguously identifies all property and reference values. 3. A no-argument constructor. There are two problems with the wording of step 2: a) The phrase "identifies all property and reference values" could be taken to mean that all the implementation's properties and references must be specified on the constructor. I believe this was not the intention. b) Step 2 is not sufficiently well defined to cover all cases. What if there are two constructors (not marked @Constructor) that both have all of their parameters marked with either @Property or @Reference? For example, constructor C1 could have parameters P1 and R1 and constructor C2 could have parameters P1, P2 and R1. Is this illegal, or is C2 chosen because it is more "unambiguous" than C1? PROPOSAL: Replace step 2 of JCI50004 by the following: 2. A declared constructor, all of whose parameters are annotated with either @Property or @Reference. After JCI50002, add the following: The SCA runtime MUST raise an error if there are multiple constructors that are not annotated with @Constructor and have a non-empty parameter list with all parameters annotated with either @Property or @Reference. [JCI50005]
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]