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: Protected field computed as a reference for an unannotated javaimplementation

Resending the mail as the original e-mail had the 1st part garbled for some
unknown reason.

The Java Annotations&APIs specification Lines 1407, 1408, 1409, 1410 ...
     * References may also be injected via public setter methods even when
     * "@Reference" annotation is not present. However, the "@Reference"
     * annotation must be used in order to inject a reference onto a non
     * field. In the case where there is no "@Reference" annotation, the
name of
     * the reference is the same as the name of the field or setter.

This means a reference can not be injected onto a protected field without
an @Reference annotation.

Java Component Implementation Specification - Section 1.2.7 line 358 to
358 1.2.7. Semantics of an Unannotated Implementation
359 The section defines the rules for determining properties and references
for a Java component
360 implementation that does not explicitly declare them using @Reference
or @Property.
361 In the absence of @Property and @Reference annotations, the properties
and references of a class are
362 defined according to the following rules:
363 1. Public setter methods that are not included in any interface
specified by an @Service annotation.
364 2. Protected setter methods
365 3. Public or protected fields unless there is a public or protected
setter method for the same name

This means a protected field could end up as a reference in an unannotated
implementation.  But from PART-1 above, a reference can not be injected
unless an @Reference annotation is present on a protected field!!!  How
will a protected field computed as a reference for an unannotated
implementation get its value set?

What am I missing?


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]