diff options
11 files changed, 524 insertions, 0 deletions
diff --git a/java/sca/stest/sampleTest/src/main/java/test/Service2.java b/java/sca/stest/sampleTest/src/main/java/test/Service2.java new file mode 100644 index 0000000000..15bcb9481c --- /dev/null +++ b/java/sca/stest/sampleTest/src/main/java/test/Service2.java @@ -0,0 +1,35 @@ +/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package test;
+
+/**
+ * A test service interface, designed to be incompatible with the Service1 interface
+ * @author MikeEdwards
+ *
+ */
+public interface Service2 {
+
+ /**
+ * Method for invoking testcase service
+ * @param input - input parameter(s) as a String
+ * @return - output data as a String
+ */
+ public int operation2( int input );
+
+}
diff --git a/java/sca/stest/sampleTest/src/main/java/test/service1Impl3.java b/java/sca/stest/sampleTest/src/main/java/test/service1Impl3.java new file mode 100644 index 0000000000..75373f6316 --- /dev/null +++ b/java/sca/stest/sampleTest/src/main/java/test/service1Impl3.java @@ -0,0 +1,49 @@ +/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package test;
+
+import org.osoa.sca.annotations.*;
+
+/**
+ * Enhanced Java component implementation for business interface Service1,
+ * where the implementation also has a single reference using the Service1
+ * interface with mutiplicity 1..n all of which and which get called when
+ * operation1 is invoked
+ * @author MikeEdwards
+ *
+ */
+@Service(Service1.class)
+public class service1Impl3 implements Service1 {
+
+ @Property
+ public String serviceName = "service1";
+ // Required = true + an array -> multiplicity 1..n
+ @Reference(required=true)
+ public Service1[] reference1 = null;
+
+ public String operation1(String input) {
+ String result = "";
+ // Call each of the references in the array, concatenating the results
+ for( int i=0 ; i < reference1.length; i++ ) {
+ result = result.concat( reference1[i].operation1(input) );
+ } // end for
+ return serviceName + " operation1 invoked" + " " + result;
+ }
+
+}
diff --git a/java/sca/stest/sampleTest/src/main/java/test/service2Impl.java b/java/sca/stest/sampleTest/src/main/java/test/service2Impl.java new file mode 100644 index 0000000000..db2fa299d6 --- /dev/null +++ b/java/sca/stest/sampleTest/src/main/java/test/service2Impl.java @@ -0,0 +1,38 @@ +/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package test;
+
+import org.osoa.sca.annotations.*;
+
+/**
+ * Simple Java component implementation for business interface Service2
+ * @author MikeEdwards
+ *
+ */
+@Service(Service2.class)
+public class service2Impl implements Service2 {
+
+ @Property
+ public String serviceName = "service1";
+
+ public int operation2(int input) {
+ return input+1;
+ }
+
+}
diff --git a/java/sca/stest/sampleTest/src/main/resources/TestComposite5.composite b/java/sca/stest/sampleTest/src/main/resources/TestComposite5.composite new file mode 100644 index 0000000000..808f20727f --- /dev/null +++ b/java/sca/stest/sampleTest/src/main/resources/TestComposite5.composite @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> +<!-- Composite offering a single service, with a modified interface + type --> +<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" + targetNamespace="http://oasis/tests" + xmlns:sample="http://oasis/tests" + name="TestComposite5">
+ + <service name="Service1" promote="TestComponent1/Service1"> + <interface.java interface="test.Service2"></interface.java> + </service>
+ + <property name="serviceName" type="string"/>
+ + <component name="TestComponent1"> + <implementation.java class="test.service2Impl"/> + <service name="Service1">
+ <interface.java interface="test.Service2"></interface.java>
+ </service> + <property name="serviceName" source="$serviceName"/> + </component> + +</composite> diff --git a/java/sca/stest/sampleTest/src/main/resources/TestComposite6.composite b/java/sca/stest/sampleTest/src/main/resources/TestComposite6.composite new file mode 100644 index 0000000000..dc9ea75f3b --- /dev/null +++ b/java/sca/stest/sampleTest/src/main/resources/TestComposite6.composite @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> +<!-- An example of a composite which has a single service and + a single reference with multiplicity 1..n --> +<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" + targetNamespace="http://oasis/tests" + xmlns:sample="http://oasis/tests" + name="TestComposite6">
+ + <service name="Service1" promote="TestComponent1/Service1"> + <interface.java interface="test.Service1"/> + </service> + + <property name="serviceName" type="string"/>
+ + <component name="TestComponent1"> + <implementation.java class="test.service1Impl3"/> + <service name="Service1">
+ <interface.java interface="test.Service1"/>
+ </service> + <property name="serviceName" source="$serviceName"/> + <reference name="reference1" multiplicity="1..n"> + <interface.java interface="test.Service1"/> + </reference> + </component> + + <reference name="Reference1" promote="TestComponent1/reference1" multiplicity="1..n"> + <interface.java interface="test.Service1"/> + </reference> + +</composite> diff --git a/java/sca/stest/sampleTest/src/main/resources/Test_ASM_0009.composite b/java/sca/stest/sampleTest/src/main/resources/Test_ASM_0009.composite new file mode 100644 index 0000000000..9d836489c8 --- /dev/null +++ b/java/sca/stest/sampleTest/src/main/resources/Test_ASM_0009.composite @@ -0,0 +1,63 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<!-- Tests that the @name attribute of a <component/> element
+ in a <composite/> is not the same as the @name
+ attribute of a second component in the same <composite/> -->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ targetNamespace="http://oasis/tests"
+ xmlns:tns="http://oasis/tests"
+ xmlns:sample="http://oasis/tests"
+ name="TEST_ASM_0009">
+
+ <component name="TestClient">
+ <implementation.composite name="tns:TestClient_0002"/>
+ <service name="TestInvocation">
+ <interface.java interface="test.TestInvocation"/>
+ <binding.ws/>
+ </service>
+ <reference name="reference1" target="TestComponent1/Service1" />
+ <property name="testName">ASM_0009</property>
+ </component>
+
+ <component name="TestComponent1">
+ <implementation.composite name="tns:TestComposite1"/>
+ <service name="Service1">
+ <interface.java interface="test.Service1"/>
+ </service>
+ <property name="serviceName">service1</property>
+ </component>
+
+ <component name="TestComponent1">
+ <implementation.composite name="tns:TestComposite1"/>
+ <service name="Service1">
+ <interface.java interface="test.Service1"/>
+ </service>
+ <property name="serviceName">service2</property>
+ </component>
+
+ <component name="TestComponent1">
+ <implementation.composite name="tns:TestComposite1"/>
+ <service name="Service1">
+ <interface.java interface="test.Service1"/>
+ </service>
+ <property name="serviceName">service2</property>
+ </component>
+
+</composite>
diff --git a/java/sca/stest/sampleTest/src/main/resources/Test_ASM_0010.composite b/java/sca/stest/sampleTest/src/main/resources/Test_ASM_0010.composite new file mode 100644 index 0000000000..ef1b5d1663 --- /dev/null +++ b/java/sca/stest/sampleTest/src/main/resources/Test_ASM_0010.composite @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<!-- Tests interface specified by the <interface/> child element of a
+ <service/> element is a compatible subset of the interface declared
+ for the <service/> element with the same @name attribute in the
+ <componentType/> of the <implementation/> of the <component/>
+ parent of the <service/> -->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ targetNamespace="http://oasis/tests"
+ xmlns:tns="http://oasis/tests"
+ xmlns:sample="http://oasis/tests"
+ name="TEST_ASM_0010">
+
+ <component name="TestClient">
+ <implementation.composite name="tns:TestClient_0002"/>
+ <service name="TestInvocation">
+ <interface.java interface="test.TestInvocation"/>
+ <binding.ws/>
+ </service>
+ <reference name="reference1" target="TestComponent1/Service1" />
+ <property name="testName">ASM_0010</property>
+ </component>
+
+ <component name="TestComponent1">
+ <implementation.composite name="tns:TestComposite5"/>
+ <!-- This service declares interface Service1 while the implementation offers
+ Service2, which is not compatible with Service1 -->
+ <service name="Service1">
+ <interface.java interface="test.Service1"/>
+ </service>
+ <property name="serviceName">service1</property>
+ </component>
+
+</composite>
diff --git a/java/sca/stest/sampleTest/src/main/resources/Test_ASM_0011.composite b/java/sca/stest/sampleTest/src/main/resources/Test_ASM_0011.composite new file mode 100644 index 0000000000..d8e5958132 --- /dev/null +++ b/java/sca/stest/sampleTest/src/main/resources/Test_ASM_0011.composite @@ -0,0 +1,61 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<!-- Tests the multiplicity of a <reference/> element of a <component/>
+ can be 1..1 where the multiplicity of the equivalent <reference/>
+ element in the <componentType/> of the <implementation/> of the
+ <component/> is 1..n -->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ targetNamespace="http://oasis/tests"
+ xmlns:tns="http://oasis/tests"
+ xmlns:sample="http://oasis/tests"
+ name="TEST_ASM_0011">
+
+ <component name="TestClient">
+ <implementation.composite name="tns:TestClient_0002"/>
+ <service name="TestInvocation">
+ <interface.java interface="test.TestInvocation"/>
+ <binding.ws/>
+ </service>
+ <reference name="reference1" target="TestComponent1/Service1" />
+ <property name="testName">ASM_0011</property>
+ </component>
+
+ <component name="TestComponent1">
+ <implementation.composite name="tns:TestComposite6"/>
+ <service name="Service1">
+ <interface.java interface="test.Service1"/>
+ </service>
+ <property name="serviceName">service1</property>
+ <!-- The multiplicity declared for this reference is 1..1 while the multiplicity of
+ the corresponding reference on the componentType of the implementation is 1..n -->
+ <reference name="Reference1" target="TestComponent2/Service1" multiplicity="1..1">
+ <interface.java interface="test.Service1"/>
+ </reference>
+ </component>
+
+ <component name="TestComponent2">
+ <implementation.composite name="tns:TestComposite1"/>
+ <service name="Service1">
+ <interface.java interface="test.Service1"></interface.java>
+ </service>
+ <property name="serviceName">service2</property>
+ </component>
+
+</composite>
diff --git a/java/sca/stest/sampleTest/src/test/java/client/ASM_0009_TestCase.java b/java/sca/stest/sampleTest/src/test/java/client/ASM_0009_TestCase.java new file mode 100644 index 0000000000..cb1e600542 --- /dev/null +++ b/java/sca/stest/sampleTest/src/test/java/client/ASM_0009_TestCase.java @@ -0,0 +1,45 @@ +/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package client;
+
+
+import test.ASM_0002_Client;
+import testClient.TestInvocation;
+
+/**
+ * Client for ASM_0009_TestCase, which tests that the @name attribute of a
+ * <component/> element in a <composite/> is not the same as the @name
+ * attribute of a second component in the same <composite/>
+ */
+public class ASM_0009_TestCase extends BaseJAXWSTestCase {
+
+
+ protected TestConfiguration getTestConfiguration() {
+ TestConfiguration config = new TestConfiguration();
+ config.testName = "ASM_0009";
+ config.input = "request";
+ config.output = "exception";
+ config.composite = "Test_ASM_0009.composite";
+ config.testServiceName = "TestClient";
+ config.testClass = ASM_0002_Client.class;
+ config.serviceInterface = TestInvocation.class;
+ return config;
+ }
+
+} // end class Test_ASM_0003
diff --git a/java/sca/stest/sampleTest/src/test/java/client/ASM_0010_TestCase.java b/java/sca/stest/sampleTest/src/test/java/client/ASM_0010_TestCase.java new file mode 100644 index 0000000000..7af957db99 --- /dev/null +++ b/java/sca/stest/sampleTest/src/test/java/client/ASM_0010_TestCase.java @@ -0,0 +1,47 @@ +/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package client;
+
+
+import test.ASM_0002_Client;
+import testClient.TestInvocation;
+
+/**
+ * Client for ASM_0009_TestCase, which tests that the interface specified
+ * by the <interface/> child element of a <service/> element is a compatible
+ * subset of the interface declared for the <service/> element with the
+ * same @name attribute in the <componentType/> of the <implementation/>
+ * of the <component/> parent of the <service/>
+ */
+public class ASM_0010_TestCase extends BaseJAXWSTestCase {
+
+
+ protected TestConfiguration getTestConfiguration() {
+ TestConfiguration config = new TestConfiguration();
+ config.testName = "ASM_0010";
+ config.input = "request";
+ config.output = "exception";
+ config.composite = "Test_ASM_0010.composite";
+ config.testServiceName = "TestClient";
+ config.testClass = ASM_0002_Client.class;
+ config.serviceInterface = TestInvocation.class;
+ return config;
+ }
+
+} // end class Test_ASM_0003
diff --git a/java/sca/stest/sampleTest/src/test/java/client/ASM_0011_TestCase.java b/java/sca/stest/sampleTest/src/test/java/client/ASM_0011_TestCase.java new file mode 100644 index 0000000000..ed850761f7 --- /dev/null +++ b/java/sca/stest/sampleTest/src/test/java/client/ASM_0011_TestCase.java @@ -0,0 +1,46 @@ +/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package client;
+
+
+import test.ASM_0002_Client;
+import testClient.TestInvocation;
+
+/**
+ * Client for ASM_0011_TestCase, which tests that the the multiplicity
+ * of a <reference/> element of a <component/> can be 1..1 where the
+ * multiplicity of the equivalent <reference/> element in the
+ * <componentType/> of the <implementation/> of the <component/> is 1..n
+ */
+public class ASM_0011_TestCase extends BaseJAXWSTestCase {
+
+
+ protected TestConfiguration getTestConfiguration() {
+ TestConfiguration config = new TestConfiguration();
+ config.testName = "ASM_0011";
+ config.input = "request";
+ config.output = "ASM_0011 request service1 operation1 invoked service2 operation1 invoked";
+ config.composite = "Test_ASM_0011.composite";
+ config.testServiceName = "TestClient";
+ config.testClass = ASM_0002_Client.class;
+ config.serviceInterface = TestInvocation.class;
+ return config;
+ }
+
+} // end class Test_ASM_0003
|