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: Ambiguity about the implicit reference interface in theintrospected component type of a Spring app context


Title:  Ambiguity about the implicit reference interface in the 
introspected component type of a Spring app context

Spec: Spring C&I WD05

Description:
Section 3 of the spec says:
"A <reference/> element exists for each unique bean reference in the 
application context to a bean which is not found in the application 
context and where the bean reference refers to a Java interface class"

Further down for the introspected reference in the component type it says:
" interface.java child element is present, with the interface attribute 
set to the fully qualified name of the interface class identified by the 
bean reference"

But the spec does not address the case where,
1) two or more beans refer to the same bean reference that is not found 
in the application context (i.e., 2 or more beans refer to the same 
introspected SCA reference), and
2) fully qualified name of the interface class identified by the bean 
references are different.

For example:

<beans>

   ...

   <bean id ="bean1" class ="org.example.Class1">
     <property name="ref" ref="SCAReference"/>
   </bean>

   <bean id ="bean2" class ="org.example.Class2">
     <property name="someOtherRef" ref="SCAReference"/>
   </bean>

<beans>

Both bean1 and bean2 refer to the same SCAReference. If the interface 
type for ref in Class1 is the same as that of someOtherRef in Class2, 
then there is no ambiguity about the interface type for the introspected 
SCA reference, but if they are not, then it is not clear what should happen.

Proposal:
Here is an outline for a proposal to resolve the case above --
1) if the interface type for properties that refer to the same bean are 
not the same AND are not subinterfaces then that is an error.
2) else, the narrowest subinterface is used for the value of 
interface.java/@interface

-Anish
--


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