summaryrefslogtreecommitdiffstats
path: root/java/sca/stest/sampleTest/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'java/sca/stest/sampleTest/src/main')
-rw-r--r--java/sca/stest/sampleTest/src/main/java/test/service1Impl4.java49
-rw-r--r--java/sca/stest/sampleTest/src/main/resources/TestComposite7.composite48
-rw-r--r--java/sca/stest/sampleTest/src/main/resources/Test_ASM_0012.composite101
3 files changed, 198 insertions, 0 deletions
diff --git a/java/sca/stest/sampleTest/src/main/java/test/service1Impl4.java b/java/sca/stest/sampleTest/src/main/java/test/service1Impl4.java
new file mode 100644
index 0000000000..2cb04a5d5c
--- /dev/null
+++ b/java/sca/stest/sampleTest/src/main/java/test/service1Impl4.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 multiplicity 0..n all of which and which get called when
+ * operation1 is invoked
+ * @author MikeEdwards
+ *
+ */
+@Service(Service1.class)
+public class service1Impl4 implements Service1 {
+
+ @Property
+ public String serviceName = "service1";
+ // Required = false + an array -> multiplicity 0..n
+ @Reference(required=false)
+ 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/resources/TestComposite7.composite b/java/sca/stest/sampleTest/src/main/resources/TestComposite7.composite
new file mode 100644
index 0000000000..82a71288ff
--- /dev/null
+++ b/java/sca/stest/sampleTest/src/main/resources/TestComposite7.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 0..n -->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ targetNamespace="http://oasis/tests"
+ xmlns:sample="http://oasis/tests"
+ name="TestComposite7">
+
+ <service name="Service1" promote="TestComponent1/Service1">
+ <interface.java interface="test.Service1"/>
+ </service>
+
+ <property name="serviceName" type="string"/>
+
+ <component name="TestComponent1">
+ <implementation.java class="test.service1Impl4"/>
+ <service name="Service1">
+ <interface.java interface="test.Service1"/>
+ </service>
+ <property name="serviceName" source="$serviceName"/>
+ <reference name="reference1" multiplicity="0..n">
+ <interface.java interface="test.Service1"/>
+ </reference>
+ </component>
+
+ <reference name="Reference1" promote="TestComponent1/reference1" multiplicity="0..n">
+ <interface.java interface="test.Service1"/>
+ </reference>
+
+</composite>
diff --git a/java/sca/stest/sampleTest/src/main/resources/Test_ASM_0012.composite b/java/sca/stest/sampleTest/src/main/resources/Test_ASM_0012.composite
new file mode 100644
index 0000000000..bd945f443b
--- /dev/null
+++ b/java/sca/stest/sampleTest/src/main/resources/Test_ASM_0012.composite
@@ -0,0 +1,101 @@
+<?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 the multiplicity
+ of a <reference/> element of a <component/> can be any one of 0..1,
+ 1..1, 0..n, 1..n where the multiplicity of the equivalent <reference/>
+ element in the <componentType/> of the <implementation/> of the
+ <component/> is 0..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_0012">
+
+ <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_0012</property>
+ </component>
+
+ <component name="TestComponent1">
+ <implementation.composite name="tns:TestComposite7"/>
+ <service name="Service1">
+ <interface.java interface="test.Service1"/>
+ </service>
+ <property name="serviceName">service1</property>
+ <!-- The multiplicity declared for this reference is 0..1 while the multiplicity of
+ the corresponding reference on the componentType of the implementation is 0..n -->
+ <reference name="Reference1" target="TestComponent2/Service1" multiplicity="0..1">
+ <interface.java interface="test.Service1"/>
+ </reference>
+ </component>
+
+ <component name="TestComponent2">
+ <implementation.composite name="tns:TestComposite7"/>
+ <service name="Service1">
+ <interface.java interface="test.Service1"/>
+ </service>
+ <property name="serviceName">service2</property>
+ <!-- The multiplicity declared for this reference is 1..1 while the multiplicity of
+ the corresponding reference on the componentType of the implementation is 0..n -->
+ <reference name="Reference1" target="TestComponent3/Service1" multiplicity="1..1">
+ <interface.java interface="test.Service1"/>
+ </reference>
+ </component>
+
+ <component name="TestComponent3">
+ <implementation.composite name="tns:TestComposite7"/>
+ <service name="Service1">
+ <interface.java interface="test.Service1"/>
+ </service>
+ <property name="serviceName">service3</property>
+ <!-- The multiplicity declared for this reference is 0..n while the multiplicity of
+ the corresponding reference on the componentType of the implementation is 0..n -->
+ <reference name="Reference1" target="TestComponent4/Service1" multiplicity="0..n">
+ <interface.java interface="test.Service1"/>
+ </reference>
+ </component>
+
+ <component name="TestComponent4">
+ <implementation.composite name="tns:TestComposite7"/>
+ <service name="Service1">
+ <interface.java interface="test.Service1"/>
+ </service>
+ <property name="serviceName">service4</property>
+ <!-- The multiplicity declared for this reference is 1..n while the multiplicity of
+ the corresponding reference on the componentType of the implementation is 0..n -->
+ <reference name="Reference1" target="TestComponent5/Service1" multiplicity="1..n">
+ <interface.java interface="test.Service1"/>
+ </reference>
+ </component>
+
+ <component name="TestComponent5">
+ <implementation.composite name="tns:TestComposite1"/>
+ <service name="Service1">
+ <interface.java interface="test.Service1"></interface.java>
+ </service>
+ <property name="serviceName">service5</property>
+ </component>
+
+</composite>