← Prev in month ← Prev in thread
Next in thread → Next in month →

[NEW ISSUE] Problems with testcases JCA_8007, JCA_8011

From
Mike Edwards <>
Date
2010-08-17T13:41:43+00:00
ID
Thread
[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:  

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
← Prev in month ← Prev in thread
Next in thread → Next in month →