hi, Simon, I have opened a jira TUSCANY-2766<https://issues.apache.org/jira/browse/TUSCANY-2766>against this problem. Thanks.
2009/1/9 Simon Laws <[email protected]> > > > 2009/1/8 Shu Chao Wan <[email protected]> > > >> hi, guys, >> >> I'm testing conformance item ASM60008, and found something strange. >> >> In ASM60008, it says that "The interfaces of the component references >> promoted by a composite reference MUST be the same, or if the composite >> reference itself declares an interface then all the *component reference >> interfaces must be compatible with the composite reference interface*. >> Compatible means that the component reference interface is the same or is a >> strict subset of the composite reference interface." >> >> In order to verify this statement, I wrote a composite file like that >> <composite>... >> <service name=*"AService"* promote=*"AComponent"*/> >> <component name=*"AComponent"*> >> <implementation.java >> class=* >> "org.apache.tuscany.sca.vtest.assembly.composite.impl.AServiceImpl"* /> >> <reference name=*"b"*/> >> <reference name=*"c"*> >> <interface.java interface=*" >> org.apache.tuscany.sca.vtest.assembly.composite.CService**"* /> >> </reference> >> </component> >> <reference name=*"c"* promote=*"AComponent/c"*> >> <interface.java interface=*" >> org.apache.tuscany.sca.vtest.assembly.composite.CContainService**"* /> >> </reference> >> <reference name=*"b"* promote=*"AComponent/b"*/> >> <service> >> </composite> >> >> Here, the interface *CService *is subset of interface* CContainService*, >> that is to say, interface* CContainService*contains more methods than >> interface *CService *does. >> >> But when I load this composite file, I got warning message: >> WARNING: Interface of composite reference AComponent/c must be compatible >> with the interface declared by promoted component reference. >> Jan 8, 2009 4:46:41 PM >> org.apache.tuscany.sca.assembly.builder.impl.ComponentReferenceWireBuilderImpl >> WARNING: Incompatible interfaces on component reference and target: >> Composite = >> {http://assembly-tests}Assembly-sub-reference-interface-outer-Composite >> Reference = c Service = CComponent >> >> It seems that this warning message conflicts with this conformance item, >> which causes that service can not be invoked correctly in the following >> test. >> >> I'm not sure which statement should be the right one. Thanks for your >> help. >> >> >> >> Best Regards >> Susan Wan (万淑超) >> ------------------------- >> WebSphere Application Server System Verification Test, IBM China SoftWare >> Development Lab >> Tel: 86-10-82453655 >> E-mail: [email protected] >> Address: 3/F, Diamond Building, ZhongGuanCun Software Park , Dongbeiwang >> West Road No.8, ShangDi, Haidian District, Beijing 100193, PRC > > > Hi Susan > > I agree this looks like a fault to me. In these kinds of scenarios the > composite level reference should not constrain the component level > reference. I.e. The component reference may choose to exploit any of the > methods defined in it's interface but the composite reference shouldn't > restrict any of this behaviour. The composite reference may define extra > methods however a particular component reference may never use them. > > I suggest you commit the test with a JIRA and we can use it to look into > the problem. > > Regards > > Simon >
