summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.3/itest/builder
diff options
context:
space:
mode:
authornash <nash@13f79535-47bb-0310-9956-ffa450edef68>2008-07-23 21:46:39 +0000
committernash <nash@13f79535-47bb-0310-9956-ffa450edef68>2008-07-23 21:46:39 +0000
commit1022fb5b709e9b237d48ae5acb759fbc58399cba (patch)
tree7ca57c3b35c546a5a9b185804ee6b6dec59c3ec2 /branches/sca-java-1.3/itest/builder
parent5b7aa6a2feb3b46993c2a83997f55d07ef971724 (diff)
Extend TUSCANY-2324 fix for multiplicity > 1
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@679205 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/sca-java-1.3/itest/builder')
-rw-r--r--branches/sca-java-1.3/itest/builder/src/main/resources/scenario10/scenario10a.composite3
-rw-r--r--branches/sca-java-1.3/itest/builder/src/main/resources/scenario10/service3.wsdl63
-rw-r--r--branches/sca-java-1.3/itest/builder/src/main/resources/scenario11/scenario11.composite1
-rw-r--r--branches/sca-java-1.3/itest/builder/src/main/resources/scenario11/service3.wsdl63
-rw-r--r--branches/sca-java-1.3/itest/builder/src/main/resources/scenario13/META-INF/sca-contribution.xml24
-rw-r--r--branches/sca-java-1.3/itest/builder/src/main/resources/scenario13/scenario13.composite58
-rw-r--r--branches/sca-java-1.3/itest/builder/src/main/resources/scenario13/scenario13a.composite64
-rw-r--r--branches/sca-java-1.3/itest/builder/src/test/java/org/apache/tuscany/sca/itest/builder/BuilderTestCase.java62
8 files changed, 323 insertions, 15 deletions
diff --git a/branches/sca-java-1.3/itest/builder/src/main/resources/scenario10/scenario10a.composite b/branches/sca-java-1.3/itest/builder/src/main/resources/scenario10/scenario10a.composite
index 0cfff9fdae..b4e9c61ef5 100644
--- a/branches/sca-java-1.3/itest/builder/src/main/resources/scenario10/scenario10a.composite
+++ b/branches/sca-java-1.3/itest/builder/src/main/resources/scenario10/scenario10a.composite
@@ -33,7 +33,8 @@
</reference>
<reference name="reference2a" promote="ComponentD/reference3a">
<!-- bindings and/or interfaces may or may not be specified explicitly here -->
- <binding.ws />
+ <interface.wsdl interface="http://scenarios#wsdl.interface(Service3)" />
+ <binding.ws />
</reference>
<component name="ComponentD">
diff --git a/branches/sca-java-1.3/itest/builder/src/main/resources/scenario10/service3.wsdl b/branches/sca-java-1.3/itest/builder/src/main/resources/scenario10/service3.wsdl
new file mode 100644
index 0000000000..14edcc00e6
--- /dev/null
+++ b/branches/sca-java-1.3/itest/builder/src/main/resources/scenario10/service3.wsdl
@@ -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.
+-->
+<wsdl:definitions name="Service3Service"
+ targetNamespace="http://scenarios"
+ xmlns:tns="http://scenarios"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <wsdl:types>
+ <xs:schema attributeFormDefault="qualified"
+ elementFormDefault="unqualified"
+ targetNamespace="http://scenarios"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:element name="getGreetings">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" name="arg0" nillable="true" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="getGreetingsResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:schema>
+ </wsdl:types>
+
+ <wsdl:message name="getGreetings">
+ <wsdl:part name="getGreetings" element="tns:getGreetings" />
+ </wsdl:message>
+
+ <wsdl:message name="getGreetingsResponse">
+ <wsdl:part name="getGreetingsResponse" element="tns:getGreetingsResponse" />
+ </wsdl:message>
+
+ <wsdl:portType name="Service3">
+ <wsdl:operation name="getGreetings">
+ <wsdl:input message="tns:getGreetings" />
+ <wsdl:output message="tns:getGreetingsResponse" />
+ </wsdl:operation>
+ </wsdl:portType>
+
+</wsdl:definitions>
diff --git a/branches/sca-java-1.3/itest/builder/src/main/resources/scenario11/scenario11.composite b/branches/sca-java-1.3/itest/builder/src/main/resources/scenario11/scenario11.composite
index 44751a7eed..776345062b 100644
--- a/branches/sca-java-1.3/itest/builder/src/main/resources/scenario11/scenario11.composite
+++ b/branches/sca-java-1.3/itest/builder/src/main/resources/scenario11/scenario11.composite
@@ -45,6 +45,7 @@
</reference>
<reference name="reference2a" target="ComponentF">
<!-- bindings and/or interfaces may or may not be specified explicitly here -->
+ <interface.wsdl interface="http://scenarios#wsdl.interface(Service3)" />
<binding.ws />
</reference>
</component>
diff --git a/branches/sca-java-1.3/itest/builder/src/main/resources/scenario11/service3.wsdl b/branches/sca-java-1.3/itest/builder/src/main/resources/scenario11/service3.wsdl
new file mode 100644
index 0000000000..14edcc00e6
--- /dev/null
+++ b/branches/sca-java-1.3/itest/builder/src/main/resources/scenario11/service3.wsdl
@@ -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.
+-->
+<wsdl:definitions name="Service3Service"
+ targetNamespace="http://scenarios"
+ xmlns:tns="http://scenarios"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+
+ <wsdl:types>
+ <xs:schema attributeFormDefault="qualified"
+ elementFormDefault="unqualified"
+ targetNamespace="http://scenarios"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:element name="getGreetings">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" name="arg0" nillable="true" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="getGreetingsResponse">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element minOccurs="0" name="return" nillable="true" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:schema>
+ </wsdl:types>
+
+ <wsdl:message name="getGreetings">
+ <wsdl:part name="getGreetings" element="tns:getGreetings" />
+ </wsdl:message>
+
+ <wsdl:message name="getGreetingsResponse">
+ <wsdl:part name="getGreetingsResponse" element="tns:getGreetingsResponse" />
+ </wsdl:message>
+
+ <wsdl:portType name="Service3">
+ <wsdl:operation name="getGreetings">
+ <wsdl:input message="tns:getGreetings" />
+ <wsdl:output message="tns:getGreetingsResponse" />
+ </wsdl:operation>
+ </wsdl:portType>
+
+</wsdl:definitions>
diff --git a/branches/sca-java-1.3/itest/builder/src/main/resources/scenario13/META-INF/sca-contribution.xml b/branches/sca-java-1.3/itest/builder/src/main/resources/scenario13/META-INF/sca-contribution.xml
new file mode 100644
index 0000000000..c906c6c5b0
--- /dev/null
+++ b/branches/sca-java-1.3/itest/builder/src/main/resources/scenario13/META-INF/sca-contribution.xml
@@ -0,0 +1,24 @@
+<?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.
+-->
+<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ targetNamespace="http://scenario13"
+ xmlns:ns13="http://scenario13">
+ <deployable composite="ns13:CompositeA" />
+</contribution>
diff --git a/branches/sca-java-1.3/itest/builder/src/main/resources/scenario13/scenario13.composite b/branches/sca-java-1.3/itest/builder/src/main/resources/scenario13/scenario13.composite
new file mode 100644
index 0000000000..ed59cd2adf
--- /dev/null
+++ b/branches/sca-java-1.3/itest/builder/src/main/resources/scenario13/scenario13.composite
@@ -0,0 +1,58 @@
+<?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 xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ targetNamespace="http://scenario13"
+ xmlns:tns="http://scenario13"
+ name="CompositeA">
+
+ <service name="Service1" promote="ComponentB/Service2">
+ <!-- bindings and/or interfaces may or may not be specified explicitly here -->
+ </service>
+ <reference name="reference1" promote="ComponentB/reference2">
+ <!-- bindings and/or interfaces may or may not be specified explicitly here -->
+ </reference>
+ <reference name="reference1a" promote="ComponentB/reference2a">
+ <!-- bindings and/or interfaces may or may not be specified explicitly here -->
+ </reference>
+
+ <component name="ComponentB">
+ <implementation.composite name="tns:CompositeC" />
+ <service name="Service2">
+ <!-- bindings and/or interfaces may or may not be specified explicitly here -->
+ </service>
+ <service name="Service2a">
+ <!-- bindings and/or interfaces may or may not be specified explicitly here -->
+ </service>
+ <reference name="reference2">
+ <!-- bindings and/or interfaces may or may not be specified explicitly here -->
+ </reference>
+ <reference name="reference2a">
+ <!-- bindings and/or interfaces may or may not be specified explicitly here -->
+ </reference>
+ </component>
+
+ <component name="ComponentF">
+ <implementation.java class="org.apache.tuscany.sca.itest.builder.ComponentEImpl"/>
+ <service name="Service3">
+ <binding.sca />
+ <binding.ws />
+ </service>
+ </component>
+</composite>
diff --git a/branches/sca-java-1.3/itest/builder/src/main/resources/scenario13/scenario13a.composite b/branches/sca-java-1.3/itest/builder/src/main/resources/scenario13/scenario13a.composite
new file mode 100644
index 0000000000..41150f78fd
--- /dev/null
+++ b/branches/sca-java-1.3/itest/builder/src/main/resources/scenario13/scenario13a.composite
@@ -0,0 +1,64 @@
+<?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 xmlns="http://www.osoa.org/xmlns/sca/1.0"
+ targetNamespace="http://scenario13"
+ xmlns:tns="http://scenario13"
+ name="CompositeC">
+
+ <service name="Service2" promote="ComponentD/Service3">
+ <!-- bindings and/or interfaces may or may not be specified explicitly here -->
+ </service>
+ <service name="Service2a" promote="ComponentD/Service3a">
+ <!-- bindings and/or interfaces may or may not be specified explicitly here -->
+ </service>
+ <reference name="reference2" promote="ComponentD/reference3">
+ <!-- bindings and/or interfaces may or may not be specified explicitly here -->
+ </reference>
+ <reference name="reference2a" promote="ComponentD/reference3a">
+ <!-- bindings and/or interfaces may or may not be specified explicitly here -->
+ </reference>
+
+ <component name="ComponentD">
+ <implementation.java class="org.apache.tuscany.sca.itest.builder.ComponentDReferenceMultiplicityImpl"/>
+ <service name="Service3">
+ <!-- bindings and/or interfaces may or may not be specified explicitly here -->
+ </service>
+ <service name="Service3a">
+ <!-- bindings and/or interfaces may or may not be specified explicitly here -->
+ <binding.ws uri="http://foo.com/bar" />
+ </service>
+ <reference name="reference3" target="ComponentD/Service3a">
+ <!-- bindings and/or interfaces may or may not be specified explicitly here -->
+ <binding.ws/>
+ </reference>
+ <reference name="reference3a" target="ComponentE">
+ <!-- bindings and/or interfaces may or may not be specified explicitly here -->
+ <binding.ws />
+ </reference>
+ </component>
+
+ <component name="ComponentE">
+ <implementation.java class="org.apache.tuscany.sca.itest.builder.ComponentEImpl"/>
+ <service name="Service3">
+ <binding.sca />
+ <binding.ws />
+ </service>
+ </component>
+</composite>
diff --git a/branches/sca-java-1.3/itest/builder/src/test/java/org/apache/tuscany/sca/itest/builder/BuilderTestCase.java b/branches/sca-java-1.3/itest/builder/src/test/java/org/apache/tuscany/sca/itest/builder/BuilderTestCase.java
index 3f36bd9236..e19ed92b42 100644
--- a/branches/sca-java-1.3/itest/builder/src/test/java/org/apache/tuscany/sca/itest/builder/BuilderTestCase.java
+++ b/branches/sca-java-1.3/itest/builder/src/test/java/org/apache/tuscany/sca/itest/builder/BuilderTestCase.java
@@ -451,7 +451,7 @@ public class BuilderTestCase extends TestCase {
for (ComponentReference reference : componentD.getReferences()) {
if ("reference3".equals(reference.getName())) {
wsBinding = reference.getBinding(WebServiceBinding.class);
- assert reference.getInterfaceContract() instanceof WSDLInterfaceContract;
+ assert reference.getInterfaceContract(wsBinding) instanceof WSDLInterfaceContract;
}
}
assert "http://foo.com/bar".equals(wsBinding.getURI());
@@ -540,7 +540,8 @@ public class BuilderTestCase extends TestCase {
for (ComponentReference reference : componentD.getReferences()) {
if ("reference3".equals(reference.getName())) {
wsBinding = reference.getBinding(WebServiceBinding.class);
- assert reference.getInterfaceContract() instanceof WSDLInterfaceContract;
+ assert reference.getBindings().size() == 1;
+ assert reference.getInterfaceContract(wsBinding) instanceof WSDLInterfaceContract;
}
}
assert "http://foo.com/bar".equals(wsBinding.getURI());
@@ -692,7 +693,7 @@ public class BuilderTestCase extends TestCase {
assert wsBinding.getWSDLDocument() == null;
}
- // Scenario 9: targets in references CDR1A and CBR2A and binding.ws at CDR3A
+ // Scenario 9: targets in references CBR2A and CDR3A and binding.ws at CDR3A
public void testScenario9() throws Exception {
System.out.println("====>Running testScenario9");
customBuilder = new CustomCompositeBuilder(false);
@@ -706,18 +707,19 @@ public class BuilderTestCase extends TestCase {
Composite domainComposite = customBuilder.getDomainComposite();
Component componentD = TestUtils.getComponent(domainComposite, "ComponentD");
- WebServiceBinding wsBinding = null;
+ ComponentReference componentRef = null;
for (ComponentReference reference : componentD.getReferences()) {
if ("reference3a".equals(reference.getName())) {
+ componentRef = reference;
assertTrue(reference.getBindings().size() == 2);
assertTrue(reference.getBindings().get(0) instanceof WebServiceBinding);
assertTrue(reference.getBindings().get(1) instanceof WebServiceBinding);
}
}
-
+ assertTrue(componentRef != null);
}
- // Scenario 10: targets in references CDR1A and CBR2A and binding.ws at CCR2A
+ // Scenario 10: targets in references CBR2A and CDR3A and binding.ws at CCR2A
public void testScenario10() throws Exception {
System.out.println("====>Running testScenario10");
customBuilder = new CustomCompositeBuilder(false);
@@ -727,7 +729,7 @@ public class BuilderTestCase extends TestCase {
checkScenario10And11Results();
}
- // Scenario 11: targets in references CDR1A and CBR2A and binding.ws at CBR2A
+ // Scenario 11: targets in references CBR2A and CDR3A and binding.ws at CBR2A
public void testScenario11() throws Exception {
System.out.println("====>Running testScenario11");
customBuilder = new CustomCompositeBuilder(false);
@@ -741,18 +743,23 @@ public class BuilderTestCase extends TestCase {
Composite domainComposite = customBuilder.getDomainComposite();
Component componentD = TestUtils.getComponent(domainComposite, "ComponentD");
- WebServiceBinding wsBinding = null;
+ ComponentReference componentRef = null;
for (ComponentReference reference : componentD.getReferences()) {
if ("reference3a".equals(reference.getName())) {
+ componentRef = reference;
assertTrue(reference.getBindings().size() == 2);
- assertTrue(reference.getBindings().get(0) instanceof SCABinding);
- assertTrue(reference.getBindings().get(1) instanceof WebServiceBinding);
+ Binding binding1 = reference.getBindings().get(0);
+ assertTrue(binding1 instanceof SCABinding);
+ assertTrue(reference.getInterfaceContract(binding1) instanceof JavaInterfaceContract);
+ Binding binding2 = reference.getBindings().get(1);
+ assertTrue(binding2 instanceof WebServiceBinding);
+ assertTrue(reference.getInterfaceContract(binding2) instanceof WSDLInterfaceContract);
}
}
-
+ assertTrue(componentRef != null);
}
- // Scenario 12: targets in references CDR1A and CBR2A and binding.ws at CAR1A
+ // Scenario 12: target in reference CDR3A and binding.ws uri= at CAR1A
public void testScenario12() throws Exception {
System.out.println("====>Running testScenario12");
customBuilder = new CustomCompositeBuilder(false);
@@ -766,14 +773,41 @@ public class BuilderTestCase extends TestCase {
Composite domainComposite = customBuilder.getDomainComposite();
Component componentD = TestUtils.getComponent(domainComposite, "ComponentD");
- WebServiceBinding wsBinding = null;
+ ComponentReference componentRef = null;
for (ComponentReference reference : componentD.getReferences()) {
if ("reference3a".equals(reference.getName())) {
+ componentRef = reference;
assertTrue(reference.getBindings().size() == 2);
assertTrue(reference.getBindings().get(0) instanceof SCABinding);
assertTrue(reference.getBindings().get(1) instanceof SCABinding);
}
}
-
+ assertTrue(componentRef != null);
}
+
+ // Scenario 13: target in reference CDR3A
+ public void testScenario13() throws Exception {
+ System.out.println("====>Running testScenario13");
+ customBuilder = new CustomCompositeBuilder(false);
+ customBuilder.loadContribution("scenario13.composite", "TestContribution", "src/main/resources/scenario13/");
+ //TestUtils.printResults(customBuilder);
+ TestUtils.checkProblems(customBuilder);
+ checkScenario13Results();
+ }
+
+ private void checkScenario13Results() {
+ Composite domainComposite = customBuilder.getDomainComposite();
+
+ Component componentD = TestUtils.getComponent(domainComposite, "ComponentD");
+ ComponentReference componentRef = null;
+ for (ComponentReference reference : componentD.getReferences()) {
+ if ("reference3a".equals(reference.getName())) {
+ componentRef = reference;
+ assertTrue(reference.getBindings().size() == 1);
+ assertTrue(reference.getBindings().get(0) instanceof WebServiceBinding);
+ }
+ }
+ assertTrue(componentRef != null);
+ }
+
}