2009/1/15 Shuchao Wan <[email protected]> > 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 >> > > Great, thanks Susan
Simon
