Mike,

Thanks for your detailed explanation about this problem. Now I think I've
got the exact meaning of the description about ASM60002.
On Tue, Nov 25, 2008 at 10:23 PM, Mike Edwards <
[EMAIL PROTECTED]> wrote:

> Susan,
>
> I think that you have chosen a very difficult assertion to test.
>
> Unfortunately, your testcase does not actually test conformance to
> [ASM60002], so it is not surprising that your testcase does not find an
> error here.
>
> If a composite has @local=true, then the requirement is that all components
> contained within that composite must run in the same operating system
> process.  This does *NOT* mean that the components within the composite must
> all offer local services - in principle they could all implement remotable
> services and the composite would be valid.  Your test checks if the services
> are local or remotable - which is not what the conformance assertion is
> about.
>
> To build a testcase that would really test for [ASM60002], it would be
> necessary to create a test in which you have a composite marked @local=true
> where you are able to indicate to the SCA runtime that you want specific
> components within the composite to be deployed onto different nodes (since
> each node is a different process).  Trying to deploy the composite in this
> way should then cause an error of some kind.
>
> Unfortunately, with the current implementation of Tuscany, there is no way
> of telling Tuscany to deploy different components within one composite to
> different nodes.  As a result, I don't think there is any way of building a
> test for this conformance assertion.
>
> Yours,  Mike.
>
>
> Shu Chao Wan wrote:
>
>>
>> Hey,
>>
>> I'm writing test case about conformance item ASM60002, and haven't got the
>> result I expected.
>>
>>
>> *Conformance Item ASM60002*
>> *----------------------------------------------------------------------------------------*
>>
>> local : boolean (0..1) �C whether all the components within the composite
>> all run in the same operating system process. @local="true" for a composite
>> means that all the components within the composite MUST run in the same
>> operating system process. *[ASM60002]* local="false", which is the default,
>> means that different components within the composite can run in different
>> operating system processes and they can even run on different nodes on a
>> network.
>>
>> *----------------------------------------------------------------------------------------*
>>
>>
>> According to the above description, I created the following composite file
>> *localcomponent.composite* with two conponents, one is a local component
>> (BComponent), the other is remote one(HelloWorldServiceComponent). And the
>> "local" attribute is set as "true".
>>  *localcomponennt.composite*
>> *----------------------------------------------------------------------------------------*
>>
>> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0";
>>    xmlns:xsd="http://www.w3.org/2001/XMLSchema";
>>        targetNamespace="http://assembly-tests";
>>        name="Assembly-LocalComponent--Composite" *local="true"*>
>>    <component name="HelloWorldServiceComponent">
>>                <service name="HelloWorldService">
>>                        <interface.java
>> interface="helloworld.HelloWorldService" />
>>                        <binding.ws uri="
>> http://localhost:8085/HelloWorldService"/>
>>                </service>
>>        </component>
>>    <component name="BComponent">
>>        <implementation.java
>> class="org.apache.tuscany.sca.vtest.assembly.composite.impl.BServiceImpl"/>
>>        <property name="someProperty">some b component value</property>
>>    </component>    </composite>
>> *----------------------------------------------------------------------------------------*
>>
>>
>> Then I create the testcase to invoke the services of the two components
>> individually, and supposed that ServiceRuntimeException exception will be
>> thrown. But actually I haven't got any exception, even without any warning
>> message in the console. Is there any problem with my testcase? Thanks for
>> any help in advance.
>>
>> *Testcase*
>> *----------------------------------------------------------------------------------------*
>>
>> /**
>> * Lines 1036-1037:
>> * <p>
>> * local="true" means that all the components must run in the same process.
>> * <p>
>> * ASM60002:
>> * <p>
>> * [EMAIL PROTECTED]"true" for a composite means that all the components 
>> within the
>> composite MUST run in the same operating system process.
>> */
>> @Test(expected = ServiceRuntimeException.*class*)
>> *public* *void* ASM60002() *throws* Exception {
>>        initDomain("localcomponent.composite");
>>        HelloWorldService service =
>> ServiceFinder./getService/(HelloWorldService.*class*,
>> "HelloWorldServiceComponent");
>>        Assert./assertEquals/("Hello, tester",
>> service.getGreetings("tester"));
>>        BService bService = ServiceFinder./getService/(BService.*class*,
>> "BComponent");
>>        Assert./assertEquals/("SomeStateFromB", bService.getState());
>> }
>> *----------------------------------------------------------------------------------------*
>>
>>
>>
>> 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
>>
>
>

Reply via email to