Hi Yiwen Sorry about the slow response. I jut missed this post somehow. The OSOA spec doesn't explicitly call this out but implies it within the section on constraining type (1.6.8). For example, on line 2205 it talks about an implementations componentType having a constrainingType attribute set to the QName of the constrainingType.
Your tests look OK to me. It's quite possible that this just isn't implemented. I would go ahead and create a patch and I can take a look. I note on the OASIS list that there is some discussion of changing the way that constraining type will work in the future so, assuming that this doesn't work in the code, we'll have to have a conversation about whether to do something about it or document a restriction. Thanks Simon On Mon, Nov 17, 2008 at 2:32 PM, Yiwen Huang <[EMAIL PROTECTED]> wrote: > Hi, > > I'm trying to write a vtest for the conformance item ASM40002 and getting > kind of lost. Hopefully someone from the group can set me right. :-) > > The conformance item says: > [ASM40002] If present, the @constrainingType attribute of a > <componentType/> element MUST > reference a <constrainingType/> element in the Domain through its QName. > > I have the following resources & testcase defined: > -------------------------------------------------------------------------- > 1. typefile.composite file: > <?xml version="1.0" encoding="UTF-8"?> > <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > targetNamespace="http://assembly-tests" > name="Assemby-component-typefile-Composite"> > <component name="AComponent"> > <implementation.java > class="org.apache.tuscany.sca.vtest.assembly.ctypefile.impl.AServiceImpl"/> > <reference name="bService" target="BComponent/BService"/> > <reference name="b2Service" target="BComponent/BService"/> > </component> > <component name="BComponent"> > <implementation.java > class="org.apache.tuscany.sca.vtest.assembly.ctypefile.impl.BServiceImpl"/> > <property name="someProperty">compositeValue</property> > </component> > </composite> > > ---------------------------------------------------------------------------- > 2. AService.componentType file (which has a constrainingType attribute > defined): > <?xml version="1.0" encoding="ASCII"?> > <componentType > xmlns="http://www.osoa.org/xmlns/sca/1.0" > targetNamespace="http://assembly-tests" > constrainingType="xmlns:CT"> > <service name="AService"> > <interface.java > interface="org.apache.tuscany.sca.vtest.assembly.ctypefile.AService"/> > > </service> > </componentType> > -------------------------------------------------------------------------- > My testcase: > /** > * Lines: ?? > * > * ASM40002 > * <p> > * If present, the @constrainingType attribute of a <componentType/> > element > * MUST reference a <constrainingType/> element in the Domain through > its QName. > * <p> > * Description of how the OSOA function differs from the OASIS > function: > * > * The OSOA spec doesn't have the same wording. > * > * Lines 2204-2205 mentions the following, however. > * > * A constrainingType can be applied to an implementation. In this > case, > * the implementation's componentType has a constrainingType attribute > set to > * the QName of the constrainingType. > */ > @Test > public void ASM40002() throws Exception { > ServiceFinder.init("typefile.composite"); > AService aService = ServiceFinder.getService(AService.class, > "AComponent/AService"); > ServiceFinder.cleanup(); > } > --------------------------------------------------- > > The test completed without errors, whereas I expected some kind of error > since I did not define a <constrainingType/>. > > The test also completed successfully after I added the following > AService.constrainingType file: > > ------------------------------------------------------------------------------ > <?xml version="1.0" encoding="ASCII"?> > <constrainingType > xmlns="http://www.osoa.org/xmlns/sca/1.0" > targetNamespace="http://assembly-tests" > name="CT"> > <service name="AService"> > <interface.java > interface="org.apache.tuscany.sca.vtest.assembly.ctypefile.AService"/> > </service> > </constrainingType> > > ------------------------------------------------------------------------------ > > Are there problems with my test program above? I was not able to find the > same conformance item in the OSOA spec, though, not sure if this means > Tuscany might not have this requirement. > > Any help is appreciated, thanks a lot in advance! > > Best Regards, > Yiwen >
