diff options
author | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2012-03-07 08:40:04 +0000 |
---|---|---|
committer | antelder <antelder@13f79535-47bb-0310-9956-ffa450edef68> | 2012-03-07 08:40:04 +0000 |
commit | 61d713f05fa632b03c3ec38ca224e28de5f0ffd8 (patch) | |
tree | 4334322a90bda845473345e997c099f29477fd68 /sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws | |
parent | f742a208acdf8fdfa7352d16e083403b76998d06 (diff) |
Tag for beta4 Rc1
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1297882 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws')
322 files changed, 22475 insertions, 0 deletions
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/README b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/README new file mode 100644 index 0000000000..0efac242c2 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/README @@ -0,0 +1,135 @@ +
+Features/Tests
+==============
+
+General Patterns
+----------------
+For simple synchronous tests:
+
+Jaxws client -> (b.ws service) SCA Component (b.ws reference) -> Jaxws Service
+ /\ /\ |
+ | use | use | gen
+ | | \/
+Java Interface<------------------Java Interface<---------gen----------WSDL
+
+
+For message format the external service don't get involved in the varying message formats,
+They are still doing doc/lit/wrapped:
+
+TODO - we could extend testing to include JAXWS edpoints thatunderstand the different formats
+
+JUnit client -> SCA Component (b.ws reference) -> (b.ws service) SCA component -> Jaxws Service
+ /\ /\ /\ /\ |
+ | | config | config | |
+ | use | | | use | gen
+ | -----------WSDL------- | |
+ | | \/
+Java Interface<-------------------------------------------------Java Interface<----gen---WSDL
+
+For SCA callback or asynchronous tests the external services don't get involved in the
+callback or aysnc request:
+
+JUnit client -> SCA Component (b.ws reference) -> (b.ws service) SCA component -> Jaxws Service
+
+
+Java First
+----------
+implemenation.java
+interface.java
+ simple
+ JAXB
+ SDO - TODO
+?wsdl - gens wsdl
+
+Java First with JAX-WS annotations
+----------------------------------
+WSDL -> wsimport -> implemenation.java
+interface.java
+?wsdl - re-gens wsdl
+
+WSDL first
+----------
+implemenation.java -> wsgen -> wsdl
+interface.wsdl
+?wsld - provided wsdl
+
+Callback
+--------
+Various combinations of specified callback and default configuration
+WSCallback ws policy - TODO
+
+WSDL Styles
+-----------
+
+rpc-lit - supported
+ WSDL configuration where
+ message parts use types - <part name="s" type="xsd:string"/>
+ binding style set to rpc - <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
+ body uses literal - <soap:body use="literal" namespace="http://ws.binding.sca.tuscany.apache.org/rpclit/getGreetingsNamespace" />
+ Note the use of a namespace on the body element to set the namespace of the wrapper child of the body element
+doc-lit(or bare) - supported (however see note below)
+ WS-I BP1.1 4.7.6 states that an operation signature is a
+ "fully qualified name of the child element of SOAP body of the SOAP input message"
+ to make this true for doc-lit encoding you have to design the WSDL to wrap the parameters
+ in an appropriate type. Hence doc-literal-wrapped is supported which encompasses this wrapping style.
+ For bare style interfaces you have to mark the Java service interface as follows
+ SOAP binding is set to - @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+ WSDL configuration where
+ message parts use elements - <part name="parameters" element="tns:getGreetings"/>
+ the elements are directly implemented by the operation parameter type
+ binding style set to document - <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+ body uses literal - <soap:body use="literal"/>
+doc-lit-wrapped - supported
+ WSDL configuration where
+ message parts use elements - <part name="parameters" element="tns:getGreetings"/>
+ the elements are implemented by wrapper types following the name of the operation
+ binding style set to document - <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+ body uses literal - <soap:body use="literal"/>
+rpc-encoded - not supported
+ not WS-I compliant
+doc-encoded - not supported
+ not WS-I compliant
+
+================================== TODO below =========================
+
+Policy
+------
+ws-policy (aac)
+
+Java First
+ WSpolicy from Policy set in definitions.xml
+ ?wsdl - gens wsdl + policy
+WSDL first
+ WSpolicy from WSDL
+ ?wsld - uses wsdl + policy
+ Policy signing
+
+alternative bindings
+--------------------
+SOAP/HTTP
+SOAP/HTTPS
+SOAP/JMS
+ How to retrieve WSDL for non-http bindings (a SHOULD in the spec)
+
+asynchInvocation Intent
+-----------------------
+ Service
+ Client
+
+noListener Intent
+-----------------
+ ws-makeconnetion?
+
+
+SOAP1.1 intent
+--------------
+
+SOAP1.2 intent
+--------------
+
+MTOM intent
+--------------
+
+Streaming
+---------
+Do we need to support?
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/pom.xml new file mode 100644 index 0000000000..e4754ee948 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/pom.xml @@ -0,0 +1,63 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-ws</artifactId> + <version>2.0-Beta4</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <artifactId>itest-ws-authentication-basic</artifactId> + <name>Apache Tuscany SCA iTest WS with Authentication Basic</name> + + <dependencies> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-base-runtime-pom</artifactId> + <type>pom</type> + <version>2.0-Beta4</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-ws-runtime-axis2</artifactId> + <version>2.0-Beta4</version> + </dependency> + + <dependency> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jetty</artifactId> + <version>6.1.19</version> + </dependency> + + <dependency> + <groupId>org.codehaus.woodstox</groupId> + <artifactId>wstx-asl</artifactId> + <version>3.2.9</version> + </dependency> + </dependencies> + + <build> + <finalName>${project.artifactId}</finalName> + </build> +</project> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorld.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorld.java new file mode 100644 index 0000000000..98eb6e361b --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorld.java @@ -0,0 +1,29 @@ +/* + * 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.axis2.helloworld; + +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface HelloWorld { + + String getGreetings(String s); + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldClient.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldClient.java new file mode 100644 index 0000000000..2c6c4fc92c --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldClient.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.binding.ws.axis2.helloworld; + +import org.oasisopen.sca.annotation.Reference; + +public class HelloWorldClient implements HelloWorld { + + @Reference + public HelloWorld helloWorldWS; + + public String getGreetings(String s) { + String response = helloWorldWS.getGreetings(s); + System.out.println("At client: " + response); + return response; + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldService.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldService.java new file mode 100644 index 0000000000..885844260a --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldService.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.binding.ws.axis2.helloworld; + +import javax.security.auth.Subject; + +import org.oasisopen.sca.RequestContext; +import org.oasisopen.sca.annotation.Context; + +public class HelloWorldService implements HelloWorld { + + @Context + protected RequestContext requestContext; + + public String getGreetings(String name) { + Subject subject = requestContext.getSecuritySubject(); + String response = "Hello " + name + " "; + + if (subject == null){ + response += "null subject"; + } else { + response += subject.getPrincipals().iterator().next().getName(); + } + + System.out.println("At service: " + response); + return response; + } +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..7e71dd465f --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> +<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" + xmlns:itest="http://www.tuscany.apache.org/itests/binding/ws/axis2"> + <deployable composite="itest:HelloWorld"/> +</contribution>
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions new file mode 100644 index 0000000000..04fe620be4 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions @@ -0,0 +1,17 @@ +# 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.
+org/apache/tuscany/sca/binding/ws/axis2/helloworld/definitions.xml
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/definitions.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/definitions.xml new file mode 100644 index 0000000000..d4e651b271 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/definitions.xml @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="ASCII"?> +<!-- + * 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. +--> +<definitions xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" + targetNamespace="http://www.tuscany.apache.org/itests/binding/ws/axis2" + xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912" + xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1" + xmlns:itest="http://www.tuscany.apache.org/itests/binding/ws/axis2" > + + + <sca:policySet name="BasicAuthenticationPolicySet" + attachTo="//sca:binding.ws" + provides="clientAuthentication.transport" + appliesTo="//sca:binding.ws"> + <tuscany:basicAuthentication> + <tuscany:userName>myname</tuscany:userName> + <tuscany:password>mypassword</tuscany:password> + </tuscany:basicAuthentication> + </sca:policySet> + + <sca:policySet name="ImplementationIdentityPolicySet" + attachTo="//sca:implementation.java" + provides="tuscany:identity" + appliesTo="//sca:implementation.java"> + <tuscany:securityIdentity> + <tuscany:useCallerIdentity/> + </tuscany:securityIdentity> + </sca:policySet> + +</definitions>
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.composite new file mode 100644 index 0000000000..166565baa0 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.composite @@ -0,0 +1,45 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912" + xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912" + targetNamespace="http://www.tuscany.apache.org/itests/binding/ws/axis2" + name="HelloWorld"> + + <component name="HelloWorldClient"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.helloworld.HelloWorldClient"/> + <reference name="helloWorldWS" requires="authentication"> + <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" /> + <binding.ws wsdlElement="http://helloworld#wsdl.port(HelloWorldService/HelloWorldSoapPort1)"/> + </reference> + </component> + + <component name="HelloWorldService" requires="authentication"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.helloworld.HelloWorldService"/> + <service name="HelloWorld"> + <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" /> + <binding.ws wsdlElement="http://helloworld#wsdl.binding(HelloWorldSoapBinding)"> + <wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing"> + <wsa:Address>http://localhost:8085/services/HelloWorldWebService1</wsa:Address> + </wsa:EndpointReference> + </binding.ws> + </service> + </component> + +</composite> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.wsdl new file mode 100644 index 0000000000..a352696b8e --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.wsdl @@ -0,0 +1,90 @@ +<?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 targetNamespace="http://helloworld" + xmlns:tns="http://helloworld" + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" + xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + name="helloworld"> + + <wsdl:types> + <schema elementFormDefault="qualified" targetNamespace="http://helloworld" xmlns="http://www.w3.org/2001/XMLSchema"> + + <element name="getGreetings"> + <complexType> + <sequence> + <element name="name" type="xsd:string"/> + </sequence> + </complexType> + </element> + + <element name="getGreetingsResponse"> + <complexType> + <sequence> + <element name="getGreetingsReturn" type="xsd:string"/> + </sequence> + </complexType> + </element> + + </schema> + </wsdl:types> + + <wsdl:message name="getGreetingsRequest"> + <wsdl:part element="tns:getGreetings" name="parameters"/> + </wsdl:message> + + <wsdl:message name="getGreetingsResponse"> + <wsdl:part element="tns:getGreetingsResponse" name="parameters"/> + </wsdl:message> + + <wsdl:portType name="HelloWorld"> + <wsdl:operation name="getGreetings"> + <wsdl:input message="tns:getGreetingsRequest" name="getGreetingsRequest"/> + <wsdl:output message="tns:getGreetingsResponse" name="getGreetingsResponse"/> + </wsdl:operation> + </wsdl:portType> + + <wsdl:binding name="HelloWorldSoapBinding" type="tns:HelloWorld"> + <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> + <wsdl:operation name="getGreetings"> + <wsdlsoap:operation soapAction=""/> + <wsdl:input name="getGreetingsRequest"> + <wsdlsoap:body use="literal"/> + </wsdl:input> + <wsdl:output name="getGreetingsResponse"> + <wsdlsoap:body use="literal"/> + </wsdl:output> + </wsdl:operation> + + </wsdl:binding> + + <wsdl:service name="HelloWorldService"> + <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort1"> + <wsdlsoap:address location="http://localhost:8085/services/HelloWorldWebService1"/> + </wsdl:port> + <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort2"> + <wsdlsoap:address location="http://localhost:8085/services/HelloWorldWebService2"/> + </wsdl:port> + <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort3"> + <wsdlsoap:address location="http://localhost:8085/services/HelloWorldWebService3"/> + </wsdl:port> + </wsdl:service> + +</wsdl:definitions> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/HelloworldTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/HelloworldTestCase.java new file mode 100644 index 0000000000..380fc5b0f5 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/authentication-basic/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/HelloworldTestCase.java @@ -0,0 +1,52 @@ +/* + * 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.axis2; + +import junit.framework.TestCase; + +import org.apache.tuscany.sca.binding.ws.axis2.helloworld.HelloWorld; +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; +import org.junit.Ignore; + +//@Ignore("TUSCANY-3631") +public class HelloworldTestCase extends TestCase { + + private Node node; + private HelloWorld helloWorld; + + public void testCalculator() throws Exception { + assertEquals("Hello fred myname", helloWorld.getGreetings("fred")); + } + + @Override + protected void setUp() throws Exception { + node = NodeFactory.newInstance().createNode(new Contribution("test", "target/classes")); + node.start(); + helloWorld = node.getService(HelloWorld.class, "HelloWorldClient"); + } + + @Override + protected void tearDown() throws Exception { + node.stop(); + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/pom.xml new file mode 100644 index 0000000000..2c6054c172 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/pom.xml @@ -0,0 +1,127 @@ +<?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>itest-ws</artifactId>
+ <version>2.0-Beta4</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>itest-ws-contribution-callback-forwardspec</artifactId>
+ <name>Apache Tuscany SCA iTest WS Contribution Callback Forward Bindings Specified</name>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-base-runtime-pom</artifactId>
+ <type>pom</type>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws-runtime-axis2</artifactId>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>6.1.19</version>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <finalName>${project.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.jvnet.jax-ws-commons</groupId>
+ <artifactId>jaxws-maven-plugin</artifactId>
+ <version>2.1</version>
+ <dependencies>
+ <dependency>
+ <groupId>com.sun.xml.ws</groupId>
+ <artifactId>jaxws-tools</artifactId>
+ <version>2.2.6-promoted-b10</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <id>wsgen1</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>wsgen</goal>
+ </goals>
+ <configuration>
+ <sei>org.apache.tuscany.sca.binding.ws.HelloWorldImpl</sei>
+ <genWsdl>true</genWsdl>
+ <staleFile>${project.build.directory}/jaxws/stale/.wsgen1StaleFlag</staleFile>
+ </configuration>
+ </execution>
+ <execution>
+ <id>wsimport1</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>wsimport</goal>
+ </goals>
+ <configuration>
+ <packageName>org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface</packageName>
+ <wsdlDirectory>${basedir}/target/classes</wsdlDirectory>
+ <wsdlFiles>
+ <wsdlFile>helloworld-external-service.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/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java new file mode 100644 index 0000000000..6bc67db5fc --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java @@ -0,0 +1,32 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface HelloWorld {
+
+ String getGreetings(String s);
+ String getGreetingsException(String s) throws ServiceRuntimeException;
+ Foo getGreetingsComplex(Foo foo);
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallback.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallback.java new file mode 100644 index 0000000000..ba117c8cfd --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallback.java @@ -0,0 +1,31 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface HelloWorldCallback {
+
+ String getGreetingsCallback(String s);
+ Foo getGreetingsComplexCallback(Foo foo);
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackService.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackService.java new file mode 100644 index 0000000000..3521fa5624 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackService.java @@ -0,0 +1,34 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Callback;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+@Callback(HelloWorldCallback.class)
+public interface HelloWorldCallbackService {
+
+ String getGreetings(String s);
+ String getGreetingsException(String s) throws ServiceRuntimeException;
+ Foo getGreetingsComplex(Foo foo);
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackServiceImpl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackServiceImpl.java new file mode 100644 index 0000000000..057b884bc9 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackServiceImpl.java @@ -0,0 +1,53 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Callback;
+import org.oasisopen.sca.annotation.Service;
+
+@Service(HelloWorldCallbackService.class)
+public class HelloWorldCallbackServiceImpl implements HelloWorldCallbackService {
+
+ @Callback
+ protected HelloWorldCallback helloWorldCallback;
+
+ public String getGreetings(String s) {
+ System.out.println("Entering SCA HelloWorldCallbackService.getGreetings: " + s);
+ String response = helloWorldCallback.getGreetingsCallback(s);
+ System.out.println("Leaving SCA HelloWorldCallbackService.getGreetings: " + response);
+ return response;
+ }
+
+ public String getGreetingsException(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorldCallbackService.getGreetingsException: " + s);
+ String response = helloWorldCallback.getGreetingsCallback(s);
+ System.out.println("Leaving SCA HelloWorldCallbackService.getGreetings: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplex(Foo foo){
+ System.out.println("Entering SCA HelloWorldCallbackService.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ Foo response = helloWorldCallback.getGreetingsComplexCallback(foo);
+ System.out.println("Leaving SCA HelloWorldCallbackService.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ return response;
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java new file mode 100644 index 0000000000..1ff58a29b0 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java @@ -0,0 +1,84 @@ +/*
+ * 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;
+
+import javax.jws.WebService;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.HelloWorldService;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Reference;
+
+@WebService
+public class HelloWorldImpl implements HelloWorld, HelloWorldCallback {
+
+ @Reference
+ public HelloWorldService helloWorldExternal;
+
+ @Reference
+ public HelloWorldCallbackService helloWorldCallbackService;
+
+ // HelloWorld operations
+
+ public String getGreetings(String s) {
+ System.out.println("Entering SCA HelloWorld.getGreetings: " + s);
+ String response = helloWorldCallbackService.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetings: " + response);
+ return response;
+ }
+
+ public String getGreetingsException(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorld.getGreetingsException: " + s);
+ String response = helloWorldCallbackService.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetings: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplex(Foo foo){
+ System.out.println("Entering SCA HelloWorld.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ Foo response = helloWorldCallbackService.getGreetingsComplex(foo);
+ System.out.println("Leaving SCA HelloWorld.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ return response;
+ }
+
+ // HelloWorldCallback operations
+
+ public String getGreetingsCallback(String s) {
+ System.out.println("Entering SCA HelloWorld.getGreetingsCallback: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetingsCallback: " + response);
+ return response;
+ }
+
+ public String getGreetingsExceptionCallback(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorld.getGreetingsExceptionCallback: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetingsCallback: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplexCallback(Foo foo){
+ System.out.println("Entering SCA HelloWorld.getGreetingsComplexCallback: " + foo.getBars().get(0).getS());
+ Foo response = helloWorldExternal.getGreetingsComplex(foo);
+ System.out.println("Leaving SCA HelloWorld.getGreetingsComplexCallback: " + foo.getBars().get(0).getS());
+ return response;
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/resources/HelloWorldServiceService_schema1.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/resources/HelloWorldServiceService_schema1.xsd new file mode 100644 index 0000000000..acdfcaaaa5 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/resources/HelloWorldServiceService_schema1.xsd @@ -0,0 +1,70 @@ +<?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://helloworld/external" xmlns:tns="http://helloworld/external" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:element name="getGreetings" type="tns:getGreetings"/>
+
+ <xs:element name="getGreetingsComplex" type="tns:getGreetingsComplex"/>
+
+ <xs:element name="getGreetingsComplexResponse" type="tns:getGreetingsComplexResponse"/>
+
+ <xs:element name="getGreetingsResponse" type="tns:getGreetingsResponse"/>
+
+ <xs:complexType name="getGreetings">
+ <xs:sequence>
+ <xs:element name="name" type="xs:string" form="qualified" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsResponse">
+ <xs:sequence>
+ <xs:element name="getGreetingsReturn" type="xs:string" form="qualified" 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>
+
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..350ad6be96 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:itest="http://www.tuscany.apache.org/itests/binding/ws/axis2">
+ <deployable composite="itest:HelloWorld"/>
+</contribution>
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/resources/helloworld-external-service.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/resources/helloworld-external-service.wsdl new file mode 100644 index 0000000000..837bcb059e --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/resources/helloworld-external-service.wsdl @@ -0,0 +1,75 @@ +<?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://helloworld/external" name="HelloWorldServiceService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://helloworld/external" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+ <types>
+ <xsd:schema>
+ <xsd:import namespace="http://helloworld/external" schemaLocation="HelloWorldServiceService_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="getGreetingsComplex">
+ <part name="parameters" element="tns:getGreetingsComplex"/>
+ </message>
+ <message name="getGreetingsComplexResponse">
+ <part name="parameters" element="tns:getGreetingsComplexResponse"/>
+ </message>
+ <portType name="HelloWorldService">
+ <operation name="getGreetings">
+ <input message="tns:getGreetings"/>
+ <output message="tns:getGreetingsResponse"/>
+ </operation>
+ <operation name="getGreetingsComplex">
+ <input message="tns:getGreetingsComplex"/>
+ <output message="tns:getGreetingsComplexResponse"/>
+ </operation>
+ </portType>
+ <binding name="HelloWorldServicePortBinding" type="tns:HelloWorldService">
+ <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="getGreetingsComplex">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="HelloWorldServiceService">
+ <port name="HelloWorldServicePort" binding="tns:HelloWorldServicePortBinding">
+ <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
+ </port>
+ </service>
+</definitions>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/resources/helloworld.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/resources/helloworld.composite new file mode 100644 index 0000000000..2be7fd7315 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-forwardspec/src/main/resources/helloworld.composite @@ -0,0 +1,45 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://www.tuscany.apache.org/itests/binding/ws/axis2"
+ name="HelloWorld">
+
+ <component name="HelloWorldService">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.HelloWorldImpl"/>
+ <service name="HelloWorld">
+ <binding.ws uri="http://localhost:8085/HelloWorldService/HelloWorld"/>
+ </service>
+ <reference name="helloWorldExternal">
+ <binding.ws uri="http://localhost:8086/External/HelloWorld"/>
+ </reference>
+ <reference name="helloWorldCallbackService">
+ <binding.ws uri="http://localhost:8085/HelloWorldCallbackService"/>
+ </reference>
+ </component>
+
+ <component name="HelloWorldCallbackService">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.HelloWorldCallbackServiceImpl"/>
+ <service name="HelloWorldCallbackService">
+ <binding.ws uri="http://localhost:8085/HelloWorldCallbackService"/>
+ </service>
+ </component>
+
+</composite>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/pom.xml new file mode 100644 index 0000000000..f85bed4adb --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/pom.xml @@ -0,0 +1,127 @@ +<?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>itest-ws</artifactId>
+ <version>2.0-Beta4</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>itest-ws-contribution-callback-fullspec</artifactId>
+ <name>Apache Tuscany SCA iTest WS Contribution Callback Fully Specified</name>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-base-runtime-pom</artifactId>
+ <type>pom</type>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws-runtime-axis2</artifactId>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>6.1.19</version>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <finalName>${project.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.jvnet.jax-ws-commons</groupId>
+ <artifactId>jaxws-maven-plugin</artifactId>
+ <version>2.1</version>
+ <dependencies>
+ <dependency>
+ <groupId>com.sun.xml.ws</groupId>
+ <artifactId>jaxws-tools</artifactId>
+ <version>2.2.6-promoted-b10</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <id>wsgen1</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>wsgen</goal>
+ </goals>
+ <configuration>
+ <sei>org.apache.tuscany.sca.binding.ws.HelloWorldImpl</sei>
+ <genWsdl>true</genWsdl>
+ <staleFile>${project.build.directory}/jaxws/stale/.wsgen1StaleFlag</staleFile>
+ </configuration>
+ </execution>
+ <execution>
+ <id>wsimport1</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>wsimport</goal>
+ </goals>
+ <configuration>
+ <packageName>org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface</packageName>
+ <wsdlDirectory>${basedir}/target/classes</wsdlDirectory>
+ <wsdlFiles>
+ <wsdlFile>helloworld-external-service.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/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java new file mode 100644 index 0000000000..6bc67db5fc --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java @@ -0,0 +1,32 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface HelloWorld {
+
+ String getGreetings(String s);
+ String getGreetingsException(String s) throws ServiceRuntimeException;
+ Foo getGreetingsComplex(Foo foo);
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallback.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallback.java new file mode 100644 index 0000000000..ba117c8cfd --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallback.java @@ -0,0 +1,31 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface HelloWorldCallback {
+
+ String getGreetingsCallback(String s);
+ Foo getGreetingsComplexCallback(Foo foo);
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackService.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackService.java new file mode 100644 index 0000000000..3521fa5624 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackService.java @@ -0,0 +1,34 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Callback;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+@Callback(HelloWorldCallback.class)
+public interface HelloWorldCallbackService {
+
+ String getGreetings(String s);
+ String getGreetingsException(String s) throws ServiceRuntimeException;
+ Foo getGreetingsComplex(Foo foo);
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackServiceImpl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackServiceImpl.java new file mode 100644 index 0000000000..0cbc421f23 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackServiceImpl.java @@ -0,0 +1,61 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Callback;
+import org.oasisopen.sca.annotation.Service;
+
+@Service(HelloWorldCallbackService.class)
+public class HelloWorldCallbackServiceImpl implements HelloWorldCallbackService {
+
+ @Callback
+ protected HelloWorldCallback helloWorldCallback;
+
+ public String getGreetings(String s) {
+ System.out.println("Entering SCA HelloWorldCallbackService.getGreetings: " + s);
+ String response = null;
+ for (int i = 0; i < 5 ; i++){
+ System.out.println("In SCA HelloWorldCallbackService.getGreetings: calling helloWorldCallback.getGreetingsCallback(s) interation " + i);
+ response = helloWorldCallback.getGreetingsCallback(s);
+ }
+ System.out.println("Leaving SCA HelloWorldCallbackService.getGreetings: " + response);
+ return response;
+ }
+
+ public String getGreetingsException(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorldCallbackService.getGreetingsException: " + s);
+ String response = helloWorldCallback.getGreetingsCallback(s);
+ System.out.println("Leaving SCA HelloWorldCallbackService.getGreetings: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplex(Foo foo){
+ System.out.println("Entering SCA HelloWorldCallbackService.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ Foo response = null;
+ for (int i = 0; i < 5 ; i++){
+ System.out.println("In SCA HelloWorldCallbackService.getGreetingsComplex: calling helloWorldCallback.getGreetingsComplexCallback(s) interation " + i);
+ response = helloWorldCallback.getGreetingsComplexCallback(foo);
+ }
+ System.out.println("Leaving SCA HelloWorldCallbackService.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ return response;
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java new file mode 100644 index 0000000000..39ef3c2032 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java @@ -0,0 +1,104 @@ +/*
+ * 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;
+
+import javax.jws.WebService;
+import javax.security.auth.Subject;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.HelloWorldService;
+import org.oasisopen.sca.RequestContext;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Context;
+import org.oasisopen.sca.annotation.Reference;
+
+@WebService
+public class HelloWorldImpl implements HelloWorld, HelloWorldCallback {
+
+ @Reference
+ public HelloWorldService helloWorldExternal;
+
+ @Reference
+ public HelloWorldCallbackService helloWorldCallbackService;
+
+ @Context
+ protected RequestContext requestContext;
+
+ // HelloWorld operations
+
+ public String getGreetings(String s) {
+ System.out.println("Entering SCA HelloWorld.getGreetings: " + s);
+ String response = null;
+ for (int i = 0; i < 5 ; i++){
+ System.out.println("In SCA HelloWorld.getGreetings: calling helloWorldCallbackService.getGreetings(s) interation " + i);
+ response = helloWorldCallbackService.getGreetings(s);
+ }
+ System.out.println("Leaving SCA HelloWorld.getGreetings: " + response);
+ return response;
+ }
+
+ public String getGreetingsException(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorld.getGreetingsException: " + s);
+ String response = helloWorldCallbackService.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetings: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplex(Foo foo){
+ System.out.println("Entering SCA HelloWorld.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ Foo response = null;
+ for (int i = 0; i < 5 ; i++){
+ System.out.println("In SCA HelloWorld.getGreetingsComplex: calling helloWorldCallbackService.getGreetingsComplex(foo) interation " + i);
+ response = helloWorldCallbackService.getGreetingsComplex(foo);
+ }
+ System.out.println("Leaving SCA HelloWorld.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ return response;
+ }
+
+ // HelloWorldCallback operations
+
+ public String getGreetingsCallback(String s) {
+ System.out.println("Entering SCA HelloWorld.getGreetingsCallback: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+
+ Subject subject = requestContext.getSecuritySubject();
+ if (subject == null){
+ response = "No Security Subject";
+ }
+
+ System.out.println("Leaving SCA HelloWorld.getGreetingsCallback: " + response);
+ return response;
+ }
+
+ public String getGreetingsExceptionCallback(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorld.getGreetingsExceptionCallback: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetingsCallback: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplexCallback(Foo foo){
+ System.out.println("Entering SCA HelloWorld.getGreetingsComplexCallback: " + foo.getBars().get(0).getS());
+ Foo response = helloWorldExternal.getGreetingsComplex(foo);
+ System.out.println("Leaving SCA HelloWorld.getGreetingsComplexCallback: " + foo.getBars().get(0).getS());
+ return response;
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/resources/HelloWorldServiceService_schema1.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/resources/HelloWorldServiceService_schema1.xsd new file mode 100644 index 0000000000..acdfcaaaa5 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/resources/HelloWorldServiceService_schema1.xsd @@ -0,0 +1,70 @@ +<?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://helloworld/external" xmlns:tns="http://helloworld/external" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:element name="getGreetings" type="tns:getGreetings"/>
+
+ <xs:element name="getGreetingsComplex" type="tns:getGreetingsComplex"/>
+
+ <xs:element name="getGreetingsComplexResponse" type="tns:getGreetingsComplexResponse"/>
+
+ <xs:element name="getGreetingsResponse" type="tns:getGreetingsResponse"/>
+
+ <xs:complexType name="getGreetings">
+ <xs:sequence>
+ <xs:element name="name" type="xs:string" form="qualified" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsResponse">
+ <xs:sequence>
+ <xs:element name="getGreetingsReturn" type="xs:string" form="qualified" 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>
+
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/resources/META-INF/definitions.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/resources/META-INF/definitions.xml new file mode 100644 index 0000000000..cce5bbe403 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/resources/META-INF/definitions.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="ASCII"?>
+<!--
+ * 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.
+-->
+<definitions xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://tuscany.apache.org/xmlns/sca/1.1"
+ xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912" >
+
+
+ <sca:policySet name="BasicAuthenticationPolicySet"
+ provides="clientAuthentication.transport"
+ appliesTo="//sca:binding.ws">
+ <tuscany:basicAuthentication>
+ <tuscany:userName>myname</tuscany:userName>
+ <tuscany:password>mypassword</tuscany:password>
+ </tuscany:basicAuthentication>
+ </sca:policySet>
+
+
+</definitions>
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..350ad6be96 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:itest="http://www.tuscany.apache.org/itests/binding/ws/axis2">
+ <deployable composite="itest:HelloWorld"/>
+</contribution>
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/resources/helloworld-external-service.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/resources/helloworld-external-service.wsdl new file mode 100644 index 0000000000..837bcb059e --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/resources/helloworld-external-service.wsdl @@ -0,0 +1,75 @@ +<?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://helloworld/external" name="HelloWorldServiceService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://helloworld/external" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+ <types>
+ <xsd:schema>
+ <xsd:import namespace="http://helloworld/external" schemaLocation="HelloWorldServiceService_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="getGreetingsComplex">
+ <part name="parameters" element="tns:getGreetingsComplex"/>
+ </message>
+ <message name="getGreetingsComplexResponse">
+ <part name="parameters" element="tns:getGreetingsComplexResponse"/>
+ </message>
+ <portType name="HelloWorldService">
+ <operation name="getGreetings">
+ <input message="tns:getGreetings"/>
+ <output message="tns:getGreetingsResponse"/>
+ </operation>
+ <operation name="getGreetingsComplex">
+ <input message="tns:getGreetingsComplex"/>
+ <output message="tns:getGreetingsComplexResponse"/>
+ </operation>
+ </portType>
+ <binding name="HelloWorldServicePortBinding" type="tns:HelloWorldService">
+ <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="getGreetingsComplex">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="HelloWorldServiceService">
+ <port name="HelloWorldServicePort" binding="tns:HelloWorldServicePortBinding">
+ <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
+ </port>
+ </service>
+</definitions>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/resources/helloworld.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/resources/helloworld.composite new file mode 100644 index 0000000000..fc64de7b8a --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-fullspec/src/main/resources/helloworld.composite @@ -0,0 +1,52 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
+ targetNamespace="http://www.tuscany.apache.org/itests/binding/ws/axis2"
+ name="HelloWorld">
+
+ <component name="HelloWorldService">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.HelloWorldImpl"/>
+ <service name="HelloWorld">
+ <binding.ws uri="http://localhost:8085/HelloWorldService/HelloWorld"/>
+ </service>
+ <reference name="helloWorldExternal">
+ <binding.ws uri="http://localhost:8086/External/HelloWorld"/>
+ </reference>
+ <reference name="helloWorldCallbackService">
+ <binding.ws uri="http://localhost:8084/HelloWorldCallbackService"/>
+ <callback>
+ <binding.ws uri="http://localhost:8085/HelloWorldService/HelloWorldCallback" policySets="tuscany:BasicAuthenticationPolicySet"/>
+ </callback>
+ </reference>
+ </component>
+
+ <component name="HelloWorldCallbackService">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.HelloWorldCallbackServiceImpl"/>
+ <service name="HelloWorldCallbackService">
+ <binding.ws uri="http://localhost:8084/HelloWorldCallbackService"/>
+ <callback>
+ <binding.ws policySets="tuscany:BasicAuthenticationPolicySet"/>
+ </callback>
+ </service>
+ </component>
+
+</composite>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/pom.xml new file mode 100644 index 0000000000..27c895d2f1 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/pom.xml @@ -0,0 +1,127 @@ +<?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>itest-ws</artifactId>
+ <version>2.0-Beta4</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>itest-ws-contribution-callback-promotion</artifactId>
+ <name>Apache Tuscany SCA iTest WS Contribution Callback Promotion</name>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-base-runtime-pom</artifactId>
+ <type>pom</type>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws-runtime-axis2</artifactId>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>6.1.19</version>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <finalName>${project.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.jvnet.jax-ws-commons</groupId>
+ <artifactId>jaxws-maven-plugin</artifactId>
+ <version>2.1</version>
+ <dependencies>
+ <dependency>
+ <groupId>com.sun.xml.ws</groupId>
+ <artifactId>jaxws-tools</artifactId>
+ <version>2.2.6-promoted-b10</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <id>wsgen1</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>wsgen</goal>
+ </goals>
+ <configuration>
+ <sei>org.apache.tuscany.sca.binding.ws.HelloWorldImpl</sei>
+ <genWsdl>true</genWsdl>
+ <staleFile>${project.build.directory}/jaxws/stale/.wsgen1StaleFlag</staleFile>
+ </configuration>
+ </execution>
+ <execution>
+ <id>wsimport1</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>wsimport</goal>
+ </goals>
+ <configuration>
+ <packageName>org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface</packageName>
+ <wsdlDirectory>${basedir}/target/classes</wsdlDirectory>
+ <wsdlFiles>
+ <wsdlFile>helloworld-external-service.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/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java new file mode 100644 index 0000000000..6bc67db5fc --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java @@ -0,0 +1,32 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface HelloWorld {
+
+ String getGreetings(String s);
+ String getGreetingsException(String s) throws ServiceRuntimeException;
+ Foo getGreetingsComplex(Foo foo);
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallback.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallback.java new file mode 100644 index 0000000000..ba117c8cfd --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallback.java @@ -0,0 +1,31 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface HelloWorldCallback {
+
+ String getGreetingsCallback(String s);
+ Foo getGreetingsComplexCallback(Foo foo);
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackService.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackService.java new file mode 100644 index 0000000000..3521fa5624 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackService.java @@ -0,0 +1,34 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Callback;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+@Callback(HelloWorldCallback.class)
+public interface HelloWorldCallbackService {
+
+ String getGreetings(String s);
+ String getGreetingsException(String s) throws ServiceRuntimeException;
+ Foo getGreetingsComplex(Foo foo);
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackServiceImpl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackServiceImpl.java new file mode 100644 index 0000000000..057b884bc9 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackServiceImpl.java @@ -0,0 +1,53 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Callback;
+import org.oasisopen.sca.annotation.Service;
+
+@Service(HelloWorldCallbackService.class)
+public class HelloWorldCallbackServiceImpl implements HelloWorldCallbackService {
+
+ @Callback
+ protected HelloWorldCallback helloWorldCallback;
+
+ public String getGreetings(String s) {
+ System.out.println("Entering SCA HelloWorldCallbackService.getGreetings: " + s);
+ String response = helloWorldCallback.getGreetingsCallback(s);
+ System.out.println("Leaving SCA HelloWorldCallbackService.getGreetings: " + response);
+ return response;
+ }
+
+ public String getGreetingsException(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorldCallbackService.getGreetingsException: " + s);
+ String response = helloWorldCallback.getGreetingsCallback(s);
+ System.out.println("Leaving SCA HelloWorldCallbackService.getGreetings: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplex(Foo foo){
+ System.out.println("Entering SCA HelloWorldCallbackService.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ Foo response = helloWorldCallback.getGreetingsComplexCallback(foo);
+ System.out.println("Leaving SCA HelloWorldCallbackService.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ return response;
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java new file mode 100644 index 0000000000..1ff58a29b0 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java @@ -0,0 +1,84 @@ +/*
+ * 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;
+
+import javax.jws.WebService;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.HelloWorldService;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Reference;
+
+@WebService
+public class HelloWorldImpl implements HelloWorld, HelloWorldCallback {
+
+ @Reference
+ public HelloWorldService helloWorldExternal;
+
+ @Reference
+ public HelloWorldCallbackService helloWorldCallbackService;
+
+ // HelloWorld operations
+
+ public String getGreetings(String s) {
+ System.out.println("Entering SCA HelloWorld.getGreetings: " + s);
+ String response = helloWorldCallbackService.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetings: " + response);
+ return response;
+ }
+
+ public String getGreetingsException(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorld.getGreetingsException: " + s);
+ String response = helloWorldCallbackService.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetings: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplex(Foo foo){
+ System.out.println("Entering SCA HelloWorld.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ Foo response = helloWorldCallbackService.getGreetingsComplex(foo);
+ System.out.println("Leaving SCA HelloWorld.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ return response;
+ }
+
+ // HelloWorldCallback operations
+
+ public String getGreetingsCallback(String s) {
+ System.out.println("Entering SCA HelloWorld.getGreetingsCallback: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetingsCallback: " + response);
+ return response;
+ }
+
+ public String getGreetingsExceptionCallback(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorld.getGreetingsExceptionCallback: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetingsCallback: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplexCallback(Foo foo){
+ System.out.println("Entering SCA HelloWorld.getGreetingsComplexCallback: " + foo.getBars().get(0).getS());
+ Foo response = helloWorldExternal.getGreetingsComplex(foo);
+ System.out.println("Leaving SCA HelloWorld.getGreetingsComplexCallback: " + foo.getBars().get(0).getS());
+ return response;
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/resources/HelloWorldServiceService_schema1.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/resources/HelloWorldServiceService_schema1.xsd new file mode 100644 index 0000000000..acdfcaaaa5 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/resources/HelloWorldServiceService_schema1.xsd @@ -0,0 +1,70 @@ +<?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://helloworld/external" xmlns:tns="http://helloworld/external" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:element name="getGreetings" type="tns:getGreetings"/>
+
+ <xs:element name="getGreetingsComplex" type="tns:getGreetingsComplex"/>
+
+ <xs:element name="getGreetingsComplexResponse" type="tns:getGreetingsComplexResponse"/>
+
+ <xs:element name="getGreetingsResponse" type="tns:getGreetingsResponse"/>
+
+ <xs:complexType name="getGreetings">
+ <xs:sequence>
+ <xs:element name="name" type="xs:string" form="qualified" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsResponse">
+ <xs:sequence>
+ <xs:element name="getGreetingsReturn" type="xs:string" form="qualified" 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>
+
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..350ad6be96 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:itest="http://www.tuscany.apache.org/itests/binding/ws/axis2">
+ <deployable composite="itest:HelloWorld"/>
+</contribution>
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/resources/helloworld-external-service.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/resources/helloworld-external-service.wsdl new file mode 100644 index 0000000000..837bcb059e --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/resources/helloworld-external-service.wsdl @@ -0,0 +1,75 @@ +<?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://helloworld/external" name="HelloWorldServiceService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://helloworld/external" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+ <types>
+ <xsd:schema>
+ <xsd:import namespace="http://helloworld/external" schemaLocation="HelloWorldServiceService_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="getGreetingsComplex">
+ <part name="parameters" element="tns:getGreetingsComplex"/>
+ </message>
+ <message name="getGreetingsComplexResponse">
+ <part name="parameters" element="tns:getGreetingsComplexResponse"/>
+ </message>
+ <portType name="HelloWorldService">
+ <operation name="getGreetings">
+ <input message="tns:getGreetings"/>
+ <output message="tns:getGreetingsResponse"/>
+ </operation>
+ <operation name="getGreetingsComplex">
+ <input message="tns:getGreetingsComplex"/>
+ <output message="tns:getGreetingsComplexResponse"/>
+ </operation>
+ </portType>
+ <binding name="HelloWorldServicePortBinding" type="tns:HelloWorldService">
+ <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="getGreetingsComplex">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="HelloWorldServiceService">
+ <port name="HelloWorldServicePort" binding="tns:HelloWorldServicePortBinding">
+ <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
+ </port>
+ </service>
+</definitions>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/resources/helloworld.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/resources/helloworld.composite new file mode 100644 index 0000000000..0d66bb105f --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/resources/helloworld.composite @@ -0,0 +1,43 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://www.tuscany.apache.org/itests/binding/ws/axis2"
+ xmlns:tns="http://www.tuscany.apache.org/itests/binding/ws/axis2"
+ name="HelloWorld">
+
+ <component name="HelloWorldService">
+ <implementation.composite name="tns:HelloWorldService"/>
+ <service name="HelloWorld">
+ <binding.ws uri="http://localhost:8085/HelloWorldService/HelloWorld"/>
+ </service>
+ <reference name="HelloWorldCallbackService">
+ <binding.ws uri="http://localhost:8085/HelloWorldService/HelloWorldCallbackService"/>
+ </reference>
+ </component>
+
+ <component name="HelloWorldCallbackService">
+ <implementation.composite name="tns:HelloWorldCallbackService"/>
+ <service name="HelloWorldCallbackService">
+ <binding.ws uri="http://localhost:8085/HelloWorldService/HelloWorldCallbackService"/>
+ </service>
+ </component>
+
+</composite>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/resources/helloworldcallbackservice-bottom.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/resources/helloworldcallbackservice-bottom.composite new file mode 100644 index 0000000000..e522c6c151 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/resources/helloworldcallbackservice-bottom.composite @@ -0,0 +1,34 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://www.tuscany.apache.org/itests/binding/ws/axis2"
+ name="HelloWorldCallbackService">
+
+ <service name="HelloWorldCallbackService" promote="HelloWorldCallbackService/HelloWorldCallbackService"/>
+
+ <component name="HelloWorldCallbackService">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.HelloWorldCallbackServiceImpl"/>
+ <service name="HelloWorldCallbackService">
+ <!-- configured at the top level -->
+ </service>
+ </component>
+
+</composite>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/resources/helloworldservice-bottom.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/resources/helloworldservice-bottom.composite new file mode 100644 index 0000000000..aea84ad56e --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-promotion/src/main/resources/helloworldservice-bottom.composite @@ -0,0 +1,40 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://www.tuscany.apache.org/itests/binding/ws/axis2"
+ name="HelloWorldService">
+
+ <service name="HelloWorld" promote="HelloWorldService/HelloWorld"/>
+ <reference name="HelloWorldCallbackService" multiplicity="1..1" promote="HelloWorldService/helloWorldCallbackService"/>
+
+ <component name="HelloWorldService">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.HelloWorldImpl"/>
+ <service name="HelloWorld">
+ <!-- configured at the top level -->
+ </service>
+ <reference name="helloWorldExternal">
+ <binding.ws uri="http://localhost:8086/External/HelloWorld"/>
+ </reference>
+ <reference name="helloWorldCallbackService">
+ <!-- configured at the top level -->
+ </reference>
+ </component>
+</composite>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/pom.xml new file mode 100644 index 0000000000..5d20025c52 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/pom.xml @@ -0,0 +1,127 @@ +<?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>itest-ws</artifactId>
+ <version>2.0-Beta4</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>itest-ws-contribution-callback-wsdl-iface</artifactId>
+ <name>Apache Tuscany SCA iTest WS Contribution Callback WSDL Iface </name>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-base-runtime-pom</artifactId>
+ <type>pom</type>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws-runtime-axis2</artifactId>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>6.1.19</version>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <finalName>${project.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.jvnet.jax-ws-commons</groupId>
+ <artifactId>jaxws-maven-plugin</artifactId>
+ <version>2.1</version>
+ <dependencies>
+ <dependency>
+ <groupId>com.sun.xml.ws</groupId>
+ <artifactId>jaxws-tools</artifactId>
+ <version>2.2.6-promoted-b10</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <id>wsgen1</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>wsgen</goal>
+ </goals>
+ <configuration>
+ <sei>org.apache.tuscany.sca.binding.ws.HelloWorldImpl</sei>
+ <genWsdl>true</genWsdl>
+ <staleFile>${project.build.directory}/jaxws/stale/.wsgen1StaleFlag</staleFile>
+ </configuration>
+ </execution>
+ <execution>
+ <id>wsimport1</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>wsimport</goal>
+ </goals>
+ <configuration>
+ <packageName>org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface</packageName>
+ <wsdlDirectory>${basedir}/target/classes</wsdlDirectory>
+ <wsdlFiles>
+ <wsdlFile>helloworld-external-service.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/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java new file mode 100644 index 0000000000..6bc67db5fc --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java @@ -0,0 +1,32 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface HelloWorld {
+
+ String getGreetings(String s);
+ String getGreetingsException(String s) throws ServiceRuntimeException;
+ Foo getGreetingsComplex(Foo foo);
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallback.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallback.java new file mode 100644 index 0000000000..ba117c8cfd --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallback.java @@ -0,0 +1,31 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface HelloWorldCallback {
+
+ String getGreetingsCallback(String s);
+ Foo getGreetingsComplexCallback(Foo foo);
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackService.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackService.java new file mode 100644 index 0000000000..3521fa5624 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackService.java @@ -0,0 +1,34 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Callback;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+@Callback(HelloWorldCallback.class)
+public interface HelloWorldCallbackService {
+
+ String getGreetings(String s);
+ String getGreetingsException(String s) throws ServiceRuntimeException;
+ Foo getGreetingsComplex(Foo foo);
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackServiceImpl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackServiceImpl.java new file mode 100644 index 0000000000..057b884bc9 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackServiceImpl.java @@ -0,0 +1,53 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Callback;
+import org.oasisopen.sca.annotation.Service;
+
+@Service(HelloWorldCallbackService.class)
+public class HelloWorldCallbackServiceImpl implements HelloWorldCallbackService {
+
+ @Callback
+ protected HelloWorldCallback helloWorldCallback;
+
+ public String getGreetings(String s) {
+ System.out.println("Entering SCA HelloWorldCallbackService.getGreetings: " + s);
+ String response = helloWorldCallback.getGreetingsCallback(s);
+ System.out.println("Leaving SCA HelloWorldCallbackService.getGreetings: " + response);
+ return response;
+ }
+
+ public String getGreetingsException(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorldCallbackService.getGreetingsException: " + s);
+ String response = helloWorldCallback.getGreetingsCallback(s);
+ System.out.println("Leaving SCA HelloWorldCallbackService.getGreetings: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplex(Foo foo){
+ System.out.println("Entering SCA HelloWorldCallbackService.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ Foo response = helloWorldCallback.getGreetingsComplexCallback(foo);
+ System.out.println("Leaving SCA HelloWorldCallbackService.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ return response;
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java new file mode 100644 index 0000000000..1ff58a29b0 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java @@ -0,0 +1,84 @@ +/*
+ * 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;
+
+import javax.jws.WebService;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.HelloWorldService;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Reference;
+
+@WebService
+public class HelloWorldImpl implements HelloWorld, HelloWorldCallback {
+
+ @Reference
+ public HelloWorldService helloWorldExternal;
+
+ @Reference
+ public HelloWorldCallbackService helloWorldCallbackService;
+
+ // HelloWorld operations
+
+ public String getGreetings(String s) {
+ System.out.println("Entering SCA HelloWorld.getGreetings: " + s);
+ String response = helloWorldCallbackService.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetings: " + response);
+ return response;
+ }
+
+ public String getGreetingsException(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorld.getGreetingsException: " + s);
+ String response = helloWorldCallbackService.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetings: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplex(Foo foo){
+ System.out.println("Entering SCA HelloWorld.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ Foo response = helloWorldCallbackService.getGreetingsComplex(foo);
+ System.out.println("Leaving SCA HelloWorld.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ return response;
+ }
+
+ // HelloWorldCallback operations
+
+ public String getGreetingsCallback(String s) {
+ System.out.println("Entering SCA HelloWorld.getGreetingsCallback: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetingsCallback: " + response);
+ return response;
+ }
+
+ public String getGreetingsExceptionCallback(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorld.getGreetingsExceptionCallback: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetingsCallback: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplexCallback(Foo foo){
+ System.out.println("Entering SCA HelloWorld.getGreetingsComplexCallback: " + foo.getBars().get(0).getS());
+ Foo response = helloWorldExternal.getGreetingsComplex(foo);
+ System.out.println("Leaving SCA HelloWorld.getGreetingsComplexCallback: " + foo.getBars().get(0).getS());
+ return response;
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/HelloWorldImplCallbackService.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/HelloWorldImplCallbackService.wsdl new file mode 100644 index 0000000000..6cab010afa --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/HelloWorldImplCallbackService.wsdl @@ -0,0 +1,87 @@ +<?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.
+-->
+<definitions targetNamespace="http://ws.binding.sca.tuscany.apache.org/"
+ name="HelloWorldImplCallbackService"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="http://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://ws.binding.sca.tuscany.apache.org/"
+ schemaLocation="HelloWorldImplCallbackService_schema1.xsd"/>
+ </xsd:schema>
+ </types>
+
+ <message name="getGreetingsCallback">
+ <part name="parameters" element="tns:getGreetingsCallback"/>
+ </message>
+ <message name="getGreetingsCallbackResponse">
+ <part name="parameters" element="tns:getGreetingsCallbackResponse"/>
+ </message>
+ <message name="getGreetingsComplexCallback">
+ <part name="parameters" element="tns:getGreetingsComplexCallback"/>
+ </message>
+ <message name="getGreetingsComplexCallbackResponse">
+ <part name="parameters" element="tns:getGreetingsComplexCallbackResponse"/>
+ </message>
+
+ <portType name="HelloWorldCallbackImpl">
+ <operation name="getGreetingsCallback">
+ <input message="tns:getGreetingsCallback"/>
+ <output message="tns:getGreetingsCallbackResponse"/>
+ </operation>
+ <operation name="getGreetingsComplexCallback">
+ <input message="tns:getGreetingsComplexCallback"/>
+ <output message="tns:getGreetingsComplexCallbackResponse"/>
+ </operation>
+ </portType>
+
+ <binding name="HelloWorldCallbackImplPortBinding" type="tns:HelloWorldCallbackImpl">
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
+ <operation name="getGreetingsCallback">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="getGreetingsComplexCallback">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+
+ <service name="HelloWorldImplCallbackService">
+ <port name="HelloWorldCallbackImplPort" binding="tns:HelloWorldCallbackImplPortBinding">
+ <soap:address location="http://localhost:8085/HelloWorldService/HelloWorld"/>
+ </port>
+ </service>
+</definitions>
+
+
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/HelloWorldImplCallbackService_schema1.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/HelloWorldImplCallbackService_schema1.xsd new file mode 100644 index 0000000000..53945b50a3 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/HelloWorldImplCallbackService_schema1.xsd @@ -0,0 +1,60 @@ +<?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://ws.binding.sca.tuscany.apache.org/"
+ xmlns:tns="http://ws.binding.sca.tuscany.apache.org/"
+ xmlns:tns2="http://helloworld/external"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:import namespace="http://helloworld/external" schemaLocation="./HelloWorldImplService_schema2.xsd"/>
+
+ <xs:element name="getGreetingsCallback" type="tns:getGreetingsCallback"/>
+
+ <xs:element name="getGreetingsCallbackResponse" type="tns:getGreetingsCallbackResponse"/>
+
+ <xs:element name="getGreetingsComplexCallback" type="tns:getGreetingsComplexCallback"/>
+
+ <xs:element name="getGreetingsComplexCallbackResponse" type="tns:getGreetingsComplexCallbackResponse"/>
+
+ <xs:complexType name="getGreetingsCallback">
+ <xs:sequence>
+ <xs:element name="arg0" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsCallbackResponse">
+ <xs:sequence>
+ <xs:element name="return" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsComplexCallback">
+ <xs:sequence>
+ <xs:element name="arg0" type="tns2:foo" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsComplexCallbackResponse">
+ <xs:sequence>
+ <xs:element name="return" type="tns2:foo" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+</xs:schema>
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/HelloWorldImplService.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/HelloWorldImplService.wsdl new file mode 100644 index 0000000000..813c23276d --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/HelloWorldImplService.wsdl @@ -0,0 +1,115 @@ +<?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.
+-->
+<definitions targetNamespace="http://ws.binding.sca.tuscany.apache.org/"
+ name="HelloWorldImplService"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="http://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://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>
+ <message name="GetGreetingsCaps">
+ <part name="parameters" element="tns:GetGreetingsCaps"/>
+ </message>
+ <message name="GetGreetingsCapsResponse">
+ <part name="parameters" element="tns:GetGreetingsCapsResponse"/>
+ </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/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/HelloWorldImplService_schema1.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/HelloWorldImplService_schema1.xsd new file mode 100644 index 0000000000..2d8adf3d73 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/HelloWorldImplService_schema1.xsd @@ -0,0 +1,99 @@ +<?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://ws.binding.sca.tuscany.apache.org/"
+ xmlns:tns="http://ws.binding.sca.tuscany.apache.org/"
+ xmlns:tns2="http://helloworld/external"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:import namespace="http://helloworld/external" schemaLocation="./HelloWorldImplService_schema2.xsd"/>
+
+ <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:element name="GetGreetingsCaps" type="tns:GetGreetingsCaps"/>
+
+ <xs:element name="GetGreetingsCapsResponse" type="tns:GetGreetingsCapsResponse"/>
+
+ <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="tns2:foo" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsComplexResponse">
+ <xs:sequence>
+ <xs:element name="return" type="tns2:foo" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="GetGreetingsCaps">
+ <xs:sequence>
+ <xs:element name="arg0" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="GetGreetingsCapsResponse">
+ <xs:sequence>
+ <xs:element name="return" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/HelloWorldImplService_schema2.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/HelloWorldImplService_schema2.xsd new file mode 100644 index 0000000000..d955cc2af4 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/HelloWorldImplService_schema2.xsd @@ -0,0 +1,40 @@ +<?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://helloworld/external"
+ xmlns:tns="http://helloworld/external"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <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:schema>
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/HelloWorldServiceService_schema1.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/HelloWorldServiceService_schema1.xsd new file mode 100644 index 0000000000..acdfcaaaa5 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/HelloWorldServiceService_schema1.xsd @@ -0,0 +1,70 @@ +<?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://helloworld/external" xmlns:tns="http://helloworld/external" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:element name="getGreetings" type="tns:getGreetings"/>
+
+ <xs:element name="getGreetingsComplex" type="tns:getGreetingsComplex"/>
+
+ <xs:element name="getGreetingsComplexResponse" type="tns:getGreetingsComplexResponse"/>
+
+ <xs:element name="getGreetingsResponse" type="tns:getGreetingsResponse"/>
+
+ <xs:complexType name="getGreetings">
+ <xs:sequence>
+ <xs:element name="name" type="xs:string" form="qualified" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsResponse">
+ <xs:sequence>
+ <xs:element name="getGreetingsReturn" type="xs:string" form="qualified" 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>
+
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..350ad6be96 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:itest="http://www.tuscany.apache.org/itests/binding/ws/axis2">
+ <deployable composite="itest:HelloWorld"/>
+</contribution>
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/helloworld-external-service.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/helloworld-external-service.wsdl new file mode 100644 index 0000000000..837bcb059e --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/helloworld-external-service.wsdl @@ -0,0 +1,75 @@ +<?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://helloworld/external" name="HelloWorldServiceService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://helloworld/external" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+ <types>
+ <xsd:schema>
+ <xsd:import namespace="http://helloworld/external" schemaLocation="HelloWorldServiceService_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="getGreetingsComplex">
+ <part name="parameters" element="tns:getGreetingsComplex"/>
+ </message>
+ <message name="getGreetingsComplexResponse">
+ <part name="parameters" element="tns:getGreetingsComplexResponse"/>
+ </message>
+ <portType name="HelloWorldService">
+ <operation name="getGreetings">
+ <input message="tns:getGreetings"/>
+ <output message="tns:getGreetingsResponse"/>
+ </operation>
+ <operation name="getGreetingsComplex">
+ <input message="tns:getGreetingsComplex"/>
+ <output message="tns:getGreetingsComplexResponse"/>
+ </operation>
+ </portType>
+ <binding name="HelloWorldServicePortBinding" type="tns:HelloWorldService">
+ <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="getGreetingsComplex">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="HelloWorldServiceService">
+ <port name="HelloWorldServicePort" binding="tns:HelloWorldServicePortBinding">
+ <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
+ </port>
+ </service>
+</definitions>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/helloworld.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/helloworld.composite new file mode 100644 index 0000000000..dd2d4d6330 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback-wsdl-iface/src/main/resources/helloworld.composite @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://www.tuscany.apache.org/itests/binding/ws/axis2"
+ name="HelloWorld">
+
+ <component name="HelloWorldService">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.HelloWorldImpl"/>
+ <service name="HelloWorld">
+ <binding.ws wsdlElement="http://ws.binding.sca.tuscany.apache.org/#wsdl.port(HelloWorldImplService/HelloWorldImplPort)"/>
+ </service>
+ <reference name="helloWorldExternal">
+ <binding.ws uri="http://localhost:8086/External/HelloWorld"/>
+ </reference>
+ <reference name="helloWorldCallbackService" target="HelloWorldCallbackService">
+ <interface.wsdl interface="http://ws.binding.sca.tuscany.apache.org/#wsdl.porttype(HelloWorldImpl)"
+ callbackInterface="http://ws.binding.sca.tuscany.apache.org/#wsdl.porttype(HelloWorldCallbackImpl)" />
+ </reference>
+ </component>
+
+ <component name="HelloWorldCallbackService">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.HelloWorldCallbackServiceImpl"/>
+ <service name="HelloWorldCallbackService">
+ <interface.wsdl interface="http://ws.binding.sca.tuscany.apache.org/#wsdl.porttype(HelloWorldImpl)"
+ callbackInterface="http://ws.binding.sca.tuscany.apache.org/#wsdl.porttype(HelloWorldCallbackImpl)" />
+ <binding.ws uri="http://localhost:8085/HelloWorldService/HelloWorldCallbackService"/>
+ </service>
+ </component>
+
+</composite>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/pom.xml new file mode 100644 index 0000000000..46ede66718 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/pom.xml @@ -0,0 +1,127 @@ +<?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>itest-ws</artifactId>
+ <version>2.0-Beta4</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>itest-ws-contribution-callback</artifactId>
+ <name>Apache Tuscany SCA iTest WS Contribution Callback </name>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-base-runtime-pom</artifactId>
+ <type>pom</type>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws-runtime-axis2</artifactId>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>6.1.19</version>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <finalName>${project.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.jvnet.jax-ws-commons</groupId>
+ <artifactId>jaxws-maven-plugin</artifactId>
+ <version>2.1</version>
+ <dependencies>
+ <dependency>
+ <groupId>com.sun.xml.ws</groupId>
+ <artifactId>jaxws-tools</artifactId>
+ <version>2.2.6-promoted-b10</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <id>wsgen1</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>wsgen</goal>
+ </goals>
+ <configuration>
+ <sei>org.apache.tuscany.sca.binding.ws.HelloWorldImpl</sei>
+ <genWsdl>true</genWsdl>
+ <staleFile>${project.build.directory}/jaxws/stale/.wsgen1StaleFlag</staleFile>
+ </configuration>
+ </execution>
+ <execution>
+ <id>wsimport1</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>wsimport</goal>
+ </goals>
+ <configuration>
+ <packageName>org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface</packageName>
+ <wsdlDirectory>${basedir}/target/classes</wsdlDirectory>
+ <wsdlFiles>
+ <wsdlFile>helloworld-external-service.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/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java new file mode 100644 index 0000000000..6bc67db5fc --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java @@ -0,0 +1,32 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface HelloWorld {
+
+ String getGreetings(String s);
+ String getGreetingsException(String s) throws ServiceRuntimeException;
+ Foo getGreetingsComplex(Foo foo);
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallback.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallback.java new file mode 100644 index 0000000000..ba117c8cfd --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallback.java @@ -0,0 +1,31 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface HelloWorldCallback {
+
+ String getGreetingsCallback(String s);
+ Foo getGreetingsComplexCallback(Foo foo);
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackService.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackService.java new file mode 100644 index 0000000000..3521fa5624 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackService.java @@ -0,0 +1,34 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Callback;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+@Callback(HelloWorldCallback.class)
+public interface HelloWorldCallbackService {
+
+ String getGreetings(String s);
+ String getGreetingsException(String s) throws ServiceRuntimeException;
+ Foo getGreetingsComplex(Foo foo);
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackServiceImpl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackServiceImpl.java new file mode 100644 index 0000000000..057b884bc9 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldCallbackServiceImpl.java @@ -0,0 +1,53 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Callback;
+import org.oasisopen.sca.annotation.Service;
+
+@Service(HelloWorldCallbackService.class)
+public class HelloWorldCallbackServiceImpl implements HelloWorldCallbackService {
+
+ @Callback
+ protected HelloWorldCallback helloWorldCallback;
+
+ public String getGreetings(String s) {
+ System.out.println("Entering SCA HelloWorldCallbackService.getGreetings: " + s);
+ String response = helloWorldCallback.getGreetingsCallback(s);
+ System.out.println("Leaving SCA HelloWorldCallbackService.getGreetings: " + response);
+ return response;
+ }
+
+ public String getGreetingsException(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorldCallbackService.getGreetingsException: " + s);
+ String response = helloWorldCallback.getGreetingsCallback(s);
+ System.out.println("Leaving SCA HelloWorldCallbackService.getGreetings: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplex(Foo foo){
+ System.out.println("Entering SCA HelloWorldCallbackService.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ Foo response = helloWorldCallback.getGreetingsComplexCallback(foo);
+ System.out.println("Leaving SCA HelloWorldCallbackService.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ return response;
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java new file mode 100644 index 0000000000..1ff58a29b0 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java @@ -0,0 +1,84 @@ +/*
+ * 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;
+
+import javax.jws.WebService;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.HelloWorldService;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Reference;
+
+@WebService
+public class HelloWorldImpl implements HelloWorld, HelloWorldCallback {
+
+ @Reference
+ public HelloWorldService helloWorldExternal;
+
+ @Reference
+ public HelloWorldCallbackService helloWorldCallbackService;
+
+ // HelloWorld operations
+
+ public String getGreetings(String s) {
+ System.out.println("Entering SCA HelloWorld.getGreetings: " + s);
+ String response = helloWorldCallbackService.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetings: " + response);
+ return response;
+ }
+
+ public String getGreetingsException(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorld.getGreetingsException: " + s);
+ String response = helloWorldCallbackService.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetings: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplex(Foo foo){
+ System.out.println("Entering SCA HelloWorld.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ Foo response = helloWorldCallbackService.getGreetingsComplex(foo);
+ System.out.println("Leaving SCA HelloWorld.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ return response;
+ }
+
+ // HelloWorldCallback operations
+
+ public String getGreetingsCallback(String s) {
+ System.out.println("Entering SCA HelloWorld.getGreetingsCallback: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetingsCallback: " + response);
+ return response;
+ }
+
+ public String getGreetingsExceptionCallback(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorld.getGreetingsExceptionCallback: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetingsCallback: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplexCallback(Foo foo){
+ System.out.println("Entering SCA HelloWorld.getGreetingsComplexCallback: " + foo.getBars().get(0).getS());
+ Foo response = helloWorldExternal.getGreetingsComplex(foo);
+ System.out.println("Leaving SCA HelloWorld.getGreetingsComplexCallback: " + foo.getBars().get(0).getS());
+ return response;
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/resources/HelloWorldServiceService_schema1.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/resources/HelloWorldServiceService_schema1.xsd new file mode 100644 index 0000000000..acdfcaaaa5 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/resources/HelloWorldServiceService_schema1.xsd @@ -0,0 +1,70 @@ +<?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://helloworld/external" xmlns:tns="http://helloworld/external" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:element name="getGreetings" type="tns:getGreetings"/>
+
+ <xs:element name="getGreetingsComplex" type="tns:getGreetingsComplex"/>
+
+ <xs:element name="getGreetingsComplexResponse" type="tns:getGreetingsComplexResponse"/>
+
+ <xs:element name="getGreetingsResponse" type="tns:getGreetingsResponse"/>
+
+ <xs:complexType name="getGreetings">
+ <xs:sequence>
+ <xs:element name="name" type="xs:string" form="qualified" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsResponse">
+ <xs:sequence>
+ <xs:element name="getGreetingsReturn" type="xs:string" form="qualified" 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>
+
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..350ad6be96 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:itest="http://www.tuscany.apache.org/itests/binding/ws/axis2">
+ <deployable composite="itest:HelloWorld"/>
+</contribution>
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/resources/helloworld-external-service.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/resources/helloworld-external-service.wsdl new file mode 100644 index 0000000000..837bcb059e --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/resources/helloworld-external-service.wsdl @@ -0,0 +1,75 @@ +<?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://helloworld/external" name="HelloWorldServiceService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://helloworld/external" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+ <types>
+ <xsd:schema>
+ <xsd:import namespace="http://helloworld/external" schemaLocation="HelloWorldServiceService_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="getGreetingsComplex">
+ <part name="parameters" element="tns:getGreetingsComplex"/>
+ </message>
+ <message name="getGreetingsComplexResponse">
+ <part name="parameters" element="tns:getGreetingsComplexResponse"/>
+ </message>
+ <portType name="HelloWorldService">
+ <operation name="getGreetings">
+ <input message="tns:getGreetings"/>
+ <output message="tns:getGreetingsResponse"/>
+ </operation>
+ <operation name="getGreetingsComplex">
+ <input message="tns:getGreetingsComplex"/>
+ <output message="tns:getGreetingsComplexResponse"/>
+ </operation>
+ </portType>
+ <binding name="HelloWorldServicePortBinding" type="tns:HelloWorldService">
+ <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="getGreetingsComplex">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="HelloWorldServiceService">
+ <port name="HelloWorldServicePort" binding="tns:HelloWorldServicePortBinding">
+ <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
+ </port>
+ </service>
+</definitions>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/resources/helloworld.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/resources/helloworld.composite new file mode 100644 index 0000000000..cb257d22dd --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-callback/src/main/resources/helloworld.composite @@ -0,0 +1,43 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://www.tuscany.apache.org/itests/binding/ws/axis2"
+ name="HelloWorld">
+
+ <component name="HelloWorldService">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.HelloWorldImpl"/>
+ <service name="HelloWorld">
+ <binding.ws uri="http://localhost:8085/HelloWorldService/HelloWorld"/>
+ </service>
+ <reference name="helloWorldExternal">
+ <binding.ws uri="http://localhost:8086/External/HelloWorld"/>
+ </reference>
+ <reference name="helloWorldCallbackService" target="HelloWorldCallbackService"/>
+ </component>
+
+ <component name="HelloWorldCallbackService">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.HelloWorldCallbackServiceImpl"/>
+ <service name="HelloWorldCallbackService">
+ <binding.ws uri="http://localhost:8085/HelloWorldService/HelloWorldCallbackService"/>
+ </service>
+ </component>
+
+</composite>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/pom.xml new file mode 100644 index 0000000000..fe1a7adcc9 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/pom.xml @@ -0,0 +1,129 @@ +<?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>itest-ws</artifactId>
+ <version>2.0-Beta4</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>itest-ws-contribution-doc-lit-wrapped-dom</artifactId>
+ <name>Apache Tuscany SCA iTest WS Contribution Doc Lit Wrapped DOM</name>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-base-runtime-pom</artifactId>
+ <type>pom</type>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws-runtime-axis2</artifactId>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>6.1.19</version>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <finalName>${project.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.jvnet.jax-ws-commons</groupId>
+ <artifactId>jaxws-maven-plugin</artifactId>
+ <version>2.1</version>
+ <dependencies>
+ <dependency>
+ <groupId>com.sun.xml.ws</groupId>
+ <artifactId>jaxws-tools</artifactId>
+ <version>2.2.6-promoted-b10</version>
+ </dependency>
+ </dependencies>
+ <executions>
+<!--
+ <execution>
+ <id>wsgen1</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>wsgen</goal>
+ </goals>
+ <configuration>
+ <sei>org.apache.tuscany.sca.binding.ws.HelloWorld1Impl</sei>
+ <genWsdl>true</genWsdl>
+ <staleFile>${project.build.directory}/jaxws/stale/.wsgen1StaleFlag</staleFile>
+ </configuration>
+ </execution>
+-->
+ <execution>
+ <id>wsimport1</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>wsimport</goal>
+ </goals>
+ <configuration>
+ <packageName>org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface</packageName>
+ <wsdlDirectory>${basedir}/target/classes</wsdlDirectory>
+ <wsdlFiles>
+ <wsdlFile>helloworld-external-service.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/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java new file mode 100644 index 0000000000..f96dbff352 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.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.binding.ws;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Remotable;
+import org.w3c.dom.Node;
+
+@Remotable
+public interface HelloWorld {
+
+ // TUSCANY-3910
+ Node getGreetings(Node s);
+ String getGreetingsException(String s) throws ServiceRuntimeException;
+ Foo getGreetingsComplex(Foo foo);
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld1Impl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld1Impl.java new file mode 100644 index 0000000000..aeeecb1cfe --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld1Impl.java @@ -0,0 +1,67 @@ +/*
+ * 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;
+
+import javax.jws.WebService;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Reference;
+import org.w3c.dom.Node;
+
+@WebService
+public class HelloWorld1Impl implements HelloWorld {
+
+ @Reference
+ public HelloWorld helloWorld2;
+
+/*
+ public String getGreetings(String s) {
+
+ System.out.println("Entering SCA HelloWorld1.getGreetings: " + s);
+ String response = helloWorld2.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld1.getGreetings: " + response);
+ return response;
+ }
+*/
+
+ public Node getGreetings(Node node){
+ System.out.println("Entering SCA HelloWorld1.getGreetings: " + node.getTextContent());
+ Node response = helloWorld2.getGreetings(node);
+ System.out.println("Leaving SCA HelloWorld1.getGreetings: " + response.getTextContent());
+ return response;
+ }
+
+ public String getGreetingsException(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorld1.getGreetingsException: " + s);
+ String response = helloWorld2.getGreetingsException(s);
+ System.out.println("Leaving SCA HelloWorld1.getGreetings: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplex(Foo foo){
+ System.out.println("Entering SCA HelloWorld1.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ Foo response = helloWorld2.getGreetingsComplex(foo);
+ System.out.println("Leaving SCA HelloWorld1.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ return response;
+ }
+
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld2Impl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld2Impl.java new file mode 100644 index 0000000000..9c0276ad7c --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld2Impl.java @@ -0,0 +1,67 @@ +/*
+ * 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;
+
+import javax.jws.WebService;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.HelloWorldService;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Reference;
+import org.w3c.dom.Node;
+
+@WebService
+public class HelloWorld2Impl implements HelloWorld {
+
+ @Reference
+ public HelloWorldService helloWorldExternal;
+
+/*
+ public String getGreetings(String s) {
+ System.out.println("Entering SCA HelloWorld2.getGreetings: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld2.getGreetings: " + response);
+ return response;
+ }
+*/
+
+ public Node getGreetings(Node node){
+ System.out.println("Entering SCA HelloWorld2.getGreetings: " + node.getTextContent());
+ node.setTextContent("Hello " + node.getTextContent());
+ System.out.println("Leaving SCA HelloWorld2.getGreetings: " + node.getTextContent());
+ return node;
+ }
+
+ public String getGreetingsException(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorld2.getGreetingsException: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld2.getGreetingsException: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplex(Foo foo){
+ System.out.println("Entering SCA HelloWorld2.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ Foo response = helloWorldExternal.getGreetingsComplex(foo);
+ System.out.println("Leaving SCA HelloWorld2.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ return response;
+ }
+
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/HelloWorldImplService-doclit.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/HelloWorldImplService-doclit.wsdl new file mode 100644 index 0000000000..f5a25b39f8 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/HelloWorldImplService-doclit.wsdl @@ -0,0 +1,109 @@ +<?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.
+-->
+<definitions targetNamespace="http://ws.binding.sca.tuscany.apache.org/doclit"
+ name="HelloWorldImplService"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="http://ws.binding.sca.tuscany.apache.org/doclit"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+ <types>
+ <xsd:schema>
+ <xsd:import namespace="http://ws.binding.sca.tuscany.apache.org/doclit"
+ schemaLocation="HelloWorldImplService_doclit1.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-doclit"/>
+ </port>
+ </service>
+</definitions>
+
+
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/HelloWorldImplService-doclit1.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/HelloWorldImplService-doclit1.xsd new file mode 100644 index 0000000000..545820a07d --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/HelloWorldImplService-doclit1.xsd @@ -0,0 +1,83 @@ +<?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://ws.binding.sca.tuscany.apache.org/doclit"
+ xmlns:tns="http://ws.binding.sca.tuscany.apache.org/doclit"
+ xmlns:tns2="http://helloworld/external"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:import namespace="http://helloworld/external" schemaLocation="./HelloWorldImplService-doclit2.xsd"/>
+
+ <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="tns2:foo" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsComplexResponse">
+ <xs:sequence>
+ <xs:element name="return" type="tns2:foo" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/HelloWorldImplService-doclit2.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/HelloWorldImplService-doclit2.xsd new file mode 100644 index 0000000000..d955cc2af4 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/HelloWorldImplService-doclit2.xsd @@ -0,0 +1,40 @@ +<?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://helloworld/external"
+ xmlns:tns="http://helloworld/external"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <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:schema>
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/HelloWorldImplService.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/HelloWorldImplService.wsdl new file mode 100644 index 0000000000..e52d778747 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/HelloWorldImplService.wsdl @@ -0,0 +1,64 @@ +<?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.
+-->
+<definitions targetNamespace="http://ws.binding.sca.tuscany.apache.org/"
+ name="HelloWorldImplService"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="http://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://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>
+ <portType name="HelloWorldImpl">
+ <operation name="getGreetings">
+ <input message="tns:getGreetings"/>
+ <output message="tns:getGreetingsResponse"/>
+ </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>
+ </binding>
+ <service name="HelloWorldImplService">
+ <port name="HelloWorldImplPort" binding="tns:HelloWorldImplPortBinding">
+ <soap:address location="http://localhost:8085/HelloWorldService/HelloWorld"/>
+ </port>
+ </service>
+</definitions>
+
+
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/HelloWorldImplService_schema1.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/HelloWorldImplService_schema1.xsd new file mode 100644 index 0000000000..c9c0acb038 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/HelloWorldImplService_schema1.xsd @@ -0,0 +1,111 @@ +<?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://ws.binding.sca.tuscany.apache.org/"
+ xmlns:tns="http://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:element name="GetGreetingsCaps" type="tns:GetGreetingsCaps"/>
+
+ <xs:element name="GetGreetingsCapsResponse" type="tns:GetGreetingsCapsResponse"/>
+
+ <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:complexType name="GetGreetingsCaps">
+ <xs:sequence>
+ <xs:element name="arg0" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="GetGreetingsCapsResponse">
+ <xs:sequence>
+ <xs:element name="return" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/HelloWorldServiceService_schema1.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/HelloWorldServiceService_schema1.xsd new file mode 100644 index 0000000000..acdfcaaaa5 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/HelloWorldServiceService_schema1.xsd @@ -0,0 +1,70 @@ +<?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://helloworld/external" xmlns:tns="http://helloworld/external" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:element name="getGreetings" type="tns:getGreetings"/>
+
+ <xs:element name="getGreetingsComplex" type="tns:getGreetingsComplex"/>
+
+ <xs:element name="getGreetingsComplexResponse" type="tns:getGreetingsComplexResponse"/>
+
+ <xs:element name="getGreetingsResponse" type="tns:getGreetingsResponse"/>
+
+ <xs:complexType name="getGreetings">
+ <xs:sequence>
+ <xs:element name="name" type="xs:string" form="qualified" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsResponse">
+ <xs:sequence>
+ <xs:element name="getGreetingsReturn" type="xs:string" form="qualified" 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>
+
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..350ad6be96 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:itest="http://www.tuscany.apache.org/itests/binding/ws/axis2">
+ <deployable composite="itest:HelloWorld"/>
+</contribution>
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/helloworld-external-service.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/helloworld-external-service.wsdl new file mode 100644 index 0000000000..837bcb059e --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/helloworld-external-service.wsdl @@ -0,0 +1,75 @@ +<?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://helloworld/external" name="HelloWorldServiceService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://helloworld/external" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+ <types>
+ <xsd:schema>
+ <xsd:import namespace="http://helloworld/external" schemaLocation="HelloWorldServiceService_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="getGreetingsComplex">
+ <part name="parameters" element="tns:getGreetingsComplex"/>
+ </message>
+ <message name="getGreetingsComplexResponse">
+ <part name="parameters" element="tns:getGreetingsComplexResponse"/>
+ </message>
+ <portType name="HelloWorldService">
+ <operation name="getGreetings">
+ <input message="tns:getGreetings"/>
+ <output message="tns:getGreetingsResponse"/>
+ </operation>
+ <operation name="getGreetingsComplex">
+ <input message="tns:getGreetingsComplex"/>
+ <output message="tns:getGreetingsComplexResponse"/>
+ </operation>
+ </portType>
+ <binding name="HelloWorldServicePortBinding" type="tns:HelloWorldService">
+ <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="getGreetingsComplex">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="HelloWorldServiceService">
+ <port name="HelloWorldServicePort" binding="tns:HelloWorldServicePortBinding">
+ <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
+ </port>
+ </service>
+</definitions>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/helloworld.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/helloworld.composite new file mode 100644 index 0000000000..98dad93e09 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped-dom/src/main/resources/helloworld.composite @@ -0,0 +1,45 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://www.tuscany.apache.org/itests/binding/ws/axis2"
+ name="HelloWorld">
+
+ <component name="HelloWorldService1">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.HelloWorld1Impl"/>
+ <service name="HelloWorld">
+ <interface.wsdl interface="http://ws.binding.sca.tuscany.apache.org/#wsdl.porttype(HelloWorldImpl)"/>
+ <binding.ws uri="http://localhost:8085/HelloWorldService/HelloWorld"/>
+ </service>
+ <reference name="helloWorld2">
+ <binding.ws uri="http://localhost:8085/HelloWorldService/HelloWorld-doclit" wsdlElement="http://ws.binding.sca.tuscany.apache.org/doclit#wsdl.binding(HelloWorldImplPortBinding)"/>
+ </reference>
+ </component>
+
+ <component name="HelloWorldService2">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.HelloWorld2Impl"/>
+ <service name="HelloWorld">
+ <binding.ws wsdlElement="http://ws.binding.sca.tuscany.apache.org/doclit#wsdl.port(HelloWorldImplService/HelloWorldImplPort)"/>
+ </service>
+ <reference name="helloWorldExternal">
+ <binding.ws uri="http://localhost:8086/External/HelloWorld"/>
+ </reference>
+ </component>
+</composite>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/pom.xml new file mode 100644 index 0000000000..eb294c69c3 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/pom.xml @@ -0,0 +1,127 @@ +<?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>itest-ws</artifactId>
+ <version>2.0-Beta4</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>itest-ws-contribution-doc-lit-wrapped</artifactId>
+ <name>Apache Tuscany SCA iTest WS Contribution Doc Lit Wrapped </name>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-base-runtime-pom</artifactId>
+ <type>pom</type>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws-runtime-axis2</artifactId>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>6.1.19</version>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <finalName>${project.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.jvnet.jax-ws-commons</groupId>
+ <artifactId>jaxws-maven-plugin</artifactId>
+ <version>2.1</version>
+ <dependencies>
+ <dependency>
+ <groupId>com.sun.xml.ws</groupId>
+ <artifactId>jaxws-tools</artifactId>
+ <version>2.2.6-promoted-b10</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <id>wsgen1</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>wsgen</goal>
+ </goals>
+ <configuration>
+ <sei>org.apache.tuscany.sca.binding.ws.HelloWorld1Impl</sei>
+ <genWsdl>true</genWsdl>
+ <staleFile>${project.build.directory}/jaxws/stale/.wsgen1StaleFlag</staleFile>
+ </configuration>
+ </execution>
+ <execution>
+ <id>wsimport1</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>wsimport</goal>
+ </goals>
+ <configuration>
+ <packageName>org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface</packageName>
+ <wsdlDirectory>${basedir}/target/classes</wsdlDirectory>
+ <wsdlFiles>
+ <wsdlFile>helloworld-external-service.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/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java new file mode 100644 index 0000000000..6bc67db5fc --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java @@ -0,0 +1,32 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface HelloWorld {
+
+ String getGreetings(String s);
+ String getGreetingsException(String s) throws ServiceRuntimeException;
+ Foo getGreetingsComplex(Foo foo);
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld1Impl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld1Impl.java new file mode 100644 index 0000000000..27471f87c6 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld1Impl.java @@ -0,0 +1,54 @@ +/*
+ * 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;
+
+import javax.jws.WebService;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Reference;
+
+@WebService
+public class HelloWorld1Impl implements HelloWorld {
+
+ @Reference
+ public HelloWorld helloWorld2;
+
+ public String getGreetings(String s) {
+ System.out.println("Entering SCA HelloWorld1.getGreetings: " + s);
+ String response = helloWorld2.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld1.getGreetings: " + response);
+ return response;
+ }
+
+ public String getGreetingsException(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorld1.getGreetingsException: " + s);
+ String response = helloWorld2.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld1.getGreetings: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplex(Foo foo){
+ System.out.println("Entering SCA HelloWorld1.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ Foo response = helloWorld2.getGreetingsComplex(foo);
+ System.out.println("Leaving SCA HelloWorld1.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ return response;
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld2Impl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld2Impl.java new file mode 100644 index 0000000000..6f3b430d6d --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld2Impl.java @@ -0,0 +1,55 @@ +/*
+ * 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;
+
+import javax.jws.WebService;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.HelloWorldService;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Reference;
+
+@WebService
+public class HelloWorld2Impl implements HelloWorld {
+
+ @Reference
+ public HelloWorldService helloWorldExternal;
+
+ public String getGreetings(String s) {
+ System.out.println("Entering SCA HelloWorld2.getGreetings: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld2.getGreetings: " + response);
+ return response;
+ }
+
+ public String getGreetingsException(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorld2.getGreetingsException: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld2.getGreetings: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplex(Foo foo){
+ System.out.println("Entering SCA HelloWorld2.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ Foo response = helloWorldExternal.getGreetingsComplex(foo);
+ System.out.println("Leaving SCA HelloWorld2.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ return response;
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/resources/HelloWorldImplService-doclit.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/resources/HelloWorldImplService-doclit.wsdl new file mode 100644 index 0000000000..f5a25b39f8 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/resources/HelloWorldImplService-doclit.wsdl @@ -0,0 +1,109 @@ +<?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.
+-->
+<definitions targetNamespace="http://ws.binding.sca.tuscany.apache.org/doclit"
+ name="HelloWorldImplService"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="http://ws.binding.sca.tuscany.apache.org/doclit"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+ <types>
+ <xsd:schema>
+ <xsd:import namespace="http://ws.binding.sca.tuscany.apache.org/doclit"
+ schemaLocation="HelloWorldImplService_doclit1.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-doclit"/>
+ </port>
+ </service>
+</definitions>
+
+
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/resources/HelloWorldImplService-doclit1.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/resources/HelloWorldImplService-doclit1.xsd new file mode 100644 index 0000000000..545820a07d --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/resources/HelloWorldImplService-doclit1.xsd @@ -0,0 +1,83 @@ +<?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://ws.binding.sca.tuscany.apache.org/doclit"
+ xmlns:tns="http://ws.binding.sca.tuscany.apache.org/doclit"
+ xmlns:tns2="http://helloworld/external"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:import namespace="http://helloworld/external" schemaLocation="./HelloWorldImplService-doclit2.xsd"/>
+
+ <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="tns2:foo" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsComplexResponse">
+ <xs:sequence>
+ <xs:element name="return" type="tns2:foo" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/resources/HelloWorldImplService-doclit2.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/resources/HelloWorldImplService-doclit2.xsd new file mode 100644 index 0000000000..d955cc2af4 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/resources/HelloWorldImplService-doclit2.xsd @@ -0,0 +1,40 @@ +<?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://helloworld/external"
+ xmlns:tns="http://helloworld/external"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <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:schema>
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/resources/HelloWorldServiceService_schema1.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/resources/HelloWorldServiceService_schema1.xsd new file mode 100644 index 0000000000..acdfcaaaa5 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/resources/HelloWorldServiceService_schema1.xsd @@ -0,0 +1,70 @@ +<?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://helloworld/external" xmlns:tns="http://helloworld/external" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:element name="getGreetings" type="tns:getGreetings"/>
+
+ <xs:element name="getGreetingsComplex" type="tns:getGreetingsComplex"/>
+
+ <xs:element name="getGreetingsComplexResponse" type="tns:getGreetingsComplexResponse"/>
+
+ <xs:element name="getGreetingsResponse" type="tns:getGreetingsResponse"/>
+
+ <xs:complexType name="getGreetings">
+ <xs:sequence>
+ <xs:element name="name" type="xs:string" form="qualified" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsResponse">
+ <xs:sequence>
+ <xs:element name="getGreetingsReturn" type="xs:string" form="qualified" 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>
+
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..350ad6be96 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:itest="http://www.tuscany.apache.org/itests/binding/ws/axis2">
+ <deployable composite="itest:HelloWorld"/>
+</contribution>
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/resources/helloworld-external-service.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/resources/helloworld-external-service.wsdl new file mode 100644 index 0000000000..837bcb059e --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/resources/helloworld-external-service.wsdl @@ -0,0 +1,75 @@ +<?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://helloworld/external" name="HelloWorldServiceService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://helloworld/external" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+ <types>
+ <xsd:schema>
+ <xsd:import namespace="http://helloworld/external" schemaLocation="HelloWorldServiceService_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="getGreetingsComplex">
+ <part name="parameters" element="tns:getGreetingsComplex"/>
+ </message>
+ <message name="getGreetingsComplexResponse">
+ <part name="parameters" element="tns:getGreetingsComplexResponse"/>
+ </message>
+ <portType name="HelloWorldService">
+ <operation name="getGreetings">
+ <input message="tns:getGreetings"/>
+ <output message="tns:getGreetingsResponse"/>
+ </operation>
+ <operation name="getGreetingsComplex">
+ <input message="tns:getGreetingsComplex"/>
+ <output message="tns:getGreetingsComplexResponse"/>
+ </operation>
+ </portType>
+ <binding name="HelloWorldServicePortBinding" type="tns:HelloWorldService">
+ <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="getGreetingsComplex">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="HelloWorldServiceService">
+ <port name="HelloWorldServicePort" binding="tns:HelloWorldServicePortBinding">
+ <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
+ </port>
+ </service>
+</definitions>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/resources/helloworld.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/resources/helloworld.composite new file mode 100644 index 0000000000..e00e130c32 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit-wrapped/src/main/resources/helloworld.composite @@ -0,0 +1,44 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://www.tuscany.apache.org/itests/binding/ws/axis2"
+ name="HelloWorld">
+
+ <component name="HelloWorldService1">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.HelloWorld1Impl"/>
+ <service name="HelloWorld">
+ <binding.ws uri="http://localhost:8085/HelloWorldService/HelloWorld"/>
+ </service>
+ <reference name="helloWorld2">
+ <binding.ws uri="http://localhost:8085/HelloWorldService/HelloWorld-doclit" wsdlElement="http://ws.binding.sca.tuscany.apache.org/doclit#wsdl.binding(HelloWorldImplPortBinding)"/>
+ </reference>
+ </component>
+
+ <component name="HelloWorldService2">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.HelloWorld2Impl"/>
+ <service name="HelloWorld">
+ <binding.ws wsdlElement="http://ws.binding.sca.tuscany.apache.org/doclit#wsdl.port(HelloWorldImplService/HelloWorldImplPort)"/>
+ </service>
+ <reference name="helloWorldExternal">
+ <binding.ws uri="http://localhost:8086/External/HelloWorld"/>
+ </reference>
+ </component>
+</composite>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/pom.xml new file mode 100644 index 0000000000..f68a41e7e3 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/pom.xml @@ -0,0 +1,127 @@ +<?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>itest-ws</artifactId>
+ <version>2.0-Beta4</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>itest-ws-contribution-doc-lit</artifactId>
+ <name>Apache Tuscany SCA iTest WS Contribution Doc Lit(sometimes called Bare) </name>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-base-runtime-pom</artifactId>
+ <type>pom</type>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws-runtime-axis2</artifactId>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>6.1.19</version>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <finalName>${project.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.jvnet.jax-ws-commons</groupId>
+ <artifactId>jaxws-maven-plugin</artifactId>
+ <version>2.1</version>
+ <dependencies>
+ <dependency>
+ <groupId>com.sun.xml.ws</groupId>
+ <artifactId>jaxws-tools</artifactId>
+ <version>2.2.6-promoted-b10</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <id>wsgen1</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>wsgen</goal>
+ </goals>
+ <configuration>
+ <sei>org.apache.tuscany.sca.binding.ws.HelloWorld1Impl</sei>
+ <genWsdl>true</genWsdl>
+ <staleFile>${project.build.directory}/jaxws/stale/.wsgen1StaleFlag</staleFile>
+ </configuration>
+ </execution>
+ <execution>
+ <id>wsimport1</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>wsimport</goal>
+ </goals>
+ <configuration>
+ <packageName>org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface</packageName>
+ <wsdlDirectory>${basedir}/target/classes</wsdlDirectory>
+ <wsdlFiles>
+ <wsdlFile>helloworld-external-service.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/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java new file mode 100644 index 0000000000..9196530db7 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java @@ -0,0 +1,36 @@ +/*
+ * 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;
+
+import javax.jws.soap.SOAPBinding;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface HelloWorld {
+
+ String getGreetings(String s);
+ String getGreetingsException(String s) throws ServiceRuntimeException;
+/* TUSCANY-3621
+ Foo getGreetingsComplex(Foo foo);
+*/
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld1Impl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld1Impl.java new file mode 100644 index 0000000000..c8bad91339 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld1Impl.java @@ -0,0 +1,55 @@ +/*
+ * 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;
+
+import javax.jws.WebService;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Reference;
+
+@WebService
+public class HelloWorld1Impl implements HelloWorld {
+
+ @Reference
+ public HelloWorldBare helloWorld2;
+
+ public String getGreetings(String s) {
+ System.out.println("Entering SCA HelloWorld1.getGreetings: " + s);
+ String response = helloWorld2.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld1.getGreetings: " + response);
+ return response;
+ }
+
+ public String getGreetingsException(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorld1.getGreetingsException: " + s);
+ String response = helloWorld2.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld1.getGreetings: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+/* TUSCANY-3621
+ public Foo getGreetingsComplex(Foo foo){
+ System.out.println("Entering SCA HelloWorld1.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ Foo response = helloWorld2.getGreetingsComplex(foo);
+ System.out.println("Leaving SCA HelloWorld1.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ return response;
+ }
+*/
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld2Impl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld2Impl.java new file mode 100644 index 0000000000..deb4dfc09d --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld2Impl.java @@ -0,0 +1,56 @@ +/*
+ * 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;
+
+import javax.jws.WebService;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.HelloWorldService;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Reference;
+
+@WebService
+public class HelloWorld2Impl implements HelloWorldBare {
+
+ @Reference
+ public HelloWorldService helloWorldExternal;
+
+ public String getGreetings(String s) {
+ System.out.println("Entering SCA HelloWorld2.getGreetings: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld2.getGreetings: " + response);
+ return response;
+ }
+
+ public String getGreetingsException(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorld2.getGreetingsException: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld2.getGreetings: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+/* TUSCANY-3621
+ public Foo getGreetingsComplex(Foo foo){
+ System.out.println("Entering SCA HelloWorld2.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ Foo response = helloWorldExternal.getGreetingsComplex(foo);
+ System.out.println("Leaving SCA HelloWorld2.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ return response;
+ }
+*/
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldBare.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldBare.java new file mode 100644 index 0000000000..e37ff1aef3 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldBare.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.binding.ws;
+
+import javax.jws.soap.SOAPBinding;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
+public interface HelloWorldBare {
+
+ String getGreetings(String s);
+ String getGreetingsException(String s) throws ServiceRuntimeException;
+/* TUSCANY-3621
+ Foo getGreetingsComplex(Foo foo);
+*/
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/resources/HelloWorldImplService-doclit.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/resources/HelloWorldImplService-doclit.wsdl new file mode 100644 index 0000000000..03e0a8c93c --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/resources/HelloWorldImplService-doclit.wsdl @@ -0,0 +1,113 @@ +<?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.
+-->
+<definitions targetNamespace="http://ws.binding.sca.tuscany.apache.org/doclit"
+ name="HelloWorldImplService"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="http://ws.binding.sca.tuscany.apache.org/doclit"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+ <types>
+ <xsd:schema>
+ <xsd:import namespace="http://ws.binding.sca.tuscany.apache.org/doclit"
+ schemaLocation="HelloWorldImplService_doclit1.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>
+<!-- TUSCANY-3621
+ <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>
+<!-- TUSCANY-3621
+ <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-doclit"/>
+ </port>
+ </service>
+</definitions>
+
+
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/resources/HelloWorldImplService-doclit1.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/resources/HelloWorldImplService-doclit1.xsd new file mode 100644 index 0000000000..6238bf2f45 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/resources/HelloWorldImplService-doclit1.xsd @@ -0,0 +1,49 @@ +<?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://ws.binding.sca.tuscany.apache.org/doclit"
+ xmlns:tns="http://ws.binding.sca.tuscany.apache.org/doclit"
+ xmlns:tns2="http://helloworld/external"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:import namespace="http://helloworld/external" schemaLocation="./HelloWorldImplService-doclit2.xsd"/>
+
+ <xs:element name="Exception" type="tns:Exception"/>
+
+ <xs:element name="getGreetings" type="xs:string"/>
+
+ <xs:element name="getGreetingsResponse" type="xs:string"/>
+
+ <xs:element name="getGreetingsComplex" type="tns2:foo"/>
+
+ <xs:element name="getGreetingsComplexResponse" type="tns2:foo"/>
+
+ <xs:element name="getGreetingsException" type="xs:string"/>
+
+ <xs:element name="getGreetingsExceptionResponse" type="xs:string"/>
+
+ <xs:complexType name="Exception">
+ <xs:sequence>
+ <xs:element name="message" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+</xs:schema>
+
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/resources/HelloWorldImplService-doclit2.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/resources/HelloWorldImplService-doclit2.xsd new file mode 100644 index 0000000000..d955cc2af4 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/resources/HelloWorldImplService-doclit2.xsd @@ -0,0 +1,40 @@ +<?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://helloworld/external"
+ xmlns:tns="http://helloworld/external"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <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:schema>
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/resources/HelloWorldServiceService_schema1.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/resources/HelloWorldServiceService_schema1.xsd new file mode 100644 index 0000000000..acdfcaaaa5 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/resources/HelloWorldServiceService_schema1.xsd @@ -0,0 +1,70 @@ +<?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://helloworld/external" xmlns:tns="http://helloworld/external" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:element name="getGreetings" type="tns:getGreetings"/>
+
+ <xs:element name="getGreetingsComplex" type="tns:getGreetingsComplex"/>
+
+ <xs:element name="getGreetingsComplexResponse" type="tns:getGreetingsComplexResponse"/>
+
+ <xs:element name="getGreetingsResponse" type="tns:getGreetingsResponse"/>
+
+ <xs:complexType name="getGreetings">
+ <xs:sequence>
+ <xs:element name="name" type="xs:string" form="qualified" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsResponse">
+ <xs:sequence>
+ <xs:element name="getGreetingsReturn" type="xs:string" form="qualified" 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>
+
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..350ad6be96 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:itest="http://www.tuscany.apache.org/itests/binding/ws/axis2">
+ <deployable composite="itest:HelloWorld"/>
+</contribution>
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/resources/helloworld-external-service.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/resources/helloworld-external-service.wsdl new file mode 100644 index 0000000000..837bcb059e --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/resources/helloworld-external-service.wsdl @@ -0,0 +1,75 @@ +<?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://helloworld/external" name="HelloWorldServiceService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://helloworld/external" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+ <types>
+ <xsd:schema>
+ <xsd:import namespace="http://helloworld/external" schemaLocation="HelloWorldServiceService_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="getGreetingsComplex">
+ <part name="parameters" element="tns:getGreetingsComplex"/>
+ </message>
+ <message name="getGreetingsComplexResponse">
+ <part name="parameters" element="tns:getGreetingsComplexResponse"/>
+ </message>
+ <portType name="HelloWorldService">
+ <operation name="getGreetings">
+ <input message="tns:getGreetings"/>
+ <output message="tns:getGreetingsResponse"/>
+ </operation>
+ <operation name="getGreetingsComplex">
+ <input message="tns:getGreetingsComplex"/>
+ <output message="tns:getGreetingsComplexResponse"/>
+ </operation>
+ </portType>
+ <binding name="HelloWorldServicePortBinding" type="tns:HelloWorldService">
+ <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="getGreetingsComplex">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="HelloWorldServiceService">
+ <port name="HelloWorldServicePort" binding="tns:HelloWorldServicePortBinding">
+ <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
+ </port>
+ </service>
+</definitions>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/resources/helloworld.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/resources/helloworld.composite new file mode 100644 index 0000000000..5ae9e78823 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-doc-lit/src/main/resources/helloworld.composite @@ -0,0 +1,44 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://www.tuscany.apache.org/itests/binding/ws/axis2"
+ name="HelloWorld">
+
+ <component name="HelloWorldService1">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.HelloWorld1Impl"/>
+ <service name="HelloWorld">
+ <binding.ws uri="http://localhost:8085/HelloWorldService/HelloWorld"/>
+ </service>
+ <reference name="helloWorld2">
+ <binding.ws uri="http://localhost:8085/HelloWorldService/HelloWorld-doclit" wsdlElement="http://ws.binding.sca.tuscany.apache.org/doclit#wsdl.binding(HelloWorldImplPortBinding)"/>
+ </reference>
+ </component>
+
+ <component name="HelloWorldService2">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.HelloWorld2Impl"/>
+ <service name="HelloWorldBare">
+ <binding.ws wsdlElement="http://ws.binding.sca.tuscany.apache.org/doclit#wsdl.port(HelloWorldImplService/HelloWorldImplPort)"/>
+ </service>
+ <reference name="helloWorldExternal">
+ <binding.ws uri="http://localhost:8086/External/HelloWorld"/>
+ </reference>
+ </component>
+</composite>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-java-first/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-java-first/pom.xml new file mode 100644 index 0000000000..9ac3596a01 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-java-first/pom.xml @@ -0,0 +1,127 @@ +<?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>itest-ws</artifactId>
+ <version>2.0-Beta4</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>itest-ws-contribution-java-first</artifactId>
+ <name>Apache Tuscany SCA iTest WS Contribution Java First </name>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-base-runtime-pom</artifactId>
+ <type>pom</type>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws-runtime-axis2</artifactId>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>6.1.19</version>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <finalName>${project.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.jvnet.jax-ws-commons</groupId>
+ <artifactId>jaxws-maven-plugin</artifactId>
+ <version>2.1</version>
+ <dependencies>
+ <dependency>
+ <groupId>com.sun.xml.ws</groupId>
+ <artifactId>jaxws-tools</artifactId>
+ <version>2.2.6-promoted-b10</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <id>wsgen1</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>wsgen</goal>
+ </goals>
+ <configuration>
+ <sei>org.apache.tuscany.sca.binding.ws.HelloWorldImpl</sei>
+ <genWsdl>true</genWsdl>
+ <staleFile>${project.build.directory}/jaxws/stale/.wsgen1StaleFlag</staleFile>
+ </configuration>
+ </execution>
+ <execution>
+ <id>wsimport1</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>wsimport</goal>
+ </goals>
+ <configuration>
+ <packageName>org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface</packageName>
+ <wsdlDirectory>${basedir}/target/classes</wsdlDirectory>
+ <wsdlFiles>
+ <wsdlFile>helloworld-external-service.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/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-java-first/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-java-first/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java new file mode 100644 index 0000000000..6bc67db5fc --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-java-first/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java @@ -0,0 +1,32 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface HelloWorld {
+
+ String getGreetings(String s);
+ String getGreetingsException(String s) throws ServiceRuntimeException;
+ Foo getGreetingsComplex(Foo foo);
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-java-first/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-java-first/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java new file mode 100644 index 0000000000..8f57680d47 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-java-first/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java @@ -0,0 +1,55 @@ +/*
+ * 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;
+
+import javax.jws.WebService;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.HelloWorldService;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Reference;
+
+@WebService
+public class HelloWorldImpl implements HelloWorld {
+
+ @Reference
+ public HelloWorldService helloWorldExternal;
+
+ public String getGreetings(String s) {
+ System.out.println("Entering SCA HelloWorld.getGreetings: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetings: " + response);
+ return response;
+ }
+
+ public String getGreetingsException(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorld.getGreetingsException: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetings: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplex(Foo foo){
+ System.out.println("Entering SCA HelloWorld.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ Foo response = helloWorldExternal.getGreetingsComplex(foo);
+ System.out.println("Leaving SCA HelloWorld.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ return response;
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-java-first/src/main/resources/HelloWorldServiceService_schema1.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-java-first/src/main/resources/HelloWorldServiceService_schema1.xsd new file mode 100644 index 0000000000..acdfcaaaa5 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-java-first/src/main/resources/HelloWorldServiceService_schema1.xsd @@ -0,0 +1,70 @@ +<?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://helloworld/external" xmlns:tns="http://helloworld/external" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:element name="getGreetings" type="tns:getGreetings"/>
+
+ <xs:element name="getGreetingsComplex" type="tns:getGreetingsComplex"/>
+
+ <xs:element name="getGreetingsComplexResponse" type="tns:getGreetingsComplexResponse"/>
+
+ <xs:element name="getGreetingsResponse" type="tns:getGreetingsResponse"/>
+
+ <xs:complexType name="getGreetings">
+ <xs:sequence>
+ <xs:element name="name" type="xs:string" form="qualified" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsResponse">
+ <xs:sequence>
+ <xs:element name="getGreetingsReturn" type="xs:string" form="qualified" 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>
+
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-java-first/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-java-first/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..350ad6be96 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-java-first/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:itest="http://www.tuscany.apache.org/itests/binding/ws/axis2">
+ <deployable composite="itest:HelloWorld"/>
+</contribution>
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-java-first/src/main/resources/helloworld-external-service.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-java-first/src/main/resources/helloworld-external-service.wsdl new file mode 100644 index 0000000000..837bcb059e --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-java-first/src/main/resources/helloworld-external-service.wsdl @@ -0,0 +1,75 @@ +<?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://helloworld/external" name="HelloWorldServiceService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://helloworld/external" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+ <types>
+ <xsd:schema>
+ <xsd:import namespace="http://helloworld/external" schemaLocation="HelloWorldServiceService_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="getGreetingsComplex">
+ <part name="parameters" element="tns:getGreetingsComplex"/>
+ </message>
+ <message name="getGreetingsComplexResponse">
+ <part name="parameters" element="tns:getGreetingsComplexResponse"/>
+ </message>
+ <portType name="HelloWorldService">
+ <operation name="getGreetings">
+ <input message="tns:getGreetings"/>
+ <output message="tns:getGreetingsResponse"/>
+ </operation>
+ <operation name="getGreetingsComplex">
+ <input message="tns:getGreetingsComplex"/>
+ <output message="tns:getGreetingsComplexResponse"/>
+ </operation>
+ </portType>
+ <binding name="HelloWorldServicePortBinding" type="tns:HelloWorldService">
+ <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="getGreetingsComplex">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="HelloWorldServiceService">
+ <port name="HelloWorldServicePort" binding="tns:HelloWorldServicePortBinding">
+ <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
+ </port>
+ </service>
+</definitions>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-java-first/src/main/resources/helloworld.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-java-first/src/main/resources/helloworld.composite new file mode 100644 index 0000000000..e6cdb94dfb --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-java-first/src/main/resources/helloworld.composite @@ -0,0 +1,35 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://www.tuscany.apache.org/itests/binding/ws/axis2"
+ name="HelloWorld">
+
+ <component name="HelloWorldService">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.HelloWorldImpl"/>
+ <service name="HelloWorld">
+ <binding.ws uri="http://localhost:8085/HelloWorldService/HelloWorld"/>
+ </service>
+ <reference name="helloWorldExternal">
+ <binding.ws uri="http://localhost:8086/External/HelloWorld"/>
+ </reference>
+ </component>
+
+</composite>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/pom.xml new file mode 100644 index 0000000000..725f82391e --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/pom.xml @@ -0,0 +1,129 @@ +<?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>itest-ws</artifactId>
+ <version>2.0-Beta4</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>itest-ws-contribution-reference-target</artifactId>
+ <name>Apache Tuscany SCA iTest WS Contribution Reference Target</name>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-base-runtime-pom</artifactId>
+ <type>pom</type>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws-runtime-axis2</artifactId>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>6.1.19</version>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <finalName>${project.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.jvnet.jax-ws-commons</groupId>
+ <artifactId>jaxws-maven-plugin</artifactId>
+ <version>2.1</version>
+ <dependencies>
+ <dependency>
+ <groupId>com.sun.xml.ws</groupId>
+ <artifactId>jaxws-tools</artifactId>
+ <version>2.2.6-promoted-b10</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.sca</packageName>
+ <wsdlDirectory>${basedir}/target/classes</wsdlDirectory>
+ <wsdlFiles>
+ <wsdlFile>HelloWorldImplService.wsdl</wsdlFile>
+ </wsdlFiles>
+ <staleFile>${project.build.directory}/jaxws/stale/.wsimport1StaleFlag</staleFile>
+ </configuration>
+ </execution-->
+ <execution>
+ <id>wsimport2</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>wsimport</goal>
+ </goals>
+ <configuration>
+ <packageName>org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface</packageName>
+ <wsdlDirectory>${basedir}/target/classes</wsdlDirectory>
+ <wsdlFiles>
+ <wsdlFile>helloworld-external-service.wsdl</wsdlFile>
+ </wsdlFiles>
+ <staleFile>${project.build.directory}/jaxws/stale/.wsimport2StaleFlag</staleFile>
+ </configuration>
+ </execution>
+ </executions>
+ <configuration>
+ <target>2.1</target>
+ <sourceDestDir>${project.build.directory}/jaxws-source</sourceDestDir>
+ <verbose>true</verbose>
+ <xnocompile>true</xnocompile>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java new file mode 100644 index 0000000000..c9c1038ea3 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.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.binding.ws;
+
+import javax.jws.WebMethod;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface HelloWorld {
+
+ String getGreetings(String s);
+ String getGreetingsException(String s) throws ServiceRuntimeException;
+ Foo getGreetingsComplex(Foo foo);
+
+ @WebMethod(operationName = "GetGreetingsCaps")
+ String getGreetingsCaps(String s);
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java new file mode 100644 index 0000000000..d5aeee0b59 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java @@ -0,0 +1,59 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Reference;
+
+public class HelloWorldImpl implements HelloWorld {
+
+ @Reference
+ public HelloWorld helloWorldInternal;
+
+ public String getGreetings(String s) {
+ System.out.println("Entering SCA HelloWorld.getGreetings: " + s);
+ String response = helloWorldInternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetings: " + response);
+ return response;
+ }
+
+ public String getGreetingsException(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorld.getGreetingsException: " + s);
+ String response = helloWorldInternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetings: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplex(Foo foo){
+ System.out.println("Entering SCA HelloWorld.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ Foo response = helloWorldInternal.getGreetingsComplex(foo);
+ System.out.println("Leaving SCA HelloWorld.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ return response;
+ }
+
+ public String getGreetingsCaps(String s) {
+ System.out.println("Entering SCA HelloWorld.getGreetingsCaps: " + s);
+ String response = helloWorldInternal.getGreetingsCaps(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetingsCaps: " + response);
+ return response;
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldInternalImpl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldInternalImpl.java new file mode 100644 index 0000000000..c2d5f96afb --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldInternalImpl.java @@ -0,0 +1,60 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.HelloWorldService;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Reference;
+
+public class HelloWorldInternalImpl implements HelloWorld {
+
+ @Reference
+ public HelloWorldService helloWorldExternal;
+
+ public String getGreetings(String s) {
+ System.out.println("Entering SCA HelloWorldInternal.getGreetings: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorldInternal.getGreetings: " + response);
+ return response;
+ }
+
+ public String getGreetingsException(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorldInternal.getGreetingsException: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorldInternal.getGreetings: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplex(Foo foo){
+ System.out.println("Entering SCA HelloWorldInternal.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ Foo response = helloWorldExternal.getGreetingsComplex(foo);
+ System.out.println("Leaving SCA HelloWorldInternal.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ return response;
+ }
+
+ public String getGreetingsCaps(String s) {
+ System.out.println("Entering SCA HelloWorldInternal.getGreetingsCaps: " + s);
+ String response = helloWorldExternal.getGreetingsCaps(s);
+ System.out.println("Leaving SCA HelloWorldInternal.getGreetingsCaps: " + response);
+ return response;
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/resources/HelloWorldImplService.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/resources/HelloWorldImplService.wsdl new file mode 100644 index 0000000000..95c9386133 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/resources/HelloWorldImplService.wsdl @@ -0,0 +1,131 @@ +<?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.
+-->
+<definitions targetNamespace="http://ws.binding.sca.tuscany.apache.org/"
+ name="HelloWorldImplService"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="http://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://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>
+ <message name="GetGreetingsCaps">
+ <part name="parameters" element="tns:GetGreetingsCaps"/>
+ </message>
+ <message name="GetGreetingsCapsResponse">
+ <part name="parameters" element="tns:GetGreetingsCapsResponse"/>
+ </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>
+ <operation name="GetGreetingsCaps">
+ <input message="tns:GetGreetingsCaps"/>
+ <output message="tns:GetGreetingsCapsResponse"/>
+ </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>
+ <operation name="GetGreetingsCaps">
+ <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>
+ <port name="HelloWorldInternalImplPort" binding="tns:HelloWorldImplPortBinding">
+ <soap:address location="http://localhost:8087/HelloWorldService/HelloWorldInternal"/>
+ </port>
+ </service>
+</definitions>
+
+
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/resources/HelloWorldImplService_schema1.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/resources/HelloWorldImplService_schema1.xsd new file mode 100644 index 0000000000..2d8adf3d73 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/resources/HelloWorldImplService_schema1.xsd @@ -0,0 +1,99 @@ +<?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://ws.binding.sca.tuscany.apache.org/"
+ xmlns:tns="http://ws.binding.sca.tuscany.apache.org/"
+ xmlns:tns2="http://helloworld/external"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:import namespace="http://helloworld/external" schemaLocation="./HelloWorldImplService_schema2.xsd"/>
+
+ <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:element name="GetGreetingsCaps" type="tns:GetGreetingsCaps"/>
+
+ <xs:element name="GetGreetingsCapsResponse" type="tns:GetGreetingsCapsResponse"/>
+
+ <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="tns2:foo" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsComplexResponse">
+ <xs:sequence>
+ <xs:element name="return" type="tns2:foo" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="GetGreetingsCaps">
+ <xs:sequence>
+ <xs:element name="arg0" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="GetGreetingsCapsResponse">
+ <xs:sequence>
+ <xs:element name="return" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/resources/HelloWorldImplService_schema2.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/resources/HelloWorldImplService_schema2.xsd new file mode 100644 index 0000000000..d955cc2af4 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/resources/HelloWorldImplService_schema2.xsd @@ -0,0 +1,40 @@ +<?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://helloworld/external"
+ xmlns:tns="http://helloworld/external"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <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:schema>
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/resources/HelloWorldServiceService_schema1.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/resources/HelloWorldServiceService_schema1.xsd new file mode 100644 index 0000000000..467eeb90c5 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/resources/HelloWorldServiceService_schema1.xsd @@ -0,0 +1,86 @@ +<?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://helloworld/external" xmlns:tns="http://helloworld/external" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:element name="getGreetings" type="tns:getGreetings"/>
+
+ <xs:element name="getGreetingsResponse" type="tns:getGreetingsResponse"/>
+
+ <xs:element name="getGreetingsComplex" type="tns:getGreetingsComplex"/>
+
+ <xs:element name="getGreetingsComplexResponse" type="tns:getGreetingsComplexResponse"/>
+
+ <xs:element name="GetGreetingsCaps" type="tns:GetGreetingsCaps"/>
+
+ <xs:element name="GetGreetingsCapsResponse" type="tns:GetGreetingsCapsResponse"/>
+
+ <xs:complexType name="getGreetings">
+ <xs:sequence>
+ <xs:element name="name" type="xs:string" form="qualified" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsResponse">
+ <xs:sequence>
+ <xs:element name="getGreetingsReturn" type="xs:string" form="qualified" 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:complexType name="GetGreetingsCaps">
+ <xs:sequence>
+ <xs:element name="arg0" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="GetGreetingsCapsResponse">
+ <xs:sequence>
+ <xs:element name="return" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
+
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..350ad6be96 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:itest="http://www.tuscany.apache.org/itests/binding/ws/axis2">
+ <deployable composite="itest:HelloWorld"/>
+</contribution>
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/resources/helloworld-external-service.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/resources/helloworld-external-service.wsdl new file mode 100644 index 0000000000..c38f629e4f --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/resources/helloworld-external-service.wsdl @@ -0,0 +1,99 @@ +<?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://helloworld/external" name="HelloWorldServiceService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://helloworld/external" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+ <types>
+ <xsd:schema>
+ <xsd:import namespace="http://helloworld/external" schemaLocation="HelloWorldServiceService_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="getGreetingsComplex">
+ <part name="parameters" element="tns:getGreetingsComplex"/>
+ </message>
+ <message name="getGreetingsComplexResponse">
+ <part name="parameters" element="tns:getGreetingsComplexResponse"/>
+ </message>
+ <message name="GetGreetingsCaps">
+ <part name="parameters" element="tns:GetGreetingsCaps"/>
+ </message>
+ <message name="GetGreetingsCapsResponse">
+ <part name="parameters" element="tns:GetGreetingsCapsResponse"/>
+ </message>
+ <portType name="HelloWorldService">
+ <operation name="getGreetings">
+ <input message="tns:getGreetings"/>
+ <output message="tns:getGreetingsResponse"/>
+ </operation>
+ <operation name="getGreetingsComplex">
+ <input message="tns:getGreetingsComplex"/>
+ <output message="tns:getGreetingsComplexResponse"/>
+ </operation>
+ <operation name="GetGreetingsCaps">
+ <input message="tns:GetGreetingsCaps"/>
+ <output message="tns:GetGreetingsCapsResponse"/>
+ </operation>
+ </portType>
+ <binding name="HelloWorldServicePortBinding" type="tns:HelloWorldService">
+ <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="getGreetingsComplex">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="GetGreetingsCaps">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="HelloWorldServiceService">
+ <port name="HelloWorldServicePort" binding="tns:HelloWorldServicePortBinding">
+ <soap:address location="http://localhost:8086/External/HelloWorld"/>
+ </port>
+ </service>
+ <service name="HelloWorldImplService">
+ <port name="HelloWorldImplPort" binding="tns:HelloWorldServicePortBinding">
+ <soap:address location="http://localhost:8085/HelloWorldService/HelloWorld"/>
+ </port>
+ </service>
+</definitions>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/resources/helloworld.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/resources/helloworld.composite new file mode 100644 index 0000000000..f432d4fc25 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-reference-target/src/main/resources/helloworld.composite @@ -0,0 +1,43 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://www.tuscany.apache.org/itests/binding/ws/axis2"
+ name="HelloWorld">
+
+ <component name="HelloWorldService">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.HelloWorldImpl"/>
+ <service name="HelloWorld">
+ <binding.ws wsdlElement="http://ws.binding.sca.tuscany.apache.org/#wsdl.port(HelloWorldImplService/HelloWorldImplPort)"/>
+ </service>
+ <reference name="helloWorldInternal" target="HelloWorldInternalService"/>
+ </component>
+
+ <component name="HelloWorldInternalService">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.HelloWorldInternalImpl"/>
+ <service name="HelloWorld">
+ <binding.ws wsdlElement="http://ws.binding.sca.tuscany.apache.org/#wsdl.port(HelloWorldImplService/HelloWorldInternalImplPort)"/>
+ </service>
+ <reference name="helloWorldExternal">
+ <binding.ws wsdlElement="http://helloworld/external#wsdl.port(HelloWorldServiceService/HelloWorldServicePort)"/>
+ </reference>
+ </component>
+
+</composite>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/README b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/README new file mode 100644 index 0000000000..fe73646e78 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/README @@ -0,0 +1,254 @@ +RPC Literal WSDL Style
+======================
+
+Interface
+---------
+
+@Remotable
+public interface HelloWorld {
+ String getGreetings(String s);
+ String getGreetingsException(String s) throws ServiceRuntimeException;
+ Foo getGreetingsComplex(Foo foo);
+}
+
+WSDL
+----
+
+ <types>
+ <xsd:schema>
+ <xsd:import namespace="http://ws.binding.sca.tuscany.apache.org/rpclit"
+ schemaLocation="HelloWorldImplService-rpclit.xsd"/>
+ </xsd:schema>
+ </types>
+ <message name="getGreetings">
+ <part name="s" type="xsd:string"/>
+ </message>
+ <message name="getGreetingsResponse">
+ <part name="s" type="xsd:string"/>
+ </message>
+ <message name="getGreetingsException">
+ <part name="s" type="xsd:string"/>
+ </message>
+ <message name="getGreetingsExceptionResponse">
+ <part name="s" type="xsd:string"/>
+ </message>
+ <message name="Exception">
+ <part name="fault" element="tns:Exception"/>
+ </message>
+ <message name="getGreetingsComplex">
+ <part name="foo" type="tns:foo"/>
+ </message>
+ <message name="getGreetingsComplexResponse">
+ <part name="foo" type="tns:foo"/>
+ </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="rpc"/>
+ <operation name="getGreetings">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal" namespace="http://ws.binding.sca.tuscany.apache.org/rpclit/getGreetingsNamespace"/>
+ </input>
+ <output>
+ <soap:body use="literal" namespace="http://ws.binding.sca.tuscany.apache.org/rpclit/getGreetingsNamespace"/>
+ </output>
+ </operation>
+ <operation name="getGreetingsException">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal" namespace="http://ws.binding.sca.tuscany.apache.org/rpclit/getGreetingsExceptionNamespace"/>
+ </input>
+ <output>
+ <soap:body use="literal" namespace="http://ws.binding.sca.tuscany.apache.org/rpclit/getGreetingsExceptionNamespace"/>
+ </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>
+
+getGreetings SOAP Request/Response
+----------------------------------
+
+POST /HelloWorldService/HelloWorld-rpclit-porttype HTTP/1.1
+Content-Type: text/xml; charset=UTF-8
+SOAPAction: ""
+User-Agent: Axis2
+Host: localhost:8088
+Content-Length: 480
+
+<?xml version='1.0' encoding='UTF-8'?>
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
+ <soape nv:Body>
+ <axis2ns1:getGreetings
+ xmlns:axis2ns1="http://ws.binding.sca.tuscany.apache.org/rpclit/getGreetingsNamespace">
+ <s xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ns2="http://ws.binding.sca.tuscany.apache.org/"
+ xsi:type="xs:string">Fred
+ </s>
+ </axis2ns1:getGreetings>
+ </soapenv:Body>
+</soapenv:Envelope>
+
+HTTP/1.1 200 OK
+Content-Type: text/xml; charset=utf-8
+Transfer-Encoding: chunked
+
+1FE
+<?xml version='1.0' encoding='UTF-8'?>
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
+ <soape nv:Body>
+ <axis2ns4:getGreetingsResponse
+ xmlns:axis2ns4="http://ws.binding.sca.tuscany.apache.org/rpclit/getGreetingsResponseNamespace">
+ <s xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ns2="http://ws.binding.sca.tuscany.apache.org/"
+ xsi:type="xs:string">Hello Fred</s>
+ </axis2ns4:getGreetingsResponse>
+ </soapenv:Body>
+</soapenv:Envelope>
+
+
+getGreetingsException SOAP Request/Response
+-------------------------------------------
+
+POST /HelloWorldService/HelloWorld-rpclit-porttype HTTP/1.1
+Content-Type: text/xml; charset=UTF-8
+SOAPAction: ""
+User-Agent: Axis2
+Host: localhost:8088
+Content-Length: 507
+
+<?xml version='1.0' encoding='UTF-8'?>
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
+ <soape nv:Body>
+ <axis2ns5:getGreetingsException
+ xmlns:axis2ns5="http://ws.binding.sca.tuscany.apache.org/rpclit/getGreetingsExceptionNamespace">
+ <s xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ns2="http://ws.binding.sca.tuscany.apache.org/"
+ xsi:type="xs:string">Fred
+ </s>
+ </axis2ns5:getGreetingsException>
+ </soapenv:Body>
+</soapenv:Envelope>
+
+HTTP/1.1 500 Internal Server Error
+Content-Type: text/xml; charset=utf-8
+Transfer-Encoding: chunked
+
+133C
+<?xml version='1.0' encoding='UTF-8'?>
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
+ <soape nv:Body>
+ <soapenv:Fault>
+ <faultcode>soapenv:Server</faultcode>
+ <faultstring>org.apache.tuscany.sca.interfacedef.util.FaultE
+ xception cannot be cast to org.apache.axiom.om.OMElement</faultstring>
+ <detail>
+ ...
+ </Exception>
+ </detail>
+ </soapenv:Fault>
+ </soapenv:Body>
+</soapenv:Envelope>
+
+TODO - exception is wrong
+
+getGreetingsComplex SOAP Request/Response
+-----------------------------------------
+
+POST /HelloWorldService/HelloWorld-rpclit-porttype HTTP/1.1
+Content-Type: text/xml; charset=UTF-8
+SOAPAction: ""
+User-Agent: Axis2
+Host: localhost:8088
+Content-Length: 570
+
+<?xml version='1.0' encoding='UTF-8'?>
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
+ <soape nv:Body>
+ <axis2ns7:getGreetingsComplex
+ xmlns:axis2ns7="http://ws.binding.sca.tuscany.apache.org/rpclit">
+ <foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ns3="http://ws.binding.sca.tuscany.apache.org/"
+ xmlns:ns2="http://helloworld/external"
+ xsi:type="ns2:foo">
+ <bars>
+ <b>true</b>
+ <s>petra</s>
+ <x>1</x>
+ <y>2</y>
+ </bars>
+ <bars>
+ <b>false</b>
+ <s>beate</s>
+ <x>3</x>
+ <y>4</y>
+ </bars>
+ </foo>
+ </axis2ns7:getGreetingsComplex>
+ </soapenv:Body>
+</soapenv:Envelope>
+
+HTTP/1.1 200 OK
+Content-Type: text/xml; charset=utf-8
+Transfer-Encoding: chunked
+
+281
+<?xml version='1.0' encoding='UTF-8'?>
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
+ <soape nv:Body>
+ <axis2ns10:getGreetingsComplexResponse
+ xmlns:axis2ns10="http://ws.binding.sca.tuscany.apache.org/rpclit">
+ <foo xm lns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ns3="http://ws.binding.sca.tuscany.apache.org/"
+ xmlns:ns2="http://helloworld/external"
+ xsi:type="ns2:foo">
+ <bars>
+ <b>true</b>
+ <s>petra</s>
+ <x>1</x>
+ <y>2</y>
+ </bars>
+ <bars>
+ <b>false</b>
+ <s>bea
+ te</s>
+ <x>3</x>
+ <y>4</y>
+ </bars>
+ <bars>
+ <b>true</b>
+ <s>simon</s>
+ <x>7</x>
+ <y>8</y>
+ </bars>
+ </foo>
+ </axis2ns10:getGreetingsComplexResponse>
+ </soapenv:Body>
+</soapenv:Envelope>
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/pom.xml new file mode 100644 index 0000000000..bcffe36d8d --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/pom.xml @@ -0,0 +1,127 @@ +<?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>itest-ws</artifactId>
+ <version>2.0-Beta4</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>itest-ws-contribution-rpc-lit</artifactId>
+ <name>Apache Tuscany SCA iTest WS Contribution RPC Lit</name>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-base-runtime-pom</artifactId>
+ <type>pom</type>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws-runtime-axis2</artifactId>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>6.1.19</version>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <finalName>${project.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.jvnet.jax-ws-commons</groupId>
+ <artifactId>jaxws-maven-plugin</artifactId>
+ <version>2.1</version>
+ <dependencies>
+ <dependency>
+ <groupId>com.sun.xml.ws</groupId>
+ <artifactId>jaxws-tools</artifactId>
+ <version>2.2.6-promoted-b10</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <id>wsgen1</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>wsgen</goal>
+ </goals>
+ <configuration>
+ <sei>org.apache.tuscany.sca.binding.ws.HelloWorld1Impl</sei>
+ <genWsdl>true</genWsdl>
+ <staleFile>${project.build.directory}/jaxws/stale/.wsgen1StaleFlag</staleFile>
+ </configuration>
+ </execution>
+ <execution>
+ <id>wsimport1</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>wsimport</goal>
+ </goals>
+ <configuration>
+ <packageName>org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface</packageName>
+ <wsdlDirectory>${basedir}/target/classes</wsdlDirectory>
+ <wsdlFiles>
+ <wsdlFile>helloworld-external-service.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/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java new file mode 100644 index 0000000000..6bc67db5fc --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java @@ -0,0 +1,32 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface HelloWorld {
+
+ String getGreetings(String s);
+ String getGreetingsException(String s) throws ServiceRuntimeException;
+ Foo getGreetingsComplex(Foo foo);
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld1Impl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld1Impl.java new file mode 100644 index 0000000000..9ee8373468 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld1Impl.java @@ -0,0 +1,54 @@ +/*
+ * 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;
+
+import javax.jws.WebService;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Reference;
+
+@WebService
+public class HelloWorld1Impl implements HelloWorld {
+
+ @Reference
+ public HelloWorld helloWorld2;
+
+ public String getGreetings(String s) {
+ System.out.println("Entering SCA HelloWorld1.getGreetings: " + s);
+ String response = helloWorld2.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld1.getGreetings: " + response);
+ return response;
+ }
+
+ public String getGreetingsException(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorld1.getGreetingsException: " + s);
+ String response = helloWorld2.getGreetingsException(s);
+ System.out.println("Leaving SCA HelloWorld1.getGreetings: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplex(Foo foo){
+ System.out.println("Entering SCA HelloWorld1.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ Foo response = helloWorld2.getGreetingsComplex(foo);
+ System.out.println("Leaving SCA HelloWorld1.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ return response;
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld2Impl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld2Impl.java new file mode 100644 index 0000000000..6f3b430d6d --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld2Impl.java @@ -0,0 +1,55 @@ +/*
+ * 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;
+
+import javax.jws.WebService;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.HelloWorldService;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Reference;
+
+@WebService
+public class HelloWorld2Impl implements HelloWorld {
+
+ @Reference
+ public HelloWorldService helloWorldExternal;
+
+ public String getGreetings(String s) {
+ System.out.println("Entering SCA HelloWorld2.getGreetings: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld2.getGreetings: " + response);
+ return response;
+ }
+
+ public String getGreetingsException(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorld2.getGreetingsException: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld2.getGreetings: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplex(Foo foo){
+ System.out.println("Entering SCA HelloWorld2.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ Foo response = helloWorldExternal.getGreetingsComplex(foo);
+ System.out.println("Leaving SCA HelloWorld2.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ return response;
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/resources/HelloWorldImplService-rpclit.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/resources/HelloWorldImplService-rpclit.wsdl new file mode 100644 index 0000000000..0c11e6a8f4 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/resources/HelloWorldImplService-rpclit.wsdl @@ -0,0 +1,110 @@ +<?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.
+-->
+<definitions targetNamespace="http://ws.binding.sca.tuscany.apache.org/rpclit"
+ name="HelloWorldImplService"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="http://ws.binding.sca.tuscany.apache.org/rpclit"
+ xmlns:tns2="http://helloworld/external"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+ <types>
+ <xsd:schema>
+ <xsd:import namespace="http://ws.binding.sca.tuscany.apache.org/rpclit"
+ schemaLocation="HelloWorldImplService-rpclit1.xsd"/>
+ </xsd:schema>
+ </types>
+ <message name="getGreetings">
+ <part name="s" type="xsd:string"/>
+ </message>
+ <message name="getGreetingsResponse">
+ <part name="s" type="xsd:string"/>
+ </message>
+ <message name="getGreetingsException">
+ <part name="s" type="xsd:string"/>
+ </message>
+ <message name="getGreetingsExceptionResponse">
+ <part name="s" type="xsd:string"/>
+ </message>
+ <message name="Exception">
+ <part name="fault" element="tns:Exception"/>
+ </message>
+ <message name="getGreetingsComplex">
+ <part name="foo" type="tns2:foo"/>
+ </message>
+ <message name="getGreetingsComplexResponse">
+ <part name="foo" type="tns2:foo"/>
+ </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="rpc"/>
+ <operation name="getGreetings">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal" namespace="http://ws.binding.sca.tuscany.apache.org/rpclit/getGreetingsNamespace" />
+ </input>
+ <output>
+ <soap:body use="literal" namespace="http://ws.binding.sca.tuscany.apache.org/rpclit/getGreetingsResponseNamespace"/>
+ </output>
+ </operation>
+ <operation name="getGreetingsException">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal" namespace="http://ws.binding.sca.tuscany.apache.org/rpclit/getGreetingsExceptionNamespace"/>
+ </input>
+ <output>
+ <soap:body use="literal" namespace="http://ws.binding.sca.tuscany.apache.org/rpclit/getGreetingsExceptionResponseNamespace"/>
+ </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:8087/HelloWorldService/HelloWorld-rpclit"/>
+ </port>
+ </service>
+</definitions>
+
+
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/resources/HelloWorldImplService-rpclit1.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/resources/HelloWorldImplService-rpclit1.xsd new file mode 100644 index 0000000000..8841f0dcf2 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/resources/HelloWorldImplService-rpclit1.xsd @@ -0,0 +1,83 @@ +<?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://ws.binding.sca.tuscany.apache.org/rpclit"
+ xmlns:tns="http://ws.binding.sca.tuscany.apache.org/rpclit"
+ xmlns:tns2="http://helloworld/external"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:import namespace="http://helloworld/external" schemaLocation="./HelloWorldImplService-rpclit2.xsd"/>
+
+ <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="tns2:foo" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsComplexResponse">
+ <xs:sequence>
+ <xs:element name="return" type="tns2:foo" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/resources/HelloWorldImplService-rpclit2.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/resources/HelloWorldImplService-rpclit2.xsd new file mode 100644 index 0000000000..d955cc2af4 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/resources/HelloWorldImplService-rpclit2.xsd @@ -0,0 +1,40 @@ +<?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://helloworld/external"
+ xmlns:tns="http://helloworld/external"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <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:schema>
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/resources/HelloWorldServiceService_schema1.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/resources/HelloWorldServiceService_schema1.xsd new file mode 100644 index 0000000000..acdfcaaaa5 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/resources/HelloWorldServiceService_schema1.xsd @@ -0,0 +1,70 @@ +<?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://helloworld/external" xmlns:tns="http://helloworld/external" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:element name="getGreetings" type="tns:getGreetings"/>
+
+ <xs:element name="getGreetingsComplex" type="tns:getGreetingsComplex"/>
+
+ <xs:element name="getGreetingsComplexResponse" type="tns:getGreetingsComplexResponse"/>
+
+ <xs:element name="getGreetingsResponse" type="tns:getGreetingsResponse"/>
+
+ <xs:complexType name="getGreetings">
+ <xs:sequence>
+ <xs:element name="name" type="xs:string" form="qualified" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsResponse">
+ <xs:sequence>
+ <xs:element name="getGreetingsReturn" type="xs:string" form="qualified" 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>
+
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..350ad6be96 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:itest="http://www.tuscany.apache.org/itests/binding/ws/axis2">
+ <deployable composite="itest:HelloWorld"/>
+</contribution>
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/resources/helloworld-external-service.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/resources/helloworld-external-service.wsdl new file mode 100644 index 0000000000..837bcb059e --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/resources/helloworld-external-service.wsdl @@ -0,0 +1,75 @@ +<?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://helloworld/external" name="HelloWorldServiceService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://helloworld/external" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+ <types>
+ <xsd:schema>
+ <xsd:import namespace="http://helloworld/external" schemaLocation="HelloWorldServiceService_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="getGreetingsComplex">
+ <part name="parameters" element="tns:getGreetingsComplex"/>
+ </message>
+ <message name="getGreetingsComplexResponse">
+ <part name="parameters" element="tns:getGreetingsComplexResponse"/>
+ </message>
+ <portType name="HelloWorldService">
+ <operation name="getGreetings">
+ <input message="tns:getGreetings"/>
+ <output message="tns:getGreetingsResponse"/>
+ </operation>
+ <operation name="getGreetingsComplex">
+ <input message="tns:getGreetingsComplex"/>
+ <output message="tns:getGreetingsComplexResponse"/>
+ </operation>
+ </portType>
+ <binding name="HelloWorldServicePortBinding" type="tns:HelloWorldService">
+ <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="getGreetingsComplex">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="HelloWorldServiceService">
+ <port name="HelloWorldServicePort" binding="tns:HelloWorldServicePortBinding">
+ <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
+ </port>
+ </service>
+</definitions>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/resources/helloworld.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/resources/helloworld.composite new file mode 100644 index 0000000000..28dedef44c --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-rpc-lit/src/main/resources/helloworld.composite @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://www.tuscany.apache.org/itests/binding/ws/axis2"
+ name="HelloWorld">
+
+ <component name="HelloWorldService1">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.HelloWorld1Impl"/>
+ <service name="HelloWorld">
+ <binding.ws uri="http://localhost:8085/HelloWorldService/HelloWorld"/>
+ </service>
+ <reference name="helloWorld2">
+ <interface.wsdl interface="http://ws.binding.sca.tuscany.apache.org/rpclit#wsdl.porttype(HelloWorldImpl)"/>
+ <binding.ws uri="http://localhost:8087/HelloWorldService/HelloWorld-rpclit-porttype"
+ wsdlElement="http://ws.binding.sca.tuscany.apache.org/rpclit#wsdl.binding(HelloWorldImplPortBinding)"/>
+ <!--
+ note that it's not necessary to have interface.wsdl here but I left it in after
+ I added the wsdlElement on the binding in order to configure the binding with the
+ wrapper element namespace that appears in the binding configuration
+ -->
+ </reference>
+ </component>
+
+ <component name="HelloWorldService1a">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.HelloWorld1Impl"/>
+ <service name="HelloWorld">
+ <binding.ws uri="http://localhost:8087/HelloWorldService/HelloWorld-rpclit-porttype"
+ wsdlElement="http://ws.binding.sca.tuscany.apache.org/rpclit#wsdl.binding(HelloWorldImplPortBinding)"/>
+ </service>
+ <reference name="helloWorld2">
+ <binding.ws uri="http://localhost:8087/HelloWorldService/HelloWorld-rpclit"
+ wsdlElement="http://ws.binding.sca.tuscany.apache.org/rpclit#wsdl.binding(HelloWorldImplPortBinding)"/>
+ </reference>
+ </component>
+
+ <component name="HelloWorldService2">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.HelloWorld2Impl"/>
+ <service name="HelloWorld">
+ <binding.ws wsdlElement="http://ws.binding.sca.tuscany.apache.org/rpclit#wsdl.port(HelloWorldImplService/HelloWorldImplPort)"/>
+ </service>
+ <reference name="helloWorldExternal">
+ <binding.ws uri="http://localhost:8086/External/HelloWorld"/>
+ </reference>
+ </component>
+
+</composite>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/pom.xml new file mode 100644 index 0000000000..ba8f1b7680 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/pom.xml @@ -0,0 +1,129 @@ +<?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>itest-ws</artifactId>
+ <version>2.0-Beta4</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>itest-ws-contribution-wsdl-first</artifactId>
+ <name>Apache Tuscany SCA iTest WS Contribution WSDL First</name>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-base-runtime-pom</artifactId>
+ <type>pom</type>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws-runtime-axis2</artifactId>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>6.1.19</version>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <finalName>${project.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.jvnet.jax-ws-commons</groupId>
+ <artifactId>jaxws-maven-plugin</artifactId>
+ <version>2.1</version>
+ <dependencies>
+ <dependency>
+ <groupId>com.sun.xml.ws</groupId>
+ <artifactId>jaxws-tools</artifactId>
+ <version>2.2.6-promoted-b10</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.sca</packageName>
+ <wsdlDirectory>${basedir}/target/classes</wsdlDirectory>
+ <wsdlFiles>
+ <wsdlFile>HelloWorldImplService.wsdl</wsdlFile>
+ </wsdlFiles>
+ <staleFile>${project.build.directory}/jaxws/stale/.wsimport1StaleFlag</staleFile>
+ </configuration>
+ </execution-->
+ <execution>
+ <id>wsimport2</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>wsimport</goal>
+ </goals>
+ <configuration>
+ <packageName>org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface</packageName>
+ <wsdlDirectory>${basedir}/target/classes</wsdlDirectory>
+ <wsdlFiles>
+ <wsdlFile>helloworld-external-service.wsdl</wsdlFile>
+ </wsdlFiles>
+ <staleFile>${project.build.directory}/jaxws/stale/.wsimport2StaleFlag</staleFile>
+ </configuration>
+ </execution>
+ </executions>
+ <configuration>
+ <target>2.1</target>
+ <sourceDestDir>${project.build.directory}/jaxws-source</sourceDestDir>
+ <verbose>true</verbose>
+ <xnocompile>true</xnocompile>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.java new file mode 100644 index 0000000000..c9c1038ea3 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorld.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.binding.ws;
+
+import javax.jws.WebMethod;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface HelloWorld {
+
+ String getGreetings(String s);
+ String getGreetingsException(String s) throws ServiceRuntimeException;
+ Foo getGreetingsComplex(Foo foo);
+
+ @WebMethod(operationName = "GetGreetingsCaps")
+ String getGreetingsCaps(String s);
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java new file mode 100644 index 0000000000..d88a765682 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/java/org/apache/tuscany/sca/binding/ws/HelloWorldImpl.java @@ -0,0 +1,60 @@ +/*
+ * 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;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.Foo;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.iface.HelloWorldService;
+import org.oasisopen.sca.ServiceRuntimeException;
+import org.oasisopen.sca.annotation.Reference;
+
+public class HelloWorldImpl implements HelloWorld {
+
+ @Reference
+ public HelloWorldService helloWorldExternal;
+
+ public String getGreetings(String s) {
+ System.out.println("Entering SCA HelloWorld.getGreetings: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetings: " + response);
+ return response;
+ }
+
+ public String getGreetingsException(String s) throws ServiceRuntimeException {
+ System.out.println("Entering SCA HelloWorld.getGreetingsException: " + s);
+ String response = helloWorldExternal.getGreetings(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetings: " + response);
+ throw new ServiceRuntimeException(response);
+ }
+
+ public Foo getGreetingsComplex(Foo foo){
+ System.out.println("Entering SCA HelloWorld.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ Foo response = helloWorldExternal.getGreetingsComplex(foo);
+ System.out.println("Leaving SCA HelloWorld.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ return response;
+ }
+
+ public String getGreetingsCaps(String s) {
+ System.out.println("Entering SCA HelloWorld.getGreetingsCaps: " + s);
+ String response = helloWorldExternal.getGreetingsCaps(s);
+ System.out.println("Leaving SCA HelloWorld.getGreetingsCaps: " + response);
+ return response;
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/resources/HelloWorldImplService.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/resources/HelloWorldImplService.wsdl new file mode 100644 index 0000000000..59fce9d849 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/resources/HelloWorldImplService.wsdl @@ -0,0 +1,128 @@ +<?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.
+-->
+<definitions targetNamespace="http://ws.binding.sca.tuscany.apache.org/"
+ name="HelloWorldImplService"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="http://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://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>
+ <message name="GetGreetingsCaps">
+ <part name="parameters" element="tns:GetGreetingsCaps"/>
+ </message>
+ <message name="GetGreetingsCapsResponse">
+ <part name="parameters" element="tns:GetGreetingsCapsResponse"/>
+ </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>
+ <operation name="GetGreetingsCaps">
+ <input message="tns:GetGreetingsCaps"/>
+ <output message="tns:GetGreetingsCapsResponse"/>
+ </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>
+ <operation name="GetGreetingsCaps">
+ <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/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/resources/HelloWorldImplService_schema1.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/resources/HelloWorldImplService_schema1.xsd new file mode 100644 index 0000000000..2d8adf3d73 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/resources/HelloWorldImplService_schema1.xsd @@ -0,0 +1,99 @@ +<?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://ws.binding.sca.tuscany.apache.org/"
+ xmlns:tns="http://ws.binding.sca.tuscany.apache.org/"
+ xmlns:tns2="http://helloworld/external"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:import namespace="http://helloworld/external" schemaLocation="./HelloWorldImplService_schema2.xsd"/>
+
+ <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:element name="GetGreetingsCaps" type="tns:GetGreetingsCaps"/>
+
+ <xs:element name="GetGreetingsCapsResponse" type="tns:GetGreetingsCapsResponse"/>
+
+ <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="tns2:foo" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsComplexResponse">
+ <xs:sequence>
+ <xs:element name="return" type="tns2:foo" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="GetGreetingsCaps">
+ <xs:sequence>
+ <xs:element name="arg0" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="GetGreetingsCapsResponse">
+ <xs:sequence>
+ <xs:element name="return" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/resources/HelloWorldImplService_schema2.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/resources/HelloWorldImplService_schema2.xsd new file mode 100644 index 0000000000..d955cc2af4 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/resources/HelloWorldImplService_schema2.xsd @@ -0,0 +1,40 @@ +<?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://helloworld/external"
+ xmlns:tns="http://helloworld/external"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <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:schema>
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/resources/HelloWorldServiceService_schema1.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/resources/HelloWorldServiceService_schema1.xsd new file mode 100644 index 0000000000..467eeb90c5 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/resources/HelloWorldServiceService_schema1.xsd @@ -0,0 +1,86 @@ +<?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://helloworld/external" xmlns:tns="http://helloworld/external" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:element name="getGreetings" type="tns:getGreetings"/>
+
+ <xs:element name="getGreetingsResponse" type="tns:getGreetingsResponse"/>
+
+ <xs:element name="getGreetingsComplex" type="tns:getGreetingsComplex"/>
+
+ <xs:element name="getGreetingsComplexResponse" type="tns:getGreetingsComplexResponse"/>
+
+ <xs:element name="GetGreetingsCaps" type="tns:GetGreetingsCaps"/>
+
+ <xs:element name="GetGreetingsCapsResponse" type="tns:GetGreetingsCapsResponse"/>
+
+ <xs:complexType name="getGreetings">
+ <xs:sequence>
+ <xs:element name="name" type="xs:string" form="qualified" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsResponse">
+ <xs:sequence>
+ <xs:element name="getGreetingsReturn" type="xs:string" form="qualified" 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:complexType name="GetGreetingsCaps">
+ <xs:sequence>
+ <xs:element name="arg0" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="GetGreetingsCapsResponse">
+ <xs:sequence>
+ <xs:element name="return" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
+
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..350ad6be96 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:itest="http://www.tuscany.apache.org/itests/binding/ws/axis2">
+ <deployable composite="itest:HelloWorld"/>
+</contribution>
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/resources/helloworld-external-service.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/resources/helloworld-external-service.wsdl new file mode 100644 index 0000000000..c38f629e4f --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/resources/helloworld-external-service.wsdl @@ -0,0 +1,99 @@ +<?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://helloworld/external" name="HelloWorldServiceService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://helloworld/external" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+ <types>
+ <xsd:schema>
+ <xsd:import namespace="http://helloworld/external" schemaLocation="HelloWorldServiceService_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="getGreetingsComplex">
+ <part name="parameters" element="tns:getGreetingsComplex"/>
+ </message>
+ <message name="getGreetingsComplexResponse">
+ <part name="parameters" element="tns:getGreetingsComplexResponse"/>
+ </message>
+ <message name="GetGreetingsCaps">
+ <part name="parameters" element="tns:GetGreetingsCaps"/>
+ </message>
+ <message name="GetGreetingsCapsResponse">
+ <part name="parameters" element="tns:GetGreetingsCapsResponse"/>
+ </message>
+ <portType name="HelloWorldService">
+ <operation name="getGreetings">
+ <input message="tns:getGreetings"/>
+ <output message="tns:getGreetingsResponse"/>
+ </operation>
+ <operation name="getGreetingsComplex">
+ <input message="tns:getGreetingsComplex"/>
+ <output message="tns:getGreetingsComplexResponse"/>
+ </operation>
+ <operation name="GetGreetingsCaps">
+ <input message="tns:GetGreetingsCaps"/>
+ <output message="tns:GetGreetingsCapsResponse"/>
+ </operation>
+ </portType>
+ <binding name="HelloWorldServicePortBinding" type="tns:HelloWorldService">
+ <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="getGreetingsComplex">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="GetGreetingsCaps">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="HelloWorldServiceService">
+ <port name="HelloWorldServicePort" binding="tns:HelloWorldServicePortBinding">
+ <soap:address location="http://localhost:8086/External/HelloWorld"/>
+ </port>
+ </service>
+ <service name="HelloWorldImplService">
+ <port name="HelloWorldImplPort" binding="tns:HelloWorldServicePortBinding">
+ <soap:address location="http://localhost:8085/HelloWorldService/HelloWorld"/>
+ </port>
+ </service>
+</definitions>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/resources/helloworld.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/resources/helloworld.composite new file mode 100644 index 0000000000..8d0c7bf9ff --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/contribution-wsdl-first/src/main/resources/helloworld.composite @@ -0,0 +1,35 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://www.tuscany.apache.org/itests/binding/ws/axis2"
+ name="HelloWorld">
+
+ <component name="HelloWorldService">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.HelloWorldImpl"/>
+ <service name="HelloWorld">
+ <binding.ws wsdlElement="http://ws.binding.sca.tuscany.apache.org/#wsdl.port(HelloWorldImplService/HelloWorldImplPort)"/>
+ </service>
+ <reference name="helloWorldExternal">
+ <binding.ws wsdlElement="http://helloworld/external#wsdl.port(HelloWorldServiceService/HelloWorldServicePort)"/>
+ </reference>
+ </component>
+
+</composite>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/pom.xml new file mode 100644 index 0000000000..464c3ccb93 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/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>itest-ws</artifactId> + <version>2.0-Beta4</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <artifactId>itest-ws-defaults</artifactId> + <name>Apache Tuscany SCA iTest WS with Defaults</name> + + <dependencies> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-base-runtime-pom</artifactId> + <type>pom</type> + <version>2.0-Beta4</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-ws-runtime-axis2</artifactId> + <version>2.0-Beta4</version> + </dependency> + + <dependency> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jetty</artifactId> + <version>6.1.19</version> + </dependency> + + </dependencies> + + <build> + <finalName>${project.artifactId}</finalName> + </build> +</project> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Bar.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Bar.java new file mode 100644 index 0000000000..a1233f6d25 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Bar.java @@ -0,0 +1,58 @@ +/* + * 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.axis2; + +import java.io.Serializable; + +public class Bar implements Serializable { + private static final long serialVersionUID = 1249963611910502668L; + + private String s; + private int x; + private Integer y; + + private Boolean b; + + public Boolean getB() { + return b; + } + public void setB(Boolean b) { + this.b = b; + } + public String getS() { + return s; + } + public void setS(String s) { + this.s = s; + } + public int getX() { + return x; + } + public void setX(int x) { + this.x = x; + } + public Integer getY() { + return y; + } + public void setY(Integer y) { + this.y = y; + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Foo.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Foo.java new file mode 100644 index 0000000000..0695ace7f4 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Foo.java @@ -0,0 +1,36 @@ +/* + * 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.axis2; + +import java.io.Serializable; + +public class Foo implements Serializable { + private static final long serialVersionUID = 4879476066850018458L; + + private Bar[] bars; + + public Bar[] getBars() { + return bars; + } + + public void setBars(Bar[] bars) { + this.bars = bars; + } +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorld.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorld.java new file mode 100644 index 0000000000..f39566ccbf --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorld.java @@ -0,0 +1,29 @@ +/* + * 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.axis2; + +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface HelloWorld { + + String getGreetings(String s); + Foo getGreetingsComplex(Foo foo); +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldClient.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldClient.java new file mode 100644 index 0000000000..332f825a51 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldClient.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.binding.ws.axis2; + +import org.oasisopen.sca.annotation.Reference; + +public class HelloWorldClient implements HelloWorld { + + @Reference + public HelloWorld helloWorldWS; + + public String getGreetings(String s) { + String response = helloWorldWS.getGreetings(s); + System.out.println("At client: " + response); + return response; + } + + public Foo getGreetingsComplex(Foo foo){ + Foo response = helloWorldWS.getGreetingsComplex(foo); + System.out.println("At client: " + response.getBars()[0].getS()); + return response; + } +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldService.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldService.java new file mode 100644 index 0000000000..3bbf50a728 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldService.java @@ -0,0 +1,42 @@ +/* + * 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.axis2; + +public class HelloWorldService implements HelloWorld { + + public String getGreetings(String s) { + String response = "Hello " + s; + System.out.println("At service: " + response); + return response; + } + + public Foo getGreetingsComplex(Foo foo){ + Foo response = foo; + Bar b3 = new Bar(); + b3.setS("simon"); + b3.setX(4); + b3.setY(new Integer(5)); + b3.setB(Boolean.TRUE); + response.getBars()[1] = b3; + System.out.println("At sevice: " + response.getBars()[0].getS()); + return response; + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..7e71dd465f --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> +<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" + xmlns:itest="http://www.tuscany.apache.org/itests/binding/ws/axis2"> + <deployable composite="itest:HelloWorld"/> +</contribution>
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld.composite new file mode 100644 index 0000000000..cae74697f1 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld.composite @@ -0,0 +1,41 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912" + xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912" + targetNamespace="http://www.tuscany.apache.org/itests/binding/ws/axis2" + name="HelloWorld"> + + <!-- + Test the ws binding with default settings for simple and complex parameters + --> + + <component name="HelloWorldClient"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.HelloWorldClient"/> + <reference name="helloWorldWS" target="HelloWorldService"/> + </component> + + <component name="HelloWorldService"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.HelloWorldService"/> + <service name="HelloWorld"> + <binding.ws/> + </service> + </component> + +</composite> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld.wsdl new file mode 100644 index 0000000000..a352696b8e --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld.wsdl @@ -0,0 +1,90 @@ +<?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 targetNamespace="http://helloworld" + xmlns:tns="http://helloworld" + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" + xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + name="helloworld"> + + <wsdl:types> + <schema elementFormDefault="qualified" targetNamespace="http://helloworld" xmlns="http://www.w3.org/2001/XMLSchema"> + + <element name="getGreetings"> + <complexType> + <sequence> + <element name="name" type="xsd:string"/> + </sequence> + </complexType> + </element> + + <element name="getGreetingsResponse"> + <complexType> + <sequence> + <element name="getGreetingsReturn" type="xsd:string"/> + </sequence> + </complexType> + </element> + + </schema> + </wsdl:types> + + <wsdl:message name="getGreetingsRequest"> + <wsdl:part element="tns:getGreetings" name="parameters"/> + </wsdl:message> + + <wsdl:message name="getGreetingsResponse"> + <wsdl:part element="tns:getGreetingsResponse" name="parameters"/> + </wsdl:message> + + <wsdl:portType name="HelloWorld"> + <wsdl:operation name="getGreetings"> + <wsdl:input message="tns:getGreetingsRequest" name="getGreetingsRequest"/> + <wsdl:output message="tns:getGreetingsResponse" name="getGreetingsResponse"/> + </wsdl:operation> + </wsdl:portType> + + <wsdl:binding name="HelloWorldSoapBinding" type="tns:HelloWorld"> + <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> + <wsdl:operation name="getGreetings"> + <wsdlsoap:operation soapAction=""/> + <wsdl:input name="getGreetingsRequest"> + <wsdlsoap:body use="literal"/> + </wsdl:input> + <wsdl:output name="getGreetingsResponse"> + <wsdlsoap:body use="literal"/> + </wsdl:output> + </wsdl:operation> + + </wsdl:binding> + + <wsdl:service name="HelloWorldService"> + <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort1"> + <wsdlsoap:address location="http://localhost:8085/services/HelloWorldWebService1"/> + </wsdl:port> + <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort2"> + <wsdlsoap:address location="http://localhost:8085/services/HelloWorldWebService2"/> + </wsdl:port> + <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort3"> + <wsdlsoap:address location="http://localhost:8085/services/HelloWorldWebService3"/> + </wsdl:port> + </wsdl:service> + +</wsdl:definitions> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/DefaultsTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/DefaultsTestCase.java new file mode 100644 index 0000000000..1e4c1fcbff --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/defaults/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/DefaultsTestCase.java @@ -0,0 +1,74 @@ +/* + * 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.axis2; + +import junit.framework.TestCase; + +import org.apache.tuscany.sca.binding.ws.axis2.HelloWorld; +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; + +public class DefaultsTestCase extends TestCase { + + private Node node; + private HelloWorld helloWorld; + + @Override + protected void setUp() throws Exception { + node = NodeFactory.newInstance().createNode(new Contribution("test", "target/classes")); + node.start(); + helloWorld = node.getService(HelloWorld.class, "HelloWorldClient"); + } + + public void testCalculator() throws Exception { + assertEquals("Hello petra", helloWorld.getGreetings("petra")); + + Foo f = new Foo(); + Bar b1 = new Bar(); + b1.setS("petra"); + b1.setX(1); + b1.setY(new Integer(2)); + b1.setB(Boolean.TRUE); + Bar b2 = new Bar(); + b2.setS("beate"); + b2.setX(3); + b2.setY(new Integer(4)); + b2.setB(Boolean.FALSE); + f.setBars(new Bar[] { b1, b2} ); + + Foo f2 = helloWorld.getGreetingsComplex(f); + + assertEquals("petra", f2.getBars()[0].getS()); + assertEquals(1, f2.getBars()[0].getX()); + assertEquals(2, f2.getBars()[0].getY().intValue()); + assertTrue(f2.getBars()[0].getB().booleanValue()); + assertEquals("simon", f2.getBars()[1].getS()); + assertEquals(4, f2.getBars()[1].getX()); + assertEquals(5, f2.getBars()[1].getY().intValue()); + assertTrue(f2.getBars()[1].getB().booleanValue()); + } + + @Override + protected void tearDown() throws Exception { + node.stop(); + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoint-references/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoint-references/pom.xml new file mode 100644 index 0000000000..3fc3427356 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoint-references/pom.xml @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-ws</artifactId> + <version>2.0-Beta4</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <artifactId>itest-ws-endpoint-references</artifactId> + <name>Apache Tuscany SCA iTest WS Endpoint References</name> + + <dependencies> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-base-runtime-pom</artifactId> + <type>pom</type> + <version>2.0-Beta4</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-ws-runtime-axis2</artifactId> + <version>2.0-Beta4</version> + </dependency> + + <dependency> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jetty</artifactId> + <version>6.1.19</version> + </dependency> + + <dependency> + <groupId>org.codehaus.woodstox</groupId> + <artifactId>wstx-asl</artifactId> + <version>3.2.9</version> + </dependency> + + </dependencies> + + <build> + <finalName>${project.artifactId}</finalName> + </build> +</project> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoint-references/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorld.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoint-references/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorld.java new file mode 100644 index 0000000000..d6db1c2d0b --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoint-references/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorld.java @@ -0,0 +1,29 @@ +/* + * 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.axis2; + +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface HelloWorld { + + String getGreetings(String s); + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoint-references/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldComponent.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoint-references/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldComponent.java new file mode 100644 index 0000000000..4ba7e67de2 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoint-references/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldComponent.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.binding.ws.axis2; + +import org.oasisopen.sca.annotation.Reference; + +public class HelloWorldComponent implements HelloWorld { + + @Reference + public HelloWorld helloWorldWS; + + public String getGreetings(String s) { + return helloWorldWS.getGreetings(s); + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoint-references/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldService.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoint-references/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldService.java new file mode 100644 index 0000000000..052b49ff55 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoint-references/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldService.java @@ -0,0 +1,28 @@ +/* + * 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.axis2; + +public class HelloWorldService implements HelloWorld { + + public String getGreetings(String s) { + return "Hello " + s; + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoint-references/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/HelloWorld.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoint-references/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/HelloWorld.composite new file mode 100644 index 0000000000..1b0af55874 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoint-references/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/HelloWorld.composite @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> +<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" + xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912" + targetNamespace="http://www.tuscany.apache.org/tests/binding/ws/axis2" + name="HelloWorld2"> + + <component name="HelloWorldService"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.HelloWorldService"/> + <service name="HelloWorld"> + <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" /> + <binding.ws> + <wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing"> + <wsa:Address>http://localhost:8085/myService</wsa:Address> + </wsa:EndpointReference> + </binding.ws> + </service> + </component> + + <component name="HelloWorldComponent"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.HelloWorldComponent"/> + <reference name="helloWorldWS"> + <binding.ws> + <wsa:EndpointReference xmlns:wsa="http://www.w3.org/2005/08/addressing"> + <wsa:Address>http://localhost:8085/myService</wsa:Address> + </wsa:EndpointReference> + </binding.ws> + </reference> + </component> + +</composite> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoint-references/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoint-references/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld.wsdl new file mode 100644 index 0000000000..1a2272d7ee --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoint-references/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld.wsdl @@ -0,0 +1,86 @@ +<?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 targetNamespace="http://helloworld" xmlns:tns="http://helloworld" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" + name="helloworld"> + + <wsdl:types> + <schema elementFormDefault="qualified" targetNamespace="http://helloworld" xmlns="http://www.w3.org/2001/XMLSchema"> + + <element name="getGreetings"> + <complexType> + <sequence> + <element name="name" type="xsd:string"/> + </sequence> + </complexType> + </element> + + <element name="getGreetingsResponse"> + <complexType> + <sequence> + <element name="getGreetingsReturn" type="xsd:string"/> + </sequence> + </complexType> + </element> + + </schema> + </wsdl:types> + + <wsdl:message name="getGreetingsRequest"> + <wsdl:part element="tns:getGreetings" name="parameters"/> + </wsdl:message> + + <wsdl:message name="getGreetingsResponse"> + <wsdl:part element="tns:getGreetingsResponse" name="parameters"/> + </wsdl:message> + + <wsdl:portType name="HelloWorld"> + <wsdl:operation name="getGreetings"> + <wsdl:input message="tns:getGreetingsRequest" name="getGreetingsRequest"/> + <wsdl:output message="tns:getGreetingsResponse" name="getGreetingsResponse"/> + </wsdl:operation> + </wsdl:portType> + + <wsdl:binding name="HelloWorldSoapBinding" type="tns:HelloWorld"> + <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> + <wsdl:operation name="getGreetings"> + <wsdlsoap:operation soapAction=""/> + <wsdl:input name="getGreetingsRequest"> + <wsdlsoap:body use="literal"/> + </wsdl:input> + <wsdl:output name="getGreetingsResponse"> + <wsdlsoap:body use="literal"/> + </wsdl:output> + </wsdl:operation> + + </wsdl:binding> + + <wsdl:service name="HelloWorldService"> + <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort"> + <wsdlsoap:address location="http://localhost:8085/services/HelloWorldWebService"/> + </wsdl:port> + <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort2"> + <wsdlsoap:address location="http://localhost:8085/services/HelloWorldWebService2"/> + </wsdl:port> + <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort3"> + <wsdlsoap:address location="http://localhost:8085/services/HelloWorldWebService3"/> + </wsdl:port> + </wsdl:service> + +</wsdl:definitions> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoint-references/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoint-references/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldTestCase.java new file mode 100644 index 0000000000..f1cfe30475 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoint-references/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldTestCase.java @@ -0,0 +1,52 @@ +/* + * 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.axis2; + +import junit.framework.TestCase; + +import org.apache.tuscany.sca.binding.ws.axis2.HelloWorld; +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.ContributionLocationHelper; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; + +public class HelloWorldTestCase extends TestCase { + + private Node node; + private HelloWorld helloWorld; + + public void testCalculator() throws Exception { + assertEquals("Hello petra", helloWorld.getGreetings("petra")); + } + + @Override + protected void setUp() throws Exception { + String contribution = "target/classes"; + node = NodeFactory.newInstance().createNode("org/apache/tuscany/sca/binding/ws/axis2/HelloWorld.composite", new Contribution("test", contribution)); + node.start(); + helloWorld = node.getService(HelloWorld.class, "HelloWorldComponent"); + } + + @Override + protected void tearDown() throws Exception { + node.stop(); + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/pom.xml new file mode 100644 index 0000000000..094f1e91c6 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/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>itest-ws</artifactId> + <version>2.0-Beta4</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <artifactId>itest-ws-endpoints</artifactId> + <name>Apache Tuscany SCA iTest WS Endpoints</name> + + <dependencies> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-base-runtime-pom</artifactId> + <type>pom</type> + <version>2.0-Beta4</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-ws-runtime-axis2</artifactId> + <version>2.0-Beta4</version> + </dependency> + + <dependency> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jetty</artifactId> + <version>6.1.19</version> + </dependency> + + </dependencies> + + <build> + <finalName>${project.artifactId}</finalName> + </build> +</project> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldMultiService.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldMultiService.java new file mode 100644 index 0000000000..8f77c63213 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldMultiService.java @@ -0,0 +1,51 @@ +/* + * 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.axis2; + +import org.apache.axiom.om.OMAbstractFactory; +import org.apache.axiom.om.OMElement; +import org.apache.axiom.om.OMFactory; + +public class HelloWorldMultiService implements HelloWorldOM, HelloWorldOM2 { + + public OMElement getGreetings(OMElement requestOM) { + String name = requestOM.getFirstElement().getText(); + + OMFactory omFactory = OMAbstractFactory.getOMFactory(); + OMElement responseOM = omFactory.createOMElement("getGreetingsResponse", "http://helloworld-om", "helloworld"); + OMElement param = omFactory.createOMElement("getGreetingsReturn", "http://helloworld-om", "helloworld"); + responseOM.addChild(param); + param.addChild(omFactory.createOMText("Hello " + name)); + + return responseOM; + } + + public OMElement getGreetings2(OMElement requestOM) { + String name = requestOM.getFirstElement().getText(); + + OMFactory omFactory = OMAbstractFactory.getOMFactory(); + OMElement responseOM = omFactory.createOMElement("getGreetingsResponse", "http://helloworld-om", "helloworld"); + OMElement param = omFactory.createOMElement("getGreetingsReturn", "http://helloworld-om", "helloworld"); + responseOM.addChild(param); + param.addChild(omFactory.createOMText("Hello2 " + name)); + + return responseOM; + } +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldOM.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldOM.java new file mode 100644 index 0000000000..e248815805 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldOM.java @@ -0,0 +1,30 @@ +/* + * 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.axis2; + +import org.apache.axiom.om.OMElement; +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface HelloWorldOM { + + OMElement getGreetings(OMElement parmE); + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldOM2.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldOM2.java new file mode 100644 index 0000000000..9d0a4ce5b4 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldOM2.java @@ -0,0 +1,30 @@ +/* + * 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.axis2; + +import org.apache.axiom.om.OMElement; +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface HelloWorldOM2 { + + OMElement getGreetings2(OMElement parmE); + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldOMComponent.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldOMComponent.java new file mode 100644 index 0000000000..8439696fa8 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldOMComponent.java @@ -0,0 +1,34 @@ +/* + * 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.axis2; + +import org.apache.axiom.om.OMElement; +import org.oasisopen.sca.annotation.Reference; + +public class HelloWorldOMComponent implements HelloWorldOM { + + @Reference + public HelloWorldOM helloWorldWS; + + public OMElement getGreetings(OMElement om) { + return helloWorldWS.getGreetings(om); + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldOMService.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldOMService.java new file mode 100644 index 0000000000..5b8578c816 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldOMService.java @@ -0,0 +1,41 @@ +/* + * 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.axis2; + +import org.apache.axiom.om.OMAbstractFactory; +import org.apache.axiom.om.OMElement; +import org.apache.axiom.om.OMFactory; + +public class HelloWorldOMService implements HelloWorldOM { + + public OMElement getGreetings(OMElement requestOM) { + System.out.println(" **** getGreetings **** "); + String name = requestOM.getFirstElement().getText(); + + OMFactory omFactory = OMAbstractFactory.getOMFactory(); + OMElement responseOM = omFactory.createOMElement("getGreetingsResponse", "http://helloworld-om", "helloworld"); + OMElement param = omFactory.createOMElement("getGreetingsReturn", "http://helloworld-om", "helloworld"); + responseOM.addChild(param); + param.addChild(omFactory.createOMText("Hello " + name)); + + return responseOM; + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/DefaultMultiService.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/DefaultMultiService.composite new file mode 100644 index 0000000000..c7863a5ff8 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/DefaultMultiService.composite @@ -0,0 +1,53 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912" + xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912" + targetNamespace="http://www.tuscany.apache.org/tests/binding/ws/axis2" + name="DefaultMultiService"> + + <!-- + exposing a component which has multiple services with a WS binding, + endpoint should be <componentURI>/<serviceName> so for this composite: + http://localhost:8085/HelloWorldService/service1 + --> + + + + <component name="HelloWorldService"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.HelloWorldMultiService"/> + <service name="HelloWorldOM"> + <interface.wsdl interface="http://helloworld-om#wsdl.interface(HelloWorld)" /> + <binding.ws uri="http://localhost:8085/HelloWorldService/helloWorld" + wsdlElement="http://helloworld-om#wsdl.binding(HelloWorldSoapBinding)"/> + </service> + </component> + + <component name="HelloWorldComponent"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.HelloWorldOMComponent"/> + <reference name="helloWorldWS"> + <interface.wsdl interface="http://helloworld-om#wsdl.interface(HelloWorld)" /> + <binding.ws wsdlElement="http://helloworld-om#wsdl.binding(HelloWorldSoapBinding)" + uri="http://localhost:8085/HelloWorldService/helloWorld"/> + </reference> + </component> + + + +</composite> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/DefaultSingleService.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/DefaultSingleService.composite new file mode 100644 index 0000000000..63c6a89cfb --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/DefaultSingleService.composite @@ -0,0 +1,51 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912" + xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912" + targetNamespace="http://www.tuscany.apache.org/tests/binding/ws/axis2" + name="DefaultSingleService"> + + <!-- + exposing a component with a WS binding, endpoint should be <componentURI>/<serviceName> + unless the component has just a single service in which case its just <componentURI> + so for this composite: http://localhost:8085/HelloWorldService + --> + + <component name="HelloWorldService"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.HelloWorldOMService"/> + <service name="HelloWorldOM"> + <interface.wsdl interface="http://helloworld-om#wsdl.interface(HelloWorld)" /> + <binding.ws uri="http://localhost:8085/HelloWorldService/helloWorld" + wsdlElement="http://helloworld-om#wsdl.binding(HelloWorldSoapBinding)"/> + </service> + </component> + + <component name="HelloWorldComponent"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.HelloWorldOMComponent"/> + <reference name="helloWorldWS"> + <interface.wsdl interface="http://helloworld-om#wsdl.interface(HelloWorld)" /> + <binding.ws wsdlElement="http://helloworld-om#wsdl.binding(HelloWorldSoapBinding)" + uri="http://localhost:8085/HelloWorldService/helloWorld"/> + </reference> + </component> + + + +</composite> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/RelativeURI.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/RelativeURI.composite new file mode 100644 index 0000000000..898d2b0699 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/RelativeURI.composite @@ -0,0 +1,83 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://www.tuscany.apache.org/tests/binding/ws/axis2"
+ name="RelativeURI">
+
+ <!--
+ tests that the relative URI of the binding is appended to the default component/service URL
+ -->
+
+ <component name="HelloWorldService">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.HelloWorldOMService"/>
+ <service name="HelloWorldOM">
+ <interface.wsdl interface="http://helloworld-om#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="helloWorld"
+ wsdlElement="http://helloworld-om#wsdl.binding(HelloWorldSoapBinding)"/>
+ </service>
+ </component>
+
+ <component name="HelloWorldComponent">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.HelloWorldOMComponent"/>
+ <reference name="helloWorldWS">
+ <interface.wsdl interface="http://helloworld-om#wsdl.interface(HelloWorld)" />
+ <binding.ws wsdlElement="http://helloworld-om#wsdl.binding(HelloWorldSoapBinding)"
+ uri="http://localhost:8085/HelloWorldService/HelloWorldOM/helloWorld"/>
+ </reference>
+ </component>
+
+ <component name="HelloWorldService1">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.HelloWorldOMService"/>
+ <service name="HelloWorldOM">
+ <interface.wsdl interface="http://helloworld-om#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="../helloWorld"
+ wsdlElement="http://helloworld-om#wsdl.binding(HelloWorldSoapBinding)"/>
+ </service>
+ </component>
+
+ <component name="HelloWorldComponent1">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.HelloWorldOMComponent"/>
+ <reference name="helloWorldWS">
+ <interface.wsdl interface="http://helloworld-om#wsdl.interface(HelloWorld)" />
+ <binding.ws wsdlElement="http://helloworld-om#wsdl.binding(HelloWorldSoapBinding)"
+ uri="http://localhost:8085/HelloWorldService1/helloWorld"/>
+ </reference>
+ </component>
+
+ <component name="HelloWorldService2">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.HelloWorldOMService"/>
+ <service name="HelloWorldOM">
+ <interface.wsdl interface="http://helloworld-om#wsdl.interface(HelloWorld)" />
+ <binding.ws uri="../../helloWorld"
+ wsdlElement="http://helloworld-om#wsdl.binding(HelloWorldSoapBinding)"/>
+ </service>
+ </component>
+
+ <component name="HelloWorldComponent2">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.HelloWorldOMComponent"/>
+ <reference name="helloWorldWS">
+ <interface.wsdl interface="http://helloworld-om#wsdl.interface(HelloWorld)" />
+ <binding.ws wsdlElement="http://helloworld-om#wsdl.binding(HelloWorldSoapBinding)"
+ uri="http://localhost:8085/helloWorld"/>
+ </reference>
+ </component>
+
+</composite>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/WSDLExplicitURI.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/WSDLExplicitURI.composite new file mode 100644 index 0000000000..9991a415f9 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/WSDLExplicitURI.composite @@ -0,0 +1,50 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912" + xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912" + targetNamespace="http://www.tuscany.apache.org/tests/binding/ws/axis2" + name="endpoint3"> + + <!-- + exposing a component with a WS binding using a WSDL port with an explicit URL + so for this composite the service is: http://localhost:8085/myExplicitURI + --> + + + <component name="HelloWorldService"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.HelloWorldOMService"/> + <service name="HelloWorldOM"> + <interface.wsdl interface="http://helloworld-om-uri#wsdl.interface(HelloWorld)" /> + <binding.ws wsdlElement="http://helloworld-om-uri#wsdl.port(HelloWorldService/HelloWorldSoapPort)" /> + </service> + </component> + + <component name="HelloWorldComponent"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.HelloWorldOMComponent"/> + <reference name="helloWorldWS"> + <interface.wsdl interface="http://helloworld-om-uri#wsdl.interface(HelloWorld)" /> + <binding.ws wsdlElement="http://helloworld-om-uri#wsdl.binding(HelloWorldSoapBinding)" + uri="http://localhost:8085/myExplicitURI"/> + </reference> + </component> + + + +</composite> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/WSDLRelativeURI.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/WSDLRelativeURI.composite new file mode 100644 index 0000000000..80ae124c23 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/WSDLRelativeURI.composite @@ -0,0 +1,51 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912" + xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912" + targetNamespace="http://www.tuscany.apache.org/tests/binding/ws/axis2" + name="endpoint4"> + + <!-- + exposing a component with a WS binding using a WSDL port with a relative URL + so for this composite the service is: http://localhost:8085/HelloWorldService/myRelativeURI + --> + + + + <component name="HelloWorldService"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.HelloWorldOMService"/> + <service name="HelloWorldOM"> + <interface.wsdl interface="http://helloworld-om-relative-uri#wsdl.interface(HelloWorld)" /> + <binding.ws wsdlElement="http://helloworld-om-relative-uri#wsdl.port(HelloWorldService/HelloWorldSoapPort)" /> + </service> + </component> + + <component name="HelloWorldComponent"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.HelloWorldOMComponent"/> + <reference name="helloWorldWS"> + <interface.wsdl interface="http://helloworld-om-relative-uri#wsdl.interface(HelloWorld)" /> + <binding.ws wsdlElement="http://helloworld-om-relative-uri#wsdl.binding(HelloWorldSoapBinding)" + uri="http://localhost:8085/HelloWorldService/HelloWorldOM/myRelativeURI"/> + </reference> + </component> + + + +</composite> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld-om-relative-uri.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld-om-relative-uri.wsdl new file mode 100644 index 0000000000..cd63064b59 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld-om-relative-uri.wsdl @@ -0,0 +1,78 @@ +<?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 targetNamespace="http://helloworld-om-relative-uri" xmlns:tns="http://helloworld-om-relative-uri" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" + name="helloworld-om"> + + <wsdl:types> + <schema elementFormDefault="qualified" targetNamespace="http://helloworld-om-relative-uri" xmlns="http://www.w3.org/2001/XMLSchema"> + + <element name="getGreetings"> + <complexType> + <sequence> + <element name="name" type="xsd:string"/> + </sequence> + </complexType> + </element> + + <element name="getGreetingsResponse"> + <complexType> + <sequence> + <element name="getGreetingsReturn" type="xsd:string"/> + </sequence> + </complexType> + </element> + </schema> + </wsdl:types> + + <wsdl:message name="getGreetingsRequest"> + <wsdl:part element="tns:getGreetings" name="parameters"/> + </wsdl:message> + + <wsdl:message name="getGreetingsResponse"> + <wsdl:part element="tns:getGreetingsResponse" name="parameters"/> + </wsdl:message> + + <wsdl:portType name="HelloWorld"> + <wsdl:operation name="getGreetings"> + <wsdl:input message="tns:getGreetingsRequest" name="getGreetingsRequest"/> + <wsdl:output message="tns:getGreetingsResponse" name="getGreetingsResponse"/> + </wsdl:operation> + </wsdl:portType> + + <wsdl:binding name="HelloWorldSoapBinding" type="tns:HelloWorld"> + <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> + <wsdl:operation name="getGreetings"> + <wsdlsoap:operation soapAction=""/> + <wsdl:input name="getGreetingsRequest"> + <wsdlsoap:body use="literal"/> + </wsdl:input> + <wsdl:output name="getGreetingsResponse"> + <wsdlsoap:body use="literal"/> + </wsdl:output> + </wsdl:operation> + </wsdl:binding> + + <wsdl:service name="HelloWorldService"> + <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort"> + <wsdlsoap:address location="myRelativeURI"/> + </wsdl:port> + </wsdl:service> + +</wsdl:definitions> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld-om-uri.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld-om-uri.wsdl new file mode 100644 index 0000000000..baa223f41c --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld-om-uri.wsdl @@ -0,0 +1,78 @@ +<?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 targetNamespace="http://helloworld-om-uri" xmlns:tns="http://helloworld-om-uri" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" + name="helloworld-om"> + + <wsdl:types> + <schema elementFormDefault="qualified" targetNamespace="http://helloworld-om-uri" xmlns="http://www.w3.org/2001/XMLSchema"> + + <element name="getGreetings"> + <complexType> + <sequence> + <element name="name" type="xsd:string"/> + </sequence> + </complexType> + </element> + + <element name="getGreetingsResponse"> + <complexType> + <sequence> + <element name="getGreetingsReturn" type="xsd:string"/> + </sequence> + </complexType> + </element> + </schema> + </wsdl:types> + + <wsdl:message name="getGreetingsRequest"> + <wsdl:part element="tns:getGreetings" name="parameters"/> + </wsdl:message> + + <wsdl:message name="getGreetingsResponse"> + <wsdl:part element="tns:getGreetingsResponse" name="parameters"/> + </wsdl:message> + + <wsdl:portType name="HelloWorld"> + <wsdl:operation name="getGreetings"> + <wsdl:input message="tns:getGreetingsRequest" name="getGreetingsRequest"/> + <wsdl:output message="tns:getGreetingsResponse" name="getGreetingsResponse"/> + </wsdl:operation> + </wsdl:portType> + + <wsdl:binding name="HelloWorldSoapBinding" type="tns:HelloWorld"> + <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> + <wsdl:operation name="getGreetings"> + <wsdlsoap:operation soapAction=""/> + <wsdl:input name="getGreetingsRequest"> + <wsdlsoap:body use="literal"/> + </wsdl:input> + <wsdl:output name="getGreetingsResponse"> + <wsdlsoap:body use="literal"/> + </wsdl:output> + </wsdl:operation> + </wsdl:binding> + + <wsdl:service name="HelloWorldService"> + <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort"> + <wsdlsoap:address location="http://localhost:8085/myExplicitURI"/> + </wsdl:port> + </wsdl:service> + +</wsdl:definitions> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld-om.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld-om.wsdl new file mode 100644 index 0000000000..73ca02246d --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld-om.wsdl @@ -0,0 +1,78 @@ +<?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 targetNamespace="http://helloworld-om" xmlns:tns="http://helloworld-om" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" + name="helloworld-om"> + + <wsdl:types> + <schema elementFormDefault="qualified" targetNamespace="http://helloworld-om" xmlns="http://www.w3.org/2001/XMLSchema"> + + <element name="getGreetings"> + <complexType> + <sequence> + <element name="name" type="xsd:string"/> + </sequence> + </complexType> + </element> + + <element name="getGreetingsResponse"> + <complexType> + <sequence> + <element name="getGreetingsReturn" type="xsd:string"/> + </sequence> + </complexType> + </element> + </schema> + </wsdl:types> + + <wsdl:message name="getGreetingsRequest"> + <wsdl:part element="tns:getGreetings" name="parameters"/> + </wsdl:message> + + <wsdl:message name="getGreetingsResponse"> + <wsdl:part element="tns:getGreetingsResponse" name="parameters"/> + </wsdl:message> + + <wsdl:portType name="HelloWorld"> + <wsdl:operation name="getGreetings"> + <wsdl:input message="tns:getGreetingsRequest" name="getGreetingsRequest"/> + <wsdl:output message="tns:getGreetingsResponse" name="getGreetingsResponse"/> + </wsdl:operation> + </wsdl:portType> + + <wsdl:binding name="HelloWorldSoapBinding" type="tns:HelloWorld"> + <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> + <wsdl:operation name="getGreetings"> + <wsdlsoap:operation soapAction=""/> + <wsdl:input name="getGreetingsRequest"> + <wsdlsoap:body use="literal"/> + </wsdl:input> + <wsdl:output name="getGreetingsResponse"> + <wsdlsoap:body use="literal"/> + </wsdl:output> + </wsdl:operation> + </wsdl:binding> + + <wsdl:service name="HelloWorldService"> + <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort"> + <wsdlsoap:address location="http://endpoint.not.used"/> + </wsdl:port> + </wsdl:service> + +</wsdl:definitions> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/AbstractHelloWorldOMTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/AbstractHelloWorldOMTestCase.java new file mode 100644 index 0000000000..1f8e4b3622 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/AbstractHelloWorldOMTestCase.java @@ -0,0 +1,72 @@ +/* + * 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.axis2; + +import junit.framework.Assert; +import junit.framework.TestCase; + +import org.apache.axiom.om.OMAbstractFactory; +import org.apache.axiom.om.OMElement; +import org.apache.axiom.om.OMFactory; +import org.apache.axiom.om.OMText; +import org.apache.tuscany.sca.binding.ws.WebServiceBinding; +import org.apache.tuscany.sca.binding.ws.axis2.HelloWorldOM; +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; +import org.apache.tuscany.sca.node.impl.NodeImpl; + +public abstract class AbstractHelloWorldOMTestCase extends TestCase { + + protected Node node; + protected HelloWorldOM helloWorld; + + @Override + protected void setUp() throws Exception { + String contribution = "target/classes"; + node = NodeFactory.newInstance().createNode(getCompositeName(), new Contribution("test", contribution)); + // force ws binding on node to use a default of 8085 if an absolute port is not specified + ((NodeImpl)node).getConfiguration().addBinding(WebServiceBinding.TYPE, "http://localhost:8085/"); + node.start(); + helloWorld = node.getService(HelloWorldOM.class, "HelloWorldComponent"); + } + + public void testCalculator() throws Exception { + OMFactory fac = OMAbstractFactory.getOMFactory(); + OMElement requestOM = fac.createOMElement("getGreetings", "http://helloworld-om", "helloworld"); + OMElement parmE = fac.createOMElement("name", "http://helloworld-om", "helloworld"); + requestOM.addChild(parmE); + parmE.addChild(fac.createOMText("petra")); + OMElement responseOM = helloWorld.getGreetings(requestOM); + OMElement child = (OMElement)responseOM.getFirstElement(); + Assert.assertEquals("Hello petra", ((OMText)child.getFirstOMChild()).getText()); + } + + @Override + protected void tearDown() throws Exception { + node.stop(); + } + + protected String getCompositeName() { + String className = this.getClass().getName(); + return className.substring(0, className.length() - 8).replace('.', '/') + ".composite"; + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/DefaultMultiServiceTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/DefaultMultiServiceTestCase.java new file mode 100644 index 0000000000..4ecf016e5a --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/DefaultMultiServiceTestCase.java @@ -0,0 +1,24 @@ +/* + * 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.axis2; + +public class DefaultMultiServiceTestCase extends AbstractHelloWorldOMTestCase { + // super class does it all getting composite based on this class name +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/DefaultSingleServiceTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/DefaultSingleServiceTestCase.java new file mode 100644 index 0000000000..13163d62ab --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/DefaultSingleServiceTestCase.java @@ -0,0 +1,24 @@ +/* + * 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.axis2; + +public class DefaultSingleServiceTestCase extends AbstractHelloWorldOMTestCase { + // super class does it all getting composite based on this class name +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/RelativeURITestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/RelativeURITestCase.java new file mode 100644 index 0000000000..108aa1ce70 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/RelativeURITestCase.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.binding.ws.axis2;
+
+import junit.framework.Assert;
+
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMText;
+
+public class RelativeURITestCase extends AbstractHelloWorldOMTestCase {
+ // super class does it all getting composite based on this class name
+
+ /**
+ * Test binding.ws uri="../helloWorld"
+ */
+ public void testRelative1() throws Exception {
+ HelloWorldOM helloWorld = node.getService(HelloWorldOM.class, "HelloWorldComponent1");
+
+ OMFactory fac = OMAbstractFactory.getOMFactory();
+ OMElement requestOM = fac.createOMElement("getGreetings", "http://helloworld-om", "helloworld");
+ OMElement parmE = fac.createOMElement("name", "http://helloworld-om", "helloworld");
+ requestOM.addChild(parmE);
+ parmE.addChild(fac.createOMText("petra"));
+ OMElement responseOM = helloWorld.getGreetings(requestOM);
+ OMElement child = (OMElement)responseOM.getFirstElement();
+ Assert.assertEquals("Hello petra", ((OMText)child.getFirstOMChild()).getText());
+ }
+
+ /**
+ * Test binding.ws uri="../../helloWorld"
+ */
+ public void testRelative2() throws Exception {
+ HelloWorldOM helloWorld = node.getService(HelloWorldOM.class, "HelloWorldComponent2");
+
+ OMFactory fac = OMAbstractFactory.getOMFactory();
+ OMElement requestOM = fac.createOMElement("getGreetings", "http://helloworld-om", "helloworld");
+ OMElement parmE = fac.createOMElement("name", "http://helloworld-om", "helloworld");
+ requestOM.addChild(parmE);
+ parmE.addChild(fac.createOMText("petra"));
+ OMElement responseOM = helloWorld.getGreetings(requestOM);
+ OMElement child = (OMElement)responseOM.getFirstElement();
+ Assert.assertEquals("Hello petra", ((OMText)child.getFirstOMChild()).getText());
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLExplicitURITestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLExplicitURITestCase.java new file mode 100644 index 0000000000..bb492557d4 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLExplicitURITestCase.java @@ -0,0 +1,24 @@ +/* + * 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.axis2; + +public class WSDLExplicitURITestCase extends AbstractHelloWorldOMTestCase { + // super class does it all getting composite based on this class name +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLRelativeURITestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLRelativeURITestCase.java new file mode 100644 index 0000000000..e038cc3116 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/endpoints/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLRelativeURITestCase.java @@ -0,0 +1,24 @@ +/* + * 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.axis2; + +public class WSDLRelativeURITestCase extends AbstractHelloWorldOMTestCase { + // super class does it all getting composite based on this class name +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-client/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-client/pom.xml new file mode 100644 index 0000000000..fcab3d6084 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-client/pom.xml @@ -0,0 +1,106 @@ +<?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>itest-ws</artifactId>
+ <version>2.0-Beta4</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>itest-ws-external-client</artifactId>
+ <name>Apache Tuscany SCA iTest WS External Client</name>
+
+ <repositories>
+ <repository>
+ <id>java.net2</id>
+ <name>java.net Maven 2.x Repository</name>
+ <url>http://download.java.net/maven/2</url>
+ </repository>
+ </repositories>
+
+ <dependencies>
+ <!-- Deliberately empty -->
+ </dependencies>
+
+ <build>
+ <finalName>${project.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.jvnet.jax-ws-commons</groupId>
+ <artifactId>jaxws-maven-plugin</artifactId>
+ <version>2.1</version>
+ <dependencies>
+ <dependency>
+ <groupId>com.sun.xml.ws</groupId>
+ <artifactId>jaxws-tools</artifactId>
+ <version>2.2.6-promoted-b10</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/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-client/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/external/client/HelloWorldClientLauncher.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-client/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/external/client/HelloWorldClientLauncher.java new file mode 100644 index 0000000000..ccecf5695f --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-client/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/external/client/HelloWorldClientLauncher.java @@ -0,0 +1,91 @@ +/*
+ * 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.Foo;
+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://ws.binding.sca.tuscany.apache.org/", "HelloWorldImplService");
+ QName portName = new QName("http://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 {
+ System.out.println("Entering External Client HelloWorld.getGreetingsException: " + name);
+ String response = wsProxy.getGreetingsException(name);
+ System.out.println("Leaving External Client HelloWorld.getGreetingsException: " + response);
+ return response;
+ }
+
+ public Foo getGreetingsComplex(Foo f) throws Exception_Exception {
+ System.out.println("Entering External Client HelloWorld.getGreetingsComplex: " + f.getBars().get(0).getS());
+ Foo response = wsProxy.getGreetingsComplex(f);
+ System.out.println("Leaving External Client HelloWorld.getGreetingsComplex: " + response.getBars().get(0).getS());
+ return response;
+ }
+
+ public String getGreetingsCaps(String s) throws Exception_Exception {
+ System.out.println("Entering External Client HelloWorld.getGreetingsCaps: " + s);
+ String response = wsProxy.getGreetingsCaps(s);
+ System.out.println("Leaving External Client HelloWorld.getGreetingsCaps: " + response);
+ return response;
+ }
+
+ public static void main(String[] args) throws Exception {
+ HelloWorldClientLauncher launcher = new HelloWorldClientLauncher();
+ launcher.createClient();
+ launcher.getGreetings("Fred");
+ launcher.destroyClient();
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-client/src/main/resources/HelloWorldImplService.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-client/src/main/resources/HelloWorldImplService.wsdl new file mode 100644 index 0000000000..d175589d7b --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-client/src/main/resources/HelloWorldImplService.wsdl @@ -0,0 +1,128 @@ +<?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.
+-->
+<definitions targetNamespace="http://ws.binding.sca.tuscany.apache.org/"
+ name="HelloWorldImplService"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="http://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://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>
+ <message name="GetGreetingsCaps">
+ <part name="parameters" element="tns:GetGreetingsCaps"/>
+ </message>
+ <message name="GetGreetingsCapsResponse">
+ <part name="parameters" element="tns:GetGreetingsCapsResponse"/>
+ </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>
+ <operation name="GetGreetingsCaps">
+ <input message="tns:GetGreetingsCaps"/>
+ <output message="tns:GetGreetingsCapsResponse"/>
+ </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>
+ <operation name="GetGreetingsCaps">
+ <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/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-client/src/main/resources/HelloWorldImplService_schema1.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-client/src/main/resources/HelloWorldImplService_schema1.xsd new file mode 100644 index 0000000000..c9c0acb038 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-client/src/main/resources/HelloWorldImplService_schema1.xsd @@ -0,0 +1,111 @@ +<?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://ws.binding.sca.tuscany.apache.org/"
+ xmlns:tns="http://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:element name="GetGreetingsCaps" type="tns:GetGreetingsCaps"/>
+
+ <xs:element name="GetGreetingsCapsResponse" type="tns:GetGreetingsCapsResponse"/>
+
+ <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:complexType name="GetGreetingsCaps">
+ <xs:sequence>
+ <xs:element name="arg0" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="GetGreetingsCapsResponse">
+ <xs:sequence>
+ <xs:element name="return" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-service/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-service/pom.xml new file mode 100644 index 0000000000..ee82f6fbe9 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-service/pom.xml @@ -0,0 +1,96 @@ +<?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>itest-ws</artifactId>
+ <version>2.0-Beta4</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>itest-ws-external-service</artifactId>
+ <name>Apache Tuscany SCA iTest WS External Service</name>
+
+ <dependencies>
+
+
+ </dependencies>
+
+ <build>
+ <finalName>${project.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.jvnet.jax-ws-commons</groupId>
+ <artifactId>jaxws-maven-plugin</artifactId>
+ <version>2.1</version>
+ <dependencies>
+ <dependency>
+ <groupId>com.sun.xml.ws</groupId>
+ <artifactId>jaxws-tools</artifactId>
+ <version>2.2.6-promoted-b10</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <id>wsgen1</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>wsgen</goal>
+ </goals>
+ <configuration>
+ <sei>org.apache.tuscany.sca.binding.ws.jaxws.external.service.HelloWorldService</sei>
+ <genWsdl>true</genWsdl>
+ <staleFile>${project.build.directory}/jaxws/stale/.wsgen1StaleFlag</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/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-service/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/external/service/Bar.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-service/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/external/service/Bar.java new file mode 100644 index 0000000000..1f330aa441 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-service/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/external/service/Bar.java @@ -0,0 +1,152 @@ +/*
+ * 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.service;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for bar complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="bar">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="b" type="{http://www.w3.org/2001/XMLSchema}boolean" minOccurs="0"/>
+ * <element name="s" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * <element name="x" type="{http://www.w3.org/2001/XMLSchema}int"/>
+ * <element name="y" type="{http://www.w3.org/2001/XMLSchema}int" minOccurs="0"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "bar", propOrder = {
+ "b",
+ "s",
+ "x",
+ "y"
+})
+public class Bar {
+
+ protected Boolean b;
+ protected String s;
+ protected int x;
+ protected Integer y;
+
+ /**
+ * Gets the value of the b property.
+ *
+ * @return
+ * possible object is
+ * {@link Boolean }
+ *
+ */
+ public Boolean isB() {
+ return b;
+ }
+
+ /**
+ * Sets the value of the b property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Boolean }
+ *
+ */
+ public void setB(Boolean value) {
+ this.b = value;
+ }
+
+ /**
+ * Gets the value of the s property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getS() {
+ return s;
+ }
+
+ /**
+ * Sets the value of the s property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setS(String value) {
+ this.s = value;
+ }
+
+ /**
+ * Gets the value of the x property.
+ *
+ */
+ public int getX() {
+ return x;
+ }
+
+ /**
+ * Sets the value of the x property.
+ *
+ */
+ public void setX(int value) {
+ this.x = value;
+ }
+
+ /**
+ * Gets the value of the y property.
+ *
+ * @return
+ * possible object is
+ * {@link Integer }
+ *
+ */
+ public Integer getY() {
+ return y;
+ }
+
+ /**
+ * Sets the value of the y property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Integer }
+ *
+ */
+ public void setY(Integer value) {
+ this.y = value;
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-service/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/external/service/Foo.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-service/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/external/service/Foo.java new file mode 100644 index 0000000000..1b22153169 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-service/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/external/service/Foo.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.binding.ws.jaxws.external.service;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for foo complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="foo">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="bars" type="{http://ws.binding.sca.tuscany.apache.org/}bar" maxOccurs="unbounded" minOccurs="0"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "foo", propOrder = {
+ "bars"
+})
+public class Foo {
+
+ @XmlElement(nillable = true)
+ protected List<Bar> bars;
+
+ /**
+ * Gets the value of the bars property.
+ *
+ * <p>
+ * This accessor method returns a reference to the live list,
+ * not a snapshot. Therefore any modification you make to the
+ * returned list will be present inside the JAXB object.
+ * This is why there is not a <CODE>set</CODE> method for the bars property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getBars().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link Bar }
+ *
+ *
+ */
+ public List<Bar> getBars() {
+ if (bars == null) {
+ bars = new ArrayList<Bar>();
+ }
+ return this.bars;
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-service/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/external/service/HelloWorldService.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-service/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/external/service/HelloWorldService.java new file mode 100644 index 0000000000..129365b5e4 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-service/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/external/service/HelloWorldService.java @@ -0,0 +1,64 @@ +/*
+ * 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.service;
+
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebResult;
+import javax.jws.WebService;
+import javax.xml.ws.RequestWrapper;
+import javax.xml.ws.ResponseWrapper;
+
+@WebService(name = "HelloWorldService", targetNamespace = "http://helloworld/external")
+public class HelloWorldService {
+
+ @WebMethod
+ @WebResult(name = "getGreetingsReturn", targetNamespace = "http://helloworld/external")
+ @RequestWrapper(localName = "getGreetings", targetNamespace = "http://helloworld/external", className = "org.apache.tuscany.sca.binding.ws.jaxws.external.service.GetGreetings")
+ @ResponseWrapper(localName = "getGreetingsResponse", targetNamespace = "http://helloworld/external", className = "org.apache.tuscany.sca.binding.ws.jaxws.external.service.GetGreetingsResponse")
+ public String getGreetings( @WebParam(name = "name", targetNamespace = "http://helloworld/external")
+ String name) {
+ System.out.println("Entering External Service HelloWorld.getGreetings: " + name);
+ String response = "Hello " + name;
+ System.out.println("Leaving External Service HelloWorld.getGreetings: " + response);
+ return response;
+ }
+
+ public Foo getGreetingsComplex(Foo foo){
+ System.out.println("Entering External Service HelloWorld.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ Foo response = foo;
+ Bar b3 = new Bar();
+ b3.setS("simon");
+ b3.setX(7);
+ b3.setY(new Integer(8));
+ b3.setB(Boolean.TRUE);
+ response.getBars().add(b3);
+ System.out.println("Leaving External Service HelloWorld.getGreetingsComplex: " + foo.getBars().get(0).getS());
+ return response;
+ }
+
+ public String GetGreetingsCaps(String name) {
+ System.out.println("Entering External Service HelloWorld.GetGreetingsCaps: " + name);
+ String response = "Hello " + name;
+ System.out.println("Leaving External Service HelloWorld.GetGreetingsCaps: " + response);
+ return response;
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-service/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/external/service/HelloWorldServiceLauncher.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-service/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/external/service/HelloWorldServiceLauncher.java new file mode 100644 index 0000000000..3a6266f1ef --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/external-service/src/main/java/org/apache/tuscany/sca/binding/ws/jaxws/external/service/HelloWorldServiceLauncher.java @@ -0,0 +1,49 @@ +/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.sca.binding.ws.jaxws.external.service;
+
+import javax.xml.ws.Endpoint;
+
+public class HelloWorldServiceLauncher {
+
+ public Endpoint endpoint;
+
+ public HelloWorldServiceLauncher(){
+
+ }
+
+ public void createService(){
+ System.out.println(">>> Starting external JAXWS service at http://localhost:8086/External/HelloWorld");
+
+ // default JVM JAXWS support.
+ endpoint= Endpoint.publish("http://localhost:8086/External/HelloWorld",
+ new HelloWorldService());
+ }
+
+ public void destoryService(){
+ System.out.println(">>> Stopping external JAXWS service at http://localhost:8086/External/HelloWorld");
+ endpoint.stop();
+ }
+
+ public static void main(String[] args) throws Exception {
+ HelloWorldServiceLauncher launcher = new HelloWorldServiceLauncher();
+ launcher.createService();
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/pom.xml new file mode 100644 index 0000000000..da3446a78a --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/pom.xml @@ -0,0 +1,123 @@ +<?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>itest-ws</artifactId>
+ <version>2.0-Beta4</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <packaging>jar</packaging>
+ <artifactId>itest-holder-ws-service-multiple-outputs</artifactId>
+ <name>Apache Tuscany SCA itest WS Holder Input/MultipleOutputs</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-assembly</artifactId>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-sca-api</artifactId>
+ <version>2.0-Beta4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-node-api</artifactId>
+ <version>2.0-Beta4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-node-impl</artifactId>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-implementation-java-runtime</artifactId>
+ <version>2.0-Beta4</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws</artifactId>
+ <version>2.0-Beta4</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws-wsdlgen</artifactId>
+ <version>2.0-Beta4</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-host-http</artifactId>
+ <version>2.0-Beta4</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-host-jetty</artifactId>
+ <version>2.0-Beta4</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-policy-security</artifactId>
+ <version>2.0-Beta4</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws-runtime-axis2</artifactId>
+ <version>2.0-Beta4</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <finalName>${project.artifactId}</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-maven-plugin</artifactId>
+ <version>2.0-Beta4</version>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/Order.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/Order.java new file mode 100644 index 0000000000..2a4bb26858 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/Order.java @@ -0,0 +1,147 @@ +/*
+ * 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.example.orderservice;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for order complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * <complexType name="order">
+ * <complexContent>
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * <sequence>
+ * <element name="customerId" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * <element name="status" type="{http://www.example.org/OrderService/}status" minOccurs="0"/>
+ * <element name="total" type="{http://www.w3.org/2001/XMLSchema}double"/>
+ * <element name="orderId" type="{http://www.w3.org/2001/XMLSchema}int"/>
+ * </sequence>
+ * </restriction>
+ * </complexContent>
+ * </complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "order", propOrder = {
+ "customerId",
+ "status",
+ "total",
+ "orderId"
+})
+public class Order {
+
+ protected String customerId;
+ protected Status status;
+ protected double total;
+ protected int orderId;
+
+ /**
+ * Gets the value of the customerId property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ /**
+ * Sets the value of the customerId property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setCustomerId(String value) {
+ this.customerId = value;
+ }
+
+ /**
+ * Gets the value of the status property.
+ *
+ * @return
+ * possible object is
+ * {@link Status }
+ *
+ */
+ public Status getStatus() {
+ return status;
+ }
+
+ /**
+ * Sets the value of the status property.
+ *
+ * @param value
+ * allowed object is
+ * {@link Status }
+ *
+ */
+ public void setStatus(Status value) {
+ this.status = value;
+ }
+
+ /**
+ * Gets the value of the total property.
+ *
+ */
+ public double getTotal() {
+ return total;
+ }
+
+ /**
+ * Sets the value of the total property.
+ *
+ */
+ public void setTotal(double value) {
+ this.total = value;
+ }
+
+ /**
+ * Gets the value of the orderId property.
+ *
+ */
+ public int getOrderId() {
+ return orderId;
+ }
+
+ /**
+ * Sets the value of the orderId property.
+ *
+ */
+ public void setOrderId(int value) {
+ this.orderId = value;
+ }
+
+ // Added manually from wsimport generated class to improve debugging.
+ public String toString() {
+ return "Order[customerId=" + customerId + ",orderId=" + orderId + ",total=" + total + ",status=" + status.value() + "]";
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/OrderService.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/OrderService.java new file mode 100644 index 0000000000..718be0b46d --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/OrderService.java @@ -0,0 +1,72 @@ +/*
+ * 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.example.orderservice;
+
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.xml.ws.Holder;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+
+
+@WebService
+@Remotable
+public interface OrderService {
+
+ public String[] reviewOrder(
+ @WebParam(name = "myData", targetNamespace = "", mode = WebParam.Mode.INOUT)
+ Holder<Order> myData,
+ @WebParam(name = "myOutParam", targetNamespace = "", mode = WebParam.Mode.OUT)
+ Holder<Float> myOutParam);
+
+ public String[] reviewOrderTwoInOuts(
+ @WebParam(name = "myData", targetNamespace = "", mode = WebParam.Mode.INOUT)
+ Holder<Order> myData,
+ @WebParam(name = "myOutParam", targetNamespace = "", mode = WebParam.Mode.INOUT)
+ Holder<Float> myOutParam);
+
+ public String[] reviewOrderTwoOutHolders(
+ @WebParam(name = "myData", targetNamespace = "", mode = WebParam.Mode.OUT)
+ Holder<Order> myData,
+ @WebParam(targetNamespace = "", mode = WebParam.Mode.OUT)
+ Holder<Float> myOutParam);
+
+ public String[] reviewOrderTwoInOutsThenIn(
+ @WebParam(targetNamespace = "", mode = WebParam.Mode.INOUT)
+ Holder<Order> myData,
+ @WebParam(name = "myOutParam", targetNamespace = "", mode = WebParam.Mode.INOUT)
+ Holder<Float> myOutParam,
+ Integer myCode);
+
+ public void reviewOrderTwoInOutsVoid(
+ @WebParam(name = "myData", targetNamespace = "", mode = WebParam.Mode.INOUT)
+ Holder<Order> myData,
+ @WebParam(name = "myOutParam", targetNamespace = "", mode = WebParam.Mode.INOUT)
+ Holder<Float> myOutParam);
+
+ public String[] reviewOrderOutThenInOut(
+ @WebParam(name = "myOutParam", targetNamespace = "", mode = WebParam.Mode.OUT)
+ Holder<Float> myOutParam,
+ @WebParam(name = "myData", targetNamespace = "", mode = WebParam.Mode.INOUT)
+ Holder<Order> myData);
+
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/OrderServiceBare.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/OrderServiceBare.java new file mode 100644 index 0000000000..ca05c28627 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/OrderServiceBare.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.example.orderservice; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebService; +import javax.jws.soap.SOAPBinding; +import javax.xml.ws.Holder; + +import org.oasisopen.sca.annotation.Remotable; + +@WebService +@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE) +public interface OrderServiceBare { + + public Order bareReviewOrder(Order order); + + public void bareReviewOrderInOutHolder( + @WebParam(mode = WebParam.Mode.INOUT) + Holder<Order> myData); + + @WebMethod(action = "bareReviewOrderOutHolder") + public void bareReviewOrderOutHolder( + @WebParam(mode = WebParam.Mode.OUT) + Holder<Order> myData); + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/OrderServiceBareForwardImpl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/OrderServiceBareForwardImpl.java new file mode 100644 index 0000000000..31af9e19f9 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/OrderServiceBareForwardImpl.java @@ -0,0 +1,47 @@ +/*
+ * 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.example.orderservice;
+
+import javax.xml.ws.Holder;
+
+import org.oasisopen.sca.annotation.Reference;
+import org.oasisopen.sca.annotation.Service;
+
+@Service(OrderServiceBare.class)
+public class OrderServiceBareForwardImpl implements OrderServiceBare {
+
+ @Reference
+ public OrderServiceBare ref;
+
+ @Override
+ public Order bareReviewOrder(Order myData) {
+ Order retVal = ref.bareReviewOrder(myData);
+ return retVal;
+ }
+
+ @Override
+ public void bareReviewOrderInOutHolder(Holder<Order> myData) {
+ ref.bareReviewOrderInOutHolder(myData);
+ }
+
+ @Override
+ public void bareReviewOrderOutHolder(Holder<Order> myData) {
+ ref.bareReviewOrderOutHolder(myData);
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/OrderServiceBareImpl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/OrderServiceBareImpl.java new file mode 100644 index 0000000000..05b8538c2a --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/OrderServiceBareImpl.java @@ -0,0 +1,75 @@ +/*
+ * 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.example.orderservice;
+
+// import org.osoa.sca.annotations.Service;
+import java.util.Random;
+
+import javax.jws.WebParam;
+import javax.xml.ws.Holder;
+
+import org.oasisopen.sca.annotation.Service;
+
+/**
+ * This class implements the OrderService service.
+ */
+@Service(OrderServiceBare.class)
+public class OrderServiceBareImpl implements OrderServiceBare {
+
+ @Override
+ public Order bareReviewOrder(Order order) {
+ double total = order.getTotal();
+ Order retVal = new Order();
+ if ( total < 100.0 ) {
+ retVal.setStatus( Status.APPROVED );
+ } else if ( total > 1100.0 ) {
+ retVal.setStatus( Status.REJECTED );
+ }
+ return retVal;
+ }
+
+ @Override
+ public void bareReviewOrderInOutHolder(Holder<Order> myData) {
+ String customerId = "cust1234";
+ double total = myData.value.getTotal();
+ Order newOrder = new Order();
+
+ if ( total < 100.0 ) {
+ newOrder.setStatus( Status.APPROVED );
+ } else if ( total > 1100.0 ) {
+ newOrder.setStatus( Status.REJECTED );
+ }
+ newOrder.setCustomerId(customerId);
+ myData.value = newOrder;
+ }
+
+ @Override
+ public void bareReviewOrderOutHolder(Holder<Order> myData) {
+ boolean holderEmpty = (myData.value == null ? true : false);
+ Order newOrder = new Order();
+
+ if (holderEmpty) {
+ newOrder.setStatus( Status.APPROVED );
+ newOrder.setCustomerId("approved.1234");
+ } else {
+ newOrder.setStatus( Status.REJECTED );
+ }
+ myData.value = newOrder;
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/OrderServiceForwardImpl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/OrderServiceForwardImpl.java new file mode 100644 index 0000000000..d14269fde2 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/OrderServiceForwardImpl.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.example.orderservice;
+
+import javax.xml.ws.Holder;
+
+import org.oasisopen.sca.annotation.Reference;
+import org.oasisopen.sca.annotation.Service;
+
+@Service(OrderService.class)
+public class OrderServiceForwardImpl implements OrderService {
+
+ @Reference
+ public OrderService ref;
+
+ public String[] reviewOrder(Holder<Order> myData, Holder<Float> myOutParam) {
+ String[] retVal = ref.reviewOrder(myData, myOutParam);
+ return retVal;
+ }
+
+ @Override
+ public String[] reviewOrderTwoInOuts(Holder<Order> myData,
+ Holder<Float> myOutParam) {
+ String[] retVal = ref.reviewOrderTwoInOuts(myData, myOutParam);
+ return retVal;
+ }
+
+ @Override
+ public String[] reviewOrderTwoOutHolders(Holder<Order> myData,
+ Holder<Float> myOutParam) {
+ String[] retVal = ref.reviewOrderTwoOutHolders(myData, myOutParam);
+ return retVal;
+ }
+
+ @Override
+ public String[] reviewOrderTwoInOutsThenIn(Holder<Order> myData,
+ Holder<Float> myOutParam, Integer myCode) {
+ String[] retVal = ref.reviewOrderTwoInOutsThenIn(myData, myOutParam, myCode);
+ return retVal;
+ }
+
+ @Override
+ public void reviewOrderTwoInOutsVoid(Holder<Order> myData, Holder<Float> myOutParam) {
+ ref.reviewOrderTwoInOutsVoid(myData, myOutParam);
+ }
+
+ @Override
+ public String[] reviewOrderOutThenInOut(Holder<Float> myOutParam, Holder<Order> myData) {
+ String[] retVal = ref.reviewOrderOutThenInOut(myOutParam, myData);
+ return retVal;
+ }
+
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/OrderServiceImpl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/OrderServiceImpl.java new file mode 100644 index 0000000000..8ec9a94248 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/OrderServiceImpl.java @@ -0,0 +1,165 @@ +/*
+ * 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.example.orderservice;
+
+// import org.osoa.sca.annotations.Service;
+import java.util.Random;
+
+import javax.jws.WebParam;
+import javax.xml.ws.Holder;
+
+import org.oasisopen.sca.annotation.Service;
+
+/**
+ * This class implements the OrderService service.
+ */
+@Service(OrderService.class)
+public class OrderServiceImpl implements OrderService {
+
+ /** This dummy implementation approves or rejects orders:
+ * < 100 - always approved.
+ * 100-1100 - randomly approved. Probability = (1100 - amount)/10
+ * >1100 - always rejected.
+ */
+ // public Order reviewOrder(Order order) {
+ // @WebMethod(action = "http://www.example.org/OrderService/reviewOrder")
+ // @RequestWrapper(localName = "reviewOrder", targetNamespace = "http://www.example.org/OrderService/", className = "org.example.orderservice.ReviewOrder")
+ // @ResponseWrapper(localName = "reviewOrderResponse", targetNamespace = "http://www.example.org/OrderService/", className = "org.example.orderservice.ReviewOrderResponse")
+ public String[] reviewOrder(
+ @WebParam(name = "myData", targetNamespace = "", mode = WebParam.Mode.INOUT)
+ Holder<Order> myData,
+ @WebParam(name="myOutParam", targetNamespace = "", mode = WebParam.Mode.OUT)
+ Holder<Float> myOutParam) {
+ String[] returnVal = {"retval1", "retval2"};
+ Order order = myData.value;
+ double total = order.getTotal();
+ if ( total < 100.0 ) {
+ order.setStatus( Status.APPROVED );
+ } else if ( total > 1100.0 ) {
+ order.setStatus( Status.REJECTED );
+ } else {
+ int probability = (int) ((-100.0 + total) / 10.0);
+ Random approver = new Random();
+ if ( approver.nextInt( 100 ) < probability )
+ order.setStatus( Status.APPROVED );
+ else
+ order.setStatus( Status.REJECTED );
+ }
+ System.out.println( ">>> OrderService.reviewOrder return=" + order );
+
+ if ( myOutParam.value == null ) {
+ myOutParam.value = new Float("97");
+ } else {
+ myOutParam.value = new Float("-1000");
+ }
+ return returnVal;
+ }
+
+ @Override
+ public String[] reviewOrderTwoInOuts(Holder<Order> myData,
+ Holder<Float> myOutParam) {
+ String[] returnVal = {"retval1", "retval2"};
+ Order order = myData.value;
+ double total = order.getTotal();
+ if ( total < 100.0 ) {
+ order.setStatus( Status.APPROVED );
+ } else if ( total > 1100.0 ) {
+ order.setStatus( Status.REJECTED );
+ } else {
+ int probability = (int) ((-100.0 + total) / 10.0);
+ Random approver = new Random();
+ if ( approver.nextInt( 100 ) < probability )
+ order.setStatus( Status.APPROVED );
+ else
+ order.setStatus( Status.REJECTED );
+ }
+ System.out.println( ">>> OrderService.reviewOrder return=" + order );
+
+ // Since this is an INOUT, expect "111" to signify test pass
+ if ( myOutParam.value.equals(new Float("111"))) {
+ myOutParam.value = new Float("97");
+ } else {
+ myOutParam.value = new Float("-1000");
+ }
+ return returnVal;
+ }
+
+ @Override
+ public String[] reviewOrderTwoOutHolders(Holder<Order> myData,
+ Holder<Float> myOutParam) {
+ String[] returnVal = {"retval1", "retval2"};
+ if (myData.value == null) {
+ myData.value = new Order();
+ myData.value.setStatus(Status.REJECTED);
+ } else {
+ // Do nothing so test logic will fail
+ }
+
+ // Use test logic to check it's truly treated as an OUT parm
+ if ( myOutParam.value == null ) {
+ myOutParam.value = new Float("97");
+ } else {
+ myOutParam.value = new Float("-1000");
+ }
+ return returnVal;
+ }
+
+ @Override
+ public String[] reviewOrderTwoInOutsThenIn(Holder<Order> myData,
+ Holder<Float> myOutParam,
+ Integer myCode) {
+ String[] returnVal = {"retval1", "retval2"};
+ Order order = myData.value;
+ double total = order.getTotal();
+ if ( total < 50.1 && myCode.equals(new Integer("23")) ) {
+ order.setStatus( Status.APPROVED );
+ } else {
+ order.setStatus( Status.REJECTED);
+ }
+
+ // Use test logic to check it's truly treated as an INOUT parm
+ if ( myOutParam.value != null ) {
+ myOutParam.value = new Float("97");
+ } else {
+ myOutParam.value = new Float("-1000");
+ }
+ return returnVal;
+ }
+
+ @Override
+ public void reviewOrderTwoInOutsVoid(Holder<Order> myData, Holder<Float> myOutParam) {
+ double total = myData.value.getTotal();
+ Order retOrder = new Order();
+ if (total < 50.1 && myOutParam.value < 50) {
+ myOutParam.value = new Float("1");
+ retOrder.setStatus(Status.APPROVED);
+ } else {
+ myOutParam.value = new Float("-1");
+ retOrder.setStatus(Status.REJECTED);
+ }
+ myData.value = retOrder;
+ }
+
+ @Override
+ // Simply delegate to existing test method with parms reversed.
+ public String[] reviewOrderOutThenInOut(Holder<Float> myOutParam, Holder<Order> myData) {
+ String[] retVal = reviewOrder(myData, myOutParam);
+ return retVal;
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/Status.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/Status.java new file mode 100644 index 0000000000..83b198ab35 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/java/org/example/orderservice/Status.java @@ -0,0 +1,75 @@ +/*
+ * 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.example.orderservice;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for status.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * <simpleType name="status">
+ * <restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ * <enumeration value="Created"/>
+ * <enumeration value="Submitted"/>
+ * <enumeration value="Approved"/>
+ * <enumeration value="Rejected"/>
+ * </restriction>
+ * </simpleType>
+ * </pre>
+ *
+ */
+@XmlType(name = "status")
+@XmlEnum
+public enum Status {
+
+ @XmlEnumValue("Created")
+ CREATED("Created"),
+ @XmlEnumValue("Submitted")
+ SUBMITTED("Submitted"),
+ @XmlEnumValue("Approved")
+ APPROVED("Approved"),
+ @XmlEnumValue("Rejected")
+ REJECTED("Rejected");
+ private final String value;
+
+ Status(String v) {
+ value = v;
+ }
+
+ public String value() {
+ return value;
+ }
+
+ public static Status fromValue(String v) {
+ for (Status c: Status.values()) {
+ if (c.value.equals(v)) {
+ return c;
+ }
+ }
+ throw new IllegalArgumentException(v);
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/resources/ordersca.bare.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/resources/ordersca.bare.composite new file mode 100644 index 0000000000..8a563666c8 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/resources/ordersca.bare.composite @@ -0,0 +1,46 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://orderservice"
+ xmlns:hw="http://orderservice"
+ name="orderws.bare">
+
+ <component name="OrderServiceBareComponent">
+ <implementation.java class="org.example.orderservice.OrderServiceBareImpl" />
+ <service name="OrderServiceBare">
+ <interface.java interface="org.example.orderservice.OrderServiceBare"/>
+<!-- TODO - start mailing list discussion about implications of @SOAPBinding plus binding.sca not being supported in OASIS.
+ <binding.sca name="sca"/>
+ -->
+ <binding.ws/>
+ </service>
+ </component>
+
+ <component name="OrderServiceBareForwardComponent">
+ <implementation.java class="org.example.orderservice.OrderServiceBareForwardImpl" />
+ <reference name="ref">
+ <binding.ws uri="http://localhost:8080/OrderServiceBareComponent/OrderServiceBare"/>
+ </reference>
+ <service name="OrderServiceBare">
+ <binding.ws/>
+ </service>
+ </component>
+
+</composite>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/resources/ordersca.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/resources/ordersca.composite new file mode 100644 index 0000000000..9d7d052472 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/main/resources/ordersca.composite @@ -0,0 +1,41 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://orderservice"
+ xmlns:hw="http://orderservice"
+ name="orderws">
+
+ <component name="OrderServiceComponent">
+ <implementation.java class="org.example.orderservice.OrderServiceImpl" />
+ <service name="OrderService">
+ <interface.java interface="org.example.orderservice.OrderService"/>
+ <binding.sca name="sca"/>
+ <binding.ws/>
+ </service>
+ </component>
+
+ <component name="OrderServiceForwardComponent">
+ <implementation.java class="org.example.orderservice.OrderServiceForwardImpl" />
+ <reference name="ref">
+ <binding.ws uri="http://localhost:8080/OrderServiceComponent/OrderService"/>
+ </reference>
+ </component>
+
+</composite>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/test/java/org/example/orderservice/OrderServiceBareTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/test/java/org/example/orderservice/OrderServiceBareTestCase.java new file mode 100644 index 0000000000..5da7e870ed --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/test/java/org/example/orderservice/OrderServiceBareTestCase.java @@ -0,0 +1,206 @@ +/*
+ * 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.example.orderservice;
+
+import static junit.framework.Assert.assertNotNull;
+import static junit.framework.Assert.assertTrue;
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+
+import javax.xml.ws.Holder;
+
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.ContributionLocationHelper;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Test;
+
+/**
+ * Tests that the order server responds.
+ */
+
+public class OrderServiceBareTestCase {
+
+ private static Node node;
+
+ @BeforeClass
+ public static void startServer() throws Exception {
+ try {
+
+ NodeFactory factory = NodeFactory.newInstance();
+ String contribution = ContributionLocationHelper.getContributionLocation(OrderServiceBare.class);
+ node = factory.createNode("ordersca.bare.composite", new Contribution("order.bare", contribution)).start();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ @Test
+ public void testOrderReviewBareApprovedSCA() throws IOException {
+ OrderServiceBare orderServiceBare =
+ node.getService(OrderServiceBare.class, "OrderServiceBareComponent/OrderServiceBare");
+ assertNotNull(orderServiceBare);
+ testOrderReviewApproved(orderServiceBare);
+ }
+
+ @Test
+ public void testOrderReviewBareApprovedWS() throws IOException {
+ OrderServiceBare orderServiceBare =
+ node.getService(OrderServiceBare.class, "OrderServiceBareForwardComponent/OrderServiceBare");
+ assertNotNull(orderServiceBare);
+ testOrderReviewApproved(orderServiceBare);
+ }
+
+ @Test
+ public void testOrderReviewBareRejectedSCA() throws IOException {
+ OrderServiceBare orderServiceBare =
+ node.getService(OrderServiceBare.class, "OrderServiceBareComponent/OrderServiceBare");
+ assertNotNull(orderServiceBare);
+ testOrderReviewRejected(orderServiceBare);
+ }
+
+ @Test
+ public void testOrderReviewBareRejectedWS() throws IOException {
+ OrderServiceBare orderServiceBare =
+ node.getService(OrderServiceBare.class, "OrderServiceBareForwardComponent/OrderServiceBare");
+ assertNotNull(orderServiceBare);
+ testOrderReviewRejected(orderServiceBare);
+ }
+
+ @Test
+ public void testOrderReviewInOutBareApprovedSCA() throws IOException {
+ OrderServiceBare orderServiceBare =
+ node.getService(OrderServiceBare.class, "OrderServiceBareComponent/OrderServiceBare");
+ assertNotNull(orderServiceBare);
+ testOrderReviewApprovedInOutHolder(orderServiceBare);
+ }
+
+ @Test
+ public void testOrderReviewInOutBareApprovedWS() throws IOException {
+ OrderServiceBare orderServiceBare =
+ node.getService(OrderServiceBare.class, "OrderServiceBareForwardComponent/OrderServiceBare");
+ assertNotNull(orderServiceBare);
+ testOrderReviewApprovedInOutHolder(orderServiceBare);
+ }
+
+ @Test
+ public void testOrderReviewInOutBareRejectedSCA() throws IOException {
+ OrderServiceBare orderServiceBare =
+ node.getService(OrderServiceBare.class, "OrderServiceBareComponent/OrderServiceBare");
+ assertNotNull(orderServiceBare);
+ testOrderReviewRejectedInOutHolder(orderServiceBare);
+ }
+
+ @Test
+ public void testOrderReviewInOutBareRejectedWS() throws IOException {
+ OrderServiceBare orderServiceBare =
+ node.getService(OrderServiceBare.class, "OrderServiceBareForwardComponent/OrderServiceBare");
+ assertNotNull(orderServiceBare);
+ testOrderReviewRejectedInOutHolder(orderServiceBare);
+ }
+
+ @Test
+ public void testOrderReviewBareOutHolderSCA() throws IOException {
+ OrderServiceBare orderServiceBare =
+ node.getService(OrderServiceBare.class, "OrderServiceBareComponent/OrderServiceBare");
+ assertNotNull(orderServiceBare);
+ testOrderReviewOutHolder(orderServiceBare);
+ }
+
+ @Test
+ public void testOrderReviewBareOutHolderWS() throws IOException {
+ OrderServiceBare orderServiceBare =
+ node.getService(OrderServiceBare.class, "OrderServiceBareForwardComponent/OrderServiceBare");
+ assertNotNull(orderServiceBare);
+ testOrderReviewOutHolder(orderServiceBare);
+ }
+
+ private void testOrderReviewApproved(OrderServiceBare orderServiceBare) throws IOException {
+ Order order = new Order();
+ order.setStatus( Status.CREATED );
+ order.setCustomerId("cust1234");
+ order.setTotal( 50.0 );
+
+ Order returnValue = null;
+ returnValue = orderServiceBare.bareReviewOrder(order);
+ assertTrue( returnValue.getStatus() == Status.APPROVED );
+ }
+
+ private void testOrderReviewRejected(OrderServiceBare orderServiceBare) throws IOException {
+ Order order = new Order();
+ order.setStatus( Status.CREATED );
+ order.setCustomerId("cust1234");
+ order.setTotal( 50000.0 );
+
+ Order returnValue = null;
+ returnValue = orderServiceBare.bareReviewOrder(order);
+ assertTrue( returnValue.getStatus() == Status.REJECTED );
+ }
+
+ private void testOrderReviewApprovedInOutHolder(OrderServiceBare orderServiceBare) throws IOException {
+ String customerId = "cust1234";
+ Order order = new Order();
+ order.setStatus( Status.CREATED );
+ order.setCustomerId(customerId);
+ order.setTotal( 50.0 );
+
+ Holder<Order> holder = new Holder<Order>(order);
+ orderServiceBare.bareReviewOrderInOutHolder(holder);
+ assertTrue( holder.value.getStatus() == Status.APPROVED );
+ assertTrue( holder.value.getCustomerId().equals(customerId));
+ }
+
+ private void testOrderReviewRejectedInOutHolder(OrderServiceBare orderServiceBare) throws IOException {
+ String customerId = "cust1234";
+ Order order = new Order();
+ order.setStatus( Status.CREATED );
+ order.setCustomerId(customerId);
+ order.setTotal( 50000.0 );
+
+ Holder<Order> holder = new Holder<Order>(order);
+ orderServiceBare.bareReviewOrderInOutHolder(holder);
+ assertTrue( holder.value.getStatus() == Status.REJECTED );
+ assertTrue( holder.value.getCustomerId().equals(customerId));
+ }
+
+ private void testOrderReviewOutHolder(OrderServiceBare orderServiceBare) throws IOException {
+ Order order = new Order();
+ order.setStatus( Status.CREATED );
+ order.setCustomerId("cust1234");
+ order.setTotal( 50.0 );
+ Holder<Order> holder = new Holder<Order>(order);
+ orderServiceBare.bareReviewOrderOutHolder(holder);
+ assertTrue( holder.value.getStatus() == Status.APPROVED );
+ assertTrue( holder.value.getCustomerId().equals("approved.1234"));
+ }
+
+
+
+ @AfterClass
+ public static void stopServer() throws Exception {
+ if (node != null)
+ node.stop();
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/test/java/org/example/orderservice/OrderServiceTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/test/java/org/example/orderservice/OrderServiceTestCase.java new file mode 100644 index 0000000000..f762709a4c --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/holder-ws-service-multiple-outputs/src/test/java/org/example/orderservice/OrderServiceTestCase.java @@ -0,0 +1,395 @@ +/*
+ * 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.example.orderservice;
+
+import static junit.framework.Assert.assertNotNull;
+import static junit.framework.Assert.assertTrue;
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+
+import javax.xml.ws.Holder;
+
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.ContributionLocationHelper;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Test;
+
+/**
+ * Tests that the order server responds.
+ */
+public class OrderServiceTestCase {
+
+ private static Node node;
+
+ @BeforeClass
+ public static void startServer() throws Exception {
+ try {
+ NodeFactory factory = NodeFactory.newInstance();
+ String contribution = ContributionLocationHelper.getContributionLocation(OrderService.class);
+ node = factory.createNode("ordersca.composite", new Contribution("order", contribution)).start();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ @Test
+ public void testOrderReviewApprovedSCA() throws IOException {
+ OrderService orderService =
+ node.getService(OrderService.class, "OrderServiceComponent/OrderService");
+ assertNotNull(orderService);
+ Holder<Float> outParam = new Holder<Float>(new Float(57.4));
+ testOrderReviewApproved(orderService, outParam);
+ }
+
+ @Test
+ public void testOrderReviewApprovedWS() throws IOException {
+ OrderService orderService =
+ node.getService(OrderService.class, "OrderServiceForwardComponent/OrderService");
+ assertNotNull(orderService);
+ Holder<Float> outParam = new Holder<Float>(new Float(57.4));
+ testOrderReviewApproved(orderService, outParam);
+ }
+
+ @Test
+ public void testOrderReviewRejectedSCA() throws IOException {
+ OrderService orderService =
+ node.getService(OrderService.class, "OrderServiceComponent/OrderService");
+ assertNotNull(orderService);
+ Holder<Float> outParam = new Holder<Float>(new Float(57.4));
+ testOrderReviewRejected(orderService, outParam);
+ }
+
+ @Test
+ public void testOrderReviewRejectedWS() throws IOException {
+ OrderService orderService =
+ node.getService(OrderService.class, "OrderServiceForwardComponent/OrderService");
+ assertNotNull(orderService);
+ Holder<Float> outParam = new Holder<Float>(new Float(57.4));
+ testOrderReviewRejected(orderService, outParam);
+ }
+
+ @Test
+ public void testOrderReviewRandomSCA() throws IOException {
+ OrderService orderService =
+ node.getService(OrderService.class, "OrderServiceComponent/OrderService");
+ assertNotNull(orderService);
+ Holder<Float> outParam = new Holder<Float>(new Float(57.4));
+ testOrderReviewRandom(orderService, outParam);
+ }
+
+ @Test
+ public void testOrderReviewRandomWS() throws IOException {
+ OrderService orderService =
+ node.getService(OrderService.class, "OrderServiceForwardComponent/OrderService");
+ assertNotNull(orderService);
+ Holder<Float> outParam = new Holder<Float>(new Float(57.4));
+ testOrderReviewRandom(orderService, outParam);
+ }
+
+
+
+ @Test
+ public void testOrderReviewApprovedTwoInOutsSCA() throws IOException {
+ OrderService orderService =
+ node.getService(OrderService.class, "OrderServiceComponent/OrderService");
+ assertNotNull(orderService);
+ Holder<Float> outParam = new Holder<Float>(new Float(111));
+ testOrderReviewApproved(orderService, outParam);
+ }
+
+ @Test
+ public void testOrderReviewApprovedTwoInOutsWS() throws IOException {
+ OrderService orderService =
+ node.getService(OrderService.class, "OrderServiceForwardComponent/OrderService");
+ assertNotNull(orderService);
+ Holder<Float> outParam = new Holder<Float>(new Float(111));
+ testOrderReviewApproved(orderService, outParam);
+ }
+
+ @Test
+ public void testOrderReviewRejectedTwoInOutsSCA() throws IOException {
+ OrderService orderService =
+ node.getService(OrderService.class, "OrderServiceComponent/OrderService");
+ assertNotNull(orderService);
+ Holder<Float> outParam = new Holder<Float>(new Float(111));
+ testOrderReviewRejected(orderService, outParam);
+ }
+
+ @Test
+ public void testOrderReviewRejectedTwoInOutsWS() throws IOException {
+ OrderService orderService =
+ node.getService(OrderService.class, "OrderServiceForwardComponent/OrderService");
+ assertNotNull(orderService);
+ Holder<Float> outParam = new Holder<Float>(new Float(111));
+ testOrderReviewRejected(orderService, outParam);
+ }
+
+ @Test
+ public void testOrderReviewRandomTwoInOutsSCA() throws IOException {
+ OrderService orderService =
+ node.getService(OrderService.class, "OrderServiceComponent/OrderService");
+ assertNotNull(orderService);
+ Holder<Float> outParam = new Holder<Float>(new Float(111));
+ testOrderReviewRandom(orderService, outParam);
+ }
+
+ @Test
+ public void testOrderReviewRandomTwoInOutsWS() throws IOException {
+ OrderService orderService =
+ node.getService(OrderService.class, "OrderServiceForwardComponent/OrderService");
+ assertNotNull(orderService);
+ Holder<Float> outParam = new Holder<Float>(new Float(111));
+ testOrderReviewRandom(orderService, outParam);
+ }
+
+ @Test
+ public void testOrderReviewTwoOutHoldersSCA() throws IOException {
+ OrderService orderService =
+ node.getService(OrderService.class, "OrderServiceComponent/OrderService");
+ assertNotNull(orderService);
+ testOrderReviewTwoOutHolders(orderService);
+ }
+
+ @Test
+ public void testOrderReviewTwoOutHoldersWS() throws IOException {
+ OrderService orderService =
+ node.getService(OrderService.class, "OrderServiceForwardComponent/OrderService");
+ assertNotNull(orderService);
+ testOrderReviewTwoOutHolders(orderService);
+ }
+
+ @Test
+ public void testOrderReviewTwoInOutsThenInSCA() throws IOException {
+ OrderService orderService =
+ node.getService(OrderService.class, "OrderServiceComponent/OrderService");
+ assertNotNull(orderService);
+ testOrderReviewOrderTwoInOutsThenIn(orderService);
+ }
+
+ @Test
+ public void testOrderReviewTwoInOutsThenInWS() throws IOException {
+ OrderService orderService =
+ node.getService(OrderService.class, "OrderServiceForwardComponent/OrderService");
+ assertNotNull(orderService);
+ testOrderReviewOrderTwoInOutsThenIn(orderService);
+ }
+
+ @Test
+ public void testOrderReviewVoidApprovedSCA() throws IOException {
+ OrderService orderService =
+ node.getService(OrderService.class, "OrderServiceComponent/OrderService");
+ assertNotNull(orderService);
+ testOrderReviewVoidApproved(orderService);
+ }
+
+ @Test
+ public void testOrderReviewVoidApprovedWS() throws IOException {
+ OrderService orderService =
+ node.getService(OrderService.class, "OrderServiceForwardComponent/OrderService");
+ assertNotNull(orderService);
+ testOrderReviewVoidApproved(orderService);
+ }
+
+ @Test
+ public void testOrderReviewVoidRejectedSCA() throws IOException {
+ OrderService orderService =
+ node.getService(OrderService.class, "OrderServiceComponent/OrderService");
+ assertNotNull(orderService);
+ testOrderReviewVoidRejected(orderService);
+ }
+
+ @Test
+ public void testOrderReviewVoidRejectedWS() throws IOException {
+ OrderService orderService =
+ node.getService(OrderService.class, "OrderServiceForwardComponent/OrderService");
+ assertNotNull(orderService);
+ testOrderReviewVoidRejected(orderService);
+ }
+
+ @Test
+ public void testOrderReviewOutThenInOutApprovedWS() throws IOException {
+ OrderService orderService =
+ node.getService(OrderService.class, "OrderServiceForwardComponent/OrderService");
+ assertNotNull(orderService);
+ Order order = new Order();
+ order.setStatus( Status.CREATED );
+ order.setCustomerId("cust1234");
+ order.setTotal( 50.0 );
+ System.out.println( ">>> Order submitted=" + order );
+ Holder<Float> outParam = new Holder<Float>(new Float(57.4));
+ Holder<Order> holder = new Holder<Order>( order );
+ String[] returnValue = null;
+ returnValue = orderService.reviewOrderOutThenInOut(outParam, holder);
+ assertTrue( holder.value.getStatus() == Status.APPROVED );
+ assertEquals("retval1", returnValue[0]);
+ assertEquals("retval2", returnValue[1]);
+ assertTrue(outParam.value.floatValue() == 97);
+ }
+
+
+ private void testOrderReviewApproved(OrderService orderService, Holder<Float> outParam) throws IOException {
+ Order order = new Order();
+ order.setStatus( Status.CREATED );
+ order.setCustomerId("cust1234");
+ order.setTotal( 50.0 );
+
+ System.out.println( ">>> Order submitted=" + order );
+ Holder<Order> holder = new Holder<Order>( order );
+ String[] returnValue = null;
+ if (outParam.value.equals(new Float("111"))) {
+ returnValue = orderService.reviewOrderTwoInOuts( holder, outParam );
+ } else {
+ returnValue = orderService.reviewOrder( holder, outParam );
+ }
+ System.out.println( ">>> Order returned=" + holder.value );
+ assertTrue( holder.value.getStatus() == Status.APPROVED );
+ assertEquals("retval1", returnValue[0]);
+ assertEquals("retval2", returnValue[1]);
+ assertTrue(outParam.value.floatValue() == 97);
+ }
+
+ private void testOrderReviewRejected(OrderService orderService, Holder<Float> outParam) throws IOException {
+ Order order = new Order();
+ order.setStatus( Status.CREATED );
+ order.setCustomerId("cust2345");
+ order.setTotal( 50000.0 );
+
+ System.out.println( ">>> Order submitted=" + order );
+ Holder<Order> holder = new Holder<Order>( order );
+ String[] returnValue = null;
+ if (outParam.value.equals(new Float("111"))) {
+ returnValue = orderService.reviewOrderTwoInOuts( holder, outParam );
+ } else {
+ returnValue = orderService.reviewOrder( holder, outParam );
+ }
+ System.out.println( ">>> Order returned=" + holder.value );
+ System.out.println( ">>> return values: " + returnValue[0] + " " + returnValue[1]);
+ assertTrue( holder.value.getStatus() == Status.REJECTED );
+ assertEquals("retval1", returnValue[0]);
+ assertEquals("retval2", returnValue[1]);
+ assertTrue(outParam.value.floatValue() == 97);
+ }
+
+ private void testOrderReviewRandom(OrderService orderService, Holder<Float> outParam) throws IOException {
+ Order order = new Order();
+ order.setStatus( Status.CREATED );
+ order.setCustomerId("cust3456");
+ order.setTotal( 600.0 );
+
+ System.out.println( ">>> Order submitted=" + order );
+ Holder<Order> holder = new Holder<Order>( order );
+ String[] returnValue = null;
+ if (outParam.value.equals(new Float("111"))) {
+ returnValue = orderService.reviewOrderTwoInOuts( holder, outParam );
+ } else {
+ returnValue = orderService.reviewOrder( holder, outParam );
+ }
+ System.out.println( ">>> Order returned=" + holder.value );
+ assertTrue( holder.value.getStatus() != Status.CREATED );
+ assertEquals("retval1", returnValue[0]);
+ assertEquals("retval2", returnValue[1]);
+ assertTrue(outParam.value.floatValue() == 97);
+ }
+
+ private void testOrderReviewTwoOutHolders(OrderService orderService) throws IOException {
+ Order order = new Order();
+ order.setStatus( Status.CREATED );
+ order.setCustomerId("cust3456");
+ order.setTotal( 600.0 );
+
+ System.out.println( ">>> Order submitted=" + order );
+ Holder<Order> holder = new Holder<Order>( order );
+ Holder<Float> outParam = new Holder<Float>(new Float(57.4));
+ String[] returnValue = orderService.reviewOrderTwoOutHolders( holder, outParam );
+ System.out.println( ">>> Order returned=" + holder.value );
+ assertTrue( holder.value.getStatus() == Status.REJECTED );
+ assertEquals("retval1", returnValue[0]);
+ assertEquals("retval2", returnValue[1]);
+ assertTrue(outParam.value.floatValue() == 97);
+ }
+
+ private void testOrderReviewOrderTwoInOutsThenIn(OrderService orderService) throws IOException {
+ Order order = new Order();
+ order.setStatus( Status.CREATED );
+ order.setCustomerId("cust1234");
+ order.setTotal( 50.0 );
+
+ System.out.println( ">>> Order submitted=" + order );
+ Holder<Order> holder = new Holder<Order>( order );
+ Holder<Float> outParam = new Holder<Float>( new Float("1820.234"));
+ String[] returnValue = null;
+ Integer checkForMe = new Integer("23");
+ returnValue = orderService.reviewOrderTwoInOutsThenIn( holder, outParam, checkForMe);
+ System.out.println( ">>> Order returned=" + holder.value );
+ assertTrue( holder.value.getStatus() == Status.APPROVED );
+ assertEquals("retval1", returnValue[0]);
+ assertEquals("retval2", returnValue[1]);
+ assertTrue(outParam.value.floatValue() == 97);
+ }
+
+ private void testOrderReviewVoidApproved(OrderService orderService) throws IOException {
+ Order order = new Order();
+ order.setStatus( Status.CREATED );
+ order.setCustomerId("cust1234");
+ order.setTotal( 50.0 );
+
+ System.out.println( ">>> Order submitted=" + order );
+ Holder<Order> holder = new Holder<Order>(order);
+
+ Float parm2 = new Float("45");
+ Holder<Float> outParam = new Holder<Float>(parm2);
+
+ orderService.reviewOrderTwoInOutsVoid(holder, outParam );
+
+ assertTrue( holder.value.getStatus() == Status.APPROVED );
+ assertEquals(outParam.value, new Float("1"));
+ }
+
+ private void testOrderReviewVoidRejected(OrderService orderService) throws IOException {
+ Order order = new Order();
+ order.setStatus( Status.CREATED );
+ order.setCustomerId("cust2345");
+ order.setTotal( 50000.0 );
+
+ System.out.println( ">>> Order submitted=" + order );
+ Holder<Order> holder = new Holder<Order>(order);
+
+ Float parm2 = new Float("76");
+ Holder<Float> outParam = new Holder<Float>(parm2);
+
+ orderService.reviewOrderTwoInOutsVoid(holder, outParam );
+
+ assertTrue( holder.value.getStatus() == Status.REJECTED );
+ assertEquals(outParam.value, new Float("-1"));
+ }
+
+
+ @AfterClass
+ public static void stopServer() throws Exception {
+ if (node != null)
+ node.stop();
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/README b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/README new file mode 100644 index 0000000000..41dcb8680b --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/README @@ -0,0 +1,68 @@ +The module tests web service communications running over HTTPS. HTTPS is configured +in this embedded test environment by adding the confidentiality intent to both +reference and service and by configuring reference and service side policy sets +to configure the web service binding appropriately to enable SSL. + +When running the web service binding in a container that itself is configured +to provide SSL support these policy sets are not required. TODO can they themselves +detect that they are not required. + +The SSL configuration depends on public/private key pairs and a keystore. This is how +they are organized and generated + + +Generate Private/Public keys into a keystore for use at the server +------------------------------------------------------------------ + +keytool -genkey -keyalg RSA -sigalg MD5withRSA -keysize 1024 -alias TuscanyUser -dname "CN=Tuscany Service, OU=Tuscany, O=Apache, L=Hursley, S=Hampshire, C=UK" -storetype JKS -keystore tuscany.jks -validity 9999 -keypass tuscany -storepass tuscany + +View the contents of the key store that result +---------------------------------------------- + +keytool -list -v -keystore tuscany.jks -storepass tuscany + +Keystore type: JKS +Keystore provider: SUN + +Your keystore contains 1 entry + +Alias name: tuscanyuser +Creation date: 26-Feb-2010 +Entry type: PrivateKeyEntry +Certificate chain length: 1 +Certificate[1]: +Owner: CN=Tuscany Service, OU=Tuscany, O=Apache, L=Hursley, ST=Hampshire, C=UK +Issuer: CN=Tuscany Service, OU=Tuscany, O=Apache, L=Hursley, ST=Hampshire, C=UK +Serial number: 4b87b4d7 +Valid from: Fri Feb 26 11:47:35 GMT 2010 until: Mon Jul 13 12:47:35 BST 2037 +Certificate fingerprints: + MD5: C3:0C:D6:DF:F6:27:26:47:AD:41:44:CA:D7:98:FA:41 + SHA1: 2E:82:AD:F6:54:E0:C6:A5:47:5C:8C:9F:3B:5A:65:8E:F9:5A:40:07 + Signature algorithm name: MD5withRSA + Version: 3 + + +IN THIS EMBEDDED TEST THE FOLLOWING ARE NOT REQUIRED AS BOTH REFERENCE AND SERVICES +ARE RUNNING IN THE SAME JVM AND HAVE ACCESS TO THE SERVICE SIDE KEY STORE + +Generate the client side certificate +------------------------------------ + +keytool -export -alias TuscanyUser -file tuscany.cer -keystore tuscany.jks -storepass tuscany + +Print the contents of the generated certificate file +---------------------------------------------------- + +keytool -printcert -v -file tuscany.cer + +Owner: CN=Tuscany Service, OU=Tuscany, O=Apache, L=Hursley, ST=Hampshire, C=UK +Issuer: CN=Tuscany Service, OU=Tuscany, O=Apache, L=Hursley, ST=Hampshire, C=UK +Serial number: 4b87b4d7 +Valid from: Fri Feb 26 11:47:35 GMT 2010 until: Mon Jul 13 12:47:35 BST 2037 +Certificate fingerprints: + MD5: C3:0C:D6:DF:F6:27:26:47:AD:41:44:CA:D7:98:FA:41 + SHA1: 2E:82:AD:F6:54:E0:C6:A5:47:5C:8C:9F:3B:5A:65:8E:F9:5A:40:07 + Signature algorithm name: MD5withRSA + Version: 3 + +
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/pom.xml new file mode 100644 index 0000000000..b01838434f --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/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>itest-ws</artifactId> + <version>2.0-Beta4</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <artifactId>itest-ws-http-ssl</artifactId> + <name>Apache Tuscany SCA iTest WS HTTP SSL</name> + + <dependencies> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-base-runtime-pom</artifactId> + <type>pom</type> + <version>2.0-Beta4</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-ws-runtime-axis2</artifactId> + <version>2.0-Beta4</version> + </dependency> + + <dependency> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jetty</artifactId> + <version>6.1.19</version> + </dependency> + + </dependencies> + + <build> + <finalName>${project.artifactId}</finalName> + </build> +</project> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorld.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorld.java new file mode 100644 index 0000000000..98eb6e361b --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorld.java @@ -0,0 +1,29 @@ +/* + * 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.axis2.helloworld; + +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface HelloWorld { + + String getGreetings(String s); + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldClient.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldClient.java new file mode 100644 index 0000000000..2c6c4fc92c --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldClient.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.binding.ws.axis2.helloworld; + +import org.oasisopen.sca.annotation.Reference; + +public class HelloWorldClient implements HelloWorld { + + @Reference + public HelloWorld helloWorldWS; + + public String getGreetings(String s) { + String response = helloWorldWS.getGreetings(s); + System.out.println("At client: " + response); + return response; + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldService.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldService.java new file mode 100644 index 0000000000..3662007984 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldService.java @@ -0,0 +1,30 @@ +/* + * 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.axis2.helloworld; + +public class HelloWorldService implements HelloWorld { + + public String getGreetings(String s) { + String response = "Hello " + s; + System.out.println("At service: " + response); + return response; + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..7e71dd465f --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +--> +<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" + xmlns:itest="http://www.tuscany.apache.org/itests/binding/ws/axis2"> + <deployable composite="itest:HelloWorld"/> +</contribution>
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions new file mode 100644 index 0000000000..04fe620be4 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions @@ -0,0 +1,17 @@ +# 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.
+org/apache/tuscany/sca/binding/ws/axis2/helloworld/definitions.xml
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/definitions.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/definitions.xml new file mode 100644 index 0000000000..d7251590ba --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/definitions.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="ASCII"?> +<!-- + * 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. +--> +<definitions xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" + targetNamespace="http://www.tuscany.apache.org/itests/binding/ws/axis2" + xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912" + xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1" + xmlns:itest="http://www.tuscany.apache.org/itests/binding/ws/axis2" > + + <sca:policySet name="HTTPSPolicySet" + provides="confidentiality.transport" + appliesTo="//sca:reference | //sca:binding.ws"> + <tuscany:https> + <tuscany:keyStore type="JKS" file="target/classes/org/apache/tuscany/sca/binding/ws/axis2/helloworld/tuscany.jks" password="tuscany"/> + <tuscany:trustStore type="JKS" file="target/classes/org/apache/tuscany/sca/binding/ws/axis2/helloworld/tuscany.jks" password="tuscany"/> + </tuscany:https> + </sca:policySet> + +</definitions>
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.composite new file mode 100644 index 0000000000..aa21221b30 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.composite @@ -0,0 +1,59 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912" + xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912" + xmlns:itest="http://www.tuscany.apache.org/itests/binding/ws/axis2" + targetNamespace="http://www.tuscany.apache.org/itests/binding/ws/axis2" + name="HelloWorld" + policySets="itest:HTTPSPolicySet"> + + <component name="HelloWorldClient"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.helloworld.HelloWorldClient"/> + <reference name="helloWorldWS" requires="confidentiality"> + <binding.ws uri="https://localhost:8443/HelloWorldService/HelloWorld" /> + </reference> + </component> + + <component name="HelloWorldService"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.helloworld.HelloWorldService"/> + <service name="HelloWorld" requires="confidentiality"> + <binding.ws uri="https://0.0.0.0:8443/HelloWorldService/HelloWorld" /> + </service> + </component> + + <component name="HelloWorldClient2"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.helloworld.HelloWorldClient"/> + <reference name="helloWorldWS" requires="confidentiality"> + <binding.ws uri="https://localhost:8443/HelloWorldService2/HelloWorld" /> + </reference> + </component> + + <component name="HelloWorldService2"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.helloworld.HelloWorldService"/> + <service name="HelloWorld" requires="confidentiality"> + <binding.ws/> + </service> + </component> + + <component name="HelloWorldClient3"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.helloworld.HelloWorldClient"/> + <reference name="helloWorldWS" target="HelloWorldService2"/> + </component> +</composite> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.wsdl new file mode 100644 index 0000000000..a352696b8e --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.wsdl @@ -0,0 +1,90 @@ +<?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 targetNamespace="http://helloworld" + xmlns:tns="http://helloworld" + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" + xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + name="helloworld"> + + <wsdl:types> + <schema elementFormDefault="qualified" targetNamespace="http://helloworld" xmlns="http://www.w3.org/2001/XMLSchema"> + + <element name="getGreetings"> + <complexType> + <sequence> + <element name="name" type="xsd:string"/> + </sequence> + </complexType> + </element> + + <element name="getGreetingsResponse"> + <complexType> + <sequence> + <element name="getGreetingsReturn" type="xsd:string"/> + </sequence> + </complexType> + </element> + + </schema> + </wsdl:types> + + <wsdl:message name="getGreetingsRequest"> + <wsdl:part element="tns:getGreetings" name="parameters"/> + </wsdl:message> + + <wsdl:message name="getGreetingsResponse"> + <wsdl:part element="tns:getGreetingsResponse" name="parameters"/> + </wsdl:message> + + <wsdl:portType name="HelloWorld"> + <wsdl:operation name="getGreetings"> + <wsdl:input message="tns:getGreetingsRequest" name="getGreetingsRequest"/> + <wsdl:output message="tns:getGreetingsResponse" name="getGreetingsResponse"/> + </wsdl:operation> + </wsdl:portType> + + <wsdl:binding name="HelloWorldSoapBinding" type="tns:HelloWorld"> + <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> + <wsdl:operation name="getGreetings"> + <wsdlsoap:operation soapAction=""/> + <wsdl:input name="getGreetingsRequest"> + <wsdlsoap:body use="literal"/> + </wsdl:input> + <wsdl:output name="getGreetingsResponse"> + <wsdlsoap:body use="literal"/> + </wsdl:output> + </wsdl:operation> + + </wsdl:binding> + + <wsdl:service name="HelloWorldService"> + <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort1"> + <wsdlsoap:address location="http://localhost:8085/services/HelloWorldWebService1"/> + </wsdl:port> + <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort2"> + <wsdlsoap:address location="http://localhost:8085/services/HelloWorldWebService2"/> + </wsdl:port> + <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort3"> + <wsdlsoap:address location="http://localhost:8085/services/HelloWorldWebService3"/> + </wsdl:port> + </wsdl:service> + +</wsdl:definitions> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/tuscany.jks b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/tuscany.jks Binary files differnew file mode 100644 index 0000000000..d67bccdf8b --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/tuscany.jks diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/HTTPSTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/HTTPSTestCase.java new file mode 100644 index 0000000000..d58f761b79 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/http-ssl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/HTTPSTestCase.java @@ -0,0 +1,59 @@ +/* + * 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.axis2; + +import junit.framework.TestCase; + +import org.apache.tuscany.sca.binding.ws.axis2.helloworld.HelloWorld; +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; +import org.junit.Ignore; + +@Ignore("TUSCANY-3632") +public class HTTPSTestCase extends TestCase { + + private Node node; + private HelloWorld helloWorld; + private HelloWorld helloWorld2; + private HelloWorld helloWorld3; + + @Override + protected void setUp() throws Exception { + node = NodeFactory.newInstance().createNode(new Contribution("test", "target/classes")); + node.start(); + helloWorld = node.getService(HelloWorld.class, "HelloWorldClient"); + helloWorld2 = node.getService(HelloWorld.class, "HelloWorldClient2"); + helloWorld3 = node.getService(HelloWorld.class, "HelloWorldClient3"); + } + + public void testCalculator() throws Exception { + assertEquals("Hello petra", helloWorld.getGreetings("petra")); + assertEquals("Hello petra", helloWorld2.getGreetings("petra")); + // TODO - check policy matching for unconfigure reference + //assertEquals("Hello petra", helloWorld3.getGreetings("petra")); + } + + @Override + protected void tearDown() throws Exception { + node.stop(); + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/pom.xml new file mode 100644 index 0000000000..524ba16421 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/pom.xml @@ -0,0 +1,72 @@ +<?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>itest-ws</artifactId>
+ <version>2.0-Beta4</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>itest-ws-launcher-axis2</artifactId>
+ <name>Apache Tuscany SCA iTest WS Launcher Axis2</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-base-runtime-pom</artifactId>
+ <type>pom</type>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws-runtime-axis2</artifactId>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>6.1.19</version>
+ </dependency>
+
+ <!-- Test resources -->
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>itest-ws-external-client</artifactId>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>itest-ws-external-service</artifactId>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <finalName>${project.artifactId}</finalName>
+
+ </build>
+
+</project>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/CallbackForwardSpecTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/CallbackForwardSpecTestCase.java new file mode 100644 index 0000000000..aaf9504116 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/CallbackForwardSpecTestCase.java @@ -0,0 +1,114 @@ +/*
+ * 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.launcher.axis2;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.client.HelloWorldClientLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.HelloWorldServiceLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Bar;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Foo;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+public class CallbackForwardSpecTestCase {
+
+ private Node node;
+ private HelloWorldServiceLauncher externalService;
+ private HelloWorldClientLauncher externalClient;
+
+ @Before
+ public void setUp() throws Exception {
+ // Start the external service
+ externalService = new HelloWorldServiceLauncher();
+ externalService.createService();
+
+ // Start the SCA contribution
+ node = NodeFactory.newInstance().createNode(new Contribution("java-first", "../contribution-callback-forwardspec/target/itest-ws-contribution-callback-forwardspec.jar"));
+ node.start();
+
+ // start the external client
+ try {
+ externalClient = new HelloWorldClientLauncher();
+ externalClient.createClient();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ throw ex;
+ }
+ }
+
+ @Test
+ @Ignore
+ public void testWait() throws Exception {
+ System.out.println("Press a key");
+ System.in.read();
+ }
+
+ // Test may be causing build hang problems: temporarily ignore
+ // see dev list 16th July '10
+ @Test
+ @Ignore
+ public void testGetGreetings() throws Exception {
+ assertEquals("Hello Fred", externalClient.getGreetings("Fred"));
+ }
+
+ @Test
+ public void testGetGreetingsComplex() throws Exception {
+ Foo f = new Foo();
+ Bar b1 = new Bar();
+ b1.setS("petra");
+ b1.setX(1);
+ b1.setY(new Integer(2));
+ b1.setB(Boolean.TRUE);
+ Bar b2 = new Bar();
+ b2.setS("beate");
+ b2.setX(3);
+ b2.setY(new Integer(4));
+ b2.setB(Boolean.FALSE);
+ f.getBars().add(b1);
+ f.getBars().add(b2);
+
+ Foo f2 = externalClient.getGreetingsComplex(f);
+
+ assertEquals("petra", f2.getBars().get(0).getS());
+ assertEquals(1, f2.getBars().get(0).getX());
+ assertEquals(2, f2.getBars().get(0).getY().intValue());
+ assertTrue(f2.getBars().get(0).isB());
+ assertEquals("simon", f2.getBars().get(2).getS());
+ assertEquals(7, f2.getBars().get(2).getX());
+ assertEquals(8, f2.getBars().get(2).getY().intValue());
+ assertTrue(f2.getBars().get(2).isB().booleanValue());
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ node.stop();
+ externalClient.destroyClient();
+ externalService.destoryService();
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/CallbackFullSpecTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/CallbackFullSpecTestCase.java new file mode 100644 index 0000000000..d5cfbb9c0e --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/CallbackFullSpecTestCase.java @@ -0,0 +1,133 @@ +/*
+ * 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.launcher.axis2;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import org.apache.tuscany.sca.assembly.Binding;
+import org.apache.tuscany.sca.assembly.Component;
+import org.apache.tuscany.sca.assembly.EndpointReference;
+import org.apache.tuscany.sca.assembly.Reference;
+import org.apache.tuscany.sca.assembly.Service;
+import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.client.HelloWorldClientLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.HelloWorldServiceLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Bar;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Foo;
+import org.apache.tuscany.sca.node.impl.NodeImpl;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.apache.tuscany.sca.policy.PolicySubject;
+import org.apache.tuscany.sca.runtime.RuntimeComponentService;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+public class CallbackFullSpecTestCase {
+
+ private Node node;
+ private HelloWorldServiceLauncher externalService;
+ private HelloWorldClientLauncher externalClient;
+
+ @Before
+ public void setUp() throws Exception {
+ // Start the external service
+ externalService = new HelloWorldServiceLauncher();
+ externalService.createService();
+
+ // Start the SCA contribution
+ node = NodeFactory.newInstance().createNode(new Contribution("java-first", "../contribution-callback-fullspec/target/itest-ws-contribution-callback-fullspec.jar"));
+ node.start();
+
+ // start the external client
+ try {
+ externalClient = new HelloWorldClientLauncher();
+ externalClient.createClient();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ throw ex;
+ }
+ }
+
+ @Test
+ @Ignore
+ public void testWait() throws Exception {
+ System.out.println("Press a key");
+ System.in.read();
+ }
+
+
+ @Test
+ public void testGetGreetings() throws Exception {
+ assertEquals("Hello Fred", externalClient.getGreetings("Fred"));
+ assertEquals("Hello Fred", externalClient.getGreetings("Fred"));
+ }
+
+ @Test
+ public void testGetGreetingsComplex() throws Exception {
+ Foo f = new Foo();
+ Bar b1 = new Bar();
+ b1.setS("petra");
+ b1.setX(1);
+ b1.setY(new Integer(2));
+ b1.setB(Boolean.TRUE);
+ Bar b2 = new Bar();
+ b2.setS("beate");
+ b2.setX(3);
+ b2.setY(new Integer(4));
+ b2.setB(Boolean.FALSE);
+ f.getBars().add(b1);
+ f.getBars().add(b2);
+
+ Foo f2 = externalClient.getGreetingsComplex(f);
+
+ assertEquals("petra", f2.getBars().get(0).getS());
+ assertEquals(1, f2.getBars().get(0).getX());
+ assertEquals(2, f2.getBars().get(0).getY().intValue());
+ assertTrue(f2.getBars().get(0).isB());
+ assertEquals("simon", f2.getBars().get(2).getS());
+ assertEquals(7, f2.getBars().get(2).getX());
+ assertEquals(8, f2.getBars().get(2).getY().intValue());
+ assertTrue(f2.getBars().get(2).isB().booleanValue());
+ }
+
+ @Test
+ public void testCallbackBindingConfig() throws Exception {
+ Component helloWorldCallbackServiceComponent = ((NodeImpl)node).getDomainComposite().getComponent("HelloWorldCallbackService");
+ Service helloWorldService = helloWorldCallbackServiceComponent.getService("HelloWorldCallbackService");
+ Reference callbackReference = ((RuntimeComponentService)helloWorldService).getCallbackReference();
+ for (EndpointReference epr : callbackReference.getEndpointReferences()){
+ Binding callbackBinding = epr.getBinding();
+ assertEquals(WebServiceBinding.TYPE, callbackBinding.getType());
+ assertEquals(1, ((PolicySubject)callbackBinding).getPolicySets().size());
+ }
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ node.stop();
+ externalClient.destroyClient();
+ externalService.destoryService();
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/CallbackPromotionTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/CallbackPromotionTestCase.java new file mode 100644 index 0000000000..8c26e5c54a --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/CallbackPromotionTestCase.java @@ -0,0 +1,112 @@ +/*
+ * 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.launcher.axis2;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.client.HelloWorldClientLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.HelloWorldServiceLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Bar;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Foo;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+public class CallbackPromotionTestCase {
+
+ private Node node;
+ private HelloWorldServiceLauncher externalService;
+ private HelloWorldClientLauncher externalClient;
+
+ @Before
+ public void setUp() throws Exception {
+ // Start the external service
+ externalService = new HelloWorldServiceLauncher();
+ externalService.createService();
+
+ // Start the SCA contribution
+ node = NodeFactory.newInstance().createNode(new Contribution("java-first", "../contribution-callback-promotion/target/itest-ws-contribution-callback-promotion.jar"));
+ node.start();
+
+ // start the external client
+ try {
+ externalClient = new HelloWorldClientLauncher();
+ externalClient.createClient();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ throw ex;
+ }
+ }
+
+ @Test
+ @Ignore
+ public void testWait() throws Exception {
+ System.out.println("Press a key");
+ System.in.read();
+ }
+
+
+ @Test
+ public void testGetGreetings() throws Exception {
+ assertEquals("Hello Fred", externalClient.getGreetings("Fred"));
+ }
+
+ @Test
+ public void testGetGreetingsComplex() throws Exception {
+ Foo f = new Foo();
+ Bar b1 = new Bar();
+ b1.setS("petra");
+ b1.setX(1);
+ b1.setY(new Integer(2));
+ b1.setB(Boolean.TRUE);
+ Bar b2 = new Bar();
+ b2.setS("beate");
+ b2.setX(3);
+ b2.setY(new Integer(4));
+ b2.setB(Boolean.FALSE);
+ f.getBars().add(b1);
+ f.getBars().add(b2);
+
+ Foo f2 = externalClient.getGreetingsComplex(f);
+
+ assertEquals("petra", f2.getBars().get(0).getS());
+ assertEquals(1, f2.getBars().get(0).getX());
+ assertEquals(2, f2.getBars().get(0).getY().intValue());
+ assertTrue(f2.getBars().get(0).isB());
+ assertEquals("simon", f2.getBars().get(2).getS());
+ assertEquals(7, f2.getBars().get(2).getX());
+ assertEquals(8, f2.getBars().get(2).getY().intValue());
+ assertTrue(f2.getBars().get(2).isB().booleanValue());
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ node.stop();
+ externalClient.destroyClient();
+ externalService.destoryService();
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/CallbackTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/CallbackTestCase.java new file mode 100644 index 0000000000..3bd65d549a --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/CallbackTestCase.java @@ -0,0 +1,112 @@ +/*
+ * 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.launcher.axis2;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.client.HelloWorldClientLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.HelloWorldServiceLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Bar;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Foo;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+public class CallbackTestCase {
+
+ private Node node;
+ private HelloWorldServiceLauncher externalService;
+ private HelloWorldClientLauncher externalClient;
+
+ @Before
+ public void setUp() throws Exception {
+ // Start the external service
+ externalService = new HelloWorldServiceLauncher();
+ externalService.createService();
+
+ // Start the SCA contribution
+ node = NodeFactory.newInstance().createNode(new Contribution("java-first", "../contribution-callback/target/itest-ws-contribution-callback.jar"));
+ node.start();
+
+ // start the external client
+ try {
+ externalClient = new HelloWorldClientLauncher();
+ externalClient.createClient();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ throw ex;
+ }
+ }
+
+/*
+ @Test
+ public void testWait() throws Exception {
+ System.out.println("Press a key");
+ System.in.read();
+ }
+*/
+
+ @Test
+ public void testGetGreetings() throws Exception {
+ assertEquals("Hello Fred", externalClient.getGreetings("Fred"));
+ }
+
+ @Test
+ public void testGetGreetingsComplex() throws Exception {
+ Foo f = new Foo();
+ Bar b1 = new Bar();
+ b1.setS("petra");
+ b1.setX(1);
+ b1.setY(new Integer(2));
+ b1.setB(Boolean.TRUE);
+ Bar b2 = new Bar();
+ b2.setS("beate");
+ b2.setX(3);
+ b2.setY(new Integer(4));
+ b2.setB(Boolean.FALSE);
+ f.getBars().add(b1);
+ f.getBars().add(b2);
+
+ Foo f2 = externalClient.getGreetingsComplex(f);
+
+ assertEquals("petra", f2.getBars().get(0).getS());
+ assertEquals(1, f2.getBars().get(0).getX());
+ assertEquals(2, f2.getBars().get(0).getY().intValue());
+ assertTrue(f2.getBars().get(0).isB());
+ assertEquals("simon", f2.getBars().get(2).getS());
+ assertEquals(7, f2.getBars().get(2).getX());
+ assertEquals(8, f2.getBars().get(2).getY().intValue());
+ assertTrue(f2.getBars().get(2).isB().booleanValue());
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ node.stop();
+ externalClient.destroyClient();
+ externalService.destoryService();
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/CallbackWSDLIfaceTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/CallbackWSDLIfaceTestCase.java new file mode 100644 index 0000000000..c8adcdd7ac --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/CallbackWSDLIfaceTestCase.java @@ -0,0 +1,112 @@ +/*
+ * 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.launcher.axis2;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.client.HelloWorldClientLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.HelloWorldServiceLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Bar;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Foo;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+public class CallbackWSDLIfaceTestCase {
+
+ private Node node;
+ private HelloWorldServiceLauncher externalService;
+ private HelloWorldClientLauncher externalClient;
+
+ @Before
+ public void setUp() throws Exception {
+ // Start the external service
+ externalService = new HelloWorldServiceLauncher();
+ externalService.createService();
+
+ // Start the SCA contribution
+ node = NodeFactory.newInstance().createNode(new Contribution("wsdl-iface", "../contribution-callback-wsdl-iface/target/itest-ws-contribution-callback-wsdl-iface.jar"));
+ node.start();
+
+ // start the external client
+ try {
+ externalClient = new HelloWorldClientLauncher();
+ externalClient.createClient();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ throw ex;
+ }
+ }
+
+/*
+ @Test
+ public void testWait() throws Exception {
+ System.out.println("Press a key");
+ System.in.read();
+ }
+*/
+
+ @Test
+ public void testGetGreetings() throws Exception {
+ assertEquals("Hello Fred", externalClient.getGreetings("Fred"));
+ }
+
+ @Test
+ public void testGetGreetingsComplex() throws Exception {
+ Foo f = new Foo();
+ Bar b1 = new Bar();
+ b1.setS("petra");
+ b1.setX(1);
+ b1.setY(new Integer(2));
+ b1.setB(Boolean.TRUE);
+ Bar b2 = new Bar();
+ b2.setS("beate");
+ b2.setX(3);
+ b2.setY(new Integer(4));
+ b2.setB(Boolean.FALSE);
+ f.getBars().add(b1);
+ f.getBars().add(b2);
+
+ Foo f2 = externalClient.getGreetingsComplex(f);
+
+ assertEquals("petra", f2.getBars().get(0).getS());
+ assertEquals(1, f2.getBars().get(0).getX());
+ assertEquals(2, f2.getBars().get(0).getY().intValue());
+ assertTrue(f2.getBars().get(0).isB());
+ assertEquals("simon", f2.getBars().get(2).getS());
+ assertEquals(7, f2.getBars().get(2).getX());
+ assertEquals(8, f2.getBars().get(2).getY().intValue());
+ assertTrue(f2.getBars().get(2).isB().booleanValue());
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ node.stop();
+ externalClient.destroyClient();
+ externalService.destoryService();
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/DocLitTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/DocLitTestCase.java new file mode 100644 index 0000000000..a7fb6d6125 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/DocLitTestCase.java @@ -0,0 +1,124 @@ +/*
+ * 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.launcher.axis2;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.client.HelloWorldClientLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.HelloWorldServiceLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Bar;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Foo;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+public class DocLitTestCase {
+
+ private Node node;
+ private HelloWorldServiceLauncher externalService;
+ private HelloWorldClientLauncher externalClient;
+
+ @Before
+ public void setUp() throws Exception {
+ // Start the external service
+ externalService = new HelloWorldServiceLauncher();
+ externalService.createService();
+
+ // Start the SCA contribution
+ node = NodeFactory.newInstance().createNode(new Contribution("doc-lit", "../contribution-doc-lit/target/itest-ws-contribution-doc-lit.jar"));
+ node.start();
+
+ // start the external client
+ try {
+ externalClient = new HelloWorldClientLauncher();
+ externalClient.createClient();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ throw ex;
+ }
+ }
+
+/*
+ @Test
+ public void testWait() throws Exception {
+ System.out.println("Press a key");
+ System.in.read();
+ }
+*/
+
+ @Test
+ public void testGetGreetings() throws Exception {
+ assertEquals("Hello Fred", externalClient.getGreetings("Fred"));
+ }
+
+ @Test
+ public void testGetGreetingsException() throws Exception {
+ try {
+ externalClient.getGreetingsException("Fred");
+ } catch (Exception ex) {
+ return;
+ }
+
+ fail("expecting exception");
+ }
+
+ @Test
+ @Ignore("TUSCANY-3621")
+ public void testGetGreetingsComplex() throws Exception {
+ Foo f = new Foo();
+ Bar b1 = new Bar();
+ b1.setS("petra");
+ b1.setX(1);
+ b1.setY(new Integer(2));
+ b1.setB(Boolean.TRUE);
+ Bar b2 = new Bar();
+ b2.setS("beate");
+ b2.setX(3);
+ b2.setY(new Integer(4));
+ b2.setB(Boolean.FALSE);
+ f.getBars().add(b1);
+ f.getBars().add(b2);
+
+ Foo f2 = externalClient.getGreetingsComplex(f);
+
+ assertEquals("petra", f2.getBars().get(0).getS());
+ assertEquals(1, f2.getBars().get(0).getX());
+ assertEquals(2, f2.getBars().get(0).getY().intValue());
+ assertTrue(f2.getBars().get(0).isB());
+ assertEquals("simon", f2.getBars().get(2).getS());
+ assertEquals(7, f2.getBars().get(2).getX());
+ assertEquals(8, f2.getBars().get(2).getY().intValue());
+ assertTrue(f2.getBars().get(2).isB().booleanValue());
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ node.stop();
+ externalClient.destroyClient();
+ externalService.destoryService();
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/DocLitWrappedDOMTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/DocLitWrappedDOMTestCase.java new file mode 100644 index 0000000000..8febc2e988 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/DocLitWrappedDOMTestCase.java @@ -0,0 +1,84 @@ +/*
+ * 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.launcher.axis2;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.client.HelloWorldClientLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.HelloWorldServiceLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Bar;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Foo;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class DocLitWrappedDOMTestCase {
+
+ private Node node;
+ private HelloWorldServiceLauncher externalService;
+ private HelloWorldClientLauncher externalClient;
+
+ @Before
+ public void setUp() throws Exception {
+ // Start the external service
+ externalService = new HelloWorldServiceLauncher();
+ externalService.createService();
+
+ // Start the SCA contribution
+ node = NodeFactory.newInstance().createNode(new Contribution("doc-lit-wrapped", "../contribution-doc-lit-wrapped-dom/target/itest-ws-contribution-doc-lit-wrapped-dom.jar"));
+ node.start();
+
+ // start the external client
+ try {
+ externalClient = new HelloWorldClientLauncher();
+ externalClient.createClient();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ throw ex;
+ }
+ }
+
+/*
+ @Test
+ public void testWait() throws Exception {
+ System.out.println("Press a key");
+ System.in.read();
+ }
+*/
+
+ @Test
+ public void testGetGreetingsDOM() throws Exception {
+ assertEquals("Hello Fred", externalClient.getGreetings("Fred"));
+ }
+
+
+ @After
+ public void tearDown() throws Exception {
+ node.stop();
+ externalClient.destroyClient();
+ externalService.destoryService();
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/DocLitWrappedTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/DocLitWrappedTestCase.java new file mode 100644 index 0000000000..95e61ccc1b --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/DocLitWrappedTestCase.java @@ -0,0 +1,122 @@ +/*
+ * 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.launcher.axis2;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.client.HelloWorldClientLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.HelloWorldServiceLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Bar;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Foo;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class DocLitWrappedTestCase {
+
+ private Node node;
+ private HelloWorldServiceLauncher externalService;
+ private HelloWorldClientLauncher externalClient;
+
+ @Before
+ public void setUp() throws Exception {
+ // Start the external service
+ externalService = new HelloWorldServiceLauncher();
+ externalService.createService();
+
+ // Start the SCA contribution
+ node = NodeFactory.newInstance().createNode(new Contribution("doc-lit-wrapped", "../contribution-doc-lit-wrapped/target/itest-ws-contribution-doc-lit-wrapped.jar"));
+ node.start();
+
+ // start the external client
+ try {
+ externalClient = new HelloWorldClientLauncher();
+ externalClient.createClient();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ throw ex;
+ }
+ }
+
+/*
+ @Test
+ public void testWait() throws Exception {
+ System.out.println("Press a key");
+ System.in.read();
+ }
+*/
+
+ @Test
+ public void testGetGreetings() throws Exception {
+ assertEquals("Hello Fred", externalClient.getGreetings("Fred"));
+ }
+
+ @Test
+ public void testGetGreetingsException() throws Exception {
+ try {
+ externalClient.getGreetingsException("Fred");
+ } catch (Exception ex) {
+ return;
+ }
+
+ fail("expecting exception");
+ }
+
+ @Test
+ public void testGetGreetingsComplex() throws Exception {
+ Foo f = new Foo();
+ Bar b1 = new Bar();
+ b1.setS("petra");
+ b1.setX(1);
+ b1.setY(new Integer(2));
+ b1.setB(Boolean.TRUE);
+ Bar b2 = new Bar();
+ b2.setS("beate");
+ b2.setX(3);
+ b2.setY(new Integer(4));
+ b2.setB(Boolean.FALSE);
+ f.getBars().add(b1);
+ f.getBars().add(b2);
+
+ Foo f2 = externalClient.getGreetingsComplex(f);
+
+ assertEquals("petra", f2.getBars().get(0).getS());
+ assertEquals(1, f2.getBars().get(0).getX());
+ assertEquals(2, f2.getBars().get(0).getY().intValue());
+ assertTrue(f2.getBars().get(0).isB());
+ assertEquals("simon", f2.getBars().get(2).getS());
+ assertEquals(7, f2.getBars().get(2).getX());
+ assertEquals(8, f2.getBars().get(2).getY().intValue());
+ assertTrue(f2.getBars().get(2).isB().booleanValue());
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ node.stop();
+ externalClient.destroyClient();
+ externalService.destoryService();
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/JavaFirstTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/JavaFirstTestCase.java new file mode 100644 index 0000000000..77418f331f --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/JavaFirstTestCase.java @@ -0,0 +1,123 @@ +/*
+ * 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.launcher.axis2;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.client.HelloWorldClientLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.HelloWorldServiceLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Bar;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Foo;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+public class JavaFirstTestCase {
+
+ private Node node;
+ private HelloWorldServiceLauncher externalService;
+ private HelloWorldClientLauncher externalClient;
+
+ @Before
+ public void setUp() throws Exception {
+ // Start the external service
+ externalService = new HelloWorldServiceLauncher();
+ externalService.createService();
+
+ // Start the SCA contribution
+ node = NodeFactory.newInstance().createNode(new Contribution("java-first", "../contribution-java-first/target/itest-ws-contribution-java-first.jar"));
+ node.start();
+
+ // start the external client
+ try {
+ externalClient = new HelloWorldClientLauncher();
+ externalClient.createClient();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ throw ex;
+ }
+ }
+
+/*
+ @Test
+ public void testWait() throws Exception {
+ System.out.println("Press a key");
+ System.in.read();
+ }
+*/
+
+ @Test
+ public void testGetGreetings() throws Exception {
+ assertEquals("Hello Fred", externalClient.getGreetings("Fred"));
+ }
+
+ @Test
+ public void testGetGreetingsException() throws Exception {
+ try {
+ externalClient.getGreetingsException("Fred");
+ } catch (Exception ex) {
+ return;
+ }
+
+ fail("expecting exception");
+ }
+
+ @Test
+ public void testGetGreetingsComplex() throws Exception {
+ Foo f = new Foo();
+ Bar b1 = new Bar();
+ b1.setS("petra");
+ b1.setX(1);
+ b1.setY(new Integer(2));
+ b1.setB(Boolean.TRUE);
+ Bar b2 = new Bar();
+ b2.setS("beate");
+ b2.setX(3);
+ b2.setY(new Integer(4));
+ b2.setB(Boolean.FALSE);
+ f.getBars().add(b1);
+ f.getBars().add(b2);
+
+ Foo f2 = externalClient.getGreetingsComplex(f);
+
+ assertEquals("petra", f2.getBars().get(0).getS());
+ assertEquals(1, f2.getBars().get(0).getX());
+ assertEquals(2, f2.getBars().get(0).getY().intValue());
+ assertTrue(f2.getBars().get(0).isB());
+ assertEquals("simon", f2.getBars().get(2).getS());
+ assertEquals(7, f2.getBars().get(2).getX());
+ assertEquals(8, f2.getBars().get(2).getY().intValue());
+ assertTrue(f2.getBars().get(2).isB().booleanValue());
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ node.stop();
+ externalClient.destroyClient();
+ externalService.destoryService();
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/ReferenceTargetTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/ReferenceTargetTestCase.java new file mode 100644 index 0000000000..98b7741ab6 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/ReferenceTargetTestCase.java @@ -0,0 +1,130 @@ +/*
+ * 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.launcher.axis2;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.client.HelloWorldClientLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.HelloWorldServiceLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Bar;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Foo;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+public class ReferenceTargetTestCase extends TestCase {
+
+ private Node node;
+ private HelloWorldServiceLauncher externalService;
+ private HelloWorldClientLauncher externalClient;
+
+ @Before
+ public void setUp() throws Exception {
+ // Start the external service
+ externalService = new HelloWorldServiceLauncher();
+ externalService.createService();
+
+ // Start the SCA contribution
+ node = NodeFactory.newInstance().createNode(new Contribution("reference-target", "../contribution-reference-target/target/itest-ws-contribution-reference-target.jar"));
+ node.start();
+
+ // start the external client
+ try {
+ externalClient = new HelloWorldClientLauncher();
+ externalClient.createClient();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ throw ex;
+ }
+ }
+
+/*
+ @Test
+ public void testWait() throws Exception {
+ System.out.println("Press a key");
+ System.in.read();
+ }
+*/
+
+ @Test
+ public void testGetGreetings() throws Exception {
+ assertEquals("Hello Fred", externalClient.getGreetings("Fred"));
+ }
+
+ @Test
+ @Ignore
+ public void testGetGreetingsException() throws Exception {
+ try {
+ externalClient.getGreetingsException("Fred");
+ } catch (Exception ex) {
+ return;
+ }
+
+ fail("expecting exception");
+ }
+
+ @Test
+ public void testGetGreetingsComplex() throws Exception {
+ Foo f = new Foo();
+ Bar b1 = new Bar();
+ b1.setS("petra");
+ b1.setX(1);
+ b1.setY(new Integer(2));
+ b1.setB(Boolean.TRUE);
+ Bar b2 = new Bar();
+ b2.setS("beate");
+ b2.setX(3);
+ b2.setY(new Integer(4));
+ b2.setB(Boolean.FALSE);
+ f.getBars().add(b1);
+ f.getBars().add(b2);
+
+ Foo f2 = externalClient.getGreetingsComplex(f);
+
+ assertEquals("petra", f2.getBars().get(0).getS());
+ assertEquals(1, f2.getBars().get(0).getX());
+ assertEquals(2, f2.getBars().get(0).getY().intValue());
+ assertTrue(f2.getBars().get(0).isB());
+ assertEquals("simon", f2.getBars().get(2).getS());
+ assertEquals(7, f2.getBars().get(2).getX());
+ assertEquals(8, f2.getBars().get(2).getY().intValue());
+ assertTrue(f2.getBars().get(2).isB().booleanValue());
+ }
+
+ @Test
+ public void testGetGreetingsCaps() throws Exception {
+ assertEquals("Hello Fred", externalClient.getGreetingsCaps("Fred"));
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ node.stop();
+ externalClient.destroyClient();
+ externalService.destoryService();
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/RpcLitTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/RpcLitTestCase.java new file mode 100644 index 0000000000..9f74dd47b8 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/RpcLitTestCase.java @@ -0,0 +1,122 @@ +/*
+ * 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.launcher.axis2;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.client.HelloWorldClientLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.HelloWorldServiceLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Bar;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Foo;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class RpcLitTestCase {
+
+ private Node node;
+ private HelloWorldServiceLauncher externalService;
+ private HelloWorldClientLauncher externalClient;
+
+ @Before
+ public void setUp() throws Exception {
+ // Start the external service
+ externalService = new HelloWorldServiceLauncher();
+ externalService.createService();
+
+ // Start the SCA contribution
+ node = NodeFactory.newInstance().createNode(new Contribution("rpc-lit", "../contribution-rpc-lit/target/itest-ws-contribution-rpc-lit.jar"));
+ node.start();
+
+ // start the external client
+ try {
+ externalClient = new HelloWorldClientLauncher();
+ externalClient.createClient();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ throw ex;
+ }
+ }
+
+/*
+ @Test
+ public void testWait() throws Exception {
+ System.out.println("Press a key");
+ System.in.read();
+ }
+*/
+
+ @Test
+ public void testGetGreetings() throws Exception {
+ assertEquals("Hello Fred", externalClient.getGreetings("Fred"));
+ }
+
+ @Test
+ public void testGetGreetingsException() throws Exception {
+ try {
+ externalClient.getGreetingsException("Fred");
+ } catch (Exception ex) {
+ return;
+ }
+
+ fail("expecting exception");
+ }
+
+ @Test
+ public void testGetGreetingsComplex() throws Exception {
+ Foo f = new Foo();
+ Bar b1 = new Bar();
+ b1.setS("petra");
+ b1.setX(1);
+ b1.setY(new Integer(2));
+ b1.setB(Boolean.TRUE);
+ Bar b2 = new Bar();
+ b2.setS("beate");
+ b2.setX(3);
+ b2.setY(new Integer(4));
+ b2.setB(Boolean.FALSE);
+ f.getBars().add(b1);
+ f.getBars().add(b2);
+
+ Foo f2 = externalClient.getGreetingsComplex(f);
+
+ assertEquals("petra", f2.getBars().get(0).getS());
+ assertEquals(1, f2.getBars().get(0).getX());
+ assertEquals(2, f2.getBars().get(0).getY().intValue());
+ assertTrue(f2.getBars().get(0).isB());
+ assertEquals("simon", f2.getBars().get(2).getS());
+ assertEquals(7, f2.getBars().get(2).getX());
+ assertEquals(8, f2.getBars().get(2).getY().intValue());
+ assertTrue(f2.getBars().get(2).isB().booleanValue());
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ node.stop();
+ externalClient.destroyClient();
+ externalService.destoryService();
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/WSDLFirstTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/WSDLFirstTestCase.java new file mode 100644 index 0000000000..7ed4829d85 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-axis2/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/axis2/WSDLFirstTestCase.java @@ -0,0 +1,130 @@ +/*
+ * 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.launcher.axis2;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.client.HelloWorldClientLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.HelloWorldServiceLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Bar;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Foo;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+public class WSDLFirstTestCase extends TestCase {
+
+ private Node node;
+ private HelloWorldServiceLauncher externalService;
+ private HelloWorldClientLauncher externalClient;
+
+ @Before
+ public void setUp() throws Exception {
+ // Start the external service
+ externalService = new HelloWorldServiceLauncher();
+ externalService.createService();
+
+ // Start the SCA contribution
+ node = NodeFactory.newInstance().createNode(new Contribution("wsdl-first", "../contribution-wsdl-first/target/itest-ws-contribution-wsdl-first.jar"));
+ node.start();
+
+ // start the external client
+ try {
+ externalClient = new HelloWorldClientLauncher();
+ externalClient.createClient();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ throw ex;
+ }
+ }
+
+/*
+ @Test
+ public void testWait() throws Exception {
+ System.out.println("Press a key");
+ System.in.read();
+ }
+*/
+
+ @Test
+ public void testGetGreetings() throws Exception {
+ assertEquals("Hello Fred", externalClient.getGreetings("Fred"));
+ }
+
+ @Test
+ @Ignore
+ public void testGetGreetingsException() throws Exception {
+ try {
+ externalClient.getGreetingsException("Fred");
+ } catch (Exception ex) {
+ return;
+ }
+
+ fail("expecting exception");
+ }
+
+ @Test
+ public void testGetGreetingsComplex() throws Exception {
+ Foo f = new Foo();
+ Bar b1 = new Bar();
+ b1.setS("petra");
+ b1.setX(1);
+ b1.setY(new Integer(2));
+ b1.setB(Boolean.TRUE);
+ Bar b2 = new Bar();
+ b2.setS("beate");
+ b2.setX(3);
+ b2.setY(new Integer(4));
+ b2.setB(Boolean.FALSE);
+ f.getBars().add(b1);
+ f.getBars().add(b2);
+
+ Foo f2 = externalClient.getGreetingsComplex(f);
+
+ assertEquals("petra", f2.getBars().get(0).getS());
+ assertEquals(1, f2.getBars().get(0).getX());
+ assertEquals(2, f2.getBars().get(0).getY().intValue());
+ assertTrue(f2.getBars().get(0).isB());
+ assertEquals("simon", f2.getBars().get(2).getS());
+ assertEquals(7, f2.getBars().get(2).getX());
+ assertEquals(8, f2.getBars().get(2).getY().intValue());
+ assertTrue(f2.getBars().get(2).isB().booleanValue());
+ }
+
+ @Test
+ public void testGetGreetingsCaps() throws Exception {
+ assertEquals("Hello Fred", externalClient.getGreetingsCaps("Fred"));
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ node.stop();
+ externalClient.destroyClient();
+ externalService.destoryService();
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/pom.xml new file mode 100644 index 0000000000..4d73edc9ef --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/pom.xml @@ -0,0 +1,59 @@ +<?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-Beta4</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <artifactId>itest-ws-launcher-base</artifactId> + <name>Apache Tuscany SCA iTest WS Launcher Base</name> + + <dependencies> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-base-runtime</artifactId> + <version>2.0-Beta4</version> + </dependency> + + <!-- Test resources --> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-ws-external-client</artifactId> + <version>2.0-Beta4</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>itest-ws-external-service</artifactId> + <version>2.0-Beta4</version> + </dependency> + + </dependencies> + + <build> + <finalName>${project.artifactId}</finalName> + + </build> + +</project> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/base/CallbackForwardSpecTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/base/CallbackForwardSpecTestCase.java new file mode 100644 index 0000000000..d349e450c2 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/base/CallbackForwardSpecTestCase.java @@ -0,0 +1,112 @@ +/* + * 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.launcher.base; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import org.apache.tuscany.sca.binding.ws.jaxws.external.client.HelloWorldClientLauncher; +import org.apache.tuscany.sca.binding.ws.jaxws.external.service.HelloWorldServiceLauncher; +import org.apache.tuscany.sca.binding.ws.jaxws.sca.Bar; +import org.apache.tuscany.sca.binding.ws.jaxws.sca.Foo; +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; + +public class CallbackForwardSpecTestCase { + + private Node node; + private HelloWorldServiceLauncher externalService; + private HelloWorldClientLauncher externalClient; + + @Before + public void setUp() throws Exception { + // Start the external service + externalService = new HelloWorldServiceLauncher(); + externalService.createService(); + + // Start the SCA contribution + node = NodeFactory.newInstance().createNode(new Contribution("java-first", "../contribution-callback-forwardspec/target/itest-ws-contribution-callback-forwardspec.jar")); + node.start(); + + // start the external client + try { + externalClient = new HelloWorldClientLauncher(); + externalClient.createClient(); + } catch (Exception ex) { + ex.printStackTrace(); + throw ex; + } + } + + @Test + @Ignore + public void testWait() throws Exception { + System.out.println("Press a key"); + System.in.read(); + } + + + @Test + public void testGetGreetings() throws Exception { + assertEquals("Hello Fred", externalClient.getGreetings("Fred")); + } + + @Test + public void testGetGreetingsComplex() throws Exception { + Foo f = new Foo(); + Bar b1 = new Bar(); + b1.setS("petra"); + b1.setX(1); + b1.setY(new Integer(2)); + b1.setB(Boolean.TRUE); + Bar b2 = new Bar(); + b2.setS("beate"); + b2.setX(3); + b2.setY(new Integer(4)); + b2.setB(Boolean.FALSE); + f.getBars().add(b1); + f.getBars().add(b2); + + Foo f2 = externalClient.getGreetingsComplex(f); + + assertEquals("petra", f2.getBars().get(0).getS()); + assertEquals(1, f2.getBars().get(0).getX()); + assertEquals(2, f2.getBars().get(0).getY().intValue()); + assertTrue(f2.getBars().get(0).isB()); + assertEquals("simon", f2.getBars().get(2).getS()); + assertEquals(7, f2.getBars().get(2).getX()); + assertEquals(8, f2.getBars().get(2).getY().intValue()); + assertTrue(f2.getBars().get(2).isB().booleanValue()); + } + + @After + public void tearDown() throws Exception { + node.stop(); + externalClient.destroyClient(); + externalService.destoryService(); + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/base/CallbackFullSpecTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/base/CallbackFullSpecTestCase.java new file mode 100644 index 0000000000..0e0e6e93ba --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/base/CallbackFullSpecTestCase.java @@ -0,0 +1,111 @@ +/* + * 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.launcher.base; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.apache.tuscany.sca.binding.ws.jaxws.external.client.HelloWorldClientLauncher; +import org.apache.tuscany.sca.binding.ws.jaxws.external.service.HelloWorldServiceLauncher; +import org.apache.tuscany.sca.binding.ws.jaxws.sca.Bar; +import org.apache.tuscany.sca.binding.ws.jaxws.sca.Foo; +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; + +public class CallbackFullSpecTestCase { + + private Node node; + private HelloWorldServiceLauncher externalService; + private HelloWorldClientLauncher externalClient; + + @Before + public void setUp() throws Exception { + // Start the external service + externalService = new HelloWorldServiceLauncher(); + externalService.createService(); + + // Start the SCA contribution + node = NodeFactory.newInstance().createNode(new Contribution("java-first", "../contribution-callback-fullspec/target/itest-ws-contribution-callback-fullspec.jar")); + node.start(); + + // start the external client + try { + externalClient = new HelloWorldClientLauncher(); + externalClient.createClient(); + } catch (Exception ex) { + ex.printStackTrace(); + throw ex; + } + } + + @Test + @Ignore + public void testWait() throws Exception { + System.out.println("Press a key"); + System.in.read(); + } + + + @Test + public void testGetGreetings() throws Exception { + assertEquals("Hello Fred", externalClient.getGreetings("Fred")); + } + + @Test + public void testGetGreetingsComplex() throws Exception { + Foo f = new Foo(); + Bar b1 = new Bar(); + b1.setS("petra"); + b1.setX(1); + b1.setY(new Integer(2)); + b1.setB(Boolean.TRUE); + Bar b2 = new Bar(); + b2.setS("beate"); + b2.setX(3); + b2.setY(new Integer(4)); + b2.setB(Boolean.FALSE); + f.getBars().add(b1); + f.getBars().add(b2); + + Foo f2 = externalClient.getGreetingsComplex(f); + + assertEquals("petra", f2.getBars().get(0).getS()); + assertEquals(1, f2.getBars().get(0).getX()); + assertEquals(2, f2.getBars().get(0).getY().intValue()); + assertTrue(f2.getBars().get(0).isB()); + assertEquals("simon", f2.getBars().get(2).getS()); + assertEquals(7, f2.getBars().get(2).getX()); + assertEquals(8, f2.getBars().get(2).getY().intValue()); + assertTrue(f2.getBars().get(2).isB().booleanValue()); + } + + @After + public void tearDown() throws Exception { + node.stop(); + externalClient.destroyClient(); + externalService.destoryService(); + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/base/CallbackPromotionTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/base/CallbackPromotionTestCase.java new file mode 100644 index 0000000000..09697f82ba --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/base/CallbackPromotionTestCase.java @@ -0,0 +1,112 @@ +/* + * 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.launcher.base; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import org.apache.tuscany.sca.binding.ws.jaxws.external.client.HelloWorldClientLauncher; +import org.apache.tuscany.sca.binding.ws.jaxws.external.service.HelloWorldServiceLauncher; +import org.apache.tuscany.sca.binding.ws.jaxws.sca.Bar; +import org.apache.tuscany.sca.binding.ws.jaxws.sca.Foo; +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; + +public class CallbackPromotionTestCase { + + private Node node; + private HelloWorldServiceLauncher externalService; + private HelloWorldClientLauncher externalClient; + + @Before + public void setUp() throws Exception { + // Start the external service + externalService = new HelloWorldServiceLauncher(); + externalService.createService(); + + // Start the SCA contribution + node = NodeFactory.newInstance().createNode(new Contribution("java-first", "../contribution-callback-promotion/target/itest-ws-contribution-callback-promotion.jar")); + node.start(); + + // start the external client + try { + externalClient = new HelloWorldClientLauncher(); + externalClient.createClient(); + } catch (Exception ex) { + ex.printStackTrace(); + throw ex; + } + } + + @Test + @Ignore + public void testWait() throws Exception { + System.out.println("Press a key"); + System.in.read(); + } + + + @Test + public void testGetGreetings() throws Exception { + assertEquals("Hello Fred", externalClient.getGreetings("Fred")); + } + + @Test + public void testGetGreetingsComplex() throws Exception { + Foo f = new Foo(); + Bar b1 = new Bar(); + b1.setS("petra"); + b1.setX(1); + b1.setY(new Integer(2)); + b1.setB(Boolean.TRUE); + Bar b2 = new Bar(); + b2.setS("beate"); + b2.setX(3); + b2.setY(new Integer(4)); + b2.setB(Boolean.FALSE); + f.getBars().add(b1); + f.getBars().add(b2); + + Foo f2 = externalClient.getGreetingsComplex(f); + + assertEquals("petra", f2.getBars().get(0).getS()); + assertEquals(1, f2.getBars().get(0).getX()); + assertEquals(2, f2.getBars().get(0).getY().intValue()); + assertTrue(f2.getBars().get(0).isB()); + assertEquals("simon", f2.getBars().get(2).getS()); + assertEquals(7, f2.getBars().get(2).getX()); + assertEquals(8, f2.getBars().get(2).getY().intValue()); + assertTrue(f2.getBars().get(2).isB().booleanValue()); + } + + @After + public void tearDown() throws Exception { + node.stop(); + externalClient.destroyClient(); + externalService.destoryService(); + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/base/CallbackTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/base/CallbackTestCase.java new file mode 100644 index 0000000000..49ba20c20b --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/base/CallbackTestCase.java @@ -0,0 +1,112 @@ +/* + * 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.launcher.base; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import org.apache.tuscany.sca.binding.ws.jaxws.external.client.HelloWorldClientLauncher; +import org.apache.tuscany.sca.binding.ws.jaxws.external.service.HelloWorldServiceLauncher; +import org.apache.tuscany.sca.binding.ws.jaxws.sca.Bar; +import org.apache.tuscany.sca.binding.ws.jaxws.sca.Foo; +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; + +public class CallbackTestCase { + + private Node node; + private HelloWorldServiceLauncher externalService; + private HelloWorldClientLauncher externalClient; + + @Before + public void setUp() throws Exception { + // Start the external service + externalService = new HelloWorldServiceLauncher(); + externalService.createService(); + + // Start the SCA contribution + node = NodeFactory.newInstance().createNode(new Contribution("java-first", "../contribution-callback/target/itest-ws-contribution-callback.jar")); + node.start(); + + // start the external client + try { + externalClient = new HelloWorldClientLauncher(); + externalClient.createClient(); + } catch (Exception ex) { + ex.printStackTrace(); + throw ex; + } + } + +/* + @Test + public void testWait() throws Exception { + System.out.println("Press a key"); + System.in.read(); + } +*/ + + @Test + public void testGetGreetings() throws Exception { + assertEquals("Hello Fred", externalClient.getGreetings("Fred")); + } + + @Test + public void testGetGreetingsComplex() throws Exception { + Foo f = new Foo(); + Bar b1 = new Bar(); + b1.setS("petra"); + b1.setX(1); + b1.setY(new Integer(2)); + b1.setB(Boolean.TRUE); + Bar b2 = new Bar(); + b2.setS("beate"); + b2.setX(3); + b2.setY(new Integer(4)); + b2.setB(Boolean.FALSE); + f.getBars().add(b1); + f.getBars().add(b2); + + Foo f2 = externalClient.getGreetingsComplex(f); + + assertEquals("petra", f2.getBars().get(0).getS()); + assertEquals(1, f2.getBars().get(0).getX()); + assertEquals(2, f2.getBars().get(0).getY().intValue()); + assertTrue(f2.getBars().get(0).isB()); + assertEquals("simon", f2.getBars().get(2).getS()); + assertEquals(7, f2.getBars().get(2).getX()); + assertEquals(8, f2.getBars().get(2).getY().intValue()); + assertTrue(f2.getBars().get(2).isB().booleanValue()); + } + + @After + public void tearDown() throws Exception { + node.stop(); + externalClient.destroyClient(); + externalService.destoryService(); + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/base/DocLitWrappedTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/base/DocLitWrappedTestCase.java new file mode 100644 index 0000000000..a85007e019 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/base/DocLitWrappedTestCase.java @@ -0,0 +1,122 @@ +/*
+ * 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.launcher.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import org.apache.tuscany.sca.binding.ws.jaxws.external.client.HelloWorldClientLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.external.service.HelloWorldServiceLauncher;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Bar;
+import org.apache.tuscany.sca.binding.ws.jaxws.sca.Foo;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+public class DocLitWrappedTestCase {
+
+ private Node node;
+ private HelloWorldServiceLauncher externalService;
+ private HelloWorldClientLauncher externalClient;
+
+ @Before
+ public void setUp() throws Exception {
+ // Start the external service
+ externalService = new HelloWorldServiceLauncher();
+ externalService.createService();
+
+ // Start the SCA contribution
+ node = NodeFactory.newInstance().createNode(new Contribution("doc-lit-wrapped", "../contribution-doc-lit-wrapped/target/itest-ws-contribution-doc-lit-wrapped.jar"));
+ node.start();
+
+ // start the external client
+ try {
+ externalClient = new HelloWorldClientLauncher();
+ externalClient.createClient();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ throw ex;
+ }
+ }
+
+/*
+ @Test
+ public void testWait() throws Exception {
+ System.out.println("Press a key");
+ System.in.read();
+ }
+*/
+
+ @Test
+ public void testGetGreetings() throws Exception {
+ assertEquals("Hello Fred", externalClient.getGreetings("Fred"));
+ }
+
+ @Test
+ public void testGetGreetingsException() throws Exception {
+ try {
+ externalClient.getGreetingsException("Fred");
+ } catch (Exception ex) {
+ return;
+ }
+
+ fail("expecting exception");
+ }
+
+ @Test
+ public void testGetGreetingsComplex() throws Exception {
+ Foo f = new Foo();
+ Bar b1 = new Bar();
+ b1.setS("petra");
+ b1.setX(1);
+ b1.setY(new Integer(2));
+ b1.setB(Boolean.TRUE);
+ Bar b2 = new Bar();
+ b2.setS("beate");
+ b2.setX(3);
+ b2.setY(new Integer(4));
+ b2.setB(Boolean.FALSE);
+ f.getBars().add(b1);
+ f.getBars().add(b2);
+
+ Foo f2 = externalClient.getGreetingsComplex(f);
+
+ assertEquals("petra", f2.getBars().get(0).getS());
+ assertEquals(1, f2.getBars().get(0).getX());
+ assertEquals(2, f2.getBars().get(0).getY().intValue());
+ assertTrue(f2.getBars().get(0).isB());
+ assertEquals("simon", f2.getBars().get(2).getS());
+ assertEquals(7, f2.getBars().get(2).getX());
+ assertEquals(8, f2.getBars().get(2).getY().intValue());
+ assertTrue(f2.getBars().get(2).isB().booleanValue());
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ node.stop();
+ externalClient.destroyClient();
+ externalService.destoryService();
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/base/JavaFirstTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/base/JavaFirstTestCase.java new file mode 100644 index 0000000000..0aa6a71db4 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/base/JavaFirstTestCase.java @@ -0,0 +1,123 @@ +/* + * 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.launcher.base; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import org.apache.tuscany.sca.binding.ws.jaxws.external.client.HelloWorldClientLauncher; +import org.apache.tuscany.sca.binding.ws.jaxws.external.service.HelloWorldServiceLauncher; +import org.apache.tuscany.sca.binding.ws.jaxws.sca.Bar; +import org.apache.tuscany.sca.binding.ws.jaxws.sca.Foo; +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; + +public class JavaFirstTestCase { + + private Node node; + private HelloWorldServiceLauncher externalService; + private HelloWorldClientLauncher externalClient; + + @Before + public void setUp() throws Exception { + // Start the external service + externalService = new HelloWorldServiceLauncher(); + externalService.createService(); + + // Start the SCA contribution + node = NodeFactory.newInstance().createNode(new Contribution("java-first", "../contribution-java-first/target/itest-ws-contribution-java-first.jar")); + node.start(); + + // start the external client + try { + externalClient = new HelloWorldClientLauncher(); + externalClient.createClient(); + } catch (Exception ex) { + ex.printStackTrace(); + throw ex; + } + } + +/* + @Test + public void testWait() throws Exception { + System.out.println("Press a key"); + System.in.read(); + } +*/ + + @Test + public void testGetGreetings() throws Exception { + assertEquals("Hello Fred", externalClient.getGreetings("Fred")); + } + + @Test + public void testGetGreetingsException() throws Exception { + try { + externalClient.getGreetingsException("Fred"); + } catch (Exception ex) { + return; + } + + fail("expecting exception"); + } + + @Test + public void testGetGreetingsComplex() throws Exception { + Foo f = new Foo(); + Bar b1 = new Bar(); + b1.setS("petra"); + b1.setX(1); + b1.setY(new Integer(2)); + b1.setB(Boolean.TRUE); + Bar b2 = new Bar(); + b2.setS("beate"); + b2.setX(3); + b2.setY(new Integer(4)); + b2.setB(Boolean.FALSE); + f.getBars().add(b1); + f.getBars().add(b2); + + Foo f2 = externalClient.getGreetingsComplex(f); + + assertEquals("petra", f2.getBars().get(0).getS()); + assertEquals(1, f2.getBars().get(0).getX()); + assertEquals(2, f2.getBars().get(0).getY().intValue()); + assertTrue(f2.getBars().get(0).isB()); + assertEquals("simon", f2.getBars().get(2).getS()); + assertEquals(7, f2.getBars().get(2).getX()); + assertEquals(8, f2.getBars().get(2).getY().intValue()); + assertTrue(f2.getBars().get(2).isB().booleanValue()); + } + + @After + public void tearDown() throws Exception { + node.stop(); + externalClient.destroyClient(); + externalService.destoryService(); + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/base/WSDLFirstTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/base/WSDLFirstTestCase.java new file mode 100644 index 0000000000..c8566bfa3b --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/launcher-base/src/test/java/org/apache/tuscany/sca/binding/ws/launcher/base/WSDLFirstTestCase.java @@ -0,0 +1,125 @@ +/* + * 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.launcher.base; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import junit.framework.TestCase; + +import org.apache.tuscany.sca.binding.ws.jaxws.external.client.HelloWorldClientLauncher; +import org.apache.tuscany.sca.binding.ws.jaxws.external.service.HelloWorldServiceLauncher; +import org.apache.tuscany.sca.binding.ws.jaxws.sca.Bar; +import org.apache.tuscany.sca.binding.ws.jaxws.sca.Foo; +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; +import org.junit.After; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; + +public class WSDLFirstTestCase extends TestCase { + + private Node node; + private HelloWorldServiceLauncher externalService; + private HelloWorldClientLauncher externalClient; + + @Before + public void setUp() throws Exception { + // Start the external service + externalService = new HelloWorldServiceLauncher(); + externalService.createService(); + + // Start the SCA contribution + node = NodeFactory.newInstance().createNode(new Contribution("wsdl-first", "../contribution-wsdl-first/target/itest-ws-contribution-wsdl-first.jar")); + node.start(); + + // start the external client + try { + externalClient = new HelloWorldClientLauncher(); + externalClient.createClient(); + } catch (Exception ex) { + ex.printStackTrace(); + throw ex; + } + } + +/* + @Test + public void testWait() throws Exception { + System.out.println("Press a key"); + System.in.read(); + } +*/ + + @Test + public void testGetGreetings() throws Exception { + assertEquals("Hello Fred", externalClient.getGreetings("Fred")); + } + + @Test + @Ignore + public void testGetGreetingsException() throws Exception { + try { + externalClient.getGreetingsException("Fred"); + } catch (Exception ex) { + return; + } + + fail("expecting exception"); + } + + @Test + public void testGetGreetingsComplex() throws Exception { + Foo f = new Foo(); + Bar b1 = new Bar(); + b1.setS("petra"); + b1.setX(1); + b1.setY(new Integer(2)); + b1.setB(Boolean.TRUE); + Bar b2 = new Bar(); + b2.setS("beate"); + b2.setX(3); + b2.setY(new Integer(4)); + b2.setB(Boolean.FALSE); + f.getBars().add(b1); + f.getBars().add(b2); + + Foo f2 = externalClient.getGreetingsComplex(f); + + assertEquals("petra", f2.getBars().get(0).getS()); + assertEquals(1, f2.getBars().get(0).getX()); + assertEquals(2, f2.getBars().get(0).getY().intValue()); + assertTrue(f2.getBars().get(0).isB()); + assertEquals("simon", f2.getBars().get(2).getS()); + assertEquals(7, f2.getBars().get(2).getX()); + assertEquals(8, f2.getBars().get(2).getY().intValue()); + assertTrue(f2.getBars().get(2).isB().booleanValue()); + } + + @After + public void tearDown() throws Exception { + node.stop(); + externalClient.destroyClient(); + externalService.destoryService(); + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/pom.xml new file mode 100644 index 0000000000..b56df3627b --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/pom.xml @@ -0,0 +1,67 @@ +<?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-Beta4</version> + <relativePath>../pom.xml</relativePath> + </parent> + <packaging>pom</packaging> + <artifactId>itest-ws</artifactId> + <name>Apache Tuscany SCA iTest WS</name> + + <modules> + <module>defaults</module> + <module>authentication-basic</module> + <module>http-ssl</module> + <module>wsdl</module> + <module>endpoints</module> + <module>endpoint-references</module> + <module>holder-ws-service-multiple-outputs</module> + <module>wspolicy</module> +<!-- + <module>jms</module> + <module>mtom</module> + <module>authentication-wssecurity</module> + <module>autherization-wssecurity</module> + <module>confidentiality-wssecurity</module> +--> + <!-- separate test contributions from launcher --> + <module>contribution-java-first</module> + <module>contribution-wsdl-first</module> + <module>contribution-callback</module> + <module>contribution-callback-forwardspec</module> + <module>contribution-callback-fullspec</module> + <module>contribution-callback-promotion</module> + <module>contribution-callback-wsdl-iface</module> + <module>contribution-doc-lit</module> + <module>contribution-doc-lit-wrapped</module> + <module>contribution-doc-lit-wrapped-dom</module> + <module>contribution-rpc-lit</module> + <module>contribution-reference-target</module> + <module>external-client</module> + <module>external-service</module> + <module>launcher-axis2</module> + <module>wsdlgen</module> + </modules> + +</project> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/pom.xml new file mode 100644 index 0000000000..81f4870b1b --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/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>itest-ws</artifactId> + <version>2.0-Beta4</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <artifactId>itest-ws-wsdl</artifactId> + <name>Apache Tuscany SCA iTest WS WSDL</name> + + <dependencies> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-base-runtime-pom</artifactId> + <type>pom</type> + <version>2.0-Beta4</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-binding-ws-runtime-axis2</artifactId> + <version>2.0-Beta4</version> + </dependency> + + <dependency> + <groupId>org.mortbay.jetty</groupId> + <artifactId>jetty</artifactId> + <version>6.1.19</version> + </dependency> + + </dependencies> + + <build> + <finalName>${project.artifactId}</finalName> + </build> +</project> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Account.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Account.java new file mode 100644 index 0000000000..963712c0c2 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Account.java @@ -0,0 +1,34 @@ +/* + * 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.axis2; + +import org.oasisopen.sca.annotation.Remotable; + +/** + * Test ?wsdl works and that the returned WSDL has the correct endpoint + * + * @version $Rev$ $Date$ + */ +@Remotable +public interface Account { + + CustomerProfileData getCustomerProfile(String loginID); + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/AccountService.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/AccountService.java new file mode 100644 index 0000000000..ab5fc0f873 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/AccountService.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.binding.ws.axis2; + +/** + * Test ?wsdl works and that the returned WSDL has the correct endpoint + * + * @version $Rev$ $Date$ + */ +public class AccountService implements Account { + + public CustomerProfileData getCustomerProfile(String loginID) { + return new CustomerProfileData(loginID); + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/CustomerProfileData.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/CustomerProfileData.java new file mode 100644 index 0000000000..6f6a374450 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/CustomerProfileData.java @@ -0,0 +1,113 @@ +/* + * 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.axis2; + +/** + * Test ?wsdl works and that the returned WSDL has the correct endpoint + * + * @version $Rev$ $Date$ + */ +public class CustomerProfileData { + + private String firstName; + private String lastName; + private String address; + private String email; + private String loginID; + private String password; + private int id; + + public CustomerProfileData() { + firstName = "John"; + lastName = "Doe"; + address = "345 Main Street"; + email = "john@doe.org"; + this.loginID = "DefaultloginID"; + password = "hello"; + id = 1234; + } + + public CustomerProfileData(String loginID) { + firstName = "John"; + lastName = "Doe"; + address = "345 Main Street"; + email = "john@doe.org"; + this.loginID = loginID; + password = "hello"; + id = 1234; + } + + public String getFirstName() { + return firstName; + } + + public void setFirstName(String firstName) { + this.firstName = firstName; + } + + public String getLastName() { + return lastName; + } + + public void setLastName(String lastName) { + this.lastName = lastName; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getLoginID() { + return loginID; + } + + public void setLoginID(String loginID) { + this.loginID = loginID; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorld.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorld.java new file mode 100644 index 0000000000..d6db1c2d0b --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorld.java @@ -0,0 +1,29 @@ +/* + * 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.axis2; + +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface HelloWorld { + + String getGreetings(String s); + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldOM.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldOM.java new file mode 100644 index 0000000000..e248815805 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldOM.java @@ -0,0 +1,30 @@ +/* + * 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.axis2; + +import org.apache.axiom.om.OMElement; +import org.oasisopen.sca.annotation.Remotable; + +@Remotable +public interface HelloWorldOM { + + OMElement getGreetings(OMElement parmE); + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldOMComponent.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldOMComponent.java new file mode 100644 index 0000000000..8439696fa8 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldOMComponent.java @@ -0,0 +1,34 @@ +/* + * 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.axis2; + +import org.apache.axiom.om.OMElement; +import org.oasisopen.sca.annotation.Reference; + +public class HelloWorldOMComponent implements HelloWorldOM { + + @Reference + public HelloWorldOM helloWorldWS; + + public OMElement getGreetings(OMElement om) { + return helloWorldWS.getGreetings(om); + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldOMService.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldOMService.java new file mode 100644 index 0000000000..5b8578c816 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldOMService.java @@ -0,0 +1,41 @@ +/* + * 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.axis2; + +import org.apache.axiom.om.OMAbstractFactory; +import org.apache.axiom.om.OMElement; +import org.apache.axiom.om.OMFactory; + +public class HelloWorldOMService implements HelloWorldOM { + + public OMElement getGreetings(OMElement requestOM) { + System.out.println(" **** getGreetings **** "); + String name = requestOM.getFirstElement().getText(); + + OMFactory omFactory = OMAbstractFactory.getOMFactory(); + OMElement responseOM = omFactory.createOMElement("getGreetingsResponse", "http://helloworld-om", "helloworld"); + OMElement param = omFactory.createOMElement("getGreetingsReturn", "http://helloworld-om", "helloworld"); + responseOM.addChild(param); + param.addChild(omFactory.createOMText("Hello " + name)); + + return responseOM; + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldService.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldService.java new file mode 100644 index 0000000000..052b49ff55 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldService.java @@ -0,0 +1,28 @@ +/* + * 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.axis2; + +public class HelloWorldService implements HelloWorld { + + public String getGreetings(String s) { + return "Hello " + s; + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/package-info.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/package-info.java new file mode 100644 index 0000000000..805a515382 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/package-info.java @@ -0,0 +1,21 @@ +/*
+ * 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.
+ */
+
+@javax.xml.bind.annotation.XmlSchema(namespace = "http://accounts")
+package org.apache.tuscany.sca.binding.ws.axis2;
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/customerdata.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/customerdata.xsd new file mode 100644 index 0000000000..2479f3dbe5 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/customerdata.xsd @@ -0,0 +1,36 @@ +<?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. +--> +<xsd:schema elementFormDefault="qualified" + targetNamespace="http://accounts" + xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + + <xsd:complexType name="customerProfileData"> + <xsd:sequence> + <xsd:element name="firstName" type="xsd:string" /> + <xsd:element name="lastName" type="xsd:string" /> + <xsd:element name="address" type="xsd:string" /> + <xsd:element name="email" type="xsd:string" /> + <xsd:element name="loginID" type="xsd:string" /> + <xsd:element name="password" type="xsd:string" /> + <xsd:element name="id" type="xsd:int" /> + </xsd:sequence> + </xsd:complexType> + +</xsd:schema> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/customerdefs.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/customerdefs.xsd new file mode 100644 index 0000000000..24cf3eebad --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/customerdefs.xsd @@ -0,0 +1,27 @@ +<?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. +--> +<xsd:schema elementFormDefault="qualified" + targetNamespace="http://accounts" + xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + + <xsd:include schemaLocation="customerdata.xsd" /> + <xsd:include schemaLocation="/org/apache/tuscany/sca/binding/ws/axis2/customerinfo.xsd" /> + +</xsd:schema> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/customerinfo.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/customerinfo.xsd new file mode 100644 index 0000000000..b78909142f --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/customerinfo.xsd @@ -0,0 +1,31 @@ +<?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. +--> +<xsd:schema elementFormDefault="qualified" + targetNamespace="http://accounts" + xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + + <xsd:complexType name="CustomerProfileInfo"> + <xsd:sequence> + <xsd:element name="firstName" type="xsd:string" /> + <xsd:element name="lastName" type="xsd:string" /> + </xsd:sequence> + </xsd:complexType> + +</xsd:schema> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld-om-merged.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld-om-merged.composite new file mode 100644 index 0000000000..c520d2e3b2 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld-om-merged.composite @@ -0,0 +1,43 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912" + xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912" + targetNamespace="http://www.tuscany.apache.org/tests/binding/ws/axis2" + name="HelloWorldOM-Merged"> + + + <component name="HelloWorldMergedService"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.HelloWorldOMService"/> + <service name="HelloWorldOM"> + <interface.wsdl interface="http://helloworld-om-merged#wsdl.interface(HelloWorld)" /> + <binding.ws uri="http://localhost:8085/HelloWorldService/helloWorld"/> + </service> + </component> + + <component name="HelloWorldWSDLMergedComponent"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.HelloWorldOMComponent"/> + <reference name="helloWorldWS"> + <interface.wsdl interface="http://helloworld-om-merged#wsdl.interface(HelloWorld)" /> + <binding.ws uri="http://localhost:8085/HelloWorldService/helloWorld" /> + </reference> + </component> + + +</composite> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld-om-merged.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld-om-merged.wsdl new file mode 100644 index 0000000000..29be66fb71 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld-om-merged.wsdl @@ -0,0 +1,59 @@ +<?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 targetNamespace="http://helloworld-om-merged" xmlns:tns="http://helloworld-om-merged" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" + name="helloworld-om-porttype"> + + <wsdl:types> + <schema elementFormDefault="qualified" targetNamespace="http://helloworld-om-merged" xmlns="http://www.w3.org/2001/XMLSchema"> + + <element name="getGreetings"> + <complexType> + <sequence> + <element name="name" type="xsd:string"/> + </sequence> + </complexType> + </element> + + <element name="getGreetingsResponse"> + <complexType> + <sequence> + <element name="getGreetingsReturn" type="xsd:string"/> + </sequence> + </complexType> + </element> + </schema> + </wsdl:types> + + <wsdl:message name="getGreetingsRequest"> + <wsdl:part element="tns:getGreetings" name="parameters"/> + </wsdl:message> + + <wsdl:message name="getGreetingsResponse"> + <wsdl:part element="tns:getGreetingsResponse" name="parameters"/> + </wsdl:message> + + <wsdl:portType name="HelloWorld"> + <wsdl:operation name="getGreetings"> + <wsdl:input message="tns:getGreetingsRequest" name="getGreetingsRequest"/> + <wsdl:output message="tns:getGreetingsResponse" name="getGreetingsResponse"/> + </wsdl:operation> + </wsdl:portType> + +</wsdl:definitions> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld.wsdl new file mode 100644 index 0000000000..1a2272d7ee --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld.wsdl @@ -0,0 +1,86 @@ +<?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 targetNamespace="http://helloworld" xmlns:tns="http://helloworld" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" + name="helloworld"> + + <wsdl:types> + <schema elementFormDefault="qualified" targetNamespace="http://helloworld" xmlns="http://www.w3.org/2001/XMLSchema"> + + <element name="getGreetings"> + <complexType> + <sequence> + <element name="name" type="xsd:string"/> + </sequence> + </complexType> + </element> + + <element name="getGreetingsResponse"> + <complexType> + <sequence> + <element name="getGreetingsReturn" type="xsd:string"/> + </sequence> + </complexType> + </element> + + </schema> + </wsdl:types> + + <wsdl:message name="getGreetingsRequest"> + <wsdl:part element="tns:getGreetings" name="parameters"/> + </wsdl:message> + + <wsdl:message name="getGreetingsResponse"> + <wsdl:part element="tns:getGreetingsResponse" name="parameters"/> + </wsdl:message> + + <wsdl:portType name="HelloWorld"> + <wsdl:operation name="getGreetings"> + <wsdl:input message="tns:getGreetingsRequest" name="getGreetingsRequest"/> + <wsdl:output message="tns:getGreetingsResponse" name="getGreetingsResponse"/> + </wsdl:operation> + </wsdl:portType> + + <wsdl:binding name="HelloWorldSoapBinding" type="tns:HelloWorld"> + <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> + <wsdl:operation name="getGreetings"> + <wsdlsoap:operation soapAction=""/> + <wsdl:input name="getGreetingsRequest"> + <wsdlsoap:body use="literal"/> + </wsdl:input> + <wsdl:output name="getGreetingsResponse"> + <wsdlsoap:body use="literal"/> + </wsdl:output> + </wsdl:operation> + + </wsdl:binding> + + <wsdl:service name="HelloWorldService"> + <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort"> + <wsdlsoap:address location="http://localhost:8085/services/HelloWorldWebService"/> + </wsdl:port> + <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort2"> + <wsdlsoap:address location="http://localhost:8085/services/HelloWorldWebService2"/> + </wsdl:port> + <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort3"> + <wsdlsoap:address location="http://localhost:8085/services/HelloWorldWebService3"/> + </wsdl:port> + </wsdl:service> + +</wsdl:definitions> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/questionmark-import-nested.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/questionmark-import-nested.wsdl new file mode 100644 index 0000000000..686b08a1d4 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/questionmark-import-nested.wsdl @@ -0,0 +1,70 @@ +<?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 targetNamespace="http://account3" + xmlns:tns="http://account3" + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" + xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + name="questionmark-import-nested"> + + <wsdl:types> + <xsd:schema elementFormDefault="qualified" + targetNamespace="http://account3" + xmlns:account="http://accounts" + xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + + <xsd:import namespace="http://accounts" schemaLocation="customerdefs.xsd" /> + + <xsd:element name="getCustomerProfile"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="loginID" type="xsd:string" /> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + + <xsd:element name="getCustomerProfileResponse"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="customerProfile" + type="account:CustomerProfileData" /> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + + </xsd:schema> + </wsdl:types> + + <wsdl:message name="getCustomerProfileRequest"> + <wsdl:part element="tns:getCustomerProfile" name="parameters" /> + </wsdl:message> + + <wsdl:message name="getCustomerProfileResponse"> + <wsdl:part element="tns:getCustomerProfileResponse" name="parameters" /> + </wsdl:message> + + <wsdl:portType name="Account"> + <wsdl:operation name="getCustomerProfile"> + <wsdl:input message="tns:getCustomerProfileRequest" name="getCustomerProfileRequest" /> + <wsdl:output message="tns:getCustomerProfileResponse" name="getCustomerProfileResponse" /> + </wsdl:operation> + </wsdl:portType> + +</wsdl:definitions> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/questionmark-import.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/questionmark-import.wsdl new file mode 100644 index 0000000000..105c82a411 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/questionmark-import.wsdl @@ -0,0 +1,49 @@ +<?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 targetNamespace="http://account2" + xmlns:tns="http://account2" + xmlns:account3="http://account3" + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" + xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + name="questionmark-import"> + + <wsdl:import namespace="http://account3" location="/org/apache/tuscany/sca/binding/ws/axis2/questionmark-import-nested.wsdl" /> + + <wsdl:binding name="AccountSoapBinding" type="account3:Account"> + <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> + <wsdl:operation name="getCustomerProfile"> + <wsdlsoap:operation soapAction="" /> + <wsdl:input name="getCustomerProfileRequest"> + <wsdlsoap:body use="literal" /> + </wsdl:input> + <wsdl:output name="getCustomerProfileResponse"> + <wsdlsoap:body use="literal" /> + </wsdl:output> + </wsdl:operation> + </wsdl:binding> + + <wsdl:service name="AccountService"> + <wsdl:port binding="tns:AccountSoapBinding" name="AccountSoapPort"> + <wsdlsoap:address location="http://localhost:8086/AccountService" /> + </wsdl:port> + </wsdl:service> + +</wsdl:definitions> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/questionmark-include.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/questionmark-include.wsdl new file mode 100644 index 0000000000..7a7a4033ce --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/questionmark-include.wsdl @@ -0,0 +1,90 @@ +<?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 targetNamespace="http://accounts" + xmlns:tns="http://accounts" + xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" + xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" + xmlns:xsd="http://www.w3.org/2001/XMLSchema" + name="questionmark-include"> + + <wsdl:types> + <xsd:schema elementFormDefault="qualified" + targetNamespace="http://accounts" + xmlns:account="http://accounts" + xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + + <xsd:include schemaLocation="/org/apache/tuscany/sca/binding/ws/axis2/customerdata.xsd" /> + + <xsd:element name="getCustomerProfile"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="loginID" type="xsd:string" /> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + + <xsd:element name="getCustomerProfileResponse"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="customerProfile" + type="account:customerProfileData" /> + </xsd:sequence> + </xsd:complexType> + </xsd:element> + + </xsd:schema> + </wsdl:types> + + <wsdl:message name="getCustomerProfileRequest"> + <wsdl:part element="tns:getCustomerProfile" name="parameters" /> + </wsdl:message> + + <wsdl:message name="getCustomerProfileResponse"> + <wsdl:part element="tns:getCustomerProfileResponse" name="parameters" /> + </wsdl:message> + + <wsdl:portType name="Account"> + <wsdl:operation name="getCustomerProfile"> + <wsdl:input message="tns:getCustomerProfileRequest" name="getCustomerProfileRequest" /> + <wsdl:output message="tns:getCustomerProfileResponse" name="getCustomerProfileResponse" /> + </wsdl:operation> + </wsdl:portType> + + <wsdl:binding name="AccountSoapBinding" type="tns:Account"> + <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> + <wsdl:operation name="getCustomerProfile"> + <wsdlsoap:operation soapAction="" /> + <wsdl:input name="getCustomerProfileRequest"> + <wsdlsoap:body use="literal" /> + </wsdl:input> + <wsdl:output name="getCustomerProfileResponse"> + <wsdlsoap:body use="literal" /> + </wsdl:output> + </wsdl:operation> + + </wsdl:binding> + + <wsdl:service name="AccountService"> + <wsdl:port binding="tns:AccountSoapBinding" name="AccountSoapPort"> + <wsdlsoap:address location="http://localhost:8085/AccountService" /> + </wsdl:port> + </wsdl:service> + +</wsdl:definitions> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/questionmark-wsdl-import.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/questionmark-wsdl-import.composite new file mode 100644 index 0000000000..65270b8d6c --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/questionmark-wsdl-import.composite @@ -0,0 +1,31 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912" + targetNamespace="http://www.tuscany.apache.org/tests/binding/ws/axis2" + name="QuestionMarkWSDLImport"> + + <component name="AccountService"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.AccountService" /> + <service name="Account"> + <binding.ws uri="http://localhost:8086/AccountService" wsdlElement="http://account2#wsdl.binding(AccountSoapBinding)" /> + </service> + </component> + +</composite> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/questionmark-wsdl-include.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/questionmark-wsdl-include.composite new file mode 100644 index 0000000000..02395c4615 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/questionmark-wsdl-include.composite @@ -0,0 +1,31 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912" + targetNamespace="http://www.tuscany.apache.org/tests/binding/ws/axis2" + name="QuestionMarkWSDLInclude"> + + <component name="AccountService"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.AccountService" /> + <service name="Account"> + <binding.ws uri="http://localhost:8085/AccountService" wsdlElement="http://accounts#wsdl.binding(AccountSoapBinding)" /> + </service> + </component> + +</composite> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/questionmark-wsdl.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/questionmark-wsdl.composite new file mode 100644 index 0000000000..6b06cec722 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/questionmark-wsdl.composite @@ -0,0 +1,33 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912" + xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912" + targetNamespace="http://www.tuscany.apache.org/tests/binding/ws/axis2" + name="QuestionMarkWSDLTests"> + + <component name="HelloWorldService"> + <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.HelloWorldService"/> + <service name="HelloWorld"> + <binding.ws name="ep1" uri="http://localhost:8085/foo/bar" /> + <binding.ws name="ep2" uri="http://localhost:8085/services/HelloWorldWebService2" wsdlElement="http://helloworld#wsdl.binding(HelloWorldSoapBinding)"/> + </service> + </component> + +</composite> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/wsdl-serialize-nested.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/wsdl-serialize-nested.wsdl new file mode 100644 index 0000000000..ec72fbd1a6 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/wsdl-serialize-nested.wsdl @@ -0,0 +1,71 @@ +<?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 targetNamespace="http://serialize-nested"
+ xmlns:tns="http://serialize-nested"
+ xmlns:account="http://accounts"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ name="serialize-nested">
+
+ <wsdl:types>
+ <xsd:schema elementFormDefault="qualified"
+ targetNamespace="http://accounts"
+ xmlns:account="http://accounts"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <xsd:import namespace="http://accounts" schemaLocation="wsdl-serialize.xsd" />
+
+ <xsd:element name="getCustomerProfile">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="loginID" type="xsd:string" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="getCustomerProfileResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="customerProfile"
+ type="account:CustomerProfileData" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ </xsd:schema>
+ </wsdl:types>
+
+ <wsdl:message name="getCustomerProfileRequest">
+ <wsdl:part element="account:getCustomerProfile" name="parameters" />
+ </wsdl:message>
+
+ <wsdl:message name="getCustomerProfileResponse">
+ <wsdl:part element="account:getCustomerProfileResponse" name="parameters" />
+ </wsdl:message>
+
+ <wsdl:portType name="Account">
+ <wsdl:operation name="getCustomerProfile">
+ <wsdl:input message="tns:getCustomerProfileRequest" name="getCustomerProfileRequest" />
+ <wsdl:output message="tns:getCustomerProfileResponse" name="getCustomerProfileResponse" />
+ </wsdl:operation>
+ </wsdl:portType>
+
+</wsdl:definitions>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/wsdl-serialize-nested.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/wsdl-serialize-nested.xsd new file mode 100644 index 0000000000..c24bd92eff --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/wsdl-serialize-nested.xsd @@ -0,0 +1,31 @@ +<?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.
+-->
+<xsd:schema elementFormDefault="qualified"
+ targetNamespace="http://serialize"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <xsd:complexType name="SerializeCustomerProfileInfo">
+ <xsd:sequence>
+ <xsd:element name="firstName" type="xsd:string" />
+ <xsd:element name="lastName" type="xsd:string" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+</xsd:schema>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/wsdl-serialize-top.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/wsdl-serialize-top.wsdl new file mode 100644 index 0000000000..6c91e62baf --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/wsdl-serialize-top.wsdl @@ -0,0 +1,49 @@ +<?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 targetNamespace="http://serialize-top"
+ xmlns:tns="http://serialize-top"
+ xmlns:nested="http://serialize-nested"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ name="serialize-top">
+
+ <wsdl:import namespace="http://serialize-nested" location="wsdl-serialize-nested.wsdl" />
+
+ <wsdl:binding name="AccountSoapBinding" type="nested:Account">
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="getCustomerProfile">
+ <wsdlsoap:operation soapAction="" />
+ <wsdl:input name="getCustomerProfileRequest">
+ <wsdlsoap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="getCustomerProfileResponse">
+ <wsdlsoap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+
+ <wsdl:service name="AccountService">
+ <wsdl:port binding="tns:AccountSoapBinding" name="AccountSoapPort">
+ <wsdlsoap:address location="http://localhost:8086/AccountService" />
+ </wsdl:port>
+ </wsdl:service>
+
+</wsdl:definitions>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/wsdl-serialize.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/wsdl-serialize.composite new file mode 100644 index 0000000000..07f7608bfa --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/wsdl-serialize.composite @@ -0,0 +1,33 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://www.tuscany.apache.org/tests/binding/ws/axis2"
+ name="WSDLSerialize">
+
+ <component name="AccountService">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.AccountService"/>
+ <service name="Account">
+ <binding.ws uri="http://localhost:8085/services/AccountService"
+ wsdlElement="http://serialize-top#wsdl.binding(AccountSoapBinding)"/>
+ </service>
+ </component>
+
+</composite>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/wsdl-serialize.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/wsdl-serialize.xsd new file mode 100644 index 0000000000..ce9e017492 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/wsdl-serialize.xsd @@ -0,0 +1,28 @@ +<?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.
+-->
+<xsd:schema elementFormDefault="qualified"
+ targetNamespace="http://accounts"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <xsd:include schemaLocation="customerdata.xsd" />
+ <xsd:include schemaLocation="customerinfo.xsd" />
+ <xsd:import namespace="http://serialize" schemaLocation="wsdl-serialize-nested.xsd"/>
+
+</xsd:schema>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldWSDLMergedTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldWSDLMergedTestCase.java new file mode 100644 index 0000000000..74998379c4 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/HelloWorldWSDLMergedTestCase.java @@ -0,0 +1,110 @@ +/* + * 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.axis2; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.ObjectOutputStream; + +import junit.framework.Assert; +import junit.framework.TestCase; + +import org.apache.axiom.om.OMAbstractFactory; +import org.apache.axiom.om.OMElement; +import org.apache.axiom.om.OMFactory; +import org.apache.axiom.om.OMText; +import org.apache.tuscany.sca.core.assembly.impl.RuntimeEndpointImpl; +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; +import org.apache.tuscany.sca.node.impl.NodeImpl; +import org.junit.Ignore; + +public class HelloWorldWSDLMergedTestCase extends TestCase { + + private NodeFactory nodeFactory; + private NodeImpl node; + private HelloWorldOM helloWorld; + + @Override + protected void setUp() throws Exception { + String contribution = "target/classes"; + nodeFactory = NodeFactory.newInstance(); + // have to set this to stop the node factory killing itself when we stop and re-start the node + nodeFactory.setAutoDestroy(false); + node = (NodeImpl)nodeFactory.createNode("org/apache/tuscany/sca/binding/ws/axis2/helloworld-om-merged.composite", new Contribution("test", contribution)); + node.start(); + helloWorld = node.getService(HelloWorldOM.class, "HelloWorldWSDLMergedComponent"); + } + + public void testHelloWorld() throws Exception { + OMFactory fac = OMAbstractFactory.getOMFactory(); + OMElement requestOM = fac.createOMElement("getGreetings", "http://helloworld-om", "helloworld"); + OMElement parmE = fac.createOMElement("name", "http://helloworld-om", "helloworld"); + requestOM.addChild(parmE); + parmE.addChild(fac.createOMText("petra")); + OMElement responseOM = helloWorld.getGreetings(requestOM); + OMElement child = (OMElement)responseOM.getFirstElement(); + Assert.assertEquals("Hello petra", ((OMText)child.getFirstOMChild()).getText()); + } + + public void testHelloWorldRepeating() throws Exception { + for (int i = 0; i < 2; i++){ + OMFactory fac = OMAbstractFactory.getOMFactory(); + OMElement requestOM = fac.createOMElement("getGreetings", "http://helloworld-om", "helloworld"); + OMElement parmE = fac.createOMElement("name", "http://helloworld-om", "helloworld"); + requestOM.addChild(parmE); + parmE.addChild(fac.createOMText("petra")); + OMElement responseOM = helloWorld.getGreetings(requestOM); + OMElement child = (OMElement)responseOM.getFirstElement(); + Assert.assertEquals("Hello petra", ((OMText)child.getFirstOMChild()).getText()); + + node.stop(); + node.start(); + + helloWorld = node.getService(HelloWorldOM.class, "HelloWorldWSDLMergedComponent"); + } + } + + +/* + public void testWSDLWrite(){ + RuntimeEndpointImpl endpoint = (RuntimeEndpointImpl)node.getDomainComposite().getComponents().get(0).getServices().get(0).getEndpoints().get(0); + try + { + ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); + ObjectOutputStream objectStream = new ObjectOutputStream(byteStream); + objectStream.writeObject(endpoint); + objectStream.close(); + System.out.println(byteStream.toString()); + } + catch(IOException ex) + { + ex.printStackTrace(); + } + } +*/ + + @Override + protected void tearDown() throws Exception { + node.stop(); + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLImportTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLImportTestCase.java new file mode 100644 index 0000000000..e48e1bc050 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLImportTestCase.java @@ -0,0 +1,99 @@ +/* + * 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.axis2; + +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.URL; +import java.util.List; + +import javax.wsdl.Definition; +import javax.wsdl.Port; +import javax.wsdl.Service; +import javax.wsdl.extensions.soap.SOAPAddress; +import javax.wsdl.factory.WSDLFactory; +import javax.wsdl.xml.WSDLReader; +import javax.xml.namespace.QName; + +import junit.framework.TestCase; + +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; + +/** + * Test ?wsdl works and that the returned WSDL has the correct endpoint + * + * @version $Rev$ $Date$ + */ +public class QuestionMarkWSDLImportTestCase extends TestCase { + + private Node node; + + /** + * Tests ?wsdl works and returns the correct port endpoint from the WSDL + */ + public void testWSDLImportPortEndpoint() throws Exception { + InputStream inp = new URL("http://localhost:8086/AccountService?wsdl").openStream(); + BufferedReader br = new BufferedReader(new InputStreamReader(inp)); + String line; + while((line = br.readLine()) != null) { + System.out.println(line); + } + br.close(); + + WSDLReader wsdlReader = WSDLFactory.newInstance().newWSDLReader(); + wsdlReader.setFeature("javax.wsdl.verbose", false); + wsdlReader.setFeature("javax.wsdl.importDocuments", true); + + Definition definition = wsdlReader.readWSDL("http://localhost:8086/AccountService?wsdl"); + assertNotNull(definition); + Service service = definition.getService(new QName("http://account2/AccountService/Account", "Account")); + Port port = service.getPort("AccountSOAP11Port"); + + String endpoint = getEndpoint(port); + // String ip = HttpUtils.getIpAddress(); + assertEquals("http://localhost:8086/AccountService", endpoint); + } + + private String getEndpoint(Port port) { + List wsdlPortExtensions = port.getExtensibilityElements(); + for (final Object extension : wsdlPortExtensions) { + if (extension instanceof SOAPAddress) { + return ((SOAPAddress) extension).getLocationURI(); + } + } + throw new RuntimeException("no SOAPAddress"); + } + + @Override + protected void setUp() throws Exception { + String contribution = "target/classes"; + node = NodeFactory.newInstance().createNode("org/apache/tuscany/sca/binding/ws/axis2/questionmark-wsdl-import.composite", new Contribution("test", contribution)); + node.start(); + } + + @Override + protected void tearDown() throws Exception { + node.stop(); + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLIncludeTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLIncludeTestCase.java new file mode 100644 index 0000000000..ab5713a0ae --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLIncludeTestCase.java @@ -0,0 +1,122 @@ +/* + * 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.axis2; + +import java.io.BufferedReader; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.ObjectOutputStream; +import java.net.URL; +import java.util.List; + +import javax.wsdl.Definition; +import javax.wsdl.Port; +import javax.wsdl.Service; +import javax.wsdl.extensions.soap.SOAPAddress; +import javax.wsdl.factory.WSDLFactory; +import javax.wsdl.xml.WSDLReader; +import javax.xml.namespace.QName; + +import junit.framework.TestCase; + +import org.apache.tuscany.sca.core.assembly.impl.RuntimeEndpointImpl; +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; +import org.apache.tuscany.sca.node.impl.NodeImpl; +import org.junit.Ignore; + +/** + * Test ?wsdl works and that the returned WSDL has the correct endpoint + * + * @version $Rev$ $Date$ + */ +public class QuestionMarkWSDLIncludeTestCase extends TestCase { + + private NodeImpl node; + + /** + * Tests ?wsdl works and returns the correct port endpoint from the WSDL + */ + public void testWSDLIncludePortEndpoint() throws Exception { + InputStream inp = new URL("http://localhost:8085/AccountService?wsdl").openStream(); + BufferedReader br = new BufferedReader(new InputStreamReader(inp)); + String line; + while((line = br.readLine()) != null) { + System.out.println(line); + } + br.close(); + + WSDLReader wsdlReader = WSDLFactory.newInstance().newWSDLReader(); + wsdlReader.setFeature("javax.wsdl.verbose", false); + wsdlReader.setFeature("javax.wsdl.importDocuments", true); + + Definition definition = wsdlReader.readWSDL("http://localhost:8085/AccountService?wsdl"); + assertNotNull(definition); + Service service = definition.getService(new QName("http://accounts/AccountService/Account", "Account")); + Port port = service.getPort("AccountSOAP11Port"); + + String endpoint = getEndpoint(port); + assertEquals("http://localhost:8085/AccountService", endpoint); + } + + private String getEndpoint(Port port) { + List wsdlPortExtensions = port.getExtensibilityElements(); + for (final Object extension : wsdlPortExtensions) { + if (extension instanceof SOAPAddress) { + return ((SOAPAddress) extension).getLocationURI(); + } + } + throw new RuntimeException("no SOAPAddress"); + } + +/* + public void testWSDLWrite(){ + RuntimeEndpointImpl endpoint = (RuntimeEndpointImpl)node.getDomainComposite().getComponents().get(0).getServices().get(0).getEndpoints().get(0); + try + { + ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); + ObjectOutputStream objectStream = new ObjectOutputStream(byteStream); + objectStream.writeObject(endpoint); + objectStream.close(); + System.out.println(byteStream.toString()); + } + catch(IOException ex) + { + ex.printStackTrace(); + } + } +*/ + + @Override + protected void setUp() throws Exception { + String contribution = "target/classes"; + node = (NodeImpl)NodeFactory.newInstance().createNode("org/apache/tuscany/sca/binding/ws/axis2/questionmark-wsdl-include.composite", new Contribution("test", contribution)); + node.start(); + } + + @Override + protected void tearDown() throws Exception { + node.stop(); + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLTestCase.java new file mode 100644 index 0000000000..635c49b8ab --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/QuestionMarkWSDLTestCase.java @@ -0,0 +1,126 @@ +/* + * 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.axis2; + +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.URL; +import java.util.List; + +import javax.wsdl.Definition; +import javax.wsdl.Port; +import javax.wsdl.Service; +import javax.wsdl.extensions.soap.SOAPAddress; +import javax.wsdl.factory.WSDLFactory; +import javax.wsdl.xml.WSDLReader; +import javax.xml.namespace.QName; + +import junit.framework.TestCase; + +import org.apache.tuscany.sca.node.Contribution; +import org.apache.tuscany.sca.node.Node; +import org.apache.tuscany.sca.node.NodeFactory; + +/** + * Test ?wsdl works and that the returned WSDL has the correct endpoint + * + * @version $Rev$ $Date$ + */ +public class QuestionMarkWSDLTestCase extends TestCase { + + private Node node; + + /** + * Tests ?wsdl works and returns the correct port endpoint from the WSDL + */ + public void testWSDLPortEndpoint() throws Exception { + InputStream inp = new URL("http://localhost:8085/services/HelloWorldWebService2?wsdl").openStream(); + BufferedReader br = new BufferedReader(new InputStreamReader(inp)); + String line; + while((line = br.readLine()) != null) { + System.out.println(line); + } + br.close(); + + WSDLReader wsdlReader = WSDLFactory.newInstance().newWSDLReader(); + wsdlReader.setFeature("javax.wsdl.verbose",false); + wsdlReader.setFeature("javax.wsdl.importDocuments",true); + + Definition definition = wsdlReader.readWSDL("http://localhost:8085/services/HelloWorldWebService2?wsdl"); + assertNotNull(definition); + Service service = definition.getService(new QName("http://helloworld/HelloWorldService/HelloWorld", + "HelloWorld")); + Port port = service.getPort("ep2SOAP11Port"); + + String endpoint = getEndpoint(port); + assertEquals("http://localhost:8085/services/HelloWorldWebService2", endpoint); + } + + /** + * Tests ?wsdl works and returns the correct port endpoint from binding.ws with a custom URI + */ + public void testCustomEndpoint() throws Exception { + InputStream inp = new URL("http://localhost:8085/foo/bar?wsdl").openStream(); + BufferedReader br = new BufferedReader(new InputStreamReader(inp)); + String line; + while((line = br.readLine()) != null) { + System.out.println(line); + } + br.close(); + + WSDLReader wsdlReader = WSDLFactory.newInstance().newWSDLReader(); + wsdlReader.setFeature("javax.wsdl.verbose",false); + wsdlReader.setFeature("javax.wsdl.importDocuments",true); + + Definition definition = wsdlReader.readWSDL("http://localhost:8085/foo/bar?wsdl"); + assertNotNull(definition); + Service service = definition.getService(new QName("http://axis2.ws.binding.sca.tuscany.apache.org/", + "HelloWorld")); + Port port = service.getPort("ep1SOAP11Port"); + + String endpoint = getEndpoint(port); + // TODO - used to get the real host here but WSDL seems to have localhost in it atm? + assertEquals("http://localhost:8085/foo/bar", endpoint); + } + + protected String getEndpoint(Port port) { + List wsdlPortExtensions = port.getExtensibilityElements(); + for (final Object extension : wsdlPortExtensions) { + if (extension instanceof SOAPAddress) { + return ((SOAPAddress) extension).getLocationURI(); + } + } + throw new RuntimeException("no SOAPAddress"); + } + + @Override + protected void setUp() throws Exception { + String contribution = "target/classes"; + node = NodeFactory.newInstance().createNode("org/apache/tuscany/sca/binding/ws/axis2/questionmark-wsdl.composite", new Contribution("test", contribution)); + node.start(); + } + + @Override + protected void tearDown() throws Exception { + node.stop(); + } + +} diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLSerializationTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLSerializationTestCase.java new file mode 100644 index 0000000000..a3e79ee2af --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdl/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/WSDLSerializationTestCase.java @@ -0,0 +1,477 @@ +/*
+ * 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.axis2;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URI;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Vector;
+
+import javax.wsdl.Definition;
+import javax.wsdl.Import;
+import javax.wsdl.PortType;
+import javax.wsdl.Types;
+import javax.wsdl.factory.WSDLFactory;
+import javax.wsdl.xml.WSDLLocator;
+import javax.wsdl.xml.WSDLReader;
+import javax.wsdl.xml.WSDLWriter;
+
+
+import org.apache.tuscany.sca.common.xml.XMLDocumentHelper;
+import org.apache.tuscany.sca.contribution.ContributionFactory;
+import org.apache.tuscany.sca.contribution.processor.ProcessorContext;
+import org.apache.tuscany.sca.contribution.resolver.ExtensibleModelResolver;
+import org.apache.tuscany.sca.contribution.resolver.ModelResolverExtensionPoint;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.FactoryExtensionPoint;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
+import org.apache.tuscany.sca.core.assembly.impl.RuntimeEndpointImpl;
+import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
+import org.apache.tuscany.sca.interfacedef.wsdl.WSDLDefinition;
+import org.apache.tuscany.sca.interfacedef.wsdl.WSDLInterface;
+import org.apache.tuscany.sca.interfacedef.wsdl.xml.WSDLModelResolver;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.NodeFactory;
+import org.apache.tuscany.sca.node.impl.NodeImpl;
+import org.apache.tuscany.sca.xsd.XSDFactory;
+import org.apache.tuscany.sca.xsd.XSDefinition;
+import org.apache.tuscany.sca.xsd.xml.XSDModelResolver;
+import org.apache.ws.commons.schema.XmlSchema;
+import org.apache.ws.commons.schema.XmlSchemaCollection;
+import org.apache.ws.commons.schema.XmlSchemaCollectionEnumerator;
+import org.apache.ws.commons.schema.XmlSchemaImport;
+import org.apache.ws.commons.schema.XmlSchemaInclude;
+import org.apache.ws.commons.schema.XmlSchemaObject;
+import org.apache.ws.commons.schema.resolver.DefaultURIResolver;
+import org.junit.Assert;
+import org.junit.Ignore;
+import org.xml.sax.InputSource;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests that WSDL can be serialized out in a form that can be passed
+ * across the registry in a single shot
+ */
+public class WSDLSerializationTestCase extends TestCase {
+
+ private static byte separator[] = {'_', 'X', '_'};
+
+/*
+ public void testWSDL4JSerialization() throws Exception {
+
+ // read WSDL in
+ WSDLReader wsdlReader = WSDLFactory.newInstance().newWSDLReader();
+ wsdlReader.setFeature("javax.wsdl.verbose",false);
+ wsdlReader.setFeature("javax.wsdl.importDocuments",true);
+
+ Definition definition = wsdlReader.readWSDL("target/classes/org/apache/tuscany/sca/binding/ws/axis2/wsdl-serialize-top.wsdl");
+ assertNotNull(definition);
+
+ // write WSDL out
+ ByteArrayOutputStream outStream = new ByteArrayOutputStream();
+ try {
+ WSDLWriter writer = WSDLFactory.newInstance().newWSDLWriter();
+ writer.writeWSDL(definition, outStream);
+ } catch (Exception e){
+ throw new RuntimeException(e);
+ }
+
+ //System.out.println(outStream.toString());
+ }
+*/
+
+ public void testTuscanySerialization() throws Exception {
+
+ // read in WSDL
+ String contributionLocation = "target/classes";
+ NodeImpl node = (NodeImpl)NodeFactory.newInstance().createNode("org/apache/tuscany/sca/binding/ws/axis2/wsdl-serialize.composite",
+ new Contribution("test", contributionLocation));
+ node.start();
+
+ try {
+
+ RuntimeEndpointImpl endpoint = (RuntimeEndpointImpl)node.getDomainComposite().getComponents().get(0).getServices().get(0).getEndpoints().get(0);
+ WSDLInterface wsdlInterface = (WSDLInterface)endpoint.getBindingInterfaceContract().getInterface();
+
+ WSDLDefinition wsdlDefinition = wsdlInterface.getWsdlDefinition();
+ Definition definition = wsdlDefinition.getDefinition();
+
+ // write out a flattened WSDL along with XSD
+ ByteArrayOutputStream outStream = new ByteArrayOutputStream();
+ try {
+ WSDLWriter writer = WSDLFactory.newInstance().newWSDLWriter();
+ String baseURI = null;
+ if (wsdlDefinition.getLocation() != null) {
+ baseURI = wsdlDefinition.getLocation().toString();
+ } else {
+ baseURI = "GeneratedWSDL";
+ }
+ outStream.write(baseURI.getBytes());
+ outStream.write(separator);
+ writer.writeWSDL(definition, outStream);
+ for (WSDLDefinition importedWSDLDefintion : wsdlDefinition.getImportedDefinitions()){
+ outStream.write(separator);
+ baseURI = importedWSDLDefintion.getLocation().toString();
+ outStream.write(baseURI.getBytes());
+ outStream.write(separator);
+ writer.writeWSDL(importedWSDLDefintion.getDefinition(), outStream);
+ }
+ for (XSDefinition xsdDefinition : wsdlDefinition.getXmlSchemas()){
+ // we store a reference to the schema schema. We don't need to write that out.
+ // also ignore schema that are extract from the original WSDL (have in their location)
+ if (!xsdDefinition.getNamespace().equals("http://www.w3.org/2001/XMLSchema") &&
+ xsdDefinition.getSchema() != null){
+ writeSchema(outStream, xsdDefinition.getSchema());
+ }
+ }
+ } catch (Exception e){
+ throw new RuntimeException(e);
+ }
+
+ String wsdlString = outStream.toString();
+ //System.out.println(wsdlString);
+
+ // Read the WSDL and XSD back in from the string
+ String xmlArray[] = wsdlString.split("_X_");
+ String topWSDLLocation = null;
+ Map<String, XMLString> xmlMap = new HashMap<String, XMLString>();
+
+ for (int i = 0; i < xmlArray.length; i = i + 2){
+ String location = xmlArray[i];
+ String xml = xmlArray[i+1];
+ // strip the file name out of the location
+ location = location.substring(location.lastIndexOf("/") + 1);
+
+ if (location.endsWith(".wsdl")){
+ xmlMap.put(location,
+ new WSDLInfo(xmlArray[i],
+ xml));
+
+ if (topWSDLLocation == null){
+ topWSDLLocation = location;
+ }
+ } else {
+ xmlMap.put(location,
+ new XSDInfo(xmlArray[i],
+ xml));
+ }
+ }
+
+ ExtensionPointRegistry registry = endpoint.getCompositeContext().getExtensionPointRegistry();
+ FactoryExtensionPoint modelFactories = registry.getExtensionPoint(FactoryExtensionPoint.class);
+ org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory wsdlFactory = modelFactories.getFactory(org.apache.tuscany.sca.interfacedef.wsdl.WSDLFactory.class);
+ XSDFactory xsdFactory = modelFactories.getFactory(XSDFactory.class);
+ XmlSchemaCollection schemaCollection = new XmlSchemaCollection();
+ schemaCollection.setSchemaResolver(new XSDURIResolverImpl(xmlMap));
+ ContributionFactory contributionFactory = modelFactories.getFactory(ContributionFactory.class);
+ final org.apache.tuscany.sca.contribution.Contribution contribution = contributionFactory.createContribution();
+ ProcessorContext processorContext = new ProcessorContext();
+
+ ExtensibleModelResolver extensibleResolver = new ExtensibleModelResolver(contribution, registry.getExtensionPoint(ModelResolverExtensionPoint.class), modelFactories);
+ WSDLModelResolver wsdlResolver = (WSDLModelResolver)extensibleResolver.getModelResolverInstance(WSDLDefinition.class);
+ XSDModelResolver xsdResolver = (XSDModelResolver)extensibleResolver.getModelResolverInstance(XSDefinition.class);
+ contribution.setURI("temp");
+ contribution.setLocation(topWSDLLocation);
+ contribution.setModelResolver(extensibleResolver);
+
+ // read
+ for (XMLString xmlString : xmlMap.values()){
+ if (xmlString instanceof WSDLInfo){
+ WSDLReader reader = WSDLFactory.newInstance().newWSDLReader();
+ reader.setFeature("javax.wsdl.verbose", false);
+ reader.setFeature("javax.wsdl.importDocuments", true);
+ WSDLLocatorImpl locator = new WSDLLocatorImpl(xmlString.getBaseURI(), xmlMap);
+ Definition readDefinition = reader.readWSDL(locator);
+
+ wsdlDefinition = wsdlFactory.createWSDLDefinition();
+ wsdlDefinition.setDefinition(readDefinition);
+ wsdlDefinition.setLocation(new URI(xmlString.getBaseURI()));
+
+ ((WSDLInfo)xmlString).setWsdlDefintion(wsdlDefinition);
+ wsdlResolver.addModel(wsdlDefinition, processorContext);
+
+ } else {
+ InputStream inputStream = new ByteArrayInputStream(xmlString.getXmlString().getBytes());
+ InputSource inputSource = new InputSource(inputStream);
+ inputSource.setSystemId(xmlString.getBaseURI());
+ XmlSchema schema = schemaCollection.read(inputSource, null);
+ inputStream.close();
+
+ XSDefinition xsdDefinition = xsdFactory.createXSDefinition();
+ xsdDefinition.setSchema(schema);
+
+ ((XSDInfo)xmlString).setXsdDefinition(xsdDefinition);
+ xsdResolver.addModel(xsdDefinition, processorContext);
+ }
+ }
+
+ // resolve
+ for (XMLString xmlString : xmlMap.values()){
+ if (xmlString instanceof WSDLInfo){
+ wsdlDefinition = ((WSDLInfo)xmlString).getWsdlDefintion();
+
+ // link to imports
+ for (Map.Entry<String, List<javax.wsdl.Import>> entry :
+ ((Map<String, List<javax.wsdl.Import>>)wsdlDefinition.getDefinition().getImports()).entrySet()) {
+ for (javax.wsdl.Import imp : entry.getValue()) {
+ String wsdlName = imp.getDefinition().getDocumentBaseURI();
+ WSDLInfo wsdlInfo = (WSDLInfo)xmlMap.get(getFilenameWithoutPath(wsdlName));
+ wsdlDefinition.getImportedDefinitions().add(wsdlInfo.getWsdlDefintion());
+ }
+ }
+
+ // link to in-line types
+ Types types = wsdlDefinition.getDefinition().getTypes();
+ if ( types != null){
+ for (int i=0; i < types.getExtensibilityElements().size(); i++){
+ String schemaName = xmlString.getBaseURI() + "#" + i++;
+ XSDInfo xsdInfo = (XSDInfo)xmlMap.get(getFilenameWithoutPath(schemaName));
+ wsdlDefinition.getXmlSchemas().add(xsdInfo.getXsdDefinition());
+ }
+ }
+
+ } else {
+
+ }
+ }
+
+ WSDLInfo topWSDL = (WSDLInfo)xmlMap.get(topWSDLLocation);
+ WSDLDefinition topWSDLDefinition = topWSDL.getWsdlDefintion();
+
+ PortType portType = (PortType)topWSDLDefinition.getDefinition().getAllPortTypes().values().iterator().next();
+ WSDLInterface readWSDLInterface = wsdlFactory.createWSDLInterface(portType, topWSDLDefinition, extensibleResolver, null);
+
+ // now check what we have just read with what we started out with to see if the compatibility test passes
+ // in the real system have to check contracts not interfaces
+ UtilityExtensionPoint utils = registry.getExtensionPoint(UtilityExtensionPoint.class);
+ InterfaceContractMapper interfaceContractMapper = utils.getUtility(InterfaceContractMapper.class);
+ boolean match = interfaceContractMapper.isCompatibleSubset(wsdlInterface, readWSDLInterface);
+ Assert.assertTrue(match);
+ } catch(Exception ex){
+ System.out.println(ex.toString());
+ ex.printStackTrace();
+ node.stop();
+ Assert.fail();
+ }
+
+ node.stop();
+ }
+
+ public void writeSchema(OutputStream outStream, XmlSchema schema) throws IOException {
+ if (!schema.getTargetNamespace().equals("http://www.w3.org/2001/XMLSchema") &&
+ schema.getNamespaceContext() != null){
+ outStream.write(separator);
+ String baseURI = schema.getSourceURI();
+ outStream.write(baseURI.getBytes());
+ outStream.write(separator);
+ schema.write(outStream);
+
+ for (Iterator<?> i = schema.getIncludes().getIterator(); i.hasNext();) {
+ XmlSchemaObject obj = (XmlSchemaObject)i.next();
+ XmlSchema ext = null;
+ if (obj instanceof XmlSchemaInclude) {
+ ext = ((XmlSchemaInclude)obj).getSchema();
+ }
+ if (obj instanceof XmlSchemaImport) {
+ ext = ((XmlSchemaImport)obj).getSchema();
+ }
+ writeSchema(outStream, ext);
+ }
+ }
+ }
+
+ public String calculateUniquePrefix(Map<String, String> targetNamespaces, String prefix){
+ String newPrefix = prefix;
+ boolean notUnique = targetNamespaces.containsKey(newPrefix);
+ int i = 1;
+
+ while(notUnique){
+ newPrefix = prefix + i++;
+ notUnique = targetNamespaces.containsKey(newPrefix);
+ }
+
+ return newPrefix;
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+
+ }
+
+ private class XMLString {
+ private String baseURI;
+ private String xmlString;
+
+ public XMLString(String baseURI, String xmlString){
+ this.baseURI = baseURI;
+ this.xmlString = xmlString;
+ }
+
+ public String getBaseURI() {
+ return baseURI;
+ }
+
+ public String getXmlString() {
+ return xmlString;
+ }
+ }
+
+ private class XSDInfo extends XMLString {
+
+ XSDefinition xsdDefinition;
+
+ public XSDInfo(String baseURI, String xmlString) {
+ super(baseURI, xmlString);
+ }
+
+ public void setXsdDefinition(XSDefinition xsdDefinition) {
+ this.xsdDefinition = xsdDefinition;
+ }
+
+ public XSDefinition getXsdDefinition() {
+ return xsdDefinition;
+ }
+ }
+
+ private class WSDLInfo extends XMLString {
+
+ WSDLDefinition wsdlDefintion;
+
+ public WSDLInfo(String baseURI, String xmlString) {
+ super(baseURI, xmlString);
+ }
+
+ public void setWsdlDefintion(WSDLDefinition wsdlDefintion) {
+ this.wsdlDefintion = wsdlDefintion;
+ }
+
+ public WSDLDefinition getWsdlDefintion() {
+ return wsdlDefintion;
+ }
+ }
+
+ private class WSDLLocatorImpl implements WSDLLocator {
+ private Map<String, XMLString> xmlMap;
+ private String baseURI;
+ private String latestImportURI;
+
+ public WSDLLocatorImpl(String baseURI, Map<String, XMLString> xmlMap) {
+ this.baseURI = baseURI;
+ this.xmlMap = xmlMap;
+ }
+
+ public void close() {
+/*
+ try {
+ inputStream.close();
+ } catch (IOException e) {
+ // Ignore
+ }
+*/
+ }
+
+ public InputSource getBaseInputSource() {
+ return getInputSource(getFilenameWithoutPath(baseURI));
+ }
+
+ public String getBaseURI() {
+ return baseURI;
+ }
+
+ public InputSource getImportInputSource(String parentLocation, String importLocation) {
+ latestImportURI = importLocation;
+ return getInputSource(getFilenameWithoutPath(importLocation));
+ }
+
+ public String getLatestImportURI() {
+ return latestImportURI;
+ }
+
+ private InputSource getInputSource(String uri){
+ String xmlString = xmlMap.get(uri).getXmlString();
+ InputStream inputStream = new ByteArrayInputStream(xmlString.getBytes());
+ //InputSource inputSource = XMLDocumentHelper.getInputSource(uri, inputStream);
+ InputSource inputSource = new InputSource(inputStream);
+ inputSource.setSystemId(uri);
+ return inputSource;
+ }
+ }
+
+ private class XSDURIResolverImpl extends DefaultURIResolver {
+
+ private Map<String, XMLString> xmlMap;
+
+ public XSDURIResolverImpl(Map<String, XMLString> xmlMap) {
+ this.xmlMap = xmlMap;
+ }
+
+
+ @Override
+ protected URL getURL(URL contextURL, String spec) throws IOException {
+ return super.getURL(contextURL, spec);
+ }
+ @Override
+ public InputSource resolveEntity(String namespace,
+ String schemaLocation,
+ String baseUri) {
+ return getInputSource(getFilenameWithoutPath(schemaLocation));
+ }
+
+ private InputSource getInputSource(String uri){
+ String xmlString = xmlMap.get(uri).getXmlString();
+ InputStream inputStream = new ByteArrayInputStream(xmlString.getBytes());
+ InputSource inputSource = new InputSource(inputStream);
+ inputSource.setSystemId(uri);
+ return inputSource;
+ }
+
+ }
+
+ private String getFilenameWithoutPath(String filename){
+ // work out what the file name is that is being imported
+ // XSDs imports are written out by Tuscany with an relative web address such as
+ // /services/AccountService?xsd=wsdl-serialize.xsd
+ // for the time being just string the file name off the end. We are making
+ // assumption that the interface doesn't involve two files with the same
+ // name in different locations
+ int xsdIndex = filename.lastIndexOf("?xsd=");
+ int wsdlIndex = filename.lastIndexOf("/");
+ if ( xsdIndex >= 0){
+ return filename.substring(xsdIndex + 5);
+ } else {
+ return filename.substring(wsdlIndex + 1);
+ }
+ // What happens with generated WSDL?
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/pom.xml new file mode 100644 index 0000000000..c5ddbd2d7f --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/pom.xml @@ -0,0 +1,94 @@ +<?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>itest-ws</artifactId>
+ <version>2.0-Beta4</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <artifactId>itest-ws-wsdlgen</artifactId>
+ <name>Apache Tuscany SCA iTest WS WSDL Generation</name>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-base-runtime-pom</artifactId>
+ <type>pom</type>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws-runtime-axis2</artifactId>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-databinding-sdo</artifactId>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>6.1.19</version>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <finalName>${project.artifactId}</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.jvnet.jax-ws-commons</groupId>
+ <artifactId>jaxws-maven-plugin</artifactId>
+ <version>2.1</version>
+ <dependencies>
+ <dependency>
+ <groupId>com.sun.xml.ws</groupId>
+ <artifactId>jaxws-tools</artifactId>
+ <version>2.2.6-promoted-b10</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <phase>generate-test-sources</phase>
+ <goals>
+ <goal>wsgen</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <sei>helloworld.HelloWorldImpl</sei>
+ <genWsdl>true</genWsdl>
+ <keep>true</keep>
+ <destDir>${basedir}/target/classes</destDir>
+ <resourceDestDir>${basedir}/target/jaxws/wsgen/wsdl</resourceDestDir>
+ <sourceDestDir>${basedir}/target/jaxws/wsgen/source</sourceDestDir>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/anotherpackage/BBean.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/anotherpackage/BBean.java new file mode 100644 index 0000000000..41ed1b8878 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/anotherpackage/BBean.java @@ -0,0 +1,56 @@ +/*
+ * 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 anotherpackage;
+
+import javax.xml.bind.annotation.XmlType;
+
+import yetyetanotherpackage.FBean;
+
+@XmlType(namespace="http://helloworld/")
+public class BBean {
+
+ protected String field1;
+ protected String field2;
+ protected FBean field3;
+
+ public String getField1() {
+ return field1;
+ }
+
+ public void setField1(String field1) {
+ this.field1 = field1;
+ }
+
+ public String getField2() {
+ return field2;
+ }
+
+ public void setField2(String field2) {
+ this.field2 = field2;
+ }
+
+ public FBean getField3() {
+ return field3;
+ }
+
+ public void setField3(FBean field3) {
+ this.field3 = field3;
+ }
+}
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/anotherpackage/CBean.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/anotherpackage/CBean.java new file mode 100644 index 0000000000..4b0064aee8 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/anotherpackage/CBean.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 anotherpackage;
+
+import javax.xml.bind.annotation.XmlType;
+
+@XmlType(name="")
+public class CBean {
+
+ protected String field1;
+ protected String field2;
+
+ public String getField1() {
+ return field1;
+ }
+
+ public void setField1(String field1) {
+ this.field1 = field1;
+ }
+
+ public String getField2() {
+ return field2;
+ }
+
+ public void setField2(String field2) {
+ this.field2 = field2;
+ }
+}
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/datatypes/BaseClass.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/datatypes/BaseClass.java new file mode 100644 index 0000000000..904ca55617 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/datatypes/BaseClass.java @@ -0,0 +1,46 @@ +/*
+ * 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 datatypes;
+
+import java.io.Serializable;
+
+public class BaseClass implements Serializable {
+ private static final long serialVersionUID = -4086312879555658070L;
+
+ private long id;
+
+ private String commentair;
+
+ public long getId() {
+ return id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ public String getCommentair() {
+ return commentair;
+ }
+
+ public void setCommentair(String commentair) {
+ this.commentair = commentair;
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/datatypes/ComplexNumber.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/datatypes/ComplexNumber.java new file mode 100644 index 0000000000..96a53f7eeb --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/datatypes/ComplexNumber.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 datatypes;
+
+public class ComplexNumber {
+ private double real, imaginary;
+
+ public ComplexNumber(double real, double imaginary) {
+ this.real = real;
+ this.imaginary = imaginary;
+ }
+
+ public ComplexNumber() {
+ }
+
+ public double getReal() {
+ return real;
+ }
+
+ public void setReal(double real) {
+ this.real = real;
+ }
+
+ public double getImaginary() {
+ return imaginary;
+ }
+
+ public void setImaginary(double imaginary) {
+ this.imaginary = imaginary;
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/datatypes/DataTypes.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/datatypes/DataTypes.java new file mode 100644 index 0000000000..d4e3609abb --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/datatypes/DataTypes.java @@ -0,0 +1,78 @@ +/*
+ * 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 datatypes;
+
+import java.util.List;
+import javax.jws.WebParam;
+import javax.jws.soap.SOAPBinding;
+
+import org.oasisopen.sca.ServiceReference;
+import org.oasisopen.sca.annotation.Remotable;
+
+import commonj.sdo.DataObject;
+import other.OtherPojo;
+
+@Remotable
+public interface DataTypes {
+
+ void testSimpleInt(int simple);
+
+ void testSimpleArrayInt(int[] simple);
+
+ void testSimpleMultiArrayInt(int[][] simple);
+
+ void testSimpleMulti3ArrayInt(int[][][] simple);
+
+ void testList(List any);
+
+ void testSimpleListString(List<String> simple);
+
+ List<String> testReturnSimpleListString();
+
+ void testListByteArray(List<byte[]> byteArrayList);
+
+ void testListWildcard(List<?> wild);
+
+ void testComplex(ComplexNumber complex);
+
+ void testOtherPackage(OtherPojo pojo);
+
+ void testByteArray(byte[] byteArray);
+
+ void testBaseExtension(ExtClass ext);
+
+ void testServiceReference(ServiceReference ref);
+
+ void testException() throws Exception;
+
+ DataObject testDynamicSDO();
+
+ void testWebParamSDO(@WebParam(name="foo") DataObject myObject);
+
+ void testWebParamSDOArray(@WebParam(name="foo") DataObject[] myArray);
+/*
+
+ @SOAPBinding(parameterStyle=SOAPBinding.ParameterStyle.BARE)
+ void testWebParamBare(@WebParam(name="simpleInt") int simple);
+
+ @SOAPBinding(parameterStyle=SOAPBinding.ParameterStyle.BARE)
+ void testWebParamBareArray(@WebParam(name="arrayInt") int[] array);
+*/
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/datatypes/ExtClass.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/datatypes/ExtClass.java new file mode 100644 index 0000000000..86be949630 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/datatypes/ExtClass.java @@ -0,0 +1,34 @@ +/*
+ * 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 datatypes;
+
+public class ExtClass extends BaseClass {
+ private static final long serialVersionUID = 7076974968473202208L;
+
+ private String name;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/datatypes/GetDataServiceWithoutException.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/datatypes/GetDataServiceWithoutException.java new file mode 100644 index 0000000000..d4c64a837a --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/datatypes/GetDataServiceWithoutException.java @@ -0,0 +1,42 @@ +/*
+ * 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 datatypes;
+
+import commonj.sdo.DataObject;
+import java.util.List;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public abstract interface GetDataServiceWithoutException
+{
+ public abstract byte[] getMessage(String paramString);
+
+ public abstract List<byte[]> getMessageList(String paramString);
+
+ public abstract DataObject getMessageSDO(String paramString);
+
+ public abstract List<DataObject> getMessageListSDOList(String paramString);
+
+ public abstract DataObject[] getMessageListSDOArr(String paramString);
+
+ public abstract DataObject getMessageListSDOinSDO(String paramString);
+}
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/datatypes/impl/DataTypesImpl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/datatypes/impl/DataTypesImpl.java new file mode 100644 index 0000000000..df492d8e7e --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/datatypes/impl/DataTypesImpl.java @@ -0,0 +1,100 @@ +/*
+ * 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 datatypes.impl;
+
+import java.util.List;
+import javax.jws.WebParam;
+import javax.jws.soap.SOAPBinding;
+
+import org.oasisopen.sca.ServiceReference;
+
+import other.OtherPojo;
+
+import commonj.sdo.DataObject;
+import datatypes.ComplexNumber;
+import datatypes.DataTypes;
+import datatypes.ExtClass;
+
+public class DataTypesImpl implements DataTypes {
+
+ public void testSimpleInt(int simple) {
+ }
+
+ public void testSimpleArrayInt(int[] simple) {
+ }
+
+ public void testSimpleMultiArrayInt(int[][] simple) {
+ }
+
+ public void testSimpleMulti3ArrayInt(int[][][] simple) {
+ }
+
+ public void testList(List any) {
+ }
+
+ public void testSimpleListString(List<String> simple) {
+ }
+
+ public List<String> testReturnSimpleListString() {
+ return null;
+ }
+
+ public void testListByteArray(List<byte[]> byteArrayList) {
+ }
+
+ public void testListWildcard(List<?> wild) {
+ }
+
+ public void testComplex(ComplexNumber complex) {
+ }
+
+ public void testOtherPackage(OtherPojo pojo) {
+ }
+
+ public void testByteArray(byte[] byteArray) {
+ }
+
+ public void testBaseExtension(ExtClass ext) {
+ }
+
+ public void testServiceReference(ServiceReference ref) {
+ }
+
+ public void testException() throws Exception {
+ }
+
+ public DataObject testDynamicSDO() {
+ return null;
+ }
+
+ public void testWebParamSDO(DataObject myObject) {
+ }
+
+ public void testWebParamSDOArray(DataObject[] myArray) {
+ }
+/*
+
+ public void testWebParamBare(int simple) {
+ }
+
+ public void testWebParamBareArray(int[] array) {
+ }
+*/
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/datatypes/impl/GetDataServiceWithoutExceptionImpl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/datatypes/impl/GetDataServiceWithoutExceptionImpl.java new file mode 100644 index 0000000000..d28df3fbdd --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/datatypes/impl/GetDataServiceWithoutExceptionImpl.java @@ -0,0 +1,53 @@ +/*
+ * 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 datatypes.impl;
+
+import commonj.sdo.DataObject;
+import java.util.List;
+
+import datatypes.GetDataServiceWithoutException;
+
+public class GetDataServiceWithoutExceptionImpl implements GetDataServiceWithoutException {
+
+ public byte[] getMessage(String paramString) {
+ return null;
+ }
+
+ public List<byte[]> getMessageList(String paramString) {
+ return null;
+ }
+
+ public DataObject getMessageSDO(String paramString) {
+ return null;
+ }
+
+ public List<DataObject> getMessageListSDOList(String paramString) {
+ return null;
+ }
+
+ public DataObject[] getMessageListSDOArr(String paramString) {
+ return null;
+ }
+
+ public DataObject getMessageListSDOinSDO(String paramString) {
+ return null;
+ }
+}
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/helloworld/ABean.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/helloworld/ABean.java new file mode 100644 index 0000000000..2d15ea2334 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/helloworld/ABean.java @@ -0,0 +1,65 @@ +/*
+ * 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 helloworld;
+
+import yetanotherpackage.DBean;
+import anotherpackage.BBean;
+
+
+
+public class ABean {
+
+ protected String field1;
+ protected String field2;
+ protected BBean field3;
+ protected DBean field4;
+
+ public String getField1() {
+ return field1;
+ }
+
+ public void setField1(String field1) {
+ this.field1 = field1;
+ }
+
+ public String getField2() {
+ return field2;
+ }
+
+ public void setField2(String field2) {
+ this.field2 = field2;
+ }
+
+ public BBean getField3() {
+ return field3;
+ }
+
+ public void setField3(BBean field3) {
+ this.field3 = field3;
+ }
+
+ public DBean getField4() {
+ return field4;
+ }
+
+ public void setField4(DBean field4) {
+ this.field4 = field4;
+ }
+}
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/helloworld/HelloWorldClientImpl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/helloworld/HelloWorldClientImpl.java new file mode 100644 index 0000000000..0ec380b935 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/helloworld/HelloWorldClientImpl.java @@ -0,0 +1,85 @@ +/*
+ * 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 helloworld;
+
+
+import org.oasisopen.sca.annotation.Reference;
+import org.oasisopen.sca.annotation.Service;
+
+import yetanotherpackage.AnotherHelloWorldException;
+import yetanotherpackage.DBean;
+
+import anotherpackage.BBean;
+import anotherpackage.CBean;
+
+/**
+ * This class implements the HelloWorld service.
+ */
+@Service(HelloWorldService.class)
+public class HelloWorldClientImpl implements HelloWorldService {
+
+ @Reference
+ protected HelloWorldService hwService;
+
+ public String getGreetings(String name) {
+ return "Hello " + hwService.getGreetings(name);
+ }
+
+ public String getGreetingsBean(ABean bean){
+ return "Hello " + hwService.getGreetingsBean(bean);
+ }
+
+ public String getGreetingsBeanArray(ABean[] bean){
+ return "Hello " + hwService.getGreetingsBeanArray(bean);
+ }
+
+ /*
+ public String getGreetingsBeanVector(Vector<ABean> bean){
+ return "Hello " + bean.get(0).getField1() + " " + bean.get(0).getField2();
+ }
+ */
+
+ public String getGreetingsBBean(BBean bean){
+ return "Hello " + hwService.getGreetingsBBean(bean);
+ }
+
+ public String getGreetingsCBean(CBean bean){
+ return "Hello " + hwService.getGreetingsCBean(bean);
+ }
+
+ public String getGreetingsDBean(DBean bean){
+ return "Hello " + hwService.getGreetingsDBean(bean);
+ }
+
+ public String getGreetingsException(String input) throws HelloWorldException {
+ return hwService.getGreetingsException(input);
+ }
+
+ public String getGreetingsAnotherException(String input) throws AnotherHelloWorldException {
+ return hwService.getGreetingsAnotherException(input);
+ }
+
+ public byte[] getGreetingsByteArray(byte[] input) {
+ return input;
+ }
+
+ public ABean getGreetingsABeanMultiple(ABean bean1, ABean bean2){
+ return hwService.getGreetingsABeanMultiple(bean1, bean2);
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/helloworld/HelloWorldException.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/helloworld/HelloWorldException.java new file mode 100644 index 0000000000..29b0d11fdb --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/helloworld/HelloWorldException.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 helloworld;
+
+public class HelloWorldException extends Exception {
+
+ public HelloWorldException() {
+ }
+
+ public HelloWorldException(String message) {
+ super(message);
+ }
+
+ public HelloWorldException(Throwable cause) {
+ super(cause);
+ }
+
+ public HelloWorldException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+/*
+ public HelloWorldException(String message, String errorCode) {
+ super(message, errorCode);
+ }
+*/
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/helloworld/HelloWorldImpl.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/helloworld/HelloWorldImpl.java new file mode 100644 index 0000000000..e4dd7523f2 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/helloworld/HelloWorldImpl.java @@ -0,0 +1,87 @@ +/*
+ * 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 helloworld;
+
+import javax.jws.WebService;
+
+import org.oasisopen.sca.annotation.Service;
+
+import yetanotherpackage.DBean;
+import yetanotherpackage.AnotherHelloWorldException;
+
+import anotherpackage.BBean;
+import anotherpackage.CBean;
+
+/**
+ * This class implements the HelloWorld service.
+ */
+@WebService
+@Service(HelloWorldService.class)
+public class HelloWorldImpl implements HelloWorldService {
+
+ public String getGreetings(String name) {
+ return "Hello " + name;
+ }
+
+ public String getGreetingsBean(ABean bean) {
+ return "Hello " + bean.getField1() + " " + bean.getField2()
+ + bean.getField3().getField1() + " "
+ + bean.getField3().getField2();
+ }
+
+ public String getGreetingsBeanArray(ABean[] bean) {
+ return "Hello " + bean[0].getField1() + " " + bean[0].getField2();
+ }
+
+ /*
+ * public String getGreetingsBeanVector(Vector<ABean> bean){ return "Hello "
+ * + bean.get(0).getField1() + " " + bean.get(0).getField2(); }
+ */
+
+ public String getGreetingsBBean(BBean bean) {
+ return "Hello " + bean.getField1() + " " + bean.getField2();
+ }
+
+ public String getGreetingsCBean(CBean bean) {
+ return "Hello " + bean.getField1() + " " + bean.getField2();
+ }
+
+ public String getGreetingsDBean(DBean bean) {
+ return "Hello " + bean.getField1() + " " + bean.getField2() + " "
+ + bean.getField3().getField1() + " "
+ + bean.getField3().getField2();
+ }
+
+ public String getGreetingsException(String input) throws HelloWorldException {
+ throw new HelloWorldException("Hello " + input);
+ }
+
+ public String getGreetingsAnotherException(String input) throws AnotherHelloWorldException {
+ throw new AnotherHelloWorldException("Hello " + input);
+ }
+
+ public byte[] getGreetingsByteArray(byte[] input){
+ System.out.println(String.valueOf(input));
+ return input;
+ }
+
+ public ABean getGreetingsABeanMultiple(ABean bean1, ABean bean2){
+ return bean1;
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/helloworld/HelloWorldService.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/helloworld/HelloWorldService.java new file mode 100644 index 0000000000..aae8a6763c --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/helloworld/HelloWorldService.java @@ -0,0 +1,57 @@ +/*
+ * 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 helloworld;
+
+import javax.jws.WebService;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+import yetanotherpackage.AnotherHelloWorldException;
+import yetanotherpackage.DBean;
+
+import anotherpackage.BBean;
+import anotherpackage.CBean;
+
+/**
+ * This is the business interface of the HelloWorld greetings service.
+ */
+@WebService
+@Remotable
+public interface HelloWorldService {
+
+ // primitives
+ public String getGreetings(String name);
+ byte[] getGreetingsByteArray(byte[] input);
+ String getGreetingsException(String input) throws HelloWorldException;
+ String getGreetingsAnotherException(String input) throws AnotherHelloWorldException;
+
+ // simple bean configs
+ public String getGreetingsBean(ABean bean);
+ public String getGreetingsBeanArray(ABean[] bean);
+ public String getGreetingsBBean(BBean bean);
+ public String getGreetingsCBean(CBean bean);
+ public String getGreetingsDBean(DBean bean);
+
+ // more complex bean configs
+ public ABean getGreetingsABeanMultiple(ABean bean1, ABean bean2);
+
+ // collections
+ //public String getGreetingsBeanVector(Vector<ABean> bean);
+}
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/helloworld/package-info.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/helloworld/package-info.java new file mode 100644 index 0000000000..22583a95a3 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/helloworld/package-info.java @@ -0,0 +1,20 @@ +/*
+ * 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.
+ */
+@javax.xml.bind.annotation.XmlSchema(namespace="http://test")
+package helloworld;
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/other/EBean.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/other/EBean.java new file mode 100644 index 0000000000..5f097d53cb --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/other/EBean.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 other;
+
+import javax.xml.bind.annotation.XmlType;
+
+public class EBean {
+
+ protected String field1;
+ protected String field2;
+
+ public String getField1() {
+ return field1;
+ }
+
+ public void setField1(String field1) {
+ this.field1 = field1;
+ }
+
+ public String getField2() {
+ return field2;
+ }
+
+ public void setField2(String field2) {
+ this.field2 = field2;
+ }
+}
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/other/OtherPojo.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/other/OtherPojo.java new file mode 100644 index 0000000000..d23327913c --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/other/OtherPojo.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 other;
+
+public class OtherPojo {
+ private double real, imaginary;
+
+ public OtherPojo(double real, double imaginary) {
+ this.real = real;
+ this.imaginary = imaginary;
+ }
+
+ public OtherPojo() {
+ }
+
+ public double getReal() {
+ return real;
+ }
+
+ public void setReal(double real) {
+ this.real = real;
+ }
+
+ public double getImaginary() {
+ return imaginary;
+ }
+
+ public void setImaginary(double imaginary) {
+ this.imaginary = imaginary;
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/other/package-info.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/other/package-info.java new file mode 100644 index 0000000000..8fd41ce70b --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/other/package-info.java @@ -0,0 +1,23 @@ +/*
+ * 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.
+ */
+
+@XmlSchema(namespace = "http://other.jtest/")
+package other;
+
+import javax.xml.bind.annotation.XmlSchema;
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/yetanotherpackage/AnotherHelloWorldException.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/yetanotherpackage/AnotherHelloWorldException.java new file mode 100644 index 0000000000..669d9ba3a7 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/yetanotherpackage/AnotherHelloWorldException.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 yetanotherpackage;
+
+public class AnotherHelloWorldException extends Exception {
+
+ public AnotherHelloWorldException() {
+ }
+
+ public AnotherHelloWorldException(String message) {
+ super(message);
+ }
+
+ public AnotherHelloWorldException(Throwable cause) {
+ super(cause);
+ }
+
+ public AnotherHelloWorldException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+/*
+ public HelloWorldException(String message, String errorCode) {
+ super(message, errorCode);
+ }
+*/
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/yetanotherpackage/DBean.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/yetanotherpackage/DBean.java new file mode 100644 index 0000000000..fe4c28d817 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/yetanotherpackage/DBean.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 yetanotherpackage;
+
+import other.EBean;
+import anotherpackage.BBean;
+import anotherpackage.CBean;
+
+public class DBean {
+
+ protected String field1;
+ protected String field2;
+ protected BBean field3;
+ protected CBean field4;
+ protected EBean field5;
+
+ public String getField1() {
+ return field1;
+ }
+
+ public void setField1(String field1) {
+ this.field1 = field1;
+ }
+
+ public String getField2() {
+ return field2;
+ }
+
+ public void setField2(String field2) {
+ this.field2 = field2;
+ }
+
+ public BBean getField3() {
+ return field3;
+ }
+
+ public void setField3(BBean field3) {
+ this.field3 = field3;
+ }
+
+ public CBean getField4() {
+ return field4;
+ }
+
+ public void setField4(CBean field4) {
+ this.field4 = field4;
+ }
+
+ public EBean getField5() {
+ return field5;
+ }
+
+ public void setField5(EBean field5) {
+ this.field5 = field5;
+ }
+}
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/yetyetanotherpackage/FBean.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/yetyetanotherpackage/FBean.java new file mode 100644 index 0000000000..2ea36b3ffa --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/yetyetanotherpackage/FBean.java @@ -0,0 +1,42 @@ +/*
+ * 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 yetyetanotherpackage;
+
+public class FBean {
+
+ protected String field1;
+ protected String field2;
+
+ public String getField1() {
+ return field1;
+ }
+
+ public void setField1(String field1) {
+ this.field1 = field1;
+ }
+
+ public String getField2() {
+ return field2;
+ }
+
+ public void setField2(String field2) {
+ this.field2 = field2;
+ }
+}
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/yetyetanotherpackage/package-info.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/yetyetanotherpackage/package-info.java new file mode 100644 index 0000000000..1472d7c4b8 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/java/yetyetanotherpackage/package-info.java @@ -0,0 +1,23 @@ +/*
+ * 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.
+ */
+
+@XmlSchema(namespace = "http://wahooo/")
+package yetyetanotherpackage;
+
+import javax.xml.bind.annotation.XmlSchema;
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/DataTypes.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/DataTypes.composite new file mode 100644 index 0000000000..991b9078d9 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/DataTypes.composite @@ -0,0 +1,38 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912" + targetNamespace="http://verify.wsdlgen/" + name="DataTypes"> + + <component name="DataTypes"> + <implementation.java class="datatypes.impl.DataTypesImpl" /> + <service name="DataTypes"> + <binding.ws uri="http://localhost:8085/DataTypes" /> + </service> + </component> + + <component name="DynamicSDO"> + <implementation.java class="datatypes.impl.GetDataServiceWithoutExceptionImpl" /> + <service name="GetDataServiceWithoutException"> + <binding.ws uri="http://localhost:8085/GetDataServiceWithoutException" /> + </service> + </component> + +</composite> diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..34da25216d --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:hw="http://helloworld">
+ <deployable composite="hw:helloworldws" />
+</contribution>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/definitions.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/definitions.xml new file mode 100644 index 0000000000..b5679ed329 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/definitions.xml @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="ASCII"?>
+<!--
+ * 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.
+-->
+<sca:definitions xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1">
+
+ <sca:intent name="transport"
+ constrains="sca:binding.ws">
+ <sca:description>
+ The general intent that a transport is available over which SOAP messages flow
+ </sca:description>
+ </sca:intent>
+
+
+ <sca:intent name="transport.http">
+ <sca:description>
+ An HTTP transport is required
+ </sca:description>
+ </sca:intent>
+
+ <!--
+ how does the following relate to confidentiality intents
+ does confidentiality become a profile intent?
+ -->
+ <sca:intent name="transport.https">
+ <sca:description>
+ An HTTPS transport is required
+ </sca:description>
+ </sca:intent>
+
+ </sca:definitions>
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/helloworld.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/helloworld.composite new file mode 100644 index 0000000000..52b957d4a6 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/helloworld.composite @@ -0,0 +1,55 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://helloworld"
+ xmlns:hw="http://helloworld"
+ name="helloworldws">
+
+ <component name="HelloWorldClientComponent">
+ <implementation.java class="helloworld.HelloWorldClientImpl" />
+ <service name="HelloWorldService">
+ <binding.sca/>
+ </service>
+ <reference name="hwService">
+ <binding.ws uri="http://localhost:8085/HelloWorldServiceComponent"/>
+ </reference>
+ </component>
+
+ <component name="HelloWorldServiceComponent">
+ <implementation.java class="helloworld.HelloWorldImpl" />
+ <service name="HelloWorldService">
+ <binding.ws uri="http://localhost:8085/HelloWorldServiceComponent"/>
+ </service>
+ </component>
+
+ <!--
+ test compatibility between the JAXWS-RI wsdlgen'd WSDL and the Tuscany
+ gen'd WSDL by setting the service interface to the RI WSDL. Tuscany should
+ generate a WSDL for the component and compare the two for compatibility
+ -->
+ <component name="HelloWorldServiceCompatibilityComponent">
+ <implementation.java class="helloworld.HelloWorldImpl" />
+ <service name="HelloWorldService">
+ <interface.wsdl interface="http://helloworld/#wsdl.interface(HelloWorldImpl)"/>
+ <binding.ws uri="http://localhost:8085/HelloWorldServiceCompatibilityComponent"/>
+ </service>
+ </component>
+</composite>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/jaxws/wsgen/wsdl/HelloWorldImplService.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/jaxws/wsgen/wsdl/HelloWorldImplService.wsdl new file mode 100644 index 0000000000..e544beefbf --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/jaxws/wsgen/wsdl/HelloWorldImplService.wsdl @@ -0,0 +1,251 @@ +<?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.3-b02-. -->
+<definitions targetNamespace="http://helloworld/" name="HelloWorldImplService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://helloworld/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+ <types>
+ <xsd:schema>
+ <xsd:import namespace="http://wahooo/" schemaLocation="HelloWorldImplService_schema1.xsd"/>
+ </xsd:schema>
+ <xsd:schema>
+ <xsd:import namespace="http://test" schemaLocation="HelloWorldImplService_schema2.xsd"/>
+ </xsd:schema>
+ <xsd:schema>
+ <xsd:import namespace="http://other.jtest/" schemaLocation="HelloWorldImplService_schema3.xsd"/>
+ </xsd:schema>
+ <xsd:schema>
+ <xsd:import namespace="http://helloworld/" schemaLocation="HelloWorldImplService_schema4.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="getGreetingsBean">
+ <part name="parameters" element="tns:getGreetingsBean"/>
+ </message>
+ <message name="getGreetingsBeanResponse">
+ <part name="parameters" element="tns:getGreetingsBeanResponse"/>
+ </message>
+ <message name="getGreetingsBeanArray">
+ <part name="parameters" element="tns:getGreetingsBeanArray"/>
+ </message>
+ <message name="getGreetingsBeanArrayResponse">
+ <part name="parameters" element="tns:getGreetingsBeanArrayResponse"/>
+ </message>
+ <message name="getGreetingsBBean">
+ <part name="parameters" element="tns:getGreetingsBBean"/>
+ </message>
+ <message name="getGreetingsBBeanResponse">
+ <part name="parameters" element="tns:getGreetingsBBeanResponse"/>
+ </message>
+ <message name="getGreetingsCBean">
+ <part name="parameters" element="tns:getGreetingsCBean"/>
+ </message>
+ <message name="getGreetingsCBeanResponse">
+ <part name="parameters" element="tns:getGreetingsCBeanResponse"/>
+ </message>
+ <message name="getGreetingsDBean">
+ <part name="parameters" element="tns:getGreetingsDBean"/>
+ </message>
+ <message name="getGreetingsDBeanResponse">
+ <part name="parameters" element="tns:getGreetingsDBeanResponse"/>
+ </message>
+ <message name="getGreetingsException">
+ <part name="parameters" element="tns:getGreetingsException"/>
+ </message>
+ <message name="getGreetingsExceptionResponse">
+ <part name="parameters" element="tns:getGreetingsExceptionResponse"/>
+ </message>
+ <message name="HelloWorldException">
+ <part name="fault" element="tns:HelloWorldException"/>
+ </message>
+ <message name="getGreetingsAnotherException">
+ <part name="parameters" element="tns:getGreetingsAnotherException"/>
+ </message>
+ <message name="getGreetingsAnotherExceptionResponse">
+ <part name="parameters" element="tns:getGreetingsAnotherExceptionResponse"/>
+ </message>
+ <message name="AnotherHelloWorldException">
+ <part name="fault" element="tns:AnotherHelloWorldException"/>
+ </message>
+ <message name="getGreetingsByteArray">
+ <part name="parameters" element="tns:getGreetingsByteArray"/>
+ </message>
+ <message name="getGreetingsByteArrayResponse">
+ <part name="parameters" element="tns:getGreetingsByteArrayResponse"/>
+ </message>
+ <message name="getGreetingsABeanMultiple">
+ <part name="parameters" element="tns:getGreetingsABeanMultiple"/>
+ </message>
+ <message name="getGreetingsABeanMultipleResponse">
+ <part name="parameters" element="tns:getGreetingsABeanMultipleResponse"/>
+ </message>
+ <portType name="HelloWorldImpl">
+ <operation name="getGreetings">
+ <input message="tns:getGreetings"/>
+ <output message="tns:getGreetingsResponse"/>
+ </operation>
+ <operation name="getGreetingsBean">
+ <input message="tns:getGreetingsBean"/>
+ <output message="tns:getGreetingsBeanResponse"/>
+ </operation>
+ <operation name="getGreetingsBeanArray">
+ <input message="tns:getGreetingsBeanArray"/>
+ <output message="tns:getGreetingsBeanArrayResponse"/>
+ </operation>
+ <operation name="getGreetingsBBean">
+ <input message="tns:getGreetingsBBean"/>
+ <output message="tns:getGreetingsBBeanResponse"/>
+ </operation>
+ <operation name="getGreetingsCBean">
+ <input message="tns:getGreetingsCBean"/>
+ <output message="tns:getGreetingsCBeanResponse"/>
+ </operation>
+ <operation name="getGreetingsDBean">
+ <input message="tns:getGreetingsDBean"/>
+ <output message="tns:getGreetingsDBeanResponse"/>
+ </operation>
+ <operation name="getGreetingsException">
+ <input message="tns:getGreetingsException"/>
+ <output message="tns:getGreetingsExceptionResponse"/>
+ <fault message="tns:HelloWorldException" name="HelloWorldException"/>
+ </operation>
+ <operation name="getGreetingsAnotherException">
+ <input message="tns:getGreetingsAnotherException"/>
+ <output message="tns:getGreetingsAnotherExceptionResponse"/>
+ <fault message="tns:AnotherHelloWorldException" name="AnotherHelloWorldException"/>
+ </operation>
+ <operation name="getGreetingsByteArray">
+ <input message="tns:getGreetingsByteArray"/>
+ <output message="tns:getGreetingsByteArrayResponse"/>
+ </operation>
+ <operation name="getGreetingsABeanMultiple">
+ <input message="tns:getGreetingsABeanMultiple"/>
+ <output message="tns:getGreetingsABeanMultipleResponse"/>
+ </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="getGreetingsBean">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="getGreetingsBeanArray">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="getGreetingsBBean">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="getGreetingsCBean">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="getGreetingsDBean">
+ <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="HelloWorldException">
+ <soap:fault name="HelloWorldException" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="getGreetingsAnotherException">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ <fault name="AnotherHelloWorldException">
+ <soap:fault name="AnotherHelloWorldException" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="getGreetingsByteArray">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="getGreetingsABeanMultiple">
+ <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/HelloWorldServiceComponent"/>
+ </port>
+ </service>
+</definitions>
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/jaxws/wsgen/wsdl/HelloWorldImplService_schema1.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/jaxws/wsgen/wsdl/HelloWorldImplService_schema1.xsd new file mode 100644 index 0000000000..ff5f9c8f8a --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/jaxws/wsgen/wsdl/HelloWorldImplService_schema1.xsd @@ -0,0 +1,29 @@ +<?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://wahooo/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:complexType name="fBean">
+ <xs:sequence>
+ <xs:element name="field1" type="xs:string" minOccurs="0"/>
+ <xs:element name="field2" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/jaxws/wsgen/wsdl/HelloWorldImplService_schema2.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/jaxws/wsgen/wsdl/HelloWorldImplService_schema2.xsd new file mode 100644 index 0000000000..9e88adc607 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/jaxws/wsgen/wsdl/HelloWorldImplService_schema2.xsd @@ -0,0 +1,33 @@ +<?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://test" xmlns:ns1="http://helloworld/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:import namespace="http://helloworld/" schemaLocation="HelloWorldImplService_schema4.xsd"/>
+
+ <xs:complexType name="aBean">
+ <xs:sequence>
+ <xs:element name="field1" type="xs:string" minOccurs="0"/>
+ <xs:element name="field2" type="xs:string" minOccurs="0"/>
+ <xs:element name="field3" type="ns1:bBean" minOccurs="0"/>
+ <xs:element name="field4" type="ns1:dBean" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/jaxws/wsgen/wsdl/HelloWorldImplService_schema3.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/jaxws/wsgen/wsdl/HelloWorldImplService_schema3.xsd new file mode 100644 index 0000000000..01e04822c0 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/jaxws/wsgen/wsdl/HelloWorldImplService_schema3.xsd @@ -0,0 +1,29 @@ +<?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://other.jtest/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:complexType name="eBean">
+ <xs:sequence>
+ <xs:element name="field1" type="xs:string" minOccurs="0"/>
+ <xs:element name="field2" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+</xs:schema>
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/jaxws/wsgen/wsdl/HelloWorldImplService_schema4.xsd b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/jaxws/wsgen/wsdl/HelloWorldImplService_schema4.xsd new file mode 100644 index 0000000000..95c82cb269 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/jaxws/wsgen/wsdl/HelloWorldImplService_schema4.xsd @@ -0,0 +1,237 @@ +<?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://helloworld/" xmlns:ns2="http://wahooo/" xmlns:ns1="http://test" xmlns:ns3="http://other.jtest/" xmlns:tns="http://helloworld/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <xs:import namespace="http://test" schemaLocation="HelloWorldImplService_schema2.xsd"/>
+
+ <xs:import namespace="http://wahooo/" schemaLocation="HelloWorldImplService_schema1.xsd"/>
+
+ <xs:import namespace="http://other.jtest/" schemaLocation="HelloWorldImplService_schema3.xsd"/>
+
+ <xs:element name="AnotherHelloWorldException" type="tns:AnotherHelloWorldException"/>
+
+ <xs:element name="HelloWorldException" type="tns:HelloWorldException"/>
+
+ <xs:element name="getGreetings" type="tns:getGreetings"/>
+
+ <xs:element name="getGreetingsABeanMultiple" type="tns:getGreetingsABeanMultiple"/>
+
+ <xs:element name="getGreetingsABeanMultipleResponse" type="tns:getGreetingsABeanMultipleResponse"/>
+
+ <xs:element name="getGreetingsAnotherException" type="tns:getGreetingsAnotherException"/>
+
+ <xs:element name="getGreetingsAnotherExceptionResponse" type="tns:getGreetingsAnotherExceptionResponse"/>
+
+ <xs:element name="getGreetingsBBean" type="tns:getGreetingsBBean"/>
+
+ <xs:element name="getGreetingsBBeanResponse" type="tns:getGreetingsBBeanResponse"/>
+
+ <xs:element name="getGreetingsBean" type="tns:getGreetingsBean"/>
+
+ <xs:element name="getGreetingsBeanArray" type="tns:getGreetingsBeanArray"/>
+
+ <xs:element name="getGreetingsBeanArrayResponse" type="tns:getGreetingsBeanArrayResponse"/>
+
+ <xs:element name="getGreetingsBeanResponse" type="tns:getGreetingsBeanResponse"/>
+
+ <xs:element name="getGreetingsByteArray" type="tns:getGreetingsByteArray"/>
+
+ <xs:element name="getGreetingsByteArrayResponse" type="tns:getGreetingsByteArrayResponse"/>
+
+ <xs:element name="getGreetingsCBean" type="tns:getGreetingsCBean"/>
+
+ <xs:element name="getGreetingsCBeanResponse" type="tns:getGreetingsCBeanResponse"/>
+
+ <xs:element name="getGreetingsDBean" type="tns:getGreetingsDBean"/>
+
+ <xs:element name="getGreetingsDBeanResponse" type="tns:getGreetingsDBeanResponse"/>
+
+ <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="HelloWorldException">
+ <xs:sequence>
+ <xs:element name="message" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsBeanArray">
+ <xs:sequence>
+ <xs:element name="arg0" type="ns1:aBean" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="bBean">
+ <xs:sequence>
+ <xs:element name="field1" type="xs:string" minOccurs="0"/>
+ <xs:element name="field2" type="xs:string" minOccurs="0"/>
+ <xs:element name="field3" type="ns2:fBean" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="dBean">
+ <xs:sequence>
+ <xs:element name="field1" type="xs:string" minOccurs="0"/>
+ <xs:element name="field2" type="xs:string" minOccurs="0"/>
+ <xs:element name="field3" type="tns:bBean" minOccurs="0"/>
+ <xs:element name="field4" minOccurs="0">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="field1" type="xs:string" minOccurs="0"/>
+ <xs:element name="field2" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="field5" type="ns3:eBean" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsBeanArrayResponse">
+ <xs:sequence>
+ <xs:element name="return" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsByteArray">
+ <xs:sequence>
+ <xs:element name="arg0" type="xs:base64Binary" nillable="true" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsByteArrayResponse">
+ <xs:sequence>
+ <xs:element name="return" type="xs:base64Binary" nillable="true" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsBBean">
+ <xs:sequence>
+ <xs:element name="arg0" type="tns:bBean" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsBBeanResponse">
+ <xs:sequence>
+ <xs:element name="return" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsCBean">
+ <xs:sequence>
+ <xs:element name="arg0" minOccurs="0">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="field1" type="xs:string" minOccurs="0"/>
+ <xs:element name="field2" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsCBeanResponse">
+ <xs:sequence>
+ <xs:element name="return" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsAnotherException">
+ <xs:sequence>
+ <xs:element name="arg0" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsAnotherExceptionResponse">
+ <xs:sequence>
+ <xs:element name="return" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="AnotherHelloWorldException">
+ <xs:sequence>
+ <xs:element name="message" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsABeanMultiple">
+ <xs:sequence>
+ <xs:element name="arg0" type="ns1:aBean" minOccurs="0"/>
+ <xs:element name="arg1" type="ns1:aBean" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsABeanMultipleResponse">
+ <xs:sequence>
+ <xs:element name="return" type="ns1:aBean" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsBean">
+ <xs:sequence>
+ <xs:element name="arg0" type="ns1:aBean" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsBeanResponse">
+ <xs:sequence>
+ <xs:element name="return" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsDBean">
+ <xs:sequence>
+ <xs:element name="arg0" type="tns:dBean" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="getGreetingsDBeanResponse">
+ <xs:sequence>
+ <xs:element name="return" 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:schema>
+
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/jaxws/wsgen/wsdl/README b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/jaxws/wsgen/wsdl/README new file mode 100644 index 0000000000..0830253f0a --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/main/resources/jaxws/wsgen/wsdl/README @@ -0,0 +1,2 @@ +The result of the jaxws-maven-plugin copied manually from ./target
+and updated to include the correct port URL and license headers
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/test/java/datatypes/BaseFramework.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/test/java/datatypes/BaseFramework.java new file mode 100644 index 0000000000..579d01c08b --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/test/java/datatypes/BaseFramework.java @@ -0,0 +1,266 @@ +/*
+ * 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 datatypes;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.wsdl.Binding;
+import javax.wsdl.Definition;
+import javax.wsdl.Fault;
+import javax.wsdl.Input;
+import javax.wsdl.Message;
+import javax.wsdl.Operation;
+import javax.wsdl.Output;
+import javax.wsdl.Part;
+import javax.wsdl.Port;
+import javax.wsdl.PortType;
+import javax.wsdl.Service;
+import javax.wsdl.Types;
+import javax.wsdl.extensions.ExtensibilityElement;
+import javax.wsdl.extensions.schema.Schema;
+import javax.wsdl.factory.WSDLFactory;
+import javax.wsdl.xml.WSDLReader;
+import javax.xml.namespace.QName;
+import javax.xml.transform.Result;
+import javax.xml.transform.Source;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.apache.tuscany.sca.TuscanyRuntime;
+import org.apache.tuscany.sca.binding.ws.wsdlgen.WSDLServiceGenerator;
+import static org.junit.Assert.assertNotNull;
+
+import org.w3c.dom.Attr;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+
+/**
+ * Test ?wsdl works and that the returned WSDL is correct
+ *
+ * @version $Rev: 814373 $ $Date: 2009-09-13 19:06:29 +0100 (Sun, 13 Sep 2009) $
+ */
+public class BaseFramework {
+ private static final String SCHEMA_NS = "http://www.w3.org/2001/XMLSchema";
+ private static final String SCHEMA_NAME = "schema";
+ private static final QName SCHEMA_QNAME = new QName(SCHEMA_NS, SCHEMA_NAME);
+
+ private static Map<String, Element> schemaMap;
+ private static PortType portType;
+ private static boolean printWSDL = true;
+ private static org.apache.tuscany.sca.Node node;
+
+ private Map<String, String> prefixMap;
+
+ public BaseFramework() {
+ // create a new instance of this for each of the tests
+ prefixMap = new HashMap<String, String>();
+ }
+
+ protected Element parameterElement(String methodName) {
+ Operation op = portType.getOperation(methodName, null, null);
+ Input in = op.getInput();
+ Message msg = in.getMessage();
+ Part part = msg.getPart(msg.getQName().getLocalPart());
+ if (part == null) {
+ // bare parameter style
+ part = msg.getPart("arg0");
+ return bareElement(part.getElementName());
+ } else {
+ return schemaElement(part.getElementName());
+ }
+ }
+
+ protected String parameterType(String methodName) {
+ return parameterElement(methodName).getAttribute("type");
+ }
+
+ protected Element returnElement(String methodName) {
+ Operation op = portType.getOperation(methodName, null, null);
+ Output out = op.getOutput();
+ Message msg = out.getMessage();
+ Part part = msg.getPart(msg.getQName().getLocalPart());
+ QName elementQName = part.getElementName();
+ return schemaElement(elementQName);
+ }
+
+ protected String returnType(String methodName) {
+ return returnElement(methodName).getAttribute("type");
+ }
+
+ protected Element faultElement(String methodName, String faultName) {
+ Operation op = portType.getOperation(methodName, null, null);
+ Fault fault = op.getFault(faultName);
+ Message msg = fault.getMessage();
+ Part part = msg.getPart(msg.getQName().getLocalPart());
+ QName elementQName = part.getElementName();
+ return schemaElement(elementQName);
+ }
+
+ protected String faultType(String methodName, String faultName) {
+ return faultElement(methodName, faultName).getAttribute("type");
+ }
+
+ private Element bareElement(QName elementQName) {
+ // find schema definition for wrapper element
+ Element schema = schemaMap.get(elementQName.getNamespaceURI());
+
+ // find namespace prefixes for this schema definition
+ NamedNodeMap attrNodes = schema.getAttributes();
+ for (int i = 0; i < attrNodes.getLength(); i++) {
+ Attr attr = (Attr)attrNodes.item(i);
+ String attrName = attr.getName();
+ if (attrName.startsWith("xmlns:")) {
+ prefixMap.put(attrName.substring(6), attr.getValue());
+ }
+ }
+
+ // find wrapper element definition in schema
+ String elementName = elementQName.getLocalPart();
+ Element wrapper = null;
+ NodeList childNodes = schema.getElementsByTagNameNS(SCHEMA_NS, "element");
+ for (int i = 0; i < childNodes.getLength(); i++) {
+ Node childNode = childNodes.item(i);
+ if (childNode instanceof Element) {
+ String name = ((Element)childNode).getAttribute("name");
+ if (elementName.equals(name)) {
+ wrapper = (Element)childNode;
+ break;
+ }
+ }
+ }
+ return wrapper;
+ }
+
+ private Element schemaElement(QName elementQName) {
+ Element wrapper = bareElement(elementQName);
+
+ // find type definition for wrapper element
+ String typeName = wrapper.getAttribute("type");
+ Element wrapperType = null;
+ if ("".equals(typeName)) {
+ NodeList childNodes = wrapper.getElementsByTagNameNS(SCHEMA_NS, "complexType");
+ wrapperType = (Element)childNodes.item(0);
+ } else {
+ wrapperType = typeDefinition(typeName);
+ }
+
+ return firstChild(wrapperType);
+ }
+
+ protected Element typeDefinition(String typeName) {
+ String typePrefix = typeName.substring(0, typeName.indexOf(":"));
+ String typeLocalName = typeName.substring(typeName.indexOf(":") + 1);
+ Element typeSchema = schemaMap.get(prefixMap.get(typePrefix));
+ Element typeElement = null;
+ NodeList childNodes = typeSchema.getElementsByTagNameNS(SCHEMA_NS, "complexType");
+ for (int i = 0; i < childNodes.getLength(); i++) {
+ Node childNode = childNodes.item(i);
+ if (childNode instanceof Element) {
+ String name = ((Element)childNode).getAttribute("name");
+ if (typeLocalName.equals(name)) {
+ typeElement = (Element)childNode;
+ break;
+ }
+ }
+ }
+ return typeElement;
+ }
+
+ protected Element firstChild(Element complexType) {
+ // find xs:sequence child element
+ NodeList childNodes = complexType.getElementsByTagNameNS(SCHEMA_NS, "sequence");
+ Element sequence = (Element)childNodes.item(0);
+
+ // find first xs:element child element
+ childNodes = sequence.getElementsByTagNameNS(SCHEMA_NS, "element");
+ return (Element)childNodes.item(0);
+ }
+
+ protected Element extensionElement(Element complexType) {
+ // find xs:complexContent child element
+ NodeList childNodes = complexType.getElementsByTagNameNS(SCHEMA_NS, "complexContent");
+ Element complexContent = (Element)childNodes.item(0);
+
+ // find first xs:extension child element
+ childNodes = complexContent.getElementsByTagNameNS(SCHEMA_NS, "extension");
+ return (Element)childNodes.item(0);
+ }
+
+ private static void readWSDL(String serviceName) throws Exception {
+ WSDLReader wsdlReader = WSDLFactory.newInstance().newWSDLReader();
+ wsdlReader.setFeature("javax.wsdl.verbose",false);
+ wsdlReader.setFeature("javax.wsdl.importDocuments",true);
+
+ Definition definition = wsdlReader.readWSDL("http://localhost:8085/" + serviceName + "?wsdl");
+ assertNotNull(definition);
+
+ // find portType
+ Service service = definition.getService(new QName("http://datatypes/", serviceName));
+ Port port = service.getPort(serviceName + "SOAP11Port");
+ Binding binding = port.getBinding();
+ portType = binding.getPortType();
+
+ // find schema definitions
+ Types types = definition.getTypes();
+ schemaMap = new HashMap<String, Element>();
+ for (Object ext : types.getExtensibilityElements()) {
+ ExtensibilityElement extElement = (ExtensibilityElement)ext;
+ if (SCHEMA_QNAME.equals(extElement.getElementType())) {
+ if (extElement instanceof Schema) {
+ Element schemaElement = ((Schema)extElement).getElement();
+ schemaMap.put(schemaElement.getAttribute("targetNamespace"), schemaElement);
+ }
+ }
+ }
+ }
+
+ /*
+ * Used for debugging DOM problems
+ */
+ private void printDOM(Node node){
+ try {
+ Transformer transformer = TransformerFactory.newInstance().newTransformer();
+ Source source = new DOMSource(node);
+ Result result = new StreamResult(System.out);
+ transformer.transform(source, result);
+ } catch (Exception ex){
+ ex.printStackTrace();
+ }
+ }
+
+ protected static void start(String serviceName) throws Exception {
+ WSDLServiceGenerator.printWSDL = printWSDL;
+ node = TuscanyRuntime.newInstance().createNode("default");
+ node.installContribution("datatypescontrib", "target/classes", null, null);
+ node.startComposite("datatypescontrib", "DataTypes.composite");
+ printWSDL = false; // print WSDL once only
+ readWSDL(serviceName);
+ }
+
+ protected static void stop() throws Exception {
+ node.stop();
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/test/java/datatypes/DataTypesTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/test/java/datatypes/DataTypesTestCase.java new file mode 100644 index 0000000000..48e8b635fe --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/test/java/datatypes/DataTypesTestCase.java @@ -0,0 +1,186 @@ +/*
+ * 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 datatypes;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.w3c.dom.Element;
+import static org.junit.Assert.assertEquals;
+
+/**
+ * Test ?wsdl works and that the returned WSDL is correct
+ *
+ * @version $Rev: 814373 $ $Date: 2009-09-13 19:06:29 +0100 (Sun, 13 Sep 2009) $
+ */
+public class DataTypesTestCase extends BaseFramework {
+
+ @Test
+ public void testSimpleInt() throws Exception {
+ assertEquals("xs:int", parameterType("testSimpleInt"));
+ }
+
+ @Test
+ public void testSimpleArrayInt() throws Exception {
+ Element paramElement = parameterElement("testSimpleArrayInt");
+ assertEquals("xs:int", paramElement.getAttribute("type"));
+ assertEquals("unbounded", paramElement.getAttribute("maxOccurs"));
+ }
+
+ @Test
+ public void testSimpleMultiArrayInt() throws Exception {
+ Element paramElement = parameterElement("testSimpleMultiArrayInt");
+ // prefix name can vary, so compare only the fixed parts
+ assertEquals("ns", paramElement.getAttribute("type").substring(0, 2));
+ assertEquals(":intArray", paramElement.getAttribute("type").substring(3));
+ assertEquals("unbounded", paramElement.getAttribute("maxOccurs"));
+ }
+
+ @Test
+ public void testSimpleMulti3ArrayInt() throws Exception {
+ Element paramElement = parameterElement("testSimpleMulti3ArrayInt");
+ // prefix name can vary, so compare only the fixed parts
+ assertEquals("ns", paramElement.getAttribute("type").substring(0, 2));
+ assertEquals(":intArrayArray", paramElement.getAttribute("type").substring(3));
+ assertEquals("unbounded", paramElement.getAttribute("maxOccurs"));
+ }
+
+ @Test
+ public void testList() throws Exception {
+ Element paramElement = parameterElement("testList");
+ assertEquals("xs:anyType", paramElement.getAttribute("type"));
+ assertEquals("unbounded", paramElement.getAttribute("maxOccurs"));
+ }
+
+ @Test
+ public void testSimpleListString() throws Exception {
+ Element paramElement = parameterElement("testSimpleListString");
+ assertEquals("xs:string", paramElement.getAttribute("type"));
+ assertEquals("unbounded", paramElement.getAttribute("maxOccurs"));
+ }
+
+ @Test
+ public void testReturnSimpleListString() throws Exception {
+ Element retElement = returnElement("testReturnSimpleListString");
+ assertEquals("xs:string", retElement.getAttribute("type"));
+ assertEquals("unbounded", retElement.getAttribute("maxOccurs"));
+ }
+
+ @Test
+ public void testListByteArray() throws Exception {
+ Element paramElement = parameterElement("testListByteArray");
+ assertEquals("xs:base64Binary", paramElement.getAttribute("type"));
+ assertEquals("unbounded", paramElement.getAttribute("maxOccurs"));
+ }
+
+ @Test
+ public void testListWildcard() throws Exception {
+ Element paramElement = parameterElement("testListWildcard");
+ assertEquals("xs:anyType", paramElement.getAttribute("type"));
+ assertEquals("unbounded", paramElement.getAttribute("maxOccurs"));
+ }
+
+ @Test
+ public void testComplex() throws Exception {
+ String paramType = parameterType("testComplex");
+ assertEquals("tns:complexNumber", paramType);
+ assertEquals("xs:double", firstChild(typeDefinition(paramType)).getAttribute("type"));
+ }
+
+ @Test
+ public void testOtherPackage() throws Exception {
+ String paramType = parameterType("testOtherPackage");
+ // prefix name can vary, so compare only the fixed parts
+ assertEquals("ns", paramType.substring(0, 2));
+ assertEquals(":otherPojo", paramType.substring(3));
+ assertEquals("xs:double", firstChild(typeDefinition(paramType)).getAttribute("type"));
+ }
+
+ @Test
+ public void testByteArray() throws Exception {
+ assertEquals("xs:base64Binary", parameterType("testByteArray"));
+ }
+
+ @Test
+ public void testBaseExtension() throws Exception {
+ String paramType = parameterType("testBaseExtension");
+ assertEquals("tns:extClass", paramType);
+ assertEquals("tns:baseClass", extensionElement(typeDefinition(paramType)).getAttribute("base"));
+ }
+
+ @Test
+ public void testServiceReference() throws Exception {
+ assertEquals("xs:anyType", parameterType("testServiceReference"));
+ }
+
+ @Test
+ public void testException() throws Exception {
+ assertEquals("xs:string", faultType("testException", "Exception"));
+ }
+
+ @Test
+ public void testDynamicSDO() throws Exception {
+ assertEquals("xs:anyType", returnType("testDynamicSDO"));
+ }
+
+ @Test
+ public void testWebParamSDO() throws Exception {
+ Element paramElement = parameterElement("testWebParamSDO");
+ assertEquals("foo", paramElement.getAttribute("name"));
+ assertEquals("xs:anyType", paramElement.getAttribute("type"));
+ }
+
+ @Test
+ public void testWebParamSDOArray() throws Exception {
+ Element paramElement = parameterElement("testWebParamSDOArray");
+ assertEquals("foo", paramElement.getAttribute("name"));
+ assertEquals("xs:anyType", paramElement.getAttribute("type"));
+ assertEquals("unbounded", paramElement.getAttribute("maxOccurs"));
+ }
+/*
+
+ @Test
+ public void testWebParamBare() throws Exception {
+ Element paramElement = parameterElement("testWebParamBare");
+ assertEquals("simpleInt", paramElement.getAttribute("name"));
+ assertEquals("xs:int", paramElement.getAttribute("type"));
+ }
+
+ @Test
+ @Ignore
+ public void testWebParamBareArray() throws Exception {
+ Element paramElement = parameterElement("testWebParamBareArray");
+ assertEquals("arrayInt", paramElement.getAttribute("name"));
+ assertEquals("xs:int", paramElement.getAttribute("type"));
+ assertEquals("unbounded", paramElement.getAttribute("maxOccurs"));
+ }
+*/
+
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception {
+ BaseFramework.start("DataTypes");
+ }
+
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception {
+ BaseFramework.stop();
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/test/java/datatypes/DynamicSDOTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/test/java/datatypes/DynamicSDOTestCase.java new file mode 100644 index 0000000000..64fb9fb0e1 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/test/java/datatypes/DynamicSDOTestCase.java @@ -0,0 +1,81 @@ +/*
+ * 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 datatypes;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.w3c.dom.Element;
+import static org.junit.Assert.assertEquals;
+
+/**
+ * Test ?wsdl works and that the returned WSDL is correct
+ *
+ * @version $Rev: 814373 $ $Date: 2009-09-13 19:06:29 +0100 (Sun, 13 Sep 2009) $
+ */
+public class DynamicSDOTestCase extends BaseFramework {
+
+ @Test
+ public void testGetMessage() throws Exception {
+ assertEquals("xs:base64Binary", returnType("getMessage"));
+ }
+
+ @Test
+ public void testGetMessageList() throws Exception {
+ Element retElement = returnElement("getMessageList");
+ assertEquals("xs:base64Binary", retElement.getAttribute("type"));
+ assertEquals("unbounded", retElement.getAttribute("maxOccurs"));
+ }
+
+ @Test
+ public void testGetMessageSDO() throws Exception {
+ assertEquals("xs:anyType", returnType("getMessageSDO"));
+ }
+
+ @Test
+ public void testGetMessageListSDOList() throws Exception {
+ Element retElement = returnElement("getMessageListSDOList");
+ assertEquals("xs:anyType", retElement.getAttribute("type"));
+ assertEquals("unbounded", retElement.getAttribute("maxOccurs"));
+ }
+
+ @Test
+ public void testGetMessageListSDOArr() throws Exception {
+ Element retElement = returnElement("getMessageListSDOArr");
+ assertEquals("xs:anyType", retElement.getAttribute("type"));
+ assertEquals("unbounded", retElement.getAttribute("maxOccurs"));
+ }
+
+ @Test
+ public void testGetMessageListSDOinSDO() throws Exception {
+ assertEquals("xs:anyType", returnType("getMessageListSDOinSDO"));
+ }
+
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception {
+ BaseFramework.start("GetDataServiceWithoutException");
+ }
+
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception {
+ BaseFramework.stop();
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/test/java/helloworld/SchemaCorrectionTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/test/java/helloworld/SchemaCorrectionTestCase.java new file mode 100644 index 0000000000..39f5380a00 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/test/java/helloworld/SchemaCorrectionTestCase.java @@ -0,0 +1,462 @@ +/*
+ * 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 helloworld;
+
+import java.io.IOException;
+import java.lang.annotation.Annotation;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.SchemaOutputResolver;
+import javax.xml.bind.annotation.XmlSchema;
+import javax.xml.namespace.QName;
+import javax.xml.transform.Result;
+import javax.xml.transform.Source;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMResult;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.apache.tuscany.sca.Node;
+import org.apache.tuscany.sca.TuscanyRuntime;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.databinding.jaxb.JAXBContextHelper;
+import org.apache.tuscany.sca.databinding.jaxb.JAXBTypeHelper;
+import org.apache.tuscany.sca.impl.NodeImpl;
+import org.apache.tuscany.sca.interfacedef.java.jaxws.GeneratedClassLoader;
+import org.apache.ws.commons.schema.XmlSchemaCollection;
+import org.apache.ws.commons.schema.XmlSchemaComplexType;
+import org.apache.ws.commons.schema.XmlSchemaElement;
+import org.apache.ws.commons.schema.XmlSchemaGroupBase;
+import org.apache.ws.commons.schema.XmlSchemaImport;
+import org.apache.ws.commons.schema.XmlSchemaObject;
+import org.apache.ws.commons.schema.XmlSchemaObjectCollection;
+import org.apache.ws.commons.schema.XmlSchemaSerializer.XmlSchemaSerializerException;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.objectweb.asm.AnnotationVisitor;
+import org.objectweb.asm.ClassWriter;
+import org.objectweb.asm.FieldVisitor;
+import org.objectweb.asm.MethodVisitor;
+import org.objectweb.asm.Opcodes;
+import org.w3c.dom.Document;
+
+import anotherpackage.BBean;
+import anotherpackage.CBean;
+import yetanotherpackage.DBean;
+
+/**
+ * Tests that the helloworld server is available
+ */
+@Ignore("Just some scratch code I don't want to loose just yet")
+public class SchemaCorrectionTestCase{
+
+ private Node node;
+
+ @Before
+ public void startServer() throws Exception {
+ node = TuscanyRuntime.newInstance().createNode("default");
+ }
+
+ @Test
+ public void testSchemaGen() throws JAXBException, IOException, TransformerException, Exception {
+ ExtensionPointRegistry extensionPointRegistry = ((NodeImpl)node).getExtensionPointRegistry();
+ JAXBTypeHelper typeHelper = new JAXBTypeHelper(extensionPointRegistry);
+ JAXBContextHelper contextHelper = new JAXBContextHelper(extensionPointRegistry);
+
+ //typeHelper.getSchemaDefinitions(factory, resolver, intf);
+
+ Package pkg = CBean.class.getPackage();
+ String pkgName = pkg.getName();
+ Annotation[] pkgAnnotations = pkg.getAnnotations();
+ boolean genPkgInfo = true;
+
+ for (Annotation annotation : pkgAnnotations){
+ if (annotation instanceof XmlSchema){
+ XmlSchema schemaAnnotation = (XmlSchema)annotation;
+ if (schemaAnnotation.namespace() != null){
+ genPkgInfo = false;
+ break;
+ }
+ }
+ }
+
+ JAXBContext context = null;
+
+ if (genPkgInfo){
+ System.out.println("There is no package info so generate one");
+/* Can gen the annotation but then what?
+ Class<?> genClass = generatePackageInfo(pkgName, "http://sometestsnamespace");
+
+ Package pkgGen = aClass.getPackage();
+ String pkgGenName = pkg.getName();
+ Annotation[] pkgGenAnnotations = pkg.getAnnotations();
+ XmlSchema schemaAnnotation = null;
+
+ for (Annotation annotation : pkgGenAnnotations){
+ if (annotation instanceof XmlSchema){
+ schemaAnnotation = (XmlSchema)annotation;
+ }
+ }
+
+ pkgAnnotations = pkgGenAnnotations;
+*/
+
+/* Can't pass the generarted package into JAXB. It has to
+ * be properly referenced as a package of a class you're trying
+ * generate.
+ Class<?>[] classes = {aClass, genClass};
+ context = contextHelper.createJAXBContext(classes);
+*/
+ } else {
+ System.out.println("There is package info");
+ }
+
+ Class<?>[] classes = {ABean.class, BBean.class, CBean.class, DBean.class};
+ context = contextHelper.createJAXBContext(classes);
+
+ DOMResolverImpl resolver = new DOMResolverImpl();
+ context.generateSchema(resolver);
+
+ String toNamespace = null;
+ String fromNamespace = null;
+ Document toDocument = null;
+ Document fromDocument = null;
+ Map<String, Document> otherDocuments = new HashMap<String, Document>();
+
+ Map<String, DOMResult> results = resolver.getResults();
+ for (Map.Entry<String, DOMResult> entry : results.entrySet()) {
+ System.out.println("\nPREMERGE NS: " + entry.getKey());
+ if (entry.getKey().equals("")){
+ fromNamespace = entry.getKey();
+ fromDocument = (Document)entry.getValue().getNode();
+ } else if (entry.getKey().equals("http://helloworld/")){
+ toNamespace = entry.getKey();
+ toDocument = (Document)entry.getValue().getNode();
+ } else {
+ otherDocuments.put(entry.getKey(), (Document)entry.getValue().getNode());
+ }
+ System.out.println("PREMERGE XSD: ");
+ printDOM((Document)entry.getValue().getNode());
+ }
+
+ // merge no-namespace XSD into default namespace XSD
+ System.out.println("\nPOSTMERGE");
+ List<Document> mergedDocuments = mergeSchema(fromNamespace, fromDocument, toNamespace, toDocument, otherDocuments.values());
+
+ for (Document mergedDocument : mergedDocuments){
+ System.out.println("\n");
+ printDOM(mergedDocument);
+ }
+ }
+
+ @After
+ public void stopServer() throws Exception {
+
+ }
+
+ private static class DOMResolverImpl extends SchemaOutputResolver {
+ private Map<String, DOMResult> results = new HashMap<String, DOMResult>();
+
+ @Override
+ public Result createOutput(String ns, String file) throws IOException {
+ DOMResult result = new DOMResult();
+ // TUSCANY-2498: Set the system id to "" so that the xsd:import doesn't produce
+ // an illegal schemaLocation attr
+ result.setSystemId("");
+ results.put(ns, result);
+ return result;
+ }
+
+ public Map<String, DOMResult> getResults() {
+ return results;
+ }
+ }
+
+ private void printDOM(Document document)throws TransformerException {
+ Transformer transformer = TransformerFactory.newInstance().newTransformer();
+ Source source = new DOMSource(document);
+ Result output = new StreamResult(System.out);
+ transformer.transform(source, output);
+ }
+
+ public Class<?> generatePackageInfo(String packageName, String namespace) throws Exception{
+ String className = packageName + ".package-info";
+ String internalClassName = className.replace('.', '/');
+
+ PackageInfoGenerator pig = new PackageInfoGenerator();
+
+ byte[] byteCode = pig.dump(internalClassName, namespace);
+
+ GeneratedClassLoader classLoader = new GeneratedClassLoader(this.getClass().getClassLoader());
+ return classLoader.getGeneratedClass(className, byteCode);
+ }
+
+
+ public class PackageInfoGenerator implements Opcodes {
+
+ public byte[] dump (String internalClassName, String namespace) throws Exception {
+ ClassWriter cw = new ClassWriter(0);
+ FieldVisitor fv;
+ MethodVisitor mv;
+ AnnotationVisitor av0;
+
+ cw.visit(V1_6, ACC_ABSTRACT + ACC_INTERFACE + ACC_SYNTHETIC, internalClassName, null, "java/lang/Object", null);
+
+ cw.visitSource("package-info.java", null);
+
+
+ av0 = cw.visitAnnotation("Ljavax/xml/bind/annotation/XmlSchema;", true);
+ av0.visit("namespace", namespace);
+ av0.visitEnd();
+
+ cw.visitEnd();
+
+ return cw.toByteArray();
+ }
+ }
+
+ private List<Document> mergeSchema(String fromNamespace, Document fromDoc, String toNamespace, Document toDoc, Collection<Document> relatedDocs) throws XmlSchemaSerializerException{
+ // Read all the input DOMs into a schema collection so we can maniuplate them
+ XmlSchemaCollection schemaCollection = new XmlSchemaCollection();
+ schemaCollection.read(fromDoc.getDocumentElement());
+ schemaCollection.read(toDoc.getDocumentElement());
+
+ for(Document doc : relatedDocs){
+ schemaCollection.read(doc.getDocumentElement());
+ }
+
+ org.apache.ws.commons.schema.XmlSchema fromSchema = null;
+ org.apache.ws.commons.schema.XmlSchema toSchema = null;
+ List<org.apache.ws.commons.schema.XmlSchema> relatedSchema = new ArrayList<org.apache.ws.commons.schema.XmlSchema>();
+ org.apache.ws.commons.schema.XmlSchema schemas[] = schemaCollection.getXmlSchemas();
+ for (int i=1; i < schemas.length; i++){
+ org.apache.ws.commons.schema.XmlSchema schema = schemas[i];
+ if (schema.getTargetNamespace() == null){
+ fromSchema = schema;
+ } else if (schema.getTargetNamespace().equals(toNamespace)){
+ toSchema = schema;
+ relatedSchema.add(schema);
+ } else {
+ relatedSchema.add(schema);
+ }
+ }
+
+ // copy all the FROM items to the TO schema
+ XmlSchemaObjectCollection fromItems = fromSchema.getItems();
+ XmlSchemaObjectCollection toItems = toSchema.getItems();
+
+ Iterator<XmlSchemaObject> iter = fromItems.getIterator();
+ while(iter.hasNext()){
+ // don't copy import for TO namespace
+ XmlSchemaObject obj = iter.next();
+ if (obj instanceof XmlSchemaImport &&
+ ((XmlSchemaImport)obj).getNamespace().equals(toNamespace)){
+ // do nothing
+ } else {
+ toItems.add(obj);
+ // correct any references to the item just moved
+ fixUpMovedTypeReferences(fromNamespace, toNamespace, obj, relatedSchema);
+ }
+ }
+
+ // Create the list of resulting DOMs
+ List<Document> resultDocs = new ArrayList<Document>();
+
+ for (org.apache.ws.commons.schema.XmlSchema related : relatedSchema){
+ resultDocs.add(related.getSchemaDocument());
+ }
+
+ return resultDocs;
+ }
+
+ public void fixUpMovedTypeReferences(String fromNamespace, String toNamespace, XmlSchemaObject fixUpObj, List<org.apache.ws.commons.schema.XmlSchema> relatedSchema){
+
+ if (!(fixUpObj instanceof XmlSchemaComplexType)){
+ return;
+ }
+
+ for (org.apache.ws.commons.schema.XmlSchema schema : relatedSchema){
+ int importRemoveIndex = -1;
+ for (int i = 0; i < schema.getItems().getCount(); i++){
+ XmlSchemaObject obj = schema.getItems().getItem(i);
+
+ // if this is not the TO schema then fix up all references
+ // to items moved to the TO schema
+ if(!schema.getTargetNamespace().equals(toNamespace)){
+ processXMLSchemaObject(toNamespace, obj, fixUpObj);
+ }
+
+ // remove FROM imports
+ if (obj instanceof XmlSchemaImport &&
+ ((XmlSchemaImport)obj).getNamespace().equals(fromNamespace)){
+ importRemoveIndex = i;
+ }
+ }
+
+ if (importRemoveIndex >= 0){
+ schema.getItems().removeAt(importRemoveIndex);
+ }
+ }
+ }
+
+ public void processXMLSchemaObject(String toNamespace, XmlSchemaObject obj, XmlSchemaObject fixUpObj){
+ if (obj instanceof XmlSchemaComplexType){
+ processXMLSchemaObject(toNamespace, ((XmlSchemaComplexType)obj).getParticle(), fixUpObj);
+ } else if (obj instanceof XmlSchemaElement){
+ XmlSchemaElement element = (XmlSchemaElement)obj;
+ if(element.getSchemaType() == fixUpObj){
+ QName name = element.getSchemaTypeName();
+ QName newName = new QName(toNamespace, name.getLocalPart());
+ element.setSchemaTypeName(newName);
+ }
+ ((XmlSchemaElement)obj).getSchemaType();
+ } else if (obj instanceof XmlSchemaGroupBase){
+ XmlSchemaObjectCollection items = ((XmlSchemaGroupBase)obj).getItems();
+ Iterator<XmlSchemaObject> iter = items.getIterator();
+ while(iter.hasNext()){
+ processXMLSchemaObject(toNamespace, iter.next(), fixUpObj);
+ }
+ }
+ }
+
+/*
+ private List<Document> mergeSchema(String fromNamespace, Document fromDoc, String toNamespace, Document toDoc, Collection<Document> relatedDocs) throws XmlSchemaSerializerException{
+ XmlSchemaCollection schemaCollection = new XmlSchemaCollection();
+ schemaCollection.read(fromDoc.getDocumentElement());
+ schemaCollection.read(toDoc.getDocumentElement());
+
+ for(Document doc : relatedDocs){
+ schemaCollection.read(doc.getDocumentElement());
+ }
+
+ org.apache.ws.commons.schema.XmlSchema fromSchema = null;
+ org.apache.ws.commons.schema.XmlSchema toSchema = null;
+ List<org.apache.ws.commons.schema.XmlSchema> relatedSchema = new ArrayList<org.apache.ws.commons.schema.XmlSchema>();
+ org.apache.ws.commons.schema.XmlSchema schemas[] = schemaCollection.getXmlSchemas();
+ for (int i=1; i < schemas.length; i++){
+ org.apache.ws.commons.schema.XmlSchema schema = schemas[i];
+ if (schema.getTargetNamespace() == null){
+ fromSchema = schema;
+ } else if (schema.getTargetNamespace().equals(toNamespace)){
+ toSchema = schema;
+ } else {
+ relatedSchema.add(schema);
+ }
+ }
+
+ // add all the FROM items to the TO schema
+ XmlSchemaObjectCollection fromItems = fromSchema.getItems();
+ XmlSchemaObjectCollection toItems = toSchema.getItems();
+
+ Iterator<XmlSchemaObject> iter = fromItems.getIterator();
+ while(iter.hasNext()){
+ // don't copy import for TO namespace
+ XmlSchemaObject obj = iter.next();
+ if (obj instanceof XmlSchemaImport &&
+ ((XmlSchemaImport)obj).getNamespace().equals(toNamespace)){
+ // do nothing
+ } else {
+ toItems.add(obj);
+ fixUpMovedTypeReferences(fromNamespace, toNamespace, obj, relatedSchema);
+ }
+ }
+
+ // remove the FROM namespace from TO schema includes list
+ XmlSchemaObjectCollection toIncludes = toSchema.getIncludes();
+ XmlSchemaImport schemaImport = null;
+ iter = toIncludes.getIterator();
+ while(iter.hasNext()){
+ XmlSchemaImport tmpImport = (XmlSchemaImport)iter.next();
+ if (tmpImport.getNamespace().equals(fromNamespace)){
+ schemaImport = tmpImport;
+ break;
+ }
+ }
+
+ if (schemaImport != null){
+ toIncludes.remove(schemaImport);
+ toItems.remove(schemaImport);
+ }
+
+ List<Document> resultDocs = new ArrayList<Document>();
+ resultDocs.add(toSchema.getSchemaDocument());
+
+ for (org.apache.ws.commons.schema.XmlSchema related : relatedSchema){
+ resultDocs.add(related.getSchemaDocument());
+ }
+
+ return resultDocs;
+ }
+
+ public void fixUpMovedTypeReferences(String fromNamespace, String toNamespace, XmlSchemaObject fixUpObj, List<org.apache.ws.commons.schema.XmlSchema> relatedSchema){
+ for (org.apache.ws.commons.schema.XmlSchema schema : relatedSchema){
+ XmlSchemaObjectCollection items = schema.getItems();
+ Iterator<XmlSchemaObject> iter = items.getIterator();
+ XmlSchemaImport importToRemove = null;
+ while(iter.hasNext()){
+ XmlSchemaObject obj = iter.next();
+ processXMLSchemaObject(toNamespace, obj, fixUpObj);
+
+ // remote FROM imports
+ if (obj instanceof XmlSchemaImport &&
+ ((XmlSchemaImport)obj).getNamespace().equals(fromNamespace)){
+ importToRemove = (XmlSchemaImport)obj;
+ }
+ }
+
+ if (importToRemove != null){
+ items.remove(importToRemove);
+ schema.getIncludes().remove(importToRemove);
+ }
+ }
+ }
+
+ public void processXMLSchemaObject(String toNamespace, XmlSchemaObject obj, XmlSchemaObject fixUpObj){
+ if (obj instanceof XmlSchemaComplexType){
+ processXMLSchemaObject(toNamespace, ((XmlSchemaComplexType)obj).getParticle(), fixUpObj);
+ } else if (obj instanceof XmlSchemaElement){
+ XmlSchemaElement element = (XmlSchemaElement)obj;
+ if(element.getSchemaType() == fixUpObj){
+ QName name = element.getSchemaTypeName();
+ QName newName = new QName(toNamespace, name.getLocalPart());
+ element.setSchemaTypeName(newName);
+ }
+ ((XmlSchemaElement)obj).getSchemaType();
+ } else if (obj instanceof XmlSchemaGroupBase){
+ XmlSchemaObjectCollection items = ((XmlSchemaGroupBase)obj).getItems();
+ Iterator<XmlSchemaObject> iter = items.getIterator();
+ while(iter.hasNext()){
+ processXMLSchemaObject(toNamespace, iter.next(), fixUpObj);
+ }
+ }
+ }
+ */
+
+}
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/test/java/helloworld/WSDLGenTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/test/java/helloworld/WSDLGenTestCase.java new file mode 100644 index 0000000000..7fabf4cc92 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/src/test/java/helloworld/WSDLGenTestCase.java @@ -0,0 +1,184 @@ +/*
+ * 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 helloworld;
+
+import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertNotNull;
+import static junit.framework.Assert.fail;
+
+import java.io.IOException;
+import java.net.URL;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+
+import org.apache.tuscany.sca.Node;
+import org.apache.tuscany.sca.TuscanyRuntime;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.oasisopen.sca.NoSuchServiceException;
+
+import yetanotherpackage.DBean;
+
+import anotherpackage.BBean;
+
+/**
+ * Tests that the helloworld server is available
+ */
+public class WSDLGenTestCase{
+
+ private Node node;
+
+ @Before
+ public void startServer() throws Exception {
+ node = TuscanyRuntime.newInstance().createNode("default");
+ node.installContribution("helloworld", "target/classes", null, null);
+ node.startComposite("helloworld", "helloworld.composite");
+ }
+
+ @Ignore
+ @Test
+ public void testWaitForInput() {
+ System.out.println("Press a key to end");
+ try {
+ System.in.read();
+ } catch (Exception ex) {
+ }
+ System.out.println("Shutting down");
+ }
+
+ @Test
+ public void testComponentSCA() throws IOException, NoSuchServiceException {
+ HelloWorldService helloWorldService = node.getService(HelloWorldService.class, "HelloWorldServiceComponent/HelloWorldService");
+ assertNotNull(helloWorldService);
+
+ HelloWorldService helloWorldClient = node.getService(HelloWorldService.class, "HelloWorldClientComponent/HelloWorldService");
+ assertNotNull(helloWorldClient);
+
+ assertEquals("Hello Smith", helloWorldService.getGreetings("Smith"));
+ assertEquals("Hello Hello Smith", helloWorldClient.getGreetings("Smith"));
+
+ BBean bbean = new BBean();
+ bbean.setField1("1");
+ bbean.setField2("2");
+
+ DBean abean = new DBean();
+ abean.setField1("3");
+ abean.setField2("4");
+ abean.setField3(bbean);
+
+ assertEquals("Hello Hello 3 4 1 2", helloWorldClient.getGreetingsDBean(abean));
+
+ try {
+ helloWorldClient.getGreetingsException("Fred");
+ fail("exception not returned");
+ } catch(Exception ex) {
+
+ }
+ }
+
+ @Test
+ public void testComponentJAXWSwsgen() throws IOException {
+
+ // talk to the service using JAXWS with WSDL generated from this service using wsgen
+ // the idea here is to demonstrate that the service is providing a JAXWS compliant
+ // interface
+ QName serviceName = new QName("http://helloworld/", "HelloWorldImplService");
+ QName portName = new QName("http://helloworld/", "HelloWorldImplPort");
+ URL wsdlLocation = this.getClass().getClassLoader().getResource("jaxws/wsgen/wsdl/HelloWorldImplService.wsdl");
+ Service webService = Service.create( wsdlLocation, serviceName );
+ HelloWorldService wsProxy = (HelloWorldService) webService.getPort(portName, HelloWorldService.class);
+
+ assertEquals("Hello Fred", wsProxy.getGreetings("Fred"));
+
+ BBean bbean = new BBean();
+ bbean.setField1("1");
+ bbean.setField2("2");
+
+ DBean abean = new DBean();
+ abean.setField1("3");
+ abean.setField2("4");
+ abean.setField3(bbean);
+
+ assertEquals("Hello 3 4 1 2", wsProxy.getGreetingsDBean(abean));
+
+ String byteArrayString = "Hello World";
+ assertEquals(byteArrayString, new String(wsProxy.getGreetingsByteArray(byteArrayString.getBytes())));
+
+ try {
+ wsProxy.getGreetingsException("Fred");
+ fail("exception not returned");
+ } catch(Exception ex) {
+
+ }
+ }
+
+ @Test
+ public void testComponentJAXWStuscanygen() throws IOException {
+ // talk to the service using JAXWS with WSDL generated from this service used Tuscany's ?wsdl
+ // the idea here is to demonstrate that the service is providing a JAXWS compliant
+ // WSDL
+ QName serviceName = new QName("http://helloworld/", "HelloWorldService");
+ QName portName = new QName("http://helloworld/", "HelloWorldServiceSOAP11Port");
+ URL wsdlLocation = new URL("http://localhost:8085/HelloWorldServiceComponent?wsdl");
+ Service webService = Service.create( wsdlLocation, serviceName );
+ HelloWorldService wsProxy = (HelloWorldService) webService.getPort(portName, HelloWorldService.class);
+
+ assertEquals("Hello Fred", wsProxy.getGreetings("Fred"));
+
+ BBean bbean = new BBean();
+ bbean.setField1("1");
+ bbean.setField2("2");
+
+ DBean abean = new DBean();
+ abean.setField1("3");
+ abean.setField2("4");
+ abean.setField3(bbean);
+
+ assertEquals("Hello 3 4 1 2", wsProxy.getGreetingsDBean(abean));
+
+ String byteArrayString = "Hello World";
+ assertEquals(byteArrayString, new String(wsProxy.getGreetingsByteArray(byteArrayString.getBytes())));
+
+ try {
+ wsProxy.getGreetingsException("Fred");
+ fail("exception not returned");
+ } catch(Exception ex) {
+
+ }
+ }
+
+ // Differences between JAXWS WSDL (J) and Tuscany WSDL (T)
+ //
+ // Service name
+ // J/ HelloWorldImplService T/ HelloWorldService
+ //
+ // Port name
+ // J/ HelloWorldImplPort T/ HelloWorldServiceSOAP11Port
+
+ @After
+ public void stopServer() throws Exception {
+ if (node != null) {
+ node.stop();
+ }
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/wsgen.bat b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/wsgen.bat new file mode 100644 index 0000000000..5426508882 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wsdlgen/wsgen.bat @@ -0,0 +1,18 @@ +# 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.
+
+c:\simon\apps\jdk-60-ibm\bin\wsgen.exe -cp target/classes;"C:\Users\slaws\.m2\repository\org\apache\tuscany\sca\tuscany-sca-api\2.0-SNAPSHOT\tuscany-sca-api-2.0-SNAPSHOT.jar" -d target/wsgenout -wsdl -verbose helloworld.HelloWorldImpl
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/README b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/README new file mode 100644 index 0000000000..60a1b09598 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/README @@ -0,0 +1,116 @@ +No Security
+===========
+
+POST /HelloWorldService/HelloWorld HTTP/1.1
+Content-Type: text/xml; charset=UTF-8
+SOAPAction: ""
+User-Agent: Axis2
+Host: localhost:8081
+Content-Length: 287
+
+<?xml version='1.0' encoding='UTF-8'?>
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
+ <soapenv:Body>
+ <ns2:getGreetings xmlns:ns2="http://helloworld.axis2.ws.binding.sca.tuscany.apache.org/">
+ <arg0>fred</arg0>
+ </ns2:getGreetings>
+ </soapenv:Body>
+</soapenv:Envelope>
+
+HTTP/1.1 200 OK
+Content-Type: text/xml; charset=utf-8
+Transfer-Encoding: chunked
+
+146
+<?xml version='1.0' encoding='UTF-8'?>
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
+ <soapenv:Body>
+ <ns2:getGreetingsResponse xmlns:ns2="http://helloworld.axis2.ws.binding.sca.tuscany.apache.org/">
+ <return>Hello fred null subject</return>
+ </ns2:getGreetingsResponse>
+ </soapenv:Body>
+</soapenv:Envelope>
+
+Integrity
+=========
+
+POST /HelloWorldService/HelloWorld HTTP/1.1
+Content-Type: text/xml; charset=UTF-8
+SOAPAction: ""
+User-Agent: Axis2
+Host: localhost:8081
+Content-Length: 3714
+
+<?xml version='1.0' encoding='UTF-8'?>
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
+ <soape nv:Header>
+ <wsse:Security
+ xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
+ soapenv:mustUnderstand="1">
+ <wsu:Timestamp
+ xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+ wsu:Id="Timestamp-1">
+ <wsu:Created>2011-06-29T13:19:32.343Z</wsu:Created>
+ <wsu:Expires>2011-06-29T13:24:32.343Z</wsu:Expires>
+ </wsu:Timestamp>
+ <wsse:BinarySecurityToken
+ xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+ EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"
+ ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"
+ wsu:Id="CertId-3FC5F405BC1C8FD92213093535726401">
+ MIICPTCCAaagAwIBAgIESZNUvDANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVSz
+ ELMAkGA1UECBMCVUsxEzARBgNVBAcTCldpbmNoZXN0ZXIxDzANBgNVBAoTBkFwYWNoZTEPMA0GA1UECxMGQXBhY2hlMRAwDgYDVQQDEwdUdXNjYW55MB4XDT
+ A5MDIxMTIyNDQxMloXDTM2MDYyODIyNDQxMlowYzELMAkGA1UEBhMCVUsxCzAJBgNVBAgTAlVLMRMwEQYDVQQHEwpXaW5jaGVzdGVyMQ8wDQYDVQQKEwZBcG
+ FjaGUxDzANBgNVBAsTBkFwYWNoZTEQMA4GA1UEAxMHVHVzY2FueTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAm9V5SuYbkyZreLyHuEaorRya3fEkpF
+ q2n3Sg9kaQH5L0Zb81MNEUkoNk4jeFDC7GnQ4QQU9UfM/xAX3d0VIZSFdp7I5lxVRnXg5tcacDmckuJRCAO0AkeI4aRTD/iHQ2RfcJCwZtXJPdo2OywBGIf4
+ CQnZI5mkNDAbK2SEaN+/cCAwEAATANBgkqhkiG9w0BAQUFAAOBgQAX593t0K195ZQc3g2+mIhjuwh5tKktaKS6x0AEmaTxI1c3F8LY6bK89DiQ1gEf36ryfA
+ CGgHrRyufgcQtlIHEbbppPiPHgaBW4pQjJqyMa9/TlU+OqhBcc7dyGZd9MU0ZNwJPXW4vmSFLKp95bjmfxXNPm7Oln1StAD3BLo5YsYA==
+ </wsse:BinarySecurityToken>
+ <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-2">
+ <ds:SignedInfo>
+ <ds:CanonicalizationMethod
+ Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
+ <ds:Reference URI="#Id-28141700">
+ <ds:Transforms>
+ <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ </ds:Transforms>
+ <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <ds:DigestValue>cUwRlwItvnyGcmaDX9hBhoVYgUA=</ds:DigestValue>
+ </ds:Reference>
+ <ds:Reference URI="#Timestamp-1">
+ <ds:Transforms>
+ <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ </ds:Transforms>
+ <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <ds:DigestValue>AR60PsgLRdjhQjx3Kn5myNfcx4g=</ds:DigestValue>
+ </ds:Reference>
+ </ds:SignedInfo>
+ <ds:SignatureValue>
+ jvDnLfKdyxnDCVtmJr0lrwQsigBBlZhYMyYJeQswjit1th4fxatyywV4wRxu/rm3iuNl+svnS9HA
+ Vyv1Enr2/5+2QFTAeKKcGa/HtpSL/dtZr8UTHwFVR9/ecDpAxupb2k2vumpxH2WQlvnrj1lVQjE4
+ ewLiWB6NEjdhnbYL9Ws=
+ </ds:SignatureValue>
+ <ds:KeyInfo Id="KeyId-3FC5F405BC1C8FD92213093535726562">
+ <wsse:SecurityTokenReference
+ xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+ wsu:Id="STRId-3FC5F405BC1C8FD92213093535726563">
+ <wsse:Reference URI="#CertId-3FC5F405BC1C8FD92213093535726401"
+ Value
+ Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" />
+ </wsse:SecurityTokenReference>
+ </ds:KeyInfo>
+ </ds:Signature>
+ </wsse:Security>
+ </soapenv:Header>
+ <soapenv:Body
+ xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+ wsu:Id="Id-28141700">
+ <_ns_:getGreetings xmlns:_ns_="http://helloworld">
+ <ns3:name xm lns:ns3="http://helloworld"
+ xmlns:ns2="http://helloworld.axis2.ws.binding.sca.tuscany.apache.org/"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:type="xs:string">fred</ns3:name>
+ </_ns_:getGreetings>
+ </soapenv:Body>
+</soapenv:Envelope>
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/pom.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/pom.xml new file mode 100644 index 0000000000..fcf53d3d16 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/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>itest-ws</artifactId>
+ <version>2.0-Beta4</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>itest-ws-wspolicy</artifactId>
+ <name>Apache Tuscany SCA iTest WS with WSPolicy</name>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-base-runtime-pom</artifactId>
+ <type>pom</type>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws-runtime-axis2</artifactId>
+ <version>2.0-Beta4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>6.1.19</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.codehaus.woodstox</groupId>
+ <artifactId>wstx-asl</artifactId>
+ <version>3.2.9</version>
+ </dependency>
+ <dependency>
+ <groupId>xalan</groupId>
+ <artifactId>xalan</artifactId>
+ <version>2.7.0</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <finalName>${project.artifactId}</finalName>
+ </build>
+</project>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorld.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorld.java new file mode 100644 index 0000000000..057b00a21c --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorld.java @@ -0,0 +1,29 @@ +/*
+ * 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.axis2.helloworld;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface HelloWorld {
+
+ String getGreetings(String s);
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldClient.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldClient.java new file mode 100644 index 0000000000..212617af6a --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldClient.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.binding.ws.axis2.helloworld;
+
+import org.oasisopen.sca.annotation.Reference;
+
+public class HelloWorldClient implements HelloWorld {
+
+ @Reference
+ public HelloWorld helloWorldWS;
+
+ public String getGreetings(String s) {
+ String response = helloWorldWS.getGreetings(s);
+ System.out.println("At client: " + response);
+ return response;
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldService.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldService.java new file mode 100644 index 0000000000..b1ecba682b --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/HelloWorldService.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.binding.ws.axis2.helloworld;
+
+import javax.security.auth.Subject;
+
+import org.oasisopen.sca.RequestContext;
+import org.oasisopen.sca.annotation.Context;
+
+public class HelloWorldService implements HelloWorld {
+
+ @Context
+ protected RequestContext requestContext;
+
+ public String getGreetings(String name) {
+ Subject subject = requestContext.getSecuritySubject();
+ String response = "Hello " + name;
+/*
+ if (subject == null){
+ response += "null subject";
+ } else {
+ response += subject.getPrincipals().iterator().next().getName();
+ }
+*/
+ System.out.println("At service: " + response);
+ return response;
+ }
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/ServerPWCBHandler.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/ServerPWCBHandler.java new file mode 100644 index 0000000000..4ada132172 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/java/org/apache/tuscany/sca/binding/ws/axis2/helloworld/ServerPWCBHandler.java @@ -0,0 +1,55 @@ +/*
+ * 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.axis2.helloworld;
+
+import java.io.IOException;
+
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.UnsupportedCallbackException;
+
+import org.apache.ws.security.WSPasswordCallback;
+
+/**
+ * Sample userid passwd generation class
+ */
+public class ServerPWCBHandler implements CallbackHandler {
+
+ public void handle(Callback[] callbacks) throws IOException,
+ UnsupportedCallbackException {
+ for (int i = 0; i < callbacks.length; i++) {
+ System.out.println("*** Calling Server User/Passwd Handler....");
+ WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i];
+ System.out.println("User Id = " + pwcb.getIdentifer());
+ System.out.println("Password = " + pwcb.getPassword());
+
+ if ( pwcb.getUsage() == WSPasswordCallback.USERNAME_TOKEN ) {
+ if ( pwcb.getIdentifer().equals("TuscanyWsUser") &&
+ pwcb.getPassword().equals("TuscanyWsUserPasswd") ){
+ return;
+ } else {
+ throw new UnsupportedCallbackException(pwcb, "Authentication Failed : UserId - Password mismatch");
+ }
+ } else if ( pwcb.getUsage() == WSPasswordCallback.SIGNATURE ) {
+ pwcb.setPassword("TuscanyWsUserPasswd");
+ }
+ }
+ }
+
+}
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/resources/META-INF/sca-contribution.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/resources/META-INF/sca-contribution.xml new file mode 100644 index 0000000000..350ad6be96 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/resources/META-INF/sca-contribution.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<contribution xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:itest="http://www.tuscany.apache.org/itests/binding/ws/axis2">
+ <deployable composite="itest:HelloWorld"/>
+</contribution>
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions new file mode 100644 index 0000000000..04fe620be4 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/resources/META-INF/services/org.apache.tuscany.sca.definitions.xml.Definitions @@ -0,0 +1,17 @@ +# 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.
+org/apache/tuscany/sca/binding/ws/axis2/helloworld/definitions.xml
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/resources/helloworldKeys.jks b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/resources/helloworldKeys.jks Binary files differnew file mode 100644 index 0000000000..e2184ad3c6 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/resources/helloworldKeys.jks diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/definitions.xml b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/definitions.xml new file mode 100644 index 0000000000..95089c39f3 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/definitions.xml @@ -0,0 +1,102 @@ +<?xml version="1.0" encoding="ASCII"?>
+<!--
+ * 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.
+-->
+<definitions xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://www.tuscany.apache.org/itests/binding/ws/axis2"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
+ xmlns:itest="http://www.tuscany.apache.org/itests/binding/ws/axis2" >
+
+
+ <sca:policySet name="WSPolicyIntegrityPolicySet"
+ attachTo="//sca:binding.ws"
+ provides="integrity"
+ appliesTo="//sca:binding.ws">
+ <wsp:Policy wsu:Id="SignOnly"
+ xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+ xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:AsymmetricBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:InitiatorToken>
+ <wsp:Policy>
+ <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
+ <wsp:Policy>
+ <sp:WssX509V3Token10/>
+ </wsp:Policy>
+ </sp:X509Token>
+ </wsp:Policy>
+ </sp:InitiatorToken>
+ <sp:RecipientToken>
+ <wsp:Policy>
+ <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never">
+ <wsp:Policy>
+ <sp:WssX509V3Token10/>
+ </wsp:Policy>
+ </sp:X509Token>
+ </wsp:Policy>
+ </sp:RecipientToken>
+ <sp:AlgorithmSuite>
+ <wsp:Policy>
+ <sp:TripleDesRsa15/>
+ </wsp:Policy>
+ </sp:AlgorithmSuite>
+ <sp:Layout>
+ <wsp:Policy>
+ <sp:Strict/>
+ </wsp:Policy>
+ </sp:Layout>
+ <sp:IncludeTimestamp/>
+ <sp:OnlySignEntireHeadersAndBody/>
+ </wsp:Policy>
+ </sp:AsymmetricBinding>
+
+ <sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:MustSupportRefKeyIdentifier/>
+ <sp:MustSupportRefIssuerSerial/>
+ </wsp:Policy>
+ </sp:Wss10>
+
+ <sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <sp:Body/>
+ </sp:SignedParts>
+
+ <ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy">
+ <ramp:user>TuscanyWsUser</ramp:user>
+ <ramp:encryptionUser>TuscanyWsUser</ramp:encryptionUser>
+ <ramp:passwordCallbackClass>org.apache.tuscany.sca.binding.ws.axis2.helloworld.ServerPWCBHandler</ramp:passwordCallbackClass>
+
+ <ramp:signatureCrypto>
+ <ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.file">helloworldKeys.jks</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">TuscanyWsUserPasswd</ramp:property>
+ </ramp:crypto>
+ </ramp:signatureCrypto>
+ </ramp:RampartConfig>
+
+ </wsp:All>
+ </wsp:ExactlyOne>
+ </wsp:Policy>
+ </sca:policySet>
+
+
+</definitions>
\ No newline at end of file diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.composite b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.composite new file mode 100644 index 0000000000..463979ef6f --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.composite @@ -0,0 +1,46 @@ +<?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://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ targetNamespace="http://www.tuscany.apache.org/itests/binding/ws/axis2"
+ name="HelloWorld">
+
+ <component name="HelloWorldClient">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.helloworld.HelloWorldClient"/>
+<!--
+ <reference name="helloWorldWS" target="HelloWorldService/HelloWorld"/>
+-->
+ <reference name="helloWorldWS" requires="integrity">
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws wsdlElement="http://helloworld#wsdl.binding(HelloWorldSoapBinding)"
+ uri="http://localhost:8080/HelloWorldService/HelloWorld"/>
+ </reference>
+ </component>
+
+ <component name="HelloWorldService">
+ <implementation.java class="org.apache.tuscany.sca.binding.ws.axis2.helloworld.HelloWorldService"/>
+ <service name="HelloWorld" requires="integrity">
+ <interface.wsdl interface="http://helloworld#wsdl.interface(HelloWorld)" />
+ <binding.ws wsdlElement="http://helloworld#wsdl.binding(HelloWorldSoapBinding)"
+ uri="http://localhost:8080/HelloWorldService/HelloWorld"/>
+ </service>
+ </component>
+
+</composite>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.wsdl b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.wsdl new file mode 100644 index 0000000000..15b89dbcea --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/main/resources/org/apache/tuscany/sca/binding/ws/axis2/helloworld/helloworld.wsdl @@ -0,0 +1,90 @@ +<?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 targetNamespace="http://helloworld"
+ xmlns:tns="http://helloworld"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ name="helloworld">
+
+ <wsdl:types>
+ <schema elementFormDefault="qualified" targetNamespace="http://helloworld" xmlns="http://www.w3.org/2001/XMLSchema">
+
+ <element name="getGreetings">
+ <complexType>
+ <sequence>
+ <element name="name" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="getGreetingsResponse">
+ <complexType>
+ <sequence>
+ <element name="getGreetingsReturn" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="getGreetingsRequest">
+ <wsdl:part element="tns:getGreetings" name="parameters"/>
+ </wsdl:message>
+
+ <wsdl:message name="getGreetingsResponse">
+ <wsdl:part element="tns:getGreetingsResponse" name="parameters"/>
+ </wsdl:message>
+
+ <wsdl:portType name="HelloWorld">
+ <wsdl:operation name="getGreetings">
+ <wsdl:input message="tns:getGreetingsRequest" name="getGreetingsRequest"/>
+ <wsdl:output message="tns:getGreetingsResponse" name="getGreetingsResponse"/>
+ </wsdl:operation>
+ </wsdl:portType>
+
+ <wsdl:binding name="HelloWorldSoapBinding" type="tns:HelloWorld">
+ <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="getGreetings">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="getGreetingsRequest">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="getGreetingsResponse">
+ <wsdlsoap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ </wsdl:binding>
+
+ <wsdl:service name="HelloWorldService">
+ <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort1">
+ <wsdlsoap:address location="http://localhost:8085/services/HelloWorldWebService1"/>
+ </wsdl:port>
+ <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort2">
+ <wsdlsoap:address location="http://localhost:8085/services/HelloWorldWebService2"/>
+ </wsdl:port>
+ <wsdl:port binding="tns:HelloWorldSoapBinding" name="HelloWorldSoapPort3">
+ <wsdlsoap:address location="http://localhost:8085/services/HelloWorldWebService3"/>
+ </wsdl:port>
+ </wsdl:service>
+
+</wsdl:definitions>
diff --git a/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/HelloworldTestCase.java b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/HelloworldTestCase.java new file mode 100644 index 0000000000..610f9e4bd5 --- /dev/null +++ b/sca-java-2.x/tags/2.0-Beta4-RC1/testing/itest/ws/wspolicy/src/test/java/org/apache/tuscany/sca/binding/ws/axis2/HelloworldTestCase.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.binding.ws.axis2;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sca.binding.ws.axis2.helloworld.HelloWorld;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+
+public class HelloworldTestCase extends TestCase {
+
+ private Node node;
+ private HelloWorld helloWorld;
+
+ public void testCalculator() throws Exception {
+ assertEquals("Hello fred", helloWorld.getGreetings("fred"));
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ node = NodeFactory.newInstance().createNode(new Contribution("test", "target/classes"));
+ node.start();
+ helloWorld = node.getService(HelloWorld.class, "HelloWorldClient");
+ }
+
+ @Override
+ protected void tearDown() throws Exception {
+ node.stop();
+ }
+
+}
|