OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-j message

[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]