diff options
Diffstat (limited to 'java/sca-contrib/vtest/wsbinding/wsdlelement')
46 files changed, 3838 insertions, 0 deletions
diff --git a/java/sca-contrib/vtest/wsbinding/wsdlelement/binding/pom.xml b/java/sca-contrib/vtest/wsbinding/wsdlelement/binding/pom.xml new file mode 100644 index 0000000000..648aa920e8 --- /dev/null +++ b/java/sca-contrib/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>2.0-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>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-ws-axis2</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-host-tomcat</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-java-runtime</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + </dependencies> +</project> diff --git a/java/sca-contrib/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/AService.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/AService.java new file mode 100644 index 0000000000..2f6db92318 --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/BService.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/BService.java new file mode 100644 index 0000000000..a040adb113 --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/BService2.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/BService2.java new file mode 100644 index 0000000000..3195263584 --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/CService.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/CService.java new file mode 100644 index 0000000000..aed5abebf4 --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/DService.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/DService.java new file mode 100644 index 0000000000..3386ea709f --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/AServiceImpl.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/AServiceImpl.java new file mode 100644 index 0000000000..853cc74d4e --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.Reference; +import org.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/BService2Impl.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/BService2Impl.java new file mode 100644 index 0000000000..43051d6f10 --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/BServiceImpl.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/BServiceImpl.java new file mode 100644 index 0000000000..5496362e34 --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/CServiceImpl.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/CServiceImpl.java new file mode 100644 index 0000000000..63753d4ba7 --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/DServiceImpl.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/binding/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/impl/DServiceImpl.java new file mode 100644 index 0000000000..0a268ff447 --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.Reference; +import org.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/binding/src/main/resources/bservice.wsdl b/java/sca-contrib/vtest/wsbinding/wsdlelement/binding/src/main/resources/bservice.wsdl new file mode 100644 index 0000000000..8ce0fbaeb8 --- /dev/null +++ b/java/sca-contrib/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-contrib/vtest/wsbinding/wsdlelement/binding/src/main/resources/cservice.wsdl b/java/sca-contrib/vtest/wsbinding/wsdlelement/binding/src/main/resources/cservice.wsdl new file mode 100644 index 0000000000..ff151faa7a --- /dev/null +++ b/java/sca-contrib/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-contrib/vtest/wsbinding/wsdlelement/binding/src/main/resources/wsdlelement.binding.composite b/java/sca-contrib/vtest/wsbinding/wsdlelement/binding/src/main/resources/wsdlelement.binding.composite new file mode 100644 index 0000000000..6b97b5e602 --- /dev/null +++ b/java/sca-contrib/vtest/wsbinding/wsdlelement/binding/src/main/resources/wsdlelement.binding.composite @@ -0,0 +1,114 @@ +<?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)" + uri="http://localhost:8085/BComponent1"/> + </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)" + uri="http://localhost:8085/BComponent2"/> + </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)" + uri="http://localhost:8085/BComponent3"/> + </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)" + uri="http://localhost:8085/BComponent4"/> + </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)" + uri="http://localhost:8085/CComponent"/> + </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:8085/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:8085/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:8085/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:8085/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:8085/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:8085/CComponent"/> + </reference> + </component> + +</composite> diff --git a/java/sca-contrib/vtest/wsbinding/wsdlelement/binding/src/test/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/binding/WsdlElementBindingTestCase.java b/java/sca-contrib/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-contrib/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-contrib/vtest/wsbinding/wsdlelement/pom.xml b/java/sca-contrib/vtest/wsbinding/wsdlelement/pom.xml new file mode 100644 index 0000000000..13b0f4ea8c --- /dev/null +++ b/java/sca-contrib/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>2.0-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>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-ws-axis2</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>vtest-utilities</artifactId> + <version>2.0-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-contrib/vtest/wsbinding/wsdlelement/port/pom.xml b/java/sca-contrib/vtest/wsbinding/wsdlelement/port/pom.xml new file mode 100644 index 0000000000..e47ca9c9da --- /dev/null +++ b/java/sca-contrib/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>2.0-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>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-ws-axis2</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-host-tomcat</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-java-runtime</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + </dependencies> +</project> diff --git a/java/sca-contrib/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/AService.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/AService.java new file mode 100644 index 0000000000..6fa9906d45 --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/BService.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/BService.java new file mode 100644 index 0000000000..978d515f92 --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/BService2.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/BService2.java new file mode 100644 index 0000000000..766139ee92 --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/CService.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/CService.java new file mode 100644 index 0000000000..ee9ca25a4b --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/DService.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/DService.java new file mode 100644 index 0000000000..80d998d1a6 --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/AServiceImpl.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/AServiceImpl.java new file mode 100644 index 0000000000..bec82776bf --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.Reference; +import org.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/BService2Impl.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/BService2Impl.java new file mode 100644 index 0000000000..b379a2e3ef --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/BServiceImpl.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/BServiceImpl.java new file mode 100644 index 0000000000..069308a520 --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/CServiceImpl.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/CServiceImpl.java new file mode 100644 index 0000000000..7ad9e3066c --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/DServiceImpl.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/port/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/impl/DServiceImpl.java new file mode 100644 index 0000000000..58ae1e9577 --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.Reference; +import org.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/port/src/main/resources/bservice.wsdl b/java/sca-contrib/vtest/wsbinding/wsdlelement/port/src/main/resources/bservice.wsdl new file mode 100644 index 0000000000..d5c8d72dc1 --- /dev/null +++ b/java/sca-contrib/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-contrib/vtest/wsbinding/wsdlelement/port/src/main/resources/cservice.wsdl b/java/sca-contrib/vtest/wsbinding/wsdlelement/port/src/main/resources/cservice.wsdl new file mode 100644 index 0000000000..8a715a2081 --- /dev/null +++ b/java/sca-contrib/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-contrib/vtest/wsbinding/wsdlelement/port/src/main/resources/wsdlelement.port.composite b/java/sca-contrib/vtest/wsbinding/wsdlelement/port/src/main/resources/wsdlelement.port.composite new file mode 100644 index 0000000000..5b9b77683e --- /dev/null +++ b/java/sca-contrib/vtest/wsbinding/wsdlelement/port/src/main/resources/wsdlelement.port.composite @@ -0,0 +1,115 @@ +<?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)" + uri="http://localhost:8085/BComponent1"/> + </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)" + uri="http://localhost:8085/BComponent2"/> + </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)" + uri="http://localhost:8085/BComponent3"/> + </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)" + uri="http://localhost:8085/BComponent4"/> + </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)" + uri="http://localhost:8085/CComponent"/> + </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:8085/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:8085/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:8085/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:8085/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:8085/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:8085/CComponent"/> + </reference> + </component> + +</composite> diff --git a/java/sca-contrib/vtest/wsbinding/wsdlelement/port/src/test/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/port/WsdlElementPortTestCase.java b/java/sca-contrib/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-contrib/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-contrib/vtest/wsbinding/wsdlelement/service/pom.xml b/java/sca-contrib/vtest/wsbinding/wsdlelement/service/pom.xml new file mode 100644 index 0000000000..39f2c45921 --- /dev/null +++ b/java/sca-contrib/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>2.0-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>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-ws-axis2</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-host-tomcat</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-java-runtime</artifactId> + <version>2.0-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + </dependencies> +</project> diff --git a/java/sca-contrib/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/AService.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/AService.java new file mode 100644 index 0000000000..464a834570 --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/BService.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/BService.java new file mode 100644 index 0000000000..37ccee6cd4 --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/BService2.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/BService2.java new file mode 100644 index 0000000000..c8355f8f1b --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/CService.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/CService.java new file mode 100644 index 0000000000..d3f5ab1c47 --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/DService.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/DService.java new file mode 100644 index 0000000000..1a64706a29 --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/AServiceImpl.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/AServiceImpl.java new file mode 100644 index 0000000000..986027c08a --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.Reference; +import org.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/BService2Impl.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/BService2Impl.java new file mode 100644 index 0000000000..a58297de69 --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/BServiceImpl.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/BServiceImpl.java new file mode 100644 index 0000000000..3ecbc95901 --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/CServiceImpl.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/CServiceImpl.java new file mode 100644 index 0000000000..05af362a25 --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/DServiceImpl.java b/java/sca-contrib/vtest/wsbinding/wsdlelement/service/src/main/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/impl/DServiceImpl.java new file mode 100644 index 0000000000..dadbb63873 --- /dev/null +++ b/java/sca-contrib/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.oasisopen.sca.annotation.Reference; +import org.oasisopen.sca.annotation.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-contrib/vtest/wsbinding/wsdlelement/service/src/main/resources/bservice.wsdl b/java/sca-contrib/vtest/wsbinding/wsdlelement/service/src/main/resources/bservice.wsdl new file mode 100644 index 0000000000..521f077c46 --- /dev/null +++ b/java/sca-contrib/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-contrib/vtest/wsbinding/wsdlelement/service/src/main/resources/cservice.wsdl b/java/sca-contrib/vtest/wsbinding/wsdlelement/service/src/main/resources/cservice.wsdl new file mode 100644 index 0000000000..bdf294b473 --- /dev/null +++ b/java/sca-contrib/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-contrib/vtest/wsbinding/wsdlelement/service/src/main/resources/wsdlelement.service.composite b/java/sca-contrib/vtest/wsbinding/wsdlelement/service/src/main/resources/wsdlelement.service.composite new file mode 100644 index 0000000000..9801ecd037 --- /dev/null +++ b/java/sca-contrib/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)" uri="http://localhost:8085/BComponent1"/> + </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)" uri="http://localhost:8085/BComponent2"/> + </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)" uri="http://localhost:8085/BComponent3"/> + </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)" uri="http://localhost:8085/BComponent4"/> + </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)" uri="http://localhost:8085/BComponent5"/> + </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)" uri="http://localhost:8085/BComponent6"/> + </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)" uri="http://localhost:8085/CComponent"/> + </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:8085/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:8085/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:8085/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:8085/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:8085/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:8085/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:8085/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:8085/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:8085/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:8085/CComponent"/> + </reference> + </component> + +</composite> diff --git a/java/sca-contrib/vtest/wsbinding/wsdlelement/service/src/test/java/org/apache/tuscany/sca/vtest/wsbinding/wsdlelement/service/WsdlElementServiceTestCase.java b/java/sca-contrib/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-contrib/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(); + } +} |