summaryrefslogtreecommitdiffstats
path: root/java/sca/vtest
diff options
context:
space:
mode:
authorkwilliams <kwilliams@13f79535-47bb-0310-9956-ffa450edef68>2008-06-19 22:28:52 +0000
committerkwilliams <kwilliams@13f79535-47bb-0310-9956-ffa450edef68>2008-06-19 22:28:52 +0000
commite61c9c2ec7fd579d6a9ee19af7f960e0e164b73a (patch)
treeae9f000cd0bfe879f404c42e4960a02cc36a08f6 /java/sca/vtest
parent86c9dcdafffafa55175b9ab3dabcbe0c4c515783 (diff)
Gilberts vtest contribution, TUSCANY-2407
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@669731 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/vtest')
-rw-r--r--java/sca/vtest/wsbinding/pom.xml1
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/binding/pom.xml58
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/AService.java40
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/BService.java35
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/BService2.java33
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/CService.java37
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/DService.java45
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/AServiceImpl.java63
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/BService2Impl.java40
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/BServiceImpl.java44
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/CServiceImpl.java48
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/DServiceImpl.java70
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/binding/src/main/resources/bservice.wsdl228
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/binding/src/main/resources/cservice.wsdl173
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/binding/src/main/resources/wsdlelement.binding.composite109
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/binding/src/test/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/WsdlElementBindingTestCase.java190
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/pom.xml68
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/port/pom.xml58
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/AService.java40
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/BService.java35
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/BService2.java33
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/CService.java37
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/DService.java45
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/AServiceImpl.java62
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/BService2Impl.java40
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/BServiceImpl.java44
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/CServiceImpl.java48
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/DServiceImpl.java70
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/port/src/main/resources/bservice.wsdl238
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/port/src/main/resources/cservice.wsdl173
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/port/src/main/resources/wsdlelement.port.composite110
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/port/src/test/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/WsdlElementPortTestCase.java188
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/service/pom.xml58
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/AService.java50
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/BService.java35
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/BService2.java33
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/CService.java37
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/DService.java45
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/AServiceImpl.java88
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/BService2Impl.java40
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/BServiceImpl.java44
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/CServiceImpl.java48
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/DServiceImpl.java70
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/service/src/main/resources/bservice.wsdl225
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/service/src/main/resources/cservice.wsdl173
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/service/src/main/resources/wsdlelement.service.composite145
-rw-r--r--java/sca/vtest/wsbinding/wsdlelement/service/src/test/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/WsdlElementServiceTestCase.java235
47 files changed, 3829 insertions, 0 deletions
diff --git a/java/sca/vtest/wsbinding/pom.xml b/java/sca/vtest/wsbinding/pom.xml
index 1c24f7c433..e984f8b4bd 100644
--- a/java/sca/vtest/wsbinding/pom.xml
+++ b/java/sca/vtest/wsbinding/pom.xml
@@ -61,6 +61,7 @@
<modules>
<module>service</module>
<module>nowsdl</module>
+ <module>wsdlelement</module>
</modules>
</profile>
</profiles>
diff --git a/java/sca/vtest/wsbinding/wsdlelement/binding/pom.xml b/java/sca/vtest/wsbinding/wsdlelement/binding/pom.xml
new file mode 100644
index 0000000000..205fbcc785
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/binding/pom.xml
@@ -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.
+-->
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>vtest-wsbinding-wsdlelement</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <artifactId>vtest-wsbinding-wsdlelement-binding</artifactId>
+ <name>Apache Tuscany SCA Web Service Binding Verification Tests - WSDL wsdlElement wsdl.binding</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-host-embedded</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws-axis2</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-host-tomcat</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-implementation-java-runtime</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/AService.java b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/AService.java
new file mode 100644
index 0000000000..49d12876e5
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/AService.java
@@ -0,0 +1,40 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * The interface for AService.
+ */
+@Remotable
+public interface AService {
+
+ public String getName();
+
+ public String getB1String(String aString);
+
+ public String getB1String2(String aString, String bString);
+
+ public int getB1Int(int i);
+
+ public String getB2String(String aString);
+
+ public int getB2Int(int i);
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/BService.java b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/BService.java
new file mode 100644
index 0000000000..b303f09dbc
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/BService.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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * Simple Service used by another service
+ */
+@Remotable
+public interface BService {
+
+ public String getString(String aString);
+
+ public String getString2(String aString, String bString);
+
+ public int getInt(int i);
+
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/BService2.java b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/BService2.java
new file mode 100644
index 0000000000..7089663cf1
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/BService2.java
@@ -0,0 +1,33 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * Simple Service used by another service
+ */
+@Remotable
+public interface BService2 {
+
+ public String getString(String aString);
+
+ public int getInt(int i);
+
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/CService.java b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/CService.java
new file mode 100644
index 0000000000..56f7415208
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/CService.java
@@ -0,0 +1,37 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * Simple Service used by another service
+ */
+@Remotable
+public interface CService {
+
+ public String getString(String aString);
+
+ public String getString2(String aString, String bString);
+
+ public Integer getInteger(Integer i);
+
+ public float getFloat(float f);
+
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/DService.java b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/DService.java
new file mode 100644
index 0000000000..90a78d3f0f
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/DService.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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * The interface for DService.
+ */
+@Remotable
+public interface DService {
+
+ public String getName();
+
+ public String getB1String(String aString);
+
+ public String getB1String2(String aString, String bString);
+
+ public int getB1Int(int i);
+
+ public String getC1String(String aString);
+
+ public String getC1String2(String aString, String bString);
+
+ public Integer getC1Integer(Integer i);
+
+ public float getC1Float(float f);
+
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/AServiceImpl.java b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/AServiceImpl.java
new file mode 100644
index 0000000000..ce5adf2cc5
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/AServiceImpl.java
@@ -0,0 +1,63 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.impl;
+
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.AService;
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.BService;
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.BService2;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+
+/**
+ * This class implements AService.
+ */
+@Service(AService.class)
+public class AServiceImpl implements AService {
+
+ @Reference(required=false)
+ public BService b1;
+
+ @Reference(required=false)
+ public BService2 b2;
+
+ public String getName() {
+ return "AService";
+ }
+
+ public String getB1String(String aString) {
+ return b1.getString(aString);
+ }
+
+ public String getB1String2(String aString, String bString) {
+ return b1.getString2(aString, bString);
+ }
+
+ public int getB1Int(int i) {
+ return b1.getInt(i);
+ }
+
+ public String getB2String(String aString) {
+ return b2.getString(aString);
+ }
+
+ public int getB2Int(int i) {
+ return b2.getInt(i);
+ }
+
+} \ No newline at end of file
diff --git a/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/BService2Impl.java b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/BService2Impl.java
new file mode 100644
index 0000000000..4040108542
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/BService2Impl.java
@@ -0,0 +1,40 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.impl;
+
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.BService2;
+import org.osoa.sca.annotations.Service;
+
+@Service(BService2.class)
+public class BService2Impl implements BService2 {
+
+ public String getName() {
+ return "BService";
+ }
+
+ public String getString(String aString) {
+ return aString;
+ }
+
+ public int getInt(int i) {
+ return i;
+ }
+
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/BServiceImpl.java b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/BServiceImpl.java
new file mode 100644
index 0000000000..66c9cb4136
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/BServiceImpl.java
@@ -0,0 +1,44 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.impl;
+
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.BService;
+import org.osoa.sca.annotations.Service;
+
+@Service(BService.class)
+public class BServiceImpl implements BService {
+
+ public String getName() {
+ return "BService";
+ }
+
+ public String getString(String aString) {
+ return aString;
+ }
+
+ public String getString2(String aString, String bString) {
+ return aString + bString;
+ }
+
+ public int getInt(int i) {
+ return i;
+ }
+
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/CServiceImpl.java b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/CServiceImpl.java
new file mode 100644
index 0000000000..ecdfbd59e2
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/CServiceImpl.java
@@ -0,0 +1,48 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.impl;
+
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.CService;
+import org.osoa.sca.annotations.Service;
+
+@Service(CService.class)
+public class CServiceImpl implements CService {
+
+ public String getName() {
+ return "CService";
+ }
+
+ public String getString(String aString) {
+ return aString;
+ }
+
+ public String getString2(String aString, String bString) {
+ return aString + bString;
+ }
+
+ public Integer getInteger(Integer i) {
+ return i;
+ }
+
+ public float getFloat(float f) {
+ return f;
+ }
+
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/DServiceImpl.java b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/DServiceImpl.java
new file mode 100644
index 0000000000..06470f29f9
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/DServiceImpl.java
@@ -0,0 +1,70 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.impl;
+
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.BService;
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.CService;
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.DService;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+
+/**
+ * This class implements DService.
+ */
+@Service(DService.class)
+public class DServiceImpl implements DService {
+
+ @Reference
+ public BService b1;
+
+ @Reference
+ public CService c1;
+
+ public String getName() {
+ return "DService";
+ }
+
+ public String getB1String(String aString) {
+ return b1.getString(aString);
+ }
+
+ public String getB1String2(String aString, String bString) {
+ return b1.getString2(aString, bString);
+ }
+
+ public int getB1Int(int i) {
+ return b1.getInt(i);
+ }
+
+ public String getC1String(String aString) {
+ return c1.getString(aString);
+ }
+
+ public String getC1String2(String aString, String bString) {
+ return c1.getString2(aString, bString);
+ }
+
+ public Integer getC1Integer(Integer i) {
+ return c1.getInteger(i);
+ }
+
+ public float getC1Float(float f) {
+ return c1.getFloat(f);
+ }
+} \ No newline at end of file
diff --git a/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/resources/bservice.wsdl b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/resources/bservice.wsdl
new file mode 100644
index 0000000000..8ce0fbaeb8
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/resources/bservice.wsdl
@@ -0,0 +1,228 @@
+<?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 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://vtest.wsbinding.wsdlelement.binding.bservice" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="wsdlelement" targetNamespace="http://vtest.wsbinding.wsdlelement.binding.bservice" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/">
+ <wsdl:types>
+ <xsd:schema targetNamespace="http://vtest.wsbinding.wsdlelement.binding.bservice" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="getString">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="in" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getStringResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="out" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getString2">
+ <xsd:complexType>
+ <xsd:sequence> <xsd:element name="in1" type="xsd:string"></xsd:element>
+ <xsd:element name="in2" type="xsd:string"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getString2Response">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="out" type="xsd:string"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getInt">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="in" type="xsd:int"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getIntResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="out" type="xsd:int"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="getStringRequest">
+ <wsdl:part element="tns:getString" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="getStringResponse">
+ <wsdl:part element="tns:getStringResponse" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="getString2Request">
+ <wsdl:part name="parameters" element="tns:getString2"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getString2Response">
+ <wsdl:part name="parameters" element="tns:getString2Response"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getIntRequest">
+ <wsdl:part name="parameters" element="tns:getInt"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getIntResponse">
+ <wsdl:part name="parameters" element="tns:getIntResponse"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getStringRequest">
+ <wsdl:part name="parameters" element="tns:getString"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getStringResponse">
+ <wsdl:part name="parameters" element="tns:getStringResponse"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getIntRequest">
+ <wsdl:part name="parameters" element="tns:getInt"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getIntResponse">
+ <wsdl:part name="parameters" element="tns:getIntResponse"></wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="BService1PortType">
+ <wsdl:operation name="getString">
+ <wsdl:input message="tns:getStringRequest"/>
+ <wsdl:output message="tns:getStringResponse"/>
+ </wsdl:operation>
+ <wsdl:operation name="getString2">
+ <wsdl:input message="tns:getString2Request"></wsdl:input>
+ <wsdl:output message="tns:getString2Response"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getInt">
+ <wsdl:input message="tns:getIntRequest"></wsdl:input>
+ <wsdl:output message="tns:getIntResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:portType name="BService2PortType">
+ <wsdl:operation name="getString">
+ <wsdl:input message="tns:getStringRequest"></wsdl:input>
+ <wsdl:output message="tns:getStringResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getInt">
+ <wsdl:input message="tns:getIntRequest"></wsdl:input>
+ <wsdl:output message="tns:getIntResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="BService1SOAPBinding"
+ type="tns:BService1PortType"> <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="getString"> <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.binding.bservice/getString" /> <wsdl:input> <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output> <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getString2">
+ <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.binding.bservice/getString2" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getInt">
+ <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.binding.bservice/getInt" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:binding name="BService2SOAPBinding"
+ type="tns:BService2PortType">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="getString">
+ <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.binding.bservice/getString" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getInt">
+ <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.binding.bservice/getInt" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:binding name="BService3SOAP12Binding"
+ type="tns:BService1PortType">
+ <soap12:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="getString">
+ <soap12:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.binding.bservice/getString" />
+ <wsdl:input>
+ <soap12:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap12:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getString2">
+ <soap12:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.binding.bservice/getString2" />
+ <wsdl:input>
+ <soap12:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap12:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getInt">
+ <soap12:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.binding.bservice/getInt" />
+ <wsdl:input>
+ <soap12:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap12:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="BService">
+ <wsdl:port binding="tns:BService1SOAPBinding" name="BService1SOAP">
+ <soap:address location=""/>
+ </wsdl:port>
+ <wsdl:port name="BService2SOAP"
+ binding="tns:BService2SOAPBinding">
+ <soap:address location="" />
+ </wsdl:port>
+ <wsdl:port name="BService3SOAP12"
+ binding="tns:BService3SOAP12Binding">
+ <soap12:address location=""></soap12:address>
+ </wsdl:port>
+ </wsdl:service>
+ <wsdl:service name="BService2">
+ <wsdl:port name="BService2Port" binding="tns:BService2SOAPBinding">
+ <soap:address location="" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/resources/cservice.wsdl b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/resources/cservice.wsdl
new file mode 100644
index 0000000000..ff151faa7a
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/resources/cservice.wsdl
@@ -0,0 +1,173 @@
+<?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 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://vtest.wsbinding.wsdlelement.binding.cservice" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="CService" targetNamespace="http://vtest.wsbinding.wsdlelement.binding.cservice">
+ <wsdl:types>
+ <xsd:schema targetNamespace="http://vtest.wsbinding.wsdlelement.binding.cservice" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="getFloat">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="in" type="xsd:float"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getFloatResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="out" type="xsd:float"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getInteger">
+ <xsd:complexType>
+ <xsd:sequence> <xsd:element name="in" type="xsd:integer"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getIntegerResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="out" type="xsd:integer"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getString2">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="in1" type="xsd:string"></xsd:element>
+ <xsd:element name="in2" type="xsd:string"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getString2Response">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="out" type="xsd:string"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getString">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="in" type="xsd:string"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getStringResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="out" type="xsd:string"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="getFloatRequest">
+ <wsdl:part element="tns:getFloat" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="getFloatResponse">
+ <wsdl:part element="tns:getFloatResponse" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="getIntegerRequest">
+ <wsdl:part name="parameters" element="tns:getInteger"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getIntegerResponse">
+ <wsdl:part name="parameters" element="tns:getIntegerResponse"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getString2Request">
+ <wsdl:part name="parameters" element="tns:getString2"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getString2Response">
+ <wsdl:part name="parameters" element="tns:getString2Response"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getStringRequest">
+ <wsdl:part name="parameters" element="tns:getString"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getStringResponse">
+ <wsdl:part name="parameters" element="tns:getStringResponse"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getString2Request">
+ <wsdl:part name="parameters" element="tns:getString2"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getString2Response">
+ <wsdl:part name="parameters" element="tns:getString2Response"></wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="CServicePortType">
+ <wsdl:operation name="getFloat">
+ <wsdl:input message="tns:getFloatRequest"/>
+ <wsdl:output message="tns:getFloatResponse"/>
+ </wsdl:operation>
+ <wsdl:operation name="getInteger">
+ <wsdl:input message="tns:getIntegerRequest"></wsdl:input>
+ <wsdl:output message="tns:getIntegerResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getString">
+ <wsdl:input message="tns:getStringRequest"></wsdl:input>
+ <wsdl:output message="tns:getStringResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getString2">
+ <wsdl:input message="tns:getString2Request"></wsdl:input>
+ <wsdl:output message="tns:getString2Response"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="CServiceSOAPBinding"
+ type="tns:CServicePortType"> <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="getFloat"> <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.binding.cservice/getFloat" /> <wsdl:input> <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output> <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getInteger">
+ <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.binding.cservice/getInteger" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getString">
+ <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.binding.cservice/getString" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getString2">
+ <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.binding.cservice/getString2" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="CService">
+ <wsdl:port binding="tns:CServiceSOAPBinding" name="CServiceSOAP">
+ <soap:address location=""/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/resources/wsdlelement.binding.composite b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/resources/wsdlelement.binding.composite
new file mode 100644
index 0000000000..d1a92a3499
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/binding/src/main/resources/wsdlelement.binding.composite
@@ -0,0 +1,109 @@
+<?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://vtest.wsbinding.wsdlelement.binding"
+ xmlns:wsdli="http://www.w3.org/2004/08/wsdl-instance"
+ name="wsdlelement.binding">
+
+ <component name="BComponent1">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.impl.BServiceImpl"/>
+ <service name="BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.binding.bservice#wsdl.binding(BService1SOAPBinding)"/>
+ </service>
+ </component>
+
+ <component name="BComponent2">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.impl.BServiceImpl"/>
+ <service name="BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.binding.bservice#wsdl.binding(BService2SOAPBinding)"/>
+ </service>
+ </component>
+
+ <component name="BComponent3">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.impl.BService2Impl"/>
+ <service name="BService2">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.BService2"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.binding.bservice#wsdl.binding(BService2SOAPBinding)"/>
+ </service>
+ </component>
+
+ <component name="BComponent4">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.impl.BServiceImpl"/>
+ <service name="BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.binding.bservice#wsdl.binding(BService3SOAP12Binding)"/>
+ </service>
+ </component>
+
+ <component name="CComponent">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.impl.CServiceImpl"/>
+ <service name="CService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.CService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.binding.cservice#wsdl.binding(CServiceSOAPBinding)"/>
+ </service>
+ </component>
+
+ <component name="AComponent1">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.impl.AServiceImpl"/>
+ <reference name="b1" target="BComponent1/BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.binding.bservice#wsdl.binding(BService1SOAPBinding)" uri="http://localhost:8080/BComponent1"/>
+ </reference>
+ </component>
+
+ <component name="AComponent2">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.impl.AServiceImpl"/>
+ <reference name="b1" target="BComponent2/BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.binding.bservice#wsdl.binding(BService2SOAPBinding)" uri="http://localhost:8080/BComponent2"/>
+ </reference>
+ </component>
+
+ <component name="AComponent3">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.impl.AServiceImpl"/>
+ <reference name="b2" target="BComponent3/BService2">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.BService2"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.binding.bservice#wsdl.binding(BService2SOAPBinding)" uri="http://localhost:8080/BComponent3"/>
+ </reference>
+ </component>
+
+ <component name="AComponent4">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.impl.AServiceImpl"/>
+ <reference name="b1" target="BComponent4/BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.binding.bservice#wsdl.binding(BService3SOAP12Binding)" uri="http://localhost:8080/BComponent4"/>
+ </reference>
+ </component>
+
+ <component name="DComponent1">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.impl.DServiceImpl"/>
+ <reference name="b1" target="BComponent1/BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.binding.bservice#wsdl.binding(BService1SOAPBinding)" uri="http://localhost:8080/BComponent1"/>
+ </reference>
+ <reference name="c1" target="CComponent/CService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.CService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.binding.cservice#wsdl.binding(CServiceSOAPBinding)" uri="http://localhost:8080/CComponent"/>
+ </reference>
+ </component>
+
+</composite>
diff --git a/java/sca/vtest/wsbinding/wsdlelement/binding/src/test/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/WsdlElementBindingTestCase.java b/java/sca/vtest/wsbinding/wsdlelement/binding/src/test/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/WsdlElementBindingTestCase.java
new file mode 100644
index 0000000000..f30cf38654
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/binding/src/test/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/WsdlElementBindingTestCase.java
@@ -0,0 +1,190 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding;
+
+import static org.junit.Assert.fail;
+import junit.framework.Assert;
+
+import org.apache.tuscany.sca.vtest.utilities.ServiceFinder;
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.AService;
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.binding.DService;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * Tests the simplest form of the binding element wsdl.binding with WSDL
+ * document described in section section 2.1 of SCA Web Services Binding
+ * V1.00<br>
+ */
+public class WsdlElementBindingTestCase {
+
+ protected static ServiceFinder serviceFinder;
+ protected static String compositeName = "wsdlelement.binding.composite";
+ protected static AService a1;
+ protected static AService a2;
+ protected static AService a3;
+ protected static AService a4;
+ protected static DService d;
+
+ @BeforeClass
+ public static void init() throws Exception {
+ try {
+ System.out.println("Setting up");
+ ServiceFinder.init(compositeName);
+ a1 = ServiceFinder.getService(AService.class, "AComponent1");
+ a2 = ServiceFinder.getService(AService.class, "AComponent2");
+ a3 = ServiceFinder.getService(AService.class, "AComponent3");
+ a4 = ServiceFinder.getService(AService.class, "AComponent4");
+ d = ServiceFinder.getService(DService.class, "DComponent1");
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+
+ /**
+ * Lines 50-54:<br>
+ * Binding:<br>
+ * <WSDL-namespace-URI>#wsdl.binding(<binding-name>)<br>
+ * In this case, the identified WSDL binding must have an equivalent
+ * PortType with the SCA service or reference. In this case the endpoint
+ * address URI for the SCA service or reference must be provided via the
+ * URI attribute on the binding.<br>
+ * <br>
+ * Tests wsdl.binding(BService1SOAPBinding)<br>
+ */
+ @Test
+ public void testWsdlElementBinding1() throws Exception {
+ String aName = a1.getName();
+ String b1Str1 = a1.getB1String("string1");
+ String b1Str2 = a1.getB1String2("string2", "string3");
+ int b1Int = a1.getB1Int(1000);
+
+ System.out.println(aName + ": " + b1Str1 + ", " + b1Str2 + ", " + b1Int);
+ Assert.assertEquals("AService", aName);
+ Assert.assertEquals("string1", b1Str1);
+ Assert.assertEquals("string2string3", b1Str2);
+ Assert.assertEquals(1000, b1Int);
+ }
+
+ /**
+ * Lines 50-54:<br>
+ * Binding:<br>
+ * <br>
+ * Tests wsdl.binding(BService2SOAPBinding) with BService where the binding
+ * does not define getString2, so exceptions are expected.<br>
+ */
+ @Test
+ public void testWsdlElementBinding2() throws Exception {
+ String aName = a2.getName();
+ System.out.println(aName + ": ");
+ try {
+ a2.getB1String("string1");
+ fail("Should not be able to call getString");
+ } catch (Exception e) {
+ System.out.println(" Exception is expected: " + e.toString());
+ }
+ try {
+ a2.getB1String2("string2", "string3");
+ fail("Should not be able to call getString2");
+ } catch (Exception e) {
+ System.out.println(" Exception is expected: " + e.toString());
+ }
+ try {
+ a2.getB1Int(2000);
+ fail("Should not be able to call getInt");
+ } catch (Exception e) {
+ System.out.println(" Exception is expected: " + e.toString());
+ }
+ }
+
+ /**
+ * Lines 50-54:<br>
+ * Binding:<br>
+ * <br>
+ * Tests wsdl.binding(BService2SOAPBinding) with BService2<br>
+ */
+ @Test
+ public void testWsdlElementBinding3() throws Exception {
+ String aName = a3.getName();
+ String b2Str1 = a3.getB2String("string1");
+ int b2Int = a3.getB2Int(3000);
+
+ System.out.println(aName + ": " + b2Str1 + ", " + b2Int);
+ Assert.assertEquals("AService", aName);
+ Assert.assertEquals("string1", b2Str1);
+ Assert.assertEquals(3000, b2Int);
+ }
+
+ /**
+ * Lines 50-54:<br>
+ * Binding:<br>
+ * <br>
+ * Tests two references using wsdl.binding.<br>
+ */
+ @Test
+ public void testWsdlElementBinding4() throws Exception {
+ String dName = d.getName();
+ String b1Str1 = d.getB1String("string1");
+ String b1Str2 = d.getB1String2("string2", "string3");
+ String c1Str1 = d.getC1String("string5");
+ String c1Str2 = d.getC1String2("string6", "string7");
+
+ int b1Int = d.getB1Int(4000);
+ float c1Float = d.getC1Float((float) 8.8);
+
+ Integer c1Integer = d.getC1Integer(new Integer(9000));
+
+ System.out.println(dName + ": " + b1Str1 + ", " + b1Str2 + ", " + b1Int + ", " + c1Str1 + ", " + c1Str2 + ", " + c1Float + ", " + c1Integer);
+ Assert.assertEquals("DService", dName);
+ Assert.assertEquals("string1", b1Str1);
+ Assert.assertEquals("string2string3", b1Str2);
+ Assert.assertEquals(4000, b1Int);
+ Assert.assertEquals("string5", c1Str1);
+ Assert.assertEquals("string6string7", c1Str2);
+ Assert.assertEquals((float) 8.8, c1Float);
+ Assert.assertEquals(new Integer(9000), c1Integer);
+ }
+
+ /**
+ * Lines 50-54:<br>
+ * Binding:<br>
+ * <br>
+ * Tests wsdl.binding(BService3SOAP12Binding) which uses SOAP 1.2<br>
+ */
+ @Test
+ public void testWsdlElementBinding5() throws Exception {
+ String aName = a4.getName();
+ String b1Str1 = a4.getB1String("string1");
+ String b1Str2 = a4.getB1String2("string2", "string3");
+ int b1Int = a4.getB1Int(5000);
+
+ System.out.println(aName + ": " + b1Str1 + ", " + b1Str2 + ", " + b1Int);
+ Assert.assertEquals("AService", aName);
+ Assert.assertEquals("string1", b1Str1);
+ Assert.assertEquals("string2string3", b1Str2);
+ Assert.assertEquals(5000, b1Int);
+ }
+
+ @AfterClass
+ public static void destroy() throws Exception {
+ System.out.println("Cleaning up");
+ ServiceFinder.cleanup();
+ }
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/pom.xml b/java/sca/vtest/wsbinding/wsdlelement/pom.xml
new file mode 100644
index 0000000000..e1707234dc
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/pom.xml
@@ -0,0 +1,68 @@
+<?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.
+-->
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>vtest-wsbinding</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <artifactId>vtest-wsbinding-wsdlelement</artifactId>
+ <packaging>pom</packaging>
+ <name>Apache Tuscany SCA Web Service Binding Verification Tests - wsdlElement</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-host-embedded</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws-axis2</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>vtest-utilities</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+
+
+ </dependencies>
+
+ <profiles>
+ <profile>
+ <id>default</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+ <modules>
+ <module>service</module>
+ <module>port</module>
+ <module>binding</module>
+ </modules>
+ </profile>
+ </profiles>
+</project>
diff --git a/java/sca/vtest/wsbinding/wsdlelement/port/pom.xml b/java/sca/vtest/wsbinding/wsdlelement/port/pom.xml
new file mode 100644
index 0000000000..777e7cc210
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/port/pom.xml
@@ -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.
+-->
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>vtest-wsbinding-wsdlelement</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <artifactId>vtest-wsbinding-wsdlelement-port</artifactId>
+ <name>Apache Tuscany SCA Web Service Binding Verification Tests - WSDL wsdlElement wsdl.port</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-host-embedded</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws-axis2</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-host-tomcat</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-implementation-java-runtime</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/AService.java b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/AService.java
new file mode 100644
index 0000000000..a0ed87249f
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/AService.java
@@ -0,0 +1,40 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * The interface for AService.
+ */
+@Remotable
+public interface AService {
+
+ public String getName();
+
+ public String getB1String(String aString);
+
+ public String getB1String2(String aString, String bString);
+
+ public int getB1Int(int i);
+
+ public String getB2String(String aString);
+
+ public int getB2Int(int i);
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/BService.java b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/BService.java
new file mode 100644
index 0000000000..1bdabeaea7
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/BService.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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * Simple Service used by another service
+ */
+@Remotable
+public interface BService {
+
+ public String getString(String aString);
+
+ public String getString2(String aString, String bString);
+
+ public int getInt(int i);
+
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/BService2.java b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/BService2.java
new file mode 100644
index 0000000000..3952d8c792
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/BService2.java
@@ -0,0 +1,33 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * Simple Service used by another service
+ */
+@Remotable
+public interface BService2 {
+
+ public String getString(String aString);
+
+ public int getInt(int i);
+
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/CService.java b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/CService.java
new file mode 100644
index 0000000000..244907fa19
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/CService.java
@@ -0,0 +1,37 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * Simple Service used by another service
+ */
+@Remotable
+public interface CService {
+
+ public String getString(String aString);
+
+ public String getString2(String aString, String bString);
+
+ public Integer getInteger(Integer i);
+
+ public float getFloat(float f);
+
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/DService.java b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/DService.java
new file mode 100644
index 0000000000..519374c1bd
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/DService.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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * The interface for DService.
+ */
+@Remotable
+public interface DService {
+
+ public String getName();
+
+ public String getB1String(String aString);
+
+ public String getB1String2(String aString, String bString);
+
+ public int getB1Int(int i);
+
+ public String getC1String(String aString);
+
+ public String getC1String2(String aString, String bString);
+
+ public Integer getC1Integer(Integer i);
+
+ public float getC1Float(float f);
+
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/AServiceImpl.java b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/AServiceImpl.java
new file mode 100644
index 0000000000..558ddcbb49
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/AServiceImpl.java
@@ -0,0 +1,62 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.impl;
+
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.AService;
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.BService;
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.BService2;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+
+/**
+ * This class implements AService.
+ */
+@Service(AService.class)
+public class AServiceImpl implements AService {
+
+ @Reference(required=false)
+ public BService b1;
+
+ @Reference(required=false)
+ public BService2 b2;
+
+ public String getName() {
+ return "AService";
+ }
+
+ public String getB1String(String aString) {
+ return b1.getString(aString);
+ }
+
+ public String getB1String2(String aString, String bString) {
+ return b1.getString2(aString, bString);
+ }
+
+ public int getB1Int(int i) {
+ return b1.getInt(i);
+ }
+
+ public String getB2String(String aString) {
+ return b2.getString(aString);
+ }
+
+ public int getB2Int(int i) {
+ return b2.getInt(i);
+ }
+} \ No newline at end of file
diff --git a/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/BService2Impl.java b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/BService2Impl.java
new file mode 100644
index 0000000000..b1dd73edc8
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/BService2Impl.java
@@ -0,0 +1,40 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.impl;
+
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.BService2;
+import org.osoa.sca.annotations.Service;
+
+@Service(BService2.class)
+public class BService2Impl implements BService2 {
+
+ public String getName() {
+ return "BService2";
+ }
+
+ public String getString(String aString) {
+ return aString;
+ }
+
+ public int getInt(int i) {
+ return i;
+ }
+
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/BServiceImpl.java b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/BServiceImpl.java
new file mode 100644
index 0000000000..b132fca45b
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/BServiceImpl.java
@@ -0,0 +1,44 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.impl;
+
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.BService;
+import org.osoa.sca.annotations.Service;
+
+@Service(BService.class)
+public class BServiceImpl implements BService {
+
+ public String getName() {
+ return "BService";
+ }
+
+ public String getString(String aString) {
+ return aString;
+ }
+
+ public String getString2(String aString, String bString) {
+ return aString + bString;
+ }
+
+ public int getInt(int i) {
+ return i;
+ }
+
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/CServiceImpl.java b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/CServiceImpl.java
new file mode 100644
index 0000000000..ca3ec62b83
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/CServiceImpl.java
@@ -0,0 +1,48 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.impl;
+
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.CService;
+import org.osoa.sca.annotations.Service;
+
+@Service(CService.class)
+public class CServiceImpl implements CService {
+
+ public String getName() {
+ return "CService";
+ }
+
+ public String getString(String aString) {
+ return aString;
+ }
+
+ public String getString2(String aString, String bString) {
+ return aString + bString;
+ }
+
+ public Integer getInteger(Integer i) {
+ return i;
+ }
+
+ public float getFloat(float f) {
+ return f;
+ }
+
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/DServiceImpl.java b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/DServiceImpl.java
new file mode 100644
index 0000000000..767deae23f
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/DServiceImpl.java
@@ -0,0 +1,70 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.impl;
+
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.BService;
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.CService;
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.DService;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+
+/**
+ * This class implements DService.
+ */
+@Service(DService.class)
+public class DServiceImpl implements DService {
+
+ @Reference
+ public BService b1;
+
+ @Reference
+ public CService c1;
+
+ public String getName() {
+ return "DService";
+ }
+
+ public String getB1String(String aString) {
+ return b1.getString(aString);
+ }
+
+ public String getB1String2(String aString, String bString) {
+ return b1.getString2(aString, bString);
+ }
+
+ public int getB1Int(int i) {
+ return b1.getInt(i);
+ }
+
+ public String getC1String(String aString) {
+ return c1.getString(aString);
+ }
+
+ public String getC1String2(String aString, String bString) {
+ return c1.getString2(aString, bString);
+ }
+
+ public Integer getC1Integer(Integer i) {
+ return c1.getInteger(i);
+ }
+
+ public float getC1Float(float f) {
+ return c1.getFloat(f);
+ }
+} \ No newline at end of file
diff --git a/java/sca/vtest/wsbinding/wsdlelement/port/src/main/resources/bservice.wsdl b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/resources/bservice.wsdl
new file mode 100644
index 0000000000..d5c8d72dc1
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/resources/bservice.wsdl
@@ -0,0 +1,238 @@
+<?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 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://vtest.wsbinding.wsdlelement.port.bservice" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="wsdlelement" targetNamespace="http://vtest.wsbinding.wsdlelement.port.bservice" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/">
+ <wsdl:types>
+ <xsd:schema targetNamespace="http://vtest.wsbinding.wsdlelement.port.bservice" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="getString">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="in" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getStringResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="out" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getString2">
+ <xsd:complexType>
+ <xsd:sequence> <xsd:element name="in1" type="xsd:string"></xsd:element>
+ <xsd:element name="in2" type="xsd:string"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getString2Response">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="out" type="xsd:string"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getInt">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="in" type="xsd:int"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getIntResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="out" type="xsd:string"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="getStringRequest">
+ <wsdl:part element="tns:getString" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="getStringResponse">
+ <wsdl:part element="tns:getStringResponse" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="getString2Request">
+ <wsdl:part name="parameters" element="tns:getString2"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getString2Response">
+ <wsdl:part name="parameters" element="tns:getString2Response"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getIntRequest">
+ <wsdl:part name="parameters" element="tns:getInt"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getIntResponse">
+ <wsdl:part name="parameters" element="tns:getIntResponse"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getStringRequest">
+ <wsdl:part name="parameters" element="tns:getString"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getStringResponse">
+ <wsdl:part name="parameters" element="tns:getStringResponse"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getIntRequest">
+ <wsdl:part name="parameters" element="tns:getInt"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getIntResponse">
+ <wsdl:part name="parameters" element="tns:getIntResponse"></wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="BService1PortType">
+ <wsdl:operation name="getString">
+ <wsdl:input message="tns:getStringRequest"/>
+ <wsdl:output message="tns:getStringResponse"/>
+ </wsdl:operation>
+ <wsdl:operation name="getString2">
+ <wsdl:input message="tns:getString2Request"></wsdl:input>
+ <wsdl:output message="tns:getString2Response"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getInt">
+ <wsdl:input message="tns:getIntRequest"></wsdl:input>
+ <wsdl:output message="tns:getIntResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:portType name="BService2PortType">
+ <wsdl:operation name="getString">
+ <wsdl:input message="tns:getStringRequest"></wsdl:input>
+ <wsdl:output message="tns:getStringResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getInt">
+ <wsdl:input message="tns:getIntRequest"></wsdl:input>
+ <wsdl:output message="tns:getIntResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="BService1SOAPBinding"
+ type="tns:BService1PortType"> <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="getString"> <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.port.bservice/getString" /> <wsdl:input> <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output> <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getString2">
+ <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.port.bservice/getString2" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getInt">
+ <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.port.bservice/getInt" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:binding name="BService2SOAPBinding"
+ type="tns:BService2PortType">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="getString">
+ <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.port.bservice/getString" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getInt">
+ <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.port.bservice/getInt" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:binding name="BService3SOAP12Binding"
+ type="tns:BService1PortType">
+
+ <soap12:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="getString">
+
+ <soap12:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.port.bservice/getString" />
+ <wsdl:input>
+
+ <soap12:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+
+ <soap12:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getString2">
+
+ <soap12:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.port.bservice/getString2" />
+ <wsdl:input>
+
+ <soap12:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+
+ <soap12:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getInt">
+
+ <soap12:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.port.bservice/getInt" />
+ <wsdl:input>
+
+ <soap12:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+
+ <soap12:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="BService">
+ <wsdl:port binding="tns:BService1SOAPBinding" name="BService1SOAP">
+ <soap:address location=""/>
+ </wsdl:port>
+ <wsdl:port name="BService2SOAP"
+ binding="tns:BService2SOAPBinding">
+ <soap:address location="" />
+ </wsdl:port>
+ <wsdl:port name="BService3SOAP12"
+ binding="tns:BService3SOAP12Binding">
+ <soap12:address location=""></soap12:address>
+ </wsdl:port>
+ </wsdl:service>
+ <wsdl:service name="BService2">
+ <wsdl:port name="BService2Port" binding="tns:BService2SOAPBinding">
+ <soap:address location="" />
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/java/sca/vtest/wsbinding/wsdlelement/port/src/main/resources/cservice.wsdl b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/resources/cservice.wsdl
new file mode 100644
index 0000000000..8a715a2081
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/resources/cservice.wsdl
@@ -0,0 +1,173 @@
+<?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 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://vtest.wsbinding.wsdlelement.port.cservice" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="CService" targetNamespace="http://vtest.wsbinding.wsdlelement.port.cservice">
+ <wsdl:types>
+ <xsd:schema targetNamespace="http://vtest.wsbinding.wsdlelement.port.cservice" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="getFloat">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="in" type="xsd:float"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getFloatResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="out" type="xsd:float"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getInteger">
+ <xsd:complexType>
+ <xsd:sequence> <xsd:element name="in" type="xsd:integer"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getIntegerResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="out" type="xsd:integer"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getString2">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="in1" type="xsd:string"></xsd:element>
+ <xsd:element name="in2" type="xsd:string"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getString2Response">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="out" type="xsd:string"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getString">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="in" type="xsd:string"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getStringResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="out" type="xsd:string"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="getFloatRequest">
+ <wsdl:part element="tns:getFloat" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="getFloatResponse">
+ <wsdl:part element="tns:getFloatResponse" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="getIntegerRequest">
+ <wsdl:part name="parameters" element="tns:getInteger"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getIntegerResponse">
+ <wsdl:part name="parameters" element="tns:getIntegerResponse"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getString2Request">
+ <wsdl:part name="parameters" element="tns:getString2"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getString2Response">
+ <wsdl:part name="parameters" element="tns:getString2Response"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getStringRequest">
+ <wsdl:part name="parameters" element="tns:getString"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getStringResponse">
+ <wsdl:part name="parameters" element="tns:getStringResponse"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getString2Request">
+ <wsdl:part name="parameters" element="tns:getString2"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getString2Response">
+ <wsdl:part name="parameters" element="tns:getString2Response"></wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="CServicePortType">
+ <wsdl:operation name="getFloat">
+ <wsdl:input message="tns:getFloatRequest"/>
+ <wsdl:output message="tns:getFloatResponse"/>
+ </wsdl:operation>
+ <wsdl:operation name="getInteger">
+ <wsdl:input message="tns:getIntegerRequest"></wsdl:input>
+ <wsdl:output message="tns:getIntegerResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getString">
+ <wsdl:input message="tns:getStringRequest"></wsdl:input>
+ <wsdl:output message="tns:getStringResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getString2">
+ <wsdl:input message="tns:getString2Request"></wsdl:input>
+ <wsdl:output message="tns:getString2Response"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="CServiceSOAPBinding"
+ type="tns:CServicePortType"> <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="getFloat"> <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.port.cservice/getFloat" /> <wsdl:input> <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output> <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getInteger">
+ <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.port.cservice/getInteger" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getString">
+ <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.port.cservice/getString" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getString2">
+ <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.port.cservice/getString2" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="CService">
+ <wsdl:port binding="tns:CServiceSOAPBinding" name="CServiceSOAP">
+ <soap:address location=""/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/java/sca/vtest/wsbinding/wsdlelement/port/src/main/resources/wsdlelement.port.composite b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/resources/wsdlelement.port.composite
new file mode 100644
index 0000000000..28c10ff599
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/port/src/main/resources/wsdlelement.port.composite
@@ -0,0 +1,110 @@
+<?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://vtest.wsbinding.wsdlelement.port"
+ xmlns:wsdli="http://www.w3.org/2004/08/wsdl-instance"
+ name="wsdlelement.port">
+
+
+ <component name="BComponent1">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.impl.BServiceImpl"/>
+ <service name="BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.port.bservice#wsdl.port(BService/BService1SOAP)"/>
+ </service>
+ </component>
+
+ <component name="BComponent2">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.impl.BServiceImpl"/>
+ <service name="BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.port.bservice#wsdl.port(BService/BService2SOAP)"/>
+ </service>
+ </component>
+
+ <component name="BComponent3">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.impl.BService2Impl"/>
+ <service name="BService2">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.BService2"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.port.bservice#wsdl.port(BService2/BService2Port)"/>
+ </service>
+ </component>
+
+ <component name="BComponent4">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.impl.BServiceImpl"/>
+ <service name="BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.port.bservice#wsdl.port(BService/BService3SOAP12)"/>
+ </service>
+ </component>
+
+ <component name="CComponent">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.impl.CServiceImpl"/>
+ <service name="CService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.CService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.port.cservice#wsdl.port(CService/CServiceSOAP)"/>
+ </service>
+ </component>
+
+ <component name="AComponent1">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.impl.AServiceImpl"/>
+ <reference name="b1" target="BComponent1/BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.port.bservice#wsdl.port(BService/BService1SOAP)" uri="http://localhost:8080/BComponent1"/>
+ </reference>
+ </component>
+
+ <component name="AComponent2">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.impl.AServiceImpl"/>
+ <reference name="b1" target="BComponent2/BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.port.bservice#wsdl.port(BService/BService2SOAP)" uri="http://localhost:8080/BComponent2"/>
+ </reference>
+ </component>
+
+ <component name="AComponent3">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.impl.AServiceImpl"/>
+ <reference name="b2" target="BComponent3/BService2">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.BService2"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.port.bservice#wsdl.port(BService2/BService2Port)" uri="http://localhost:8080/BComponent3"/>
+ </reference>
+ </component>
+
+ <component name="AComponent4">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.impl.AServiceImpl"/>
+ <reference name="b1" target="BComponent4/BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.port.bservice#wsdl.port(BService/BService3SOAP12)" uri="http://localhost:8080/BComponent4"/>
+ </reference>
+ </component>
+
+ <component name="DComponent1">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.impl.DServiceImpl"/>
+ <reference name="b1" target="BComponent1/BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.port.bservice#wsdl.port(BService/BService1SOAP)" uri="http://localhost:8080/BComponent1"/>
+ </reference>
+ <reference name="c1" target="CComponent/CService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.CService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.port.cservice#wsdl.port(CService/CServiceSOAP)" uri="http://localhost:8080/CComponent"/>
+ </reference>
+ </component>
+
+</composite>
diff --git a/java/sca/vtest/wsbinding/wsdlelement/port/src/test/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/WsdlElementPortTestCase.java b/java/sca/vtest/wsbinding/wsdlelement/port/src/test/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/WsdlElementPortTestCase.java
new file mode 100644
index 0000000000..0db579002b
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/port/src/test/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/WsdlElementPortTestCase.java
@@ -0,0 +1,188 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port;
+
+import static org.junit.Assert.fail;
+import junit.framework.Assert;
+
+import org.apache.tuscany.sca.vtest.utilities.ServiceFinder;
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.AService;
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.port.DService;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * Tests the simplest form of the binding element wsdl.port with WSDL
+ * document described in section section 2.1 of SCA Web Services Binding
+ * V1.00<br>
+ */
+public class WsdlElementPortTestCase {
+
+ protected static ServiceFinder serviceFinder;
+ protected static String compositeName = "wsdlelement.port.composite";
+ protected static AService a1;
+ protected static AService a2;
+ protected static AService a3;
+ protected static AService a4;
+ protected static DService d;
+
+ @BeforeClass
+ public static void init() throws Exception {
+ try {
+ System.out.println("Setting up");
+ ServiceFinder.init(compositeName);
+ a1 = ServiceFinder.getService(AService.class, "AComponent1");
+ a2 = ServiceFinder.getService(AService.class, "AComponent2");
+ a3 = ServiceFinder.getService(AService.class, "AComponent3");
+ a4 = ServiceFinder.getService(AService.class, "AComponent4");
+ d = ServiceFinder.getService(DService.class, "DComponent1");
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+
+ /**
+ * Lines 42-45:<br>
+ * Port (WSDL 1.1):<br>
+ * <WSDL-namespace-URI>#wsdl.port(<service-name>/<port-name>)
+ * In this case, the identified port in the WSDL 1.1 Service must have an
+ * equivalent PortType with the SCA service or reference.<br>
+ * <br>
+ * Test wsdl.port(BService/BService1SOAP)<br>
+ */
+ @Test
+ public void testWsdlElementPort1() throws Exception {
+ String aName = a1.getName();
+ String b1Str1 = a1.getB1String("string1");
+ String b1Str2 = a1.getB1String2("string2", "string3");
+ int b1Int = a1.getB1Int(1000);
+
+ System.out.println(aName + ": " + b1Str1 + ", " + b1Str2 + ", " + b1Int);
+ Assert.assertEquals("AService", aName);
+ Assert.assertEquals("string1", b1Str1);
+ Assert.assertEquals("string2string3", b1Str2);
+ Assert.assertEquals(1000, b1Int);
+ }
+
+ /**
+ * Lines 42-45:<br>
+ * Port (WSDL 1.1):<br>
+ * <br>
+ * Tests wsdl.port(BService/BService2SOAP) with BService where the port
+ * does not define getString2, so exceptions are expected.<br>
+ */
+ @Test
+ public void testWsdlElementPort2() throws Exception {
+ String aName = a2.getName();
+ System.out.println(aName + ": ");
+ try {
+ a2.getB1String("string1");
+ fail("Should not be able to call getString");
+ } catch (Exception e) {
+ System.out.println(" Exception is expected: " + e.toString());
+ }
+ try {
+ a2.getB1String2("string2", "string3");
+ fail("Should not be able to call getString2");
+ } catch (Exception e) {
+ System.out.println(" Exception is expected: " + e.toString());
+ }
+ try {
+ a2.getB1Int(2000);
+ fail("Should not be able to call getInt");
+ } catch (Exception e) {
+ System.out.println(" Exception is expected: " + e.toString());
+ }
+ }
+
+ /**
+ * Lines 42-45:<br>
+ * Port (WSDL 1.1):<br>
+ * <br>
+ * Tests wsdl.port(BService/BService2SOAP) with BService2<br>
+ */
+ @Test
+ public void testWsdlElementPort3() throws Exception {
+ String aName = a3.getName();
+ String b2Str1 = a3.getB2String("string1");
+ int b2Int = a3.getB2Int(1000);
+
+ System.out.println(aName + ": " + b2Str1 + ", " + b2Int);
+ Assert.assertEquals("AService", aName);
+ Assert.assertEquals("string1", b2Str1);
+ Assert.assertEquals(1000, b2Int);
+ }
+
+ /**
+ * Lines 42-45:<br>
+ * Port (WSDL 1.1):<br>
+ * <br>
+= * Tests two references using wsdl.port.<br>
+ */
+ @Test
+ public void testWsdlElementPort4() throws Exception {
+ String dName = d.getName();
+ String b1Str1 = d.getB1String("string1");
+ String b1Str2 = d.getB1String2("string2", "string3");
+ String c1Str1 = d.getC1String("string5");
+ String c1Str2 = d.getC1String2("string6", "string7");
+
+ int b1Int = d.getB1Int(4000);
+ float c1Float = d.getC1Float((float) 8.8);
+
+ Integer c1Integer = d.getC1Integer(new Integer(9000));
+
+ System.out.println(dName + ": " + b1Str1 + ", " + b1Str2 + ", " + b1Int + ", " + c1Str1 + ", " + c1Str2 + ", " + c1Float + ", " + c1Integer);
+ Assert.assertEquals("DService", dName);
+ Assert.assertEquals("string1", b1Str1);
+ Assert.assertEquals("string2string3", b1Str2);
+ Assert.assertEquals(4000, b1Int);
+ Assert.assertEquals("string5", c1Str1);
+ Assert.assertEquals("string6string7", c1Str2);
+ Assert.assertEquals((float) 8.8, c1Float);
+ Assert.assertEquals(new Integer(9000), c1Integer);
+ }
+
+ /**
+ * Lines 42-45:<br>
+ * Port (WSDL 1.1):<br>
+ * <br>
+= * Tests wsdl.port(BService/BService3SOAP12) which uses SOAP 1.2<br>
+ */
+ @Test
+ public void testWsdlElementPort5() throws Exception {
+ String aName = a4.getName();
+ String b1Str1 = a4.getB1String("string1");
+ String b1Str2 = a4.getB1String2("string2", "string3");
+ int b1Int = a4.getB1Int(5000);
+
+ System.out.println(aName + ": " + b1Str1 + ", " + b1Str2 + ", " + b1Int);
+ Assert.assertEquals("AService", aName);
+ Assert.assertEquals("string1", b1Str1);
+ Assert.assertEquals("string2string3", b1Str2);
+ Assert.assertEquals(5000, b1Int);
+ }
+
+ @AfterClass
+ public static void destroy() throws Exception {
+ System.out.println("Cleaning up");
+ ServiceFinder.cleanup();
+ }
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/service/pom.xml b/java/sca/vtest/wsbinding/wsdlelement/service/pom.xml
new file mode 100644
index 0000000000..149037cf4d
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/service/pom.xml
@@ -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.
+-->
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>vtest-wsbinding-wsdlelement</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <artifactId>vtest-wsbinding-wsdlelement-service</artifactId>
+ <name>Apache Tuscany SCA Web Service Binding Verification Tests - WSDL wsdlElement wsdl.service</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-host-embedded</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws-axis2</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-host-tomcat</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-implementation-java-runtime</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/AService.java b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/AService.java
new file mode 100644
index 0000000000..69b709ae95
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/AService.java
@@ -0,0 +1,50 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * The interface for AService.
+ */
+@Remotable
+public interface AService {
+
+ public String getName();
+
+ public String getB1String(String aString);
+
+ public String getB1String2(String aString, String bString);
+
+ public int getB1Int(int i);
+
+ public String getB2String(String aString);
+
+ public int getB2Int(int i);
+
+ public String getB3String(String aString);
+
+ public int getB3Int(int i);
+
+ public String getB4String(String aString);
+
+ public String getB4String2(String aString, String bString);
+
+ public int getB4Int(int i);
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/BService.java b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/BService.java
new file mode 100644
index 0000000000..852f36e0c1
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/BService.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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * Simple Service used by another service
+ */
+@Remotable
+public interface BService {
+
+ public String getString(String aString);
+
+ public String getString2(String aString, String bString);
+
+ public int getInt(int i);
+
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/BService2.java b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/BService2.java
new file mode 100644
index 0000000000..bfcacdaa21
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/BService2.java
@@ -0,0 +1,33 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * Simple Service used by another service
+ */
+@Remotable
+public interface BService2 {
+
+ public String getString(String aString);
+
+ public int getInt(int i);
+
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/CService.java b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/CService.java
new file mode 100644
index 0000000000..5ceab40d0e
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/CService.java
@@ -0,0 +1,37 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * Simple Service used by another service
+ */
+@Remotable
+public interface CService {
+
+ public String getString(String aString);
+
+ public String getString2(String aString, String bString);
+
+ public Integer getInteger(Integer i);
+
+ public float getFloat(float f);
+
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/DService.java b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/DService.java
new file mode 100644
index 0000000000..5182ee3029
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/DService.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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * The interface for DService.
+ */
+@Remotable
+public interface DService {
+
+ public String getName();
+
+ public String getB1String(String aString);
+
+ public String getB1String2(String aString, String bString);
+
+ public int getB1Int(int i);
+
+ public String getC1String(String aString);
+
+ public String getC1String2(String aString, String bString);
+
+ public Integer getC1Integer(Integer i);
+
+ public float getC1Float(float f);
+
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/AServiceImpl.java b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/AServiceImpl.java
new file mode 100644
index 0000000000..e89cf21215
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/AServiceImpl.java
@@ -0,0 +1,88 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.impl;
+
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.AService;
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.BService;
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.BService2;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+
+/**
+ * This class implements AService.
+ */
+@Service(AService.class)
+public class AServiceImpl implements AService {
+
+ @Reference(required=false)
+ public BService b1;
+
+ @Reference(required=false)
+ public BService2 b2;
+
+ @Reference(required=false)
+ public BService2 b3;
+
+ @Reference(required=false)
+ public BService b4;
+
+ public String getName() {
+ return "AService";
+ }
+
+ public String getB1String(String aString) {
+ return b1.getString(aString);
+ }
+
+ public String getB1String2(String aString, String bString) {
+ return b1.getString2(aString, bString);
+ }
+
+ public int getB1Int(int i) {
+ return b1.getInt(i);
+ }
+
+ public String getB2String(String aString) {
+ return b2.getString(aString);
+ }
+
+ public int getB2Int(int i) {
+ return b2.getInt(i);
+ }
+
+ public String getB3String(String aString) {
+ return b3.getString(aString);
+ }
+
+ public int getB3Int(int i) {
+ return b3.getInt(i);
+ }
+
+ public String getB4String(String aString) {
+ return b4.getString(aString);
+ }
+
+ public String getB4String2(String aString, String bString) {
+ return b4.getString2(aString, bString);
+ }
+
+ public int getB4Int(int i) {
+ return b4.getInt(i);
+ }
+} \ No newline at end of file
diff --git a/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/BService2Impl.java b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/BService2Impl.java
new file mode 100644
index 0000000000..b8c23433eb
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/BService2Impl.java
@@ -0,0 +1,40 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.impl;
+
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.BService2;
+import org.osoa.sca.annotations.Service;
+
+@Service(BService2.class)
+public class BService2Impl implements BService2 {
+
+ public String getName() {
+ return "BService";
+ }
+
+ public String getString(String aString) {
+ return aString;
+ }
+
+ public int getInt(int i) {
+ return i;
+ }
+
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/BServiceImpl.java b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/BServiceImpl.java
new file mode 100644
index 0000000000..cbbf8222e6
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/BServiceImpl.java
@@ -0,0 +1,44 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.impl;
+
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.BService;
+import org.osoa.sca.annotations.Service;
+
+@Service(BService.class)
+public class BServiceImpl implements BService {
+
+ public String getName() {
+ return "BService";
+ }
+
+ public String getString(String aString) {
+ return aString;
+ }
+
+ public String getString2(String aString, String bString) {
+ return aString + bString;
+ }
+
+ public int getInt(int i) {
+ return i;
+ }
+
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/CServiceImpl.java b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/CServiceImpl.java
new file mode 100644
index 0000000000..29a22f31bd
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/CServiceImpl.java
@@ -0,0 +1,48 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.impl;
+
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.CService;
+import org.osoa.sca.annotations.Service;
+
+@Service(CService.class)
+public class CServiceImpl implements CService {
+
+ public String getName() {
+ return "CService";
+ }
+
+ public String getString(String aString) {
+ return aString;
+ }
+
+ public String getString2(String aString, String bString) {
+ return aString + bString;
+ }
+
+ public Integer getInteger(Integer i) {
+ return i;
+ }
+
+ public float getFloat(float f) {
+ return f;
+ }
+
+}
diff --git a/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/DServiceImpl.java b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/DServiceImpl.java
new file mode 100644
index 0000000000..87654e7188
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/DServiceImpl.java
@@ -0,0 +1,70 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.impl;
+
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.BService;
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.CService;
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.DService;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+
+/**
+ * This class implements DService.
+ */
+@Service(DService.class)
+public class DServiceImpl implements DService {
+
+ @Reference
+ public BService b1;
+
+ @Reference
+ public CService c1;
+
+ public String getName() {
+ return "DService";
+ }
+
+ public String getB1String(String aString) {
+ return b1.getString(aString);
+ }
+
+ public String getB1String2(String aString, String bString) {
+ return b1.getString2(aString, bString);
+ }
+
+ public int getB1Int(int i) {
+ return b1.getInt(i);
+ }
+
+ public String getC1String(String aString) {
+ return c1.getString(aString);
+ }
+
+ public String getC1String2(String aString, String bString) {
+ return c1.getString2(aString, bString);
+ }
+
+ public Integer getC1Integer(Integer i) {
+ return c1.getInteger(i);
+ }
+
+ public float getC1Float(float f) {
+ return c1.getFloat(f);
+ }
+} \ No newline at end of file
diff --git a/java/sca/vtest/wsbinding/wsdlelement/service/src/main/resources/bservice.wsdl b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/resources/bservice.wsdl
new file mode 100644
index 0000000000..521f077c46
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/resources/bservice.wsdl
@@ -0,0 +1,225 @@
+<?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 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://vtest.wsbinding.wsdlelement.service.bservice" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="wsdlelement" targetNamespace="http://vtest.wsbinding.wsdlelement.service.bservice" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/">
+ <wsdl:types>
+ <xsd:schema targetNamespace="http://vtest.wsbinding.wsdlelement.service.bservice" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="getString">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="in" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getStringResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="out" type="xsd:string"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getString2">
+ <xsd:complexType>
+ <xsd:sequence> <xsd:element name="in1" type="xsd:string"></xsd:element>
+ <xsd:element name="in2" type="xsd:string"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getString2Response">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="out" type="xsd:string"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getInt">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="in" type="xsd:int"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getIntResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="out" type="xsd:int"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="getStringRequest">
+ <wsdl:part element="tns:getString" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="getStringResponse">
+ <wsdl:part element="tns:getStringResponse" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="getString2Request">
+ <wsdl:part name="parameters" element="tns:getString2"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getString2Response">
+ <wsdl:part name="parameters" element="tns:getString2Response"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getIntRequest">
+ <wsdl:part name="parameters" element="tns:getInt"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getIntResponse">
+ <wsdl:part name="parameters" element="tns:getIntResponse"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getStringRequest">
+ <wsdl:part name="parameters" element="tns:getString"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getStringResponse">
+ <wsdl:part name="parameters" element="tns:getStringResponse"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getIntRequest">
+ <wsdl:part name="parameters" element="tns:getInt"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getIntResponse">
+ <wsdl:part name="parameters" element="tns:getIntResponse"></wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="BService1PortType">
+ <wsdl:operation name="getString">
+ <wsdl:input message="tns:getStringRequest"/>
+ <wsdl:output message="tns:getStringResponse"/>
+ </wsdl:operation>
+ <wsdl:operation name="getString2">
+ <wsdl:input message="tns:getString2Request"></wsdl:input>
+ <wsdl:output message="tns:getString2Response"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getInt">
+ <wsdl:input message="tns:getIntRequest"></wsdl:input>
+ <wsdl:output message="tns:getIntResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:portType name="BService2PortType">
+ <wsdl:operation name="getString">
+ <wsdl:input message="tns:getStringRequest"></wsdl:input>
+ <wsdl:output message="tns:getStringResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getInt">
+ <wsdl:input message="tns:getIntRequest"></wsdl:input>
+ <wsdl:output message="tns:getIntResponse"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="BService1SOAPBinding"
+ type="tns:BService1PortType"> <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="getString"> <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.service.bservice/getString" /> <wsdl:input> <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output> <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getString2">
+ <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.service.bservice/getString2" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getInt">
+ <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.service.bservice/getInt" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:binding name="BService2SOAPBinding"
+ type="tns:BService2PortType">
+ <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="getString">
+ <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.service.bservice/getString" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getInt">
+ <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.service.bservice/getInt" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:binding name="BService3SOAP12Binding"
+ type="tns:BService1PortType">
+ <soap12:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="getString">
+ <soap12:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.service.bservice/getString" />
+ <wsdl:input>
+ <soap12:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap12:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getString2">
+ <soap12:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.service.bservice/getString2" />
+ <wsdl:input>
+ <soap12:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap12:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getInt">
+ <soap12:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.service.bservice/getInt" />
+ <wsdl:input>
+ <soap12:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap12:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="BService">
+ <wsdl:port binding="tns:BService1SOAPBinding" name="BService1SOAP">
+ <soap:address location=""/>
+ </wsdl:port>
+ </wsdl:service>
+ <wsdl:service name="BService2">
+ <wsdl:port name="BService2Port" binding="tns:BService2SOAPBinding">
+ <soap:address location="" />
+ </wsdl:port>
+ </wsdl:service>
+ <wsdl:service name="BService3">
+ <wsdl:port name="BService3SOAP12" binding="tns:BService3SOAP12Binding">
+ <soap12:address location=""></soap12:address>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/java/sca/vtest/wsbinding/wsdlelement/service/src/main/resources/cservice.wsdl b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/resources/cservice.wsdl
new file mode 100644
index 0000000000..bdf294b473
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/resources/cservice.wsdl
@@ -0,0 +1,173 @@
+<?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 xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://vtest.wsbinding.wsdlelement.service.cservice" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="CService" targetNamespace="http://vtest.wsbinding.wsdlelement.service.cservice">
+ <wsdl:types>
+ <xsd:schema targetNamespace="http://vtest.wsbinding.wsdlelement.service.cservice" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="getFloat">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="in" type="xsd:float"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getFloatResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="out" type="xsd:float"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getInteger">
+ <xsd:complexType>
+ <xsd:sequence> <xsd:element name="in" type="xsd:integer"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getIntegerResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="out" type="xsd:integer"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getString2">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="in1" type="xsd:string"></xsd:element>
+ <xsd:element name="in2" type="xsd:string"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getString2Response">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="out" type="xsd:string"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getString">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="in" type="xsd:string"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="getStringResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="out" type="xsd:string"></xsd:element>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="getFloatRequest">
+ <wsdl:part element="tns:getFloat" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="getFloatResponse">
+ <wsdl:part element="tns:getFloatResponse" name="parameters"/>
+ </wsdl:message>
+ <wsdl:message name="getIntegerRequest">
+ <wsdl:part name="parameters" element="tns:getInteger"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getIntegerResponse">
+ <wsdl:part name="parameters" element="tns:getIntegerResponse"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getString2Request">
+ <wsdl:part name="parameters" element="tns:getString2"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getString2Response">
+ <wsdl:part name="parameters" element="tns:getString2Response"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getStringRequest">
+ <wsdl:part name="parameters" element="tns:getString"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getStringResponse">
+ <wsdl:part name="parameters" element="tns:getStringResponse"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getString2Request">
+ <wsdl:part name="parameters" element="tns:getString2"></wsdl:part>
+ </wsdl:message>
+ <wsdl:message name="getString2Response">
+ <wsdl:part name="parameters" element="tns:getString2Response"></wsdl:part>
+ </wsdl:message>
+ <wsdl:portType name="CServicePortType">
+ <wsdl:operation name="getFloat">
+ <wsdl:input message="tns:getFloatRequest"/>
+ <wsdl:output message="tns:getFloatResponse"/>
+ </wsdl:operation>
+ <wsdl:operation name="getInteger">
+ <wsdl:input message="tns:getIntegerRequest"></wsdl:input>
+ <wsdl:output message="tns:getIntegerResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getString">
+ <wsdl:input message="tns:getStringRequest"></wsdl:input>
+ <wsdl:output message="tns:getStringResponse"></wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getString2">
+ <wsdl:input message="tns:getString2Request"></wsdl:input>
+ <wsdl:output message="tns:getString2Response"></wsdl:output>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="CServiceSOAPBinding"
+ type="tns:CServicePortType"> <soap:binding style="document"
+ transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="getFloat"> <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.service.cservice/getFloat" /> <wsdl:input> <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output> <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getInteger">
+ <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.service.cservice/getInteger" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getString">
+ <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.service.cservice/getString" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getString2">
+ <soap:operation
+ soapAction="http://vtest.wsbinding.wsdlelement.service.cservice/getString2" />
+ <wsdl:input>
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="CService">
+ <wsdl:port binding="tns:CServiceSOAPBinding" name="CServiceSOAP">
+ <soap:address location=""/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/java/sca/vtest/wsbinding/wsdlelement/service/src/main/resources/wsdlelement.service.composite b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/resources/wsdlelement.service.composite
new file mode 100644
index 0000000000..0fa6897965
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/service/src/main/resources/wsdlelement.service.composite
@@ -0,0 +1,145 @@
+<?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://vtest.wsbinding.wsdlelement.service"
+ xmlns:wsdli="http://www.w3.org/2004/08/wsdl-instance"
+ name="wsdlelement.service">
+
+ <component name="BComponent1">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.impl.BServiceImpl"/>
+ <service name="BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.service.bservice#wsdl.service(BService)"/>
+ </service>
+ </component>
+
+ <component name="BComponent2">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.impl.BServiceImpl"/>
+ <service name="BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.service.bservice#wsdl.service(BService2)"/>
+ </service>
+ </component>
+
+ <component name="BComponent3">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.impl.BService2Impl"/>
+ <service name="BService2">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.BService2"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.service.bservice#wsdl.service(BService2)"/>
+ </service>
+ </component>
+
+ <component name="BComponent4">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.impl.BServiceImpl"/>
+ <service name="BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.service.bservice#wsdl.port(BService/BService1SOAP)"/>
+ </service>
+ </component>
+
+ <component name="BComponent5">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.impl.BService2Impl"/>
+ <service name="BService2">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.BService2"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.service.bservice#wsdl.binding(BService2SOAPBinding)"/>
+ </service>
+ </component>
+
+ <component name="BComponent6">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.impl.BServiceImpl"/>
+ <service name="BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.service.bservice#wsdl.service(BService3)"/>
+ </service>
+ </component>
+
+ <component name="CComponent">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.impl.CServiceImpl"/>
+ <service name="CService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.CService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.service.cservice#wsdl.service(CService)"/>
+ </service>
+ </component>
+
+ <component name="AComponent1">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.impl.AServiceImpl"/>
+ <reference name="b1" target="BComponent1/BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.service.bservice#wsdl.service(BService)" uri="http://localhost:8080/BComponent1"/>
+ </reference>
+ </component>
+
+ <component name="AComponent2">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.impl.AServiceImpl"/>
+ <reference name="b1" target="BComponent2/BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.service.bservice#wsdl.service(BService2)" uri="http://localhost:8080/BComponent2"/>
+ </reference>
+ </component>
+
+ <component name="AComponent3">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.impl.AServiceImpl"/>
+ <reference name="b2" target="BComponent3/BService2">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.BService2"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.service.bservice#wsdl.service(BService2)" uri="http://localhost:8080/BComponent3"/>
+ </reference>
+ </component>
+
+ <component name="AComponent4">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.impl.AServiceImpl"/>
+ <reference name="b1" target="BComponent4/BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.service.bservice#wsdl.port(BService/BService1SOAP)" uri="http://localhost:8080/BComponent4"/>
+ </reference>
+ <reference name="b2" target="BComponent3/BService2">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.BService2"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.service.bservice#wsdl.service(BService2)" uri="http://localhost:8080/BComponent3"/>
+ </reference>
+ <reference name="b3" target="BComponent5/BService2">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.BService2"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.service.bservice#wsdl.binding(BService2SOAPBinding)" uri="http://localhost:8080/BComponent5"/>
+ </reference>
+ <reference name="b4" target="BComponent6/BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.service.bservice#wsdl.service(BService3)" uri="http://localhost:8080/BComponent6"/>
+ </reference>
+ </component>
+
+ <component name="AComponent5">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.impl.AServiceImpl"/>
+ <reference name="b1" target="BComponent6/BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.service.bservice#wsdl.service(BService3)" uri="http://localhost:8080/BComponent6"/>
+ </reference>
+ </component>
+
+ <component name="DComponent1">
+ <implementation.java class="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.impl.DServiceImpl"/>
+ <reference name="b1" target="BComponent1/BService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.BService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.service.bservice#wsdl.service(BService)" uri="http://localhost:8080/BComponent1"/>
+ </reference>
+ <reference name="c1" target="CComponent/CService">
+ <interface.java interface="org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.CService"/>
+ <binding.ws wsdlElement="http://vtest.wsbinding.wsdlelement.service.cservice#wsdl.service(CService)" uri="http://localhost:8080/CComponent"/>
+ </reference>
+ </component>
+
+</composite>
diff --git a/java/sca/vtest/wsbinding/wsdlelement/service/src/test/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/WsdlElementServiceTestCase.java b/java/sca/vtest/wsbinding/wsdlelement/service/src/test/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/WsdlElementServiceTestCase.java
new file mode 100644
index 0000000000..22d2a80244
--- /dev/null
+++ b/java/sca/vtest/wsbinding/wsdlelement/service/src/test/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/WsdlElementServiceTestCase.java
@@ -0,0 +1,235 @@
+/*
+ * 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 org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service;
+
+import static org.junit.Assert.fail;
+import junit.framework.Assert;
+
+import org.apache.tuscany.sca.vtest.utilities.ServiceFinder;
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.AService;
+import org.apache.tuscany.sca.vtest.wsbinding.wsdlelement.service.DService;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * Tests the simplest form of the binding element wsdl.service with WSDL
+ * document described in section section 2.1 of SCA Web Services Binding
+ * V1.00<br>
+ */
+public class WsdlElementServiceTestCase {
+
+ protected static ServiceFinder serviceFinder;
+ protected static String compositeName = "wsdlelement.service.composite";
+ protected static AService a1;
+ protected static AService a2;
+ protected static AService a3;
+ protected static AService a4;
+ protected static AService a5;
+ protected static DService d;
+
+ @BeforeClass
+ public static void init() throws Exception {
+ try {
+ System.out.println("Setting up");
+ ServiceFinder.init(compositeName);
+ a1 = ServiceFinder.getService(AService.class, "AComponent1");
+ a2 = ServiceFinder.getService(AService.class, "AComponent2");
+ a3 = ServiceFinder.getService(AService.class, "AComponent3");
+ a4 = ServiceFinder.getService(AService.class, "AComponent4");
+ a5 = ServiceFinder.getService(AService.class, "AComponent5");
+ d = ServiceFinder.getService(DService.class, "DComponent1");
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+
+ /**
+ * Lines 38-41:<br>
+ * Service:<br>
+ * <WSDL-namespace-URI>#wsdl.service(<service-name>)<br>
+ * In this case, all the endpoints in the WSDL Service that have equivalent
+ * PortTypes with the SCA service or reference must be available to the SCA
+ * service or reference.<br>
+ * <br>
+ * Tests wsdl.service(BService)<br>
+ */
+ @Test
+ public void testWsdlElementService1() throws Exception {
+ String aName = a1.getName();
+ String b1Str1 = a1.getB1String("string1");
+ String b1Str2 = a1.getB1String2("string2", "string3");
+ int b1Int = a1.getB1Int(1000);
+
+ System.out.println(aName + ": " + b1Str1 + ", " + b1Str2 + ", " + b1Int);
+ Assert.assertEquals("AService", aName);
+ Assert.assertEquals("string1", b1Str1);
+ Assert.assertEquals("string2string3", b1Str2);
+ Assert.assertEquals(1000, b1Int);
+ }
+
+ /**
+ * Lines 38-41:<br>
+ * Service:<br>
+ * <br>
+ * Tests wsdl.service(BService2) with with BService where the service
+ * does not define getString2, so exceptions are expected.<br>
+ */
+ @Test
+ public void testWsdlElementService2() throws Exception {
+ String aName = a2.getName();
+ System.out.println(aName + ": ");
+ try {
+ a2.getB1String("string1");
+ fail("Should not be able to call getString");
+ } catch (Exception e) {
+ System.out.println(" Exception is expected: " + e.toString());
+ }
+ try {
+ a2.getB1String2("string2", "string3");
+ fail("Should not be able to call getString2");
+ } catch (Exception e) {
+ System.out.println(" Exception is expected: " + e.toString());
+ }
+ try {
+ a2.getB1Int(2000);
+ fail("Should not be able to call getInt");
+ } catch (Exception e) {
+ System.out.println(" Exception is expected: " + e.toString());
+ }
+ }
+
+ /**
+ * Lines 38-41:<br>
+ * Service:<br>
+ * <br>
+ * Tests wsdl.service(BService2) with BService2<br>
+ */
+ @Test
+ public void testWsdlElementService3() throws Exception {
+ String aName = a3.getName();
+ String b2Str1 = a3.getB2String("string1");
+ int b2Int = a3.getB2Int(1000);
+
+ System.out.println(aName + ": " + b2Str1 + ", " + b2Int);
+ Assert.assertEquals("AService", aName);
+ Assert.assertEquals("string1", b2Str1);
+ Assert.assertEquals(1000, b2Int);
+ }
+
+ /**
+ * Lines 38-41:<br>
+ * Service:<br>
+ * <br>
+ * Tests two references using wsdl.service.<br>
+ */
+ @Test
+ public void testWsdlElementService4() throws Exception {
+ String dName = d.getName();
+ String b1Str1 = d.getB1String("string1");
+ String b1Str2 = d.getB1String2("string2", "string3");
+ String c1Str1 = d.getC1String("string5");
+ String c1Str2 = d.getC1String2("string6", "string7");
+
+ int b1Int = d.getB1Int(4000);
+ float c1Float = d.getC1Float((float) 8.8);
+
+ Integer c1Integer = d.getC1Integer(new Integer(9000));
+
+ System.out.println(dName + ": " + b1Str1 + ", " + b1Str2 + ", " + b1Int + ", " + c1Str1 + ", " + c1Str2 + ", " + c1Float + ", " + c1Integer);
+ Assert.assertEquals("DService", dName);
+ Assert.assertEquals("string1", b1Str1);
+ Assert.assertEquals("string2string3", b1Str2);
+ Assert.assertEquals(4000, b1Int);
+ Assert.assertEquals("string5", c1Str1);
+ Assert.assertEquals("string6string7", c1Str2);
+ Assert.assertEquals((float) 8.8, c1Float);
+ Assert.assertEquals(new Integer(9000), c1Integer);
+ }
+
+ /**
+ * Lines 38-41:<br>
+ * Service:<br>
+ * <br>
+ * Tests mixed bindings of using wsdl.port, wsdl.service, wsdl.binding,
+ * and soap 1.2
+ * <br>
+ */
+ @Test
+ public void testWsdlElementService5() throws Exception {
+ String aName = a4.getName();
+ String b1Str1 = a4.getB1String("port");
+ String b1Str2 = a4.getB1String2("string1", "string2");
+ int b1Int = a4.getB1Int(1000);
+ System.out.println(aName);
+ System.out.println(" b1: " + b1Str1 + ", " + b1Str2 + ", " + b1Int);
+ Assert.assertEquals("AService", aName);
+ Assert.assertEquals("port", b1Str1);
+ Assert.assertEquals("string1string2", b1Str2);
+ Assert.assertEquals(1000, b1Int);
+
+ String b2Str1 = a4.getB2String("service");
+ int b2Int = a4.getB2Int(2000);
+ System.out.println(" b2: " + b2Str1 + ", " + b2Int);
+ Assert.assertEquals("AService", aName);
+ Assert.assertEquals("service", b2Str1);
+ Assert.assertEquals(2000, b2Int);
+
+ String b3Str1 = a4.getB3String("binding");
+ int b3Int = a4.getB3Int(3000);
+ System.out.println(" b3: " + b3Str1 + ", " + b3Int);
+ Assert.assertEquals("binding", b3Str1);
+ Assert.assertEquals(3000, b3Int);
+
+ String b4Str1 = a4.getB4String("soap12");
+ String b4Str2 = a4.getB4String2("string3", "string4");
+ int b4Int = a4.getB4Int(4000);
+ System.out.println(" b4: " + b4Str1 + ", " + b4Str2 + ", " + b4Int);
+ Assert.assertEquals("soap12", b4Str1);
+ Assert.assertEquals("string3string4", b4Str2);
+ Assert.assertEquals(4000, b4Int);
+
+ }
+
+ /**
+ * Lines 38-41:<br>
+ * Service:<br>
+ * <br>
+ * Tests wsdl.service(BService3) which uses SOAP 1.2<br>
+ */
+ @Test
+ public void testWsdlElementService6() throws Exception {
+ String aName = a5.getName();
+ String b1Str1 = a5.getB1String("string1");
+ String b1Str2 = a5.getB1String2("string2", "string3");
+ int b1Int = a5.getB1Int(6000);
+
+ System.out.println(aName + ": " + b1Str1 + ", " + b1Str2 + ", " + b1Int);
+ Assert.assertEquals("AService", aName);
+ Assert.assertEquals("string1", b1Str1);
+ Assert.assertEquals("string2string3", b1Str2);
+ Assert.assertEquals(6000, b1Int);
+ }
+
+ @AfterClass
+ public static void destroy() throws Exception {
+ System.out.println("Cleaning up");
+ ServiceFinder.cleanup();
+ }
+}