diff options
Diffstat (limited to '')
4 files changed, 392 insertions, 0 deletions
diff --git a/sandbox/sebastien/java/dynamic/itest/ws-jaxws/external-client/pom.xml b/sandbox/sebastien/java/dynamic/itest/ws-jaxws/external-client/pom.xml new file mode 100644 index 0000000000..b613a4ad3b --- /dev/null +++ b/sandbox/sebastien/java/dynamic/itest/ws-jaxws/external-client/pom.xml @@ -0,0 +1,122 @@ +<?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>tuscany-itest</artifactId> + <version>2.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <artifactId>itest-ws-jaxws-external-client</artifactId> + <name>Apache Tuscany SCA iTest WS JAXWS External Client</name> + + <dependencies> + + <!-- Core distribution --> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-feature-core</artifactId> + <type>pom</type> + <version>2.0-SNAPSHOT</version> + </dependency> + + <!-- Bindings --> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-ws-runtime-jaxws-ri</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> + + + </dependencies> + + <build> + <finalName>${artifactId}</finalName> + + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + <version>1.0</version> + <executions> + <execution> + <id>add-source</id> + <phase>generate-sources</phase> + <goals> + <goal>add-test-source</goal> + </goals> + <configuration> + <sources> + <source>target/jaxws-source</source> + </sources> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>jaxws-maven-plugin</artifactId> + <version>1.12</version> + <!-- Explicitly add the transitive dependencies for jaxws-api + http://jira.codehaus.org/browse/MEV-498 + --> + <dependencies> + <dependency> + <groupId>javax.jws</groupId> + <artifactId>jsr181-api</artifactId> + <version>1.0-MR1</version> + </dependency> + <dependency> + <groupId>javax.annotation</groupId> + <artifactId>jsr250-api</artifactId> + <version>1.0</version> + </dependency> + </dependencies> + <executions> + <execution> + <id>wsimport1</id> + <phase>process-resources</phase> + <goals> + <goal>wsimport</goal> + </goals> + <configuration> + <packageName>org.apache.tuscany.sca.binding.ws.jaxws.sca</packageName> + <wsdlDirectory>${basedir}/target/classes</wsdlDirectory> + <wsdlFiles> + <wsdlFile>HelloWorldImplService.wsdl</wsdlFile> + </wsdlFiles> + <staleFile>${project.build.directory}/jaxws/stale/.wsimport1StaleFlag</staleFile> + </configuration> + </execution> + </executions> + <configuration> + <target>2.1</target> + <sourceDestDir>${project.build.directory}/jaxws-source</sourceDestDir> + <resourceDestDir>${project.build.directory}/jaxws-source</resourceDestDir> + <verbose>true</verbose> + <xnocompile>true</xnocompile> + </configuration> + </plugin> + </plugins> + </build> + +</project> diff --git a/sandbox/sebastien/java/dynamic/itest/ws-jaxws/external-client/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/external/client/HelloWorldClientLauncher.java b/sandbox/sebastien/java/dynamic/itest/ws-jaxws/external-client/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/external/client/HelloWorldClientLauncher.java new file mode 100644 index 0000000000..da40a7f442 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/itest/ws-jaxws/external-client/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/external/client/HelloWorldClientLauncher.java @@ -0,0 +1,73 @@ +/* + * 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.binding.ws.jaxws.external.client; + +import java.io.File; +import java.net.URL; + +import javax.xml.namespace.QName; +import javax.xml.ws.Service; + +import org.apache.tuscany.sca.binding.ws.jaxws.sca.Exception_Exception; +import org.apache.tuscany.sca.binding.ws.jaxws.sca.HelloWorldImpl; + +public class HelloWorldClientLauncher { + + public HelloWorldImpl wsProxy; + + public HelloWorldClientLauncher(){ + } + + public void createClient() throws Exception{ + System.out.println(">>> Starting external JAXWS client "); + + // default JVM JAXWS support + QName serviceName = new QName("http://jaxws.ws.binding.sca.tuscany.apache.org/", "HelloWorldImplService"); + QName portName = new QName("http://jaxws.ws.binding.sca.tuscany.apache.org/", "HelloWorldImplPort"); + //URL wsdlLocation = new File("../external-client/target/classes/helloworld-sca.wsdl").toURL(); + URL wsdlLocation = new File("../external-client/target/classes/HelloWorldImplService.wsdl").toURL(); + javax.xml.ws.Service webService = Service.create(wsdlLocation, serviceName); + wsProxy = (HelloWorldImpl) webService.getPort(portName, HelloWorldImpl.class); + } + + public void destroyClient(){ + System.out.println(">>> Stopping external JAXWS client: "); + // TODO + } + + public String getGreetings(String name){ + System.out.println("Entering External Client HelloWorld.getGreetings: " + name); + String response = wsProxy.getGreetings(name); + System.out.println("Leaving External Client HelloWorld.getGreetings: " + response); + return response; + } + + public String getGreetingsException(String name) throws Exception_Exception { + return wsProxy.getGreetingsException(name); + } + + public static void main(String[] args) throws Exception { + HelloWorldClientLauncher launcher = new HelloWorldClientLauncher(); + launcher.createClient(); + launcher.getGreetings("Fred"); + launcher.destroyClient(); + } + +} diff --git a/sandbox/sebastien/java/dynamic/itest/ws-jaxws/external-client/src/main/resources/HelloWorldImplService.wsdl b/sandbox/sebastien/java/dynamic/itest/ws-jaxws/external-client/src/main/resources/HelloWorldImplService.wsdl new file mode 100644 index 0000000000..11ed0a3353 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/itest/ws-jaxws/external-client/src/main/resources/HelloWorldImplService.wsdl @@ -0,0 +1,104 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<!-- + * 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. +--> +<!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.1.7-b01-. --> +<definitions targetNamespace="http://jaxws.ws.binding.sca.tuscany.apache.org/" name="HelloWorldImplService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://jaxws.ws.binding.sca.tuscany.apache.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> + <types> + <xsd:schema> + <xsd:import namespace="http://jaxws.ws.binding.sca.tuscany.apache.org/" schemaLocation="HelloWorldImplService_schema1.xsd"/> + </xsd:schema> + </types> + <message name="getGreetings"> + <part name="parameters" element="tns:getGreetings"/> + </message> + <message name="getGreetingsResponse"> + <part name="parameters" element="tns:getGreetingsResponse"/> + </message> + <message name="getGreetingsException"> + <part name="parameters" element="tns:getGreetingsException"/> + </message> + <message name="getGreetingsExceptionResponse"> + <part name="parameters" element="tns:getGreetingsExceptionResponse"/> + </message> + <message name="Exception"> + <part name="fault" element="tns:Exception"/> + </message> + <message name="getGreetingsComplex"> + <part name="parameters" element="tns:getGreetingsComplex"/> + </message> + <message name="getGreetingsComplexResponse"> + <part name="parameters" element="tns:getGreetingsComplexResponse"/> + </message> + <portType name="HelloWorldImpl"> + <operation name="getGreetings"> + <input message="tns:getGreetings"/> + <output message="tns:getGreetingsResponse"/> + </operation> + <operation name="getGreetingsException"> + <input message="tns:getGreetingsException"/> + <output message="tns:getGreetingsExceptionResponse"/> + <fault message="tns:Exception" name="Exception"/> + </operation> + <operation name="getGreetingsComplex"> + <input message="tns:getGreetingsComplex"/> + <output message="tns:getGreetingsComplexResponse"/> + </operation> + </portType> + <binding name="HelloWorldImplPortBinding" type="tns:HelloWorldImpl"> + <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/> + <operation name="getGreetings"> + <soap:operation soapAction=""/> + <input> + <soap:body use="literal"/> + </input> + <output> + <soap:body use="literal"/> + </output> + </operation> + <operation name="getGreetingsException"> + <soap:operation soapAction=""/> + <input> + <soap:body use="literal"/> + </input> + <output> + <soap:body use="literal"/> + </output> + <fault name="Exception"> + <soap:fault name="Exception" use="literal"/> + </fault> + </operation> + <operation name="getGreetingsComplex"> + <soap:operation soapAction=""/> + <input> + <soap:body use="literal"/> + </input> + <output> + <soap:body use="literal"/> + </output> + </operation> + </binding> + <service name="HelloWorldImplService"> + <port name="HelloWorldImplPort" binding="tns:HelloWorldImplPortBinding"> + <soap:address location="http://localhost:8085/HelloWorldService/HelloWorld"/> + </port> + </service> +</definitions> + + + diff --git a/sandbox/sebastien/java/dynamic/itest/ws-jaxws/external-client/src/main/resources/HelloWorldImplService_schema1.xsd b/sandbox/sebastien/java/dynamic/itest/ws-jaxws/external-client/src/main/resources/HelloWorldImplService_schema1.xsd new file mode 100644 index 0000000000..3c347570a0 --- /dev/null +++ b/sandbox/sebastien/java/dynamic/itest/ws-jaxws/external-client/src/main/resources/HelloWorldImplService_schema1.xsd @@ -0,0 +1,93 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<!-- + * 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. +--> +<xs:schema version="1.0" targetNamespace="http://jaxws.ws.binding.sca.tuscany.apache.org/" xmlns:tns="http://jaxws.ws.binding.sca.tuscany.apache.org/" xmlns:xs="http://www.w3.org/2001/XMLSchema"> + + <xs:element name="Exception" type="tns:Exception"/> + + <xs:element name="getGreetings" type="tns:getGreetings"/> + + <xs:element name="getGreetingsComplex" type="tns:getGreetingsComplex"/> + + <xs:element name="getGreetingsComplexResponse" type="tns:getGreetingsComplexResponse"/> + + <xs:element name="getGreetingsException" type="tns:getGreetingsException"/> + + <xs:element name="getGreetingsExceptionResponse" type="tns:getGreetingsExceptionResponse"/> + + <xs:element name="getGreetingsResponse" type="tns:getGreetingsResponse"/> + + <xs:complexType name="getGreetingsException"> + <xs:sequence> + <xs:element name="arg0" type="xs:string" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="getGreetingsExceptionResponse"> + <xs:sequence> + <xs:element name="return" type="xs:string" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="Exception"> + <xs:sequence> + <xs:element name="message" type="xs:string" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="getGreetings"> + <xs:sequence> + <xs:element name="arg0" type="xs:string" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="getGreetingsResponse"> + <xs:sequence> + <xs:element name="return" type="xs:string" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="getGreetingsComplex"> + <xs:sequence> + <xs:element name="arg0" type="tns:foo" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="foo"> + <xs:sequence> + <xs:element name="bars" type="tns:bar" nillable="true" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="bar"> + <xs:sequence> + <xs:element name="b" type="xs:boolean" minOccurs="0"/> + <xs:element name="s" type="xs:string" minOccurs="0"/> + <xs:element name="x" type="xs:int"/> + <xs:element name="y" type="xs:int" minOccurs="0"/> + </xs:sequence> + </xs:complexType> + + <xs:complexType name="getGreetingsComplexResponse"> + <xs:sequence> + <xs:element name="return" type="tns:foo" minOccurs="0"/> + </xs:sequence> + </xs:complexType> +</xs:schema> + |