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] Problems with testcases JCA_8007, JCA_8011



Target:  sca-j-caa-1.1-testcases-cd01.odt

Description:

JCA_8007

This test aims to check the correct merging of intents attached to different parts of a Java interface - namely the interface itself and then
one of its methods.

Here is the interface:

@Remotable
@TestIntent4
public interface Service5Intents {
       
        /**
         * Method for invoking testcase service
         * @param input - input parameter(s) as a String
         * @return - output data as a String
         */
        @TestIntent3
        public String operation1( String input );

}

However, the using composite only supplies a policySet that satisfies one of the intents:

    <component name="TEST_JCA_8007Component2">
        <implementation.java class="org.oasisopen.sca.test.service5Impl"/>
        <service name="Service5Intents" policySets="test:PolicySet1">
            <interface.java interface="org.oasisopen.sca.test.Service5Intents"/>
            <binding.ws/>
        </service>
        <property name="serviceName">service2</property>
    </component>

PolicySet1 satisfies TestIntent3.  TestIntent4 is satisfied nowhere.  This leads to valid rejection of this configuration by the runtime.

Hence the testcase is in error since it is intended to work correctly.


JCA_8011

This test aims to check the correct merging of policySets attached to different parts of a Java interface - whole interface versus individual operation.

The service interface has 2 policySets attached at different points:

@Remotable
@PolicySets({Constants.POLICYSET1})
public interface Service6PolicySets {
       
        /**
         * Method for invoking testcase service
         * @param input - input parameter(s) as a String
         * @return - output data as a String
         */
        @PolicySets({Constants.POLICYSET2})
        public String operation1( String input );

}

but the using component has 2 intents attached to the whole service:

    <component name="TEST_JCA_8011Component2">
        <implementation.java class="org.oasisopen.sca.test.service6Impl"/>
        <service name="Service6PolicySets" requires="test:testIntent3 test:testIntent5">
            <interface.java interface="org.oasisopen.sca.test.Service6PolicySets"/>
            <binding.ws/>
        </service>
        <property name="serviceName">service2</property>
    </component>

unfortunately, it takes both policySets to satisfy both intents - and for the whole interface only 1 policySet applies so a conforming SCA runtime can reject
this configuration as invalid.

Proposal:

JCA_8007

Add a @PolicySets annotation to the method in the Java interface with the @TestIntent3 annotation, specifying the PolicySet1 policy set, which will thus satisfy
the intent.  Meanwhile, change the policySet applied to the whole service to PolicySet4, which will satisfy the TestIntent4 applied to the whole interface:

@Remotable
@TestIntent4
public interface Service5Intents {
       
        /**
         * Method for invoking testcase service
         * @param input - input parameter(s) as a String
         * @return - output data as a String
         */
        @TestIntent3
        @PolicySets({Constants.POLICYSET1})
        public String operation1( String input );

}



    <component name="TEST_JCA_8007Component2">
        <implementation.java class="org.oasisopen.sca.test.service5Impl"/>
        <service name="Service5Intents" policySets="test:PolicySet4">
            <interface.java interface="org.oasisopen.sca.test.Service5Intents"/>
            <binding.ws/>
        </service>
        <property name="serviceName">service2</property>
    </component>

JCA_8011

Migrate the attachment point for testIntent5 down onto the method in the Java interface, which ensures that the interface as a whole is satisfied for the testIntent3, but only
the method itself is satisfied for both intents...

@Remotable
@PolicySets({Constants.POLICYSET1})
public interface Service6PolicySets {
       
        /**
         * Method for invoking testcase service
         * @param input - input parameter(s) as a String
         * @return - output data as a String
         */
        @TestIntent5
        @PolicySets({Constants.POLICYSET2})
        public String operation1( String input );

}


    <component name="TEST_JCA_8011Component2">
        <implementation.java class="org.oasisopen.sca.test.service6Impl"/>
        <service name="Service6PolicySets" requires="test:testIntent3">
            <interface.java interface="org.oasisopen.sca.test.Service6PolicySets"/>
            <binding.ws/>
        </service>
        <property name="serviceName">service2</property>
    </component>




Yours,  Mike.

Strategist - Emerging Technologies, SCA & SDO.
Co Chair OASIS SCA Assembly TC.
IBM Hursley Park, Mail Point 146, Winchester, SO21 2JN, Great Britain.
Phone & FAX: +44-1962-818014    Mobile: +44-7802-467431  
Email:  mike_edwards@uk.ibm.com





Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU








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