summaryrefslogtreecommitdiffstats
path: root/java/sca/samples/zipcode-jaxws
diff options
context:
space:
mode:
authordims <dims@13f79535-47bb-0310-9956-ffa450edef68>2008-06-17 00:23:01 +0000
committerdims <dims@13f79535-47bb-0310-9956-ffa450edef68>2008-06-17 00:23:01 +0000
commitbdd0a41aed7edf21ec2a65cfa17a86af2ef8c48a (patch)
tree38a92061c0793434c4be189f1d70c3458b6bc41d /java/sca/samples/zipcode-jaxws
Move Tuscany from Incubator to top level.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@668359 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/samples/zipcode-jaxws')
-rw-r--r--java/sca/samples/zipcode-jaxws/LICENSE205
-rw-r--r--java/sca/samples/zipcode-jaxws/NOTICE6
-rw-r--r--java/sca/samples/zipcode-jaxws/README72
-rw-r--r--java/sca/samples/zipcode-jaxws/build.xml62
-rw-r--r--java/sca/samples/zipcode-jaxws/pom.xml252
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByAreaCode.java81
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByAreaCodeResponse.java158
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByCity.java81
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByCityResponse.java158
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByState.java81
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByStateResponse.java158
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByZIP.java81
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByZIPResponse.java158
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/ObjectFactory.java145
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/USZip.java89
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/USZipSoap.java103
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/package-info.java20
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/ArrayOfWeatherData.java87
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/GetWeatherByPlaceName.java81
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/GetWeatherByPlaceNameResponse.java81
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/GetWeatherByZipCode.java81
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/GetWeatherByZipCodeResponse.java81
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/ObjectFactory.java118
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/WeatherData.java219
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/WeatherForecast.java91
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/WeatherForecastSoap.java73
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/WeatherForecasts.java251
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/package-info.java20
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/location/LocationClient.java55
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/location/USLocationImpl.java56
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/weather/WeatherForecastClient.java60
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/weather/WeatherForecastImpl.java43
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/zipcode/ZipCodeClient.java36
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/zipcode/ZipCodeService.java30
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/java/zipcode/ZipCodeServiceImpl.java82
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/resources/USLocation.composite30
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/resources/WeatherForecast.composite30
-rw-r--r--java/sca/samples/zipcode-jaxws/src/main/resources/ZipCode.composite33
-rw-r--r--java/sca/samples/zipcode-jaxws/src/test/java/zipcode/ZipCodeClientTestCase.java51
39 files changed, 3599 insertions, 0 deletions
diff --git a/java/sca/samples/zipcode-jaxws/LICENSE b/java/sca/samples/zipcode-jaxws/LICENSE
new file mode 100644
index 0000000000..6e529a25c4
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/LICENSE
@@ -0,0 +1,205 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+
diff --git a/java/sca/samples/zipcode-jaxws/NOTICE b/java/sca/samples/zipcode-jaxws/NOTICE
new file mode 100644
index 0000000000..1325efd8bf
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/NOTICE
@@ -0,0 +1,6 @@
+${pom.name}
+Copyright (c) 2005 - 2008 The Apache Software Foundation
+
+This product includes software developed by
+The Apache Software Foundation (http://www.apache.org/).
+
diff --git a/java/sca/samples/zipcode-jaxws/README b/java/sca/samples/zipcode-jaxws/README
new file mode 100644
index 0000000000..12f81543f0
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/README
@@ -0,0 +1,72 @@
+ZipCode JAX-WS Sample
+======================================
+This sample demonstrates how to access an existing web service using JAX-WS/JAXB generated java interfaces/classes.
+
+The README in the samples directory (the directory above this) provides
+general instructions about building and running samples. Take a look there
+first.
+
+If you just want to run it to see what happens open a command prompt, navigate
+to this sample directory and do:
+
+ant run
+
+OR if you don't have ant, on Windows do
+
+java -cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-zipcode-jaxws.jar zipcode.ZipCodeClient
+
+and on *nix do
+
+java -cp ../../lib/tuscany-sca-manifest.jar:target/sample-zipcode-jaxws.jar zipcode.ZipCodeClient
+
+
+Sample Overview
+---------------
+The sample provides a single component exposing a Web resource.
+
+zipcode-jaxws/
+ src/
+ main/
+ java/
+
+ resources/
+ ZipCode.composite - the SCA assembly for this sample
+ zipcode-jaxws.png - a pictorial representation of the
+ sample .composite file
+ build.xml - the Ant build file
+ pom.xml - the Maven build file
+
+
+Building And Running The Sample Using Ant
+-----------------------------------------
+With the binary distribution the sample can be built and run using Ant using the
+following commands
+
+cd zipcode-jaxws
+ant compile
+ant run
+
+You should see the following output from the run target.
+
+run:
+ [java] 14-Jan-2008 14:28:07 org.apache.tuscany.sca.http.jetty.JettyServer a
+ddServletMapping
+ [java] INFO: Added Servlet mapping: http://L3AW203:8080/myWeb/*
+ [java] Sample server started (press enter to shutdown)
+ [java]
+ [java] To get the Web resource, point your Web browser to the following add
+ress:
+ [java] http://localhost:8080/myWeb/index.html
+ [java]
+
+As this point the Web resource is exposed by a web server started automatically
+by the SCA runtime. To stop the server just press enter.
+
+Building The Sample Using Maven
+-------------------------------------------
+With either the binary or source distributions the sample can be built using
+Maven as follows.
+
+cd zipcode-jaxws
+mvn
+
diff --git a/java/sca/samples/zipcode-jaxws/build.xml b/java/sca/samples/zipcode-jaxws/build.xml
new file mode 100644
index 0000000000..ab8d704352
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/build.xml
@@ -0,0 +1,62 @@
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<!DOCTYPE project [
+<!ENTITY buildDependency SYSTEM "build-dependency.xml">
+]>
+
+<project name="sample-jaxws" default="compile">
+ &buildDependency;
+ <target name="compile">
+ <mkdir dir="target/classes"/>
+ <javac destdir="target/classes" debug="on" source="1.5" target="1.5">
+ <src path="src\main\java"/>
+ <classpath>
+ <fileset refid="tuscany.jars"/>
+ <fileset refid="3rdparty.jars"/>
+ </classpath>
+ </javac>
+ <copy todir="target/classes">
+ <fileset dir="src\main\resources"/>
+ </copy>
+ <jar destfile="target/sample-zipcode-jaxws.jar" basedir="target/classes">
+ <manifest>
+ <attribute name="Main-Class" value="zipcode.ZipCodeClient"/>
+ </manifest>
+ </jar>
+ </target>
+
+ <target name="package" depends="compile"/>
+
+ <target name="run">
+ <java classname="zipcode.ZipCodeClient" fork="true">
+ <classpath>
+ <pathelement location="target/sample-zipcode-jaxws.jar"/>
+ <fileset refid="tuscany.jars"/>
+ <fileset refid="3rdparty.jars"/>
+ </classpath>
+ </java>
+ </target>
+
+ <target name="clean">
+ <delete includeemptydirs="true">
+ <fileset dir="target"/>
+ </delete>
+ </target>
+
+</project>
diff --git a/java/sca/samples/zipcode-jaxws/pom.xml b/java/sca/samples/zipcode-jaxws/pom.xml
new file mode 100644
index 0000000000..66a27ccbb2
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/pom.xml
@@ -0,0 +1,252 @@
+<?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-sca</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ <relativePath>../../pom.xml</relativePath>
+ </parent>
+ <artifactId>sample-zipcode-jaxws</artifactId>
+ <packaging>jar</packaging>
+ <name>Apache Tuscany SCA US Zip Code JAX-WS Sample</name>
+ <description>Apache Tuscany SCA US Zip Code JAX-WS Sample</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-host-embedded</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-implementation-java-runtime</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-ws-axis2</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-binding-feed</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-host-jetty</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.2</version>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+
+ <repositories>
+ <repository>
+ <id>java.net</id>
+ <name>java.net Maven 1.x Repository</name>
+ <url>http://download.java.net/maven/1</url>
+ <layout>legacy</layout>
+ </repository>
+ <repository>
+ <id>java.net2</id>
+ <name>java.net Maven 2.x Repository</name>
+ <url>http://download.java.net/maven/2</url>
+ </repository>
+ </repositories>
+
+ <pluginRepositories>
+ <pluginRepository>
+ <id>java.net2</id>
+ <name>java.net Maven 2.x Repository</name>
+ <url>http://download.java.net/maven/2</url>
+ </pluginRepository>
+ </pluginRepositories>
+
+
+ <build>
+ <finalName>${artifactId}</finalName>
+ <plugins>
+ <!-- comment out the following to build offline -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>1.1</version>
+
+ <executions>
+ <execution>
+ <id>install-wsdl</id>
+ <phase>validate</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <tasks>
+ <mkdir dir="${basedir}/src/main/resources/wsdl/" />
+ <get src="http://www.webservicex.net/uszip.asmx?wsdl"
+ dest="${basedir}/src/main/resources/wsdl/uszip.wsdl" verbose="true"
+ usetimestamp="true" />
+ <get src="http://www.webservicex.net/WeatherForecast.asmx?wsdl"
+ dest="${basedir}/src/main/resources/wsdl/WeatherForecast.wsdl" verbose="true"
+ usetimestamp="true" />
+ </tasks>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <!-- end of offline excluded section -->
+ <plugin>
+ <groupId>org.apache.tuscany.sca</groupId>
+ <artifactId>tuscany-maven-ant-generator</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ <executions>
+ <execution>
+ <configuration>
+ <mainClass>location.LocationClient</mainClass>
+ <buildDependencyFileOnly>true</buildDependencyFileOnly>
+ </configuration>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <argLine>-Djava.endorsed.dirs=target/endorsed</argLine>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>copy</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>javax.xml.ws</groupId>
+ <artifactId>jaxws-api</artifactId>
+ <version>2.1</version>
+ <type>jar</type>
+ </artifactItem>
+ <artifactItem>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ <version>2.1</version>
+ <type>jar</type>
+ </artifactItem>
+ </artifactItems>
+ <outputDirectory>${project.build.directory}/endorsed</outputDirectory>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>true</overWriteSnapshots>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <!--
+ <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-source</goal>
+ </goals>
+ <configuration>
+ <sources>
+ <source>target/jaxws-source</source>
+ </sources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>jaxws-maven-plugin</artifactId>
+ <version>1.9</version>
+ <executions>
+ <execution>
+ <id>wsimport1</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>wsimport</goal>
+ </goals>
+ <configuration>
+ <packageName>com.example.uszip</packageName>
+ <wsdlDirectory>${basedir}/src/main/resources/wsdl</wsdlDirectory>
+ <wsdlFiles>
+ <wsdlFile>uszip.wsdl</wsdlFile>
+ </wsdlFiles>
+ </configuration>
+ </execution>
+ <execution>
+ <id>wsimport2</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>wsimport</goal>
+ </goals>
+ <configuration>
+ <packageName>com.example.weather</packageName>
+ <wsdlDirectory>${basedir}/src/main/resources/wsdl</wsdlDirectory>
+ <wsdlFiles>
+ <wsdlFile>WeatherForecast.wsdl</wsdlFile>
+ </wsdlFiles>
+ </configuration>
+ </execution>
+ </executions>
+ <configuration>
+ <target>2.1</target>
+ <sourceDestDir>${project.build.directory}/jaxws-source</sourceDestDir>
+ <verbose>false</verbose>
+ <xnocompile>true</xnocompile>
+ </configuration>
+ </plugin>
+ -->
+ </plugins>
+ </build>
+
+
+</project>
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByAreaCode.java b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByAreaCode.java
new file mode 100644
index 0000000000..8c9a48bf40
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByAreaCode.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 com.example.uszip;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="USAreaCode" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+ "usAreaCode"
+})
+@XmlRootElement(name = "GetInfoByAreaCode")
+public class GetInfoByAreaCode {
+
+ @XmlElement(name = "USAreaCode")
+ protected String usAreaCode;
+
+ /**
+ * Gets the value of the usAreaCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getUSAreaCode() {
+ return usAreaCode;
+ }
+
+ /**
+ * Sets the value of the usAreaCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setUSAreaCode(String value) {
+ this.usAreaCode = value;
+ }
+
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByAreaCodeResponse.java b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByAreaCodeResponse.java
new file mode 100644
index 0000000000..93847c8809
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByAreaCodeResponse.java
@@ -0,0 +1,158 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT 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 com.example.uszip;
+
+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.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="GetInfoByAreaCodeResult" minOccurs="0">
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;any/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+ "getInfoByAreaCodeResult"
+})
+@XmlRootElement(name = "GetInfoByAreaCodeResponse")
+public class GetInfoByAreaCodeResponse {
+
+ @XmlElement(name = "GetInfoByAreaCodeResult")
+ protected GetInfoByAreaCodeResponse.GetInfoByAreaCodeResult getInfoByAreaCodeResult;
+
+ /**
+ * Gets the value of the getInfoByAreaCodeResult property.
+ *
+ * @return
+ * possible object is
+ * {@link GetInfoByAreaCodeResponse.GetInfoByAreaCodeResult }
+ *
+ */
+ public GetInfoByAreaCodeResponse.GetInfoByAreaCodeResult getGetInfoByAreaCodeResult() {
+ return getInfoByAreaCodeResult;
+ }
+
+ /**
+ * Sets the value of the getInfoByAreaCodeResult property.
+ *
+ * @param value
+ * allowed object is
+ * {@link GetInfoByAreaCodeResponse.GetInfoByAreaCodeResult }
+ *
+ */
+ public void setGetInfoByAreaCodeResult(GetInfoByAreaCodeResponse.GetInfoByAreaCodeResult value) {
+ this.getInfoByAreaCodeResult = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;any/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "content"
+ })
+ public static class GetInfoByAreaCodeResult {
+
+ @XmlMixed
+ @XmlAnyElement(lax = true)
+ protected List<Object> content;
+
+ /**
+ * Gets the value of the content 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 content property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getContent().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ * {@link Object }
+ *
+ *
+ */
+ public List<Object> getContent() {
+ if (content == null) {
+ content = new ArrayList<Object>();
+ }
+ return this.content;
+ }
+
+ }
+
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByCity.java b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByCity.java
new file mode 100644
index 0000000000..cf9276d417
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByCity.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 com.example.uszip;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="USCity" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+ "usCity"
+})
+@XmlRootElement(name = "GetInfoByCity")
+public class GetInfoByCity {
+
+ @XmlElement(name = "USCity")
+ protected String usCity;
+
+ /**
+ * Gets the value of the usCity property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getUSCity() {
+ return usCity;
+ }
+
+ /**
+ * Sets the value of the usCity property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setUSCity(String value) {
+ this.usCity = value;
+ }
+
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByCityResponse.java b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByCityResponse.java
new file mode 100644
index 0000000000..9dc0e41b2b
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByCityResponse.java
@@ -0,0 +1,158 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT 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 com.example.uszip;
+
+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.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="GetInfoByCityResult" minOccurs="0">
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;any/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+ "getInfoByCityResult"
+})
+@XmlRootElement(name = "GetInfoByCityResponse")
+public class GetInfoByCityResponse {
+
+ @XmlElement(name = "GetInfoByCityResult")
+ protected GetInfoByCityResponse.GetInfoByCityResult getInfoByCityResult;
+
+ /**
+ * Gets the value of the getInfoByCityResult property.
+ *
+ * @return
+ * possible object is
+ * {@link GetInfoByCityResponse.GetInfoByCityResult }
+ *
+ */
+ public GetInfoByCityResponse.GetInfoByCityResult getGetInfoByCityResult() {
+ return getInfoByCityResult;
+ }
+
+ /**
+ * Sets the value of the getInfoByCityResult property.
+ *
+ * @param value
+ * allowed object is
+ * {@link GetInfoByCityResponse.GetInfoByCityResult }
+ *
+ */
+ public void setGetInfoByCityResult(GetInfoByCityResponse.GetInfoByCityResult value) {
+ this.getInfoByCityResult = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;any/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "content"
+ })
+ public static class GetInfoByCityResult {
+
+ @XmlMixed
+ @XmlAnyElement(lax = true)
+ protected List<Object> content;
+
+ /**
+ * Gets the value of the content 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 content property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getContent().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ * {@link Object }
+ *
+ *
+ */
+ public List<Object> getContent() {
+ if (content == null) {
+ content = new ArrayList<Object>();
+ }
+ return this.content;
+ }
+
+ }
+
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByState.java b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByState.java
new file mode 100644
index 0000000000..48be94b14a
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByState.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 com.example.uszip;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="USState" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+ "usState"
+})
+@XmlRootElement(name = "GetInfoByState")
+public class GetInfoByState {
+
+ @XmlElement(name = "USState")
+ protected String usState;
+
+ /**
+ * Gets the value of the usState property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getUSState() {
+ return usState;
+ }
+
+ /**
+ * Sets the value of the usState property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setUSState(String value) {
+ this.usState = value;
+ }
+
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByStateResponse.java b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByStateResponse.java
new file mode 100644
index 0000000000..1645e11ca2
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByStateResponse.java
@@ -0,0 +1,158 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT 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 com.example.uszip;
+
+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.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="GetInfoByStateResult" minOccurs="0">
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;any/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+ "getInfoByStateResult"
+})
+@XmlRootElement(name = "GetInfoByStateResponse")
+public class GetInfoByStateResponse {
+
+ @XmlElement(name = "GetInfoByStateResult")
+ protected GetInfoByStateResponse.GetInfoByStateResult getInfoByStateResult;
+
+ /**
+ * Gets the value of the getInfoByStateResult property.
+ *
+ * @return
+ * possible object is
+ * {@link GetInfoByStateResponse.GetInfoByStateResult }
+ *
+ */
+ public GetInfoByStateResponse.GetInfoByStateResult getGetInfoByStateResult() {
+ return getInfoByStateResult;
+ }
+
+ /**
+ * Sets the value of the getInfoByStateResult property.
+ *
+ * @param value
+ * allowed object is
+ * {@link GetInfoByStateResponse.GetInfoByStateResult }
+ *
+ */
+ public void setGetInfoByStateResult(GetInfoByStateResponse.GetInfoByStateResult value) {
+ this.getInfoByStateResult = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;any/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "content"
+ })
+ public static class GetInfoByStateResult {
+
+ @XmlMixed
+ @XmlAnyElement(lax = true)
+ protected List<Object> content;
+
+ /**
+ * Gets the value of the content 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 content property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getContent().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ * {@link Object }
+ *
+ *
+ */
+ public List<Object> getContent() {
+ if (content == null) {
+ content = new ArrayList<Object>();
+ }
+ return this.content;
+ }
+
+ }
+
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByZIP.java b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByZIP.java
new file mode 100644
index 0000000000..45c948b4b4
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByZIP.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 com.example.uszip;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="USZip" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+ "usZip"
+})
+@XmlRootElement(name = "GetInfoByZIP")
+public class GetInfoByZIP {
+
+ @XmlElement(name = "USZip")
+ protected String usZip;
+
+ /**
+ * Gets the value of the usZip property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getUSZip() {
+ return usZip;
+ }
+
+ /**
+ * Sets the value of the usZip property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setUSZip(String value) {
+ this.usZip = value;
+ }
+
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByZIPResponse.java b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByZIPResponse.java
new file mode 100644
index 0000000000..9e78dc6d0a
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/GetInfoByZIPResponse.java
@@ -0,0 +1,158 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT 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 com.example.uszip;
+
+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.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="GetInfoByZIPResult" minOccurs="0">
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;any/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * &lt;/element>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+ "getInfoByZIPResult"
+})
+@XmlRootElement(name = "GetInfoByZIPResponse")
+public class GetInfoByZIPResponse {
+
+ @XmlElement(name = "GetInfoByZIPResult")
+ protected GetInfoByZIPResponse.GetInfoByZIPResult getInfoByZIPResult;
+
+ /**
+ * Gets the value of the getInfoByZIPResult property.
+ *
+ * @return
+ * possible object is
+ * {@link GetInfoByZIPResponse.GetInfoByZIPResult }
+ *
+ */
+ public GetInfoByZIPResponse.GetInfoByZIPResult getGetInfoByZIPResult() {
+ return getInfoByZIPResult;
+ }
+
+ /**
+ * Sets the value of the getInfoByZIPResult property.
+ *
+ * @param value
+ * allowed object is
+ * {@link GetInfoByZIPResponse.GetInfoByZIPResult }
+ *
+ */
+ public void setGetInfoByZIPResult(GetInfoByZIPResponse.GetInfoByZIPResult value) {
+ this.getInfoByZIPResult = value;
+ }
+
+
+ /**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;any/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+ @XmlAccessorType(XmlAccessType.FIELD)
+ @XmlType(name = "", propOrder = {
+ "content"
+ })
+ public static class GetInfoByZIPResult {
+
+ @XmlMixed
+ @XmlAnyElement(lax = true)
+ protected List<Object> content;
+
+ /**
+ * Gets the value of the content 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 content property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getContent().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link String }
+ * {@link Object }
+ *
+ *
+ */
+ public List<Object> getContent() {
+ if (content == null) {
+ content = new ArrayList<Object>();
+ }
+ return this.content;
+ }
+
+ }
+
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/ObjectFactory.java b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/ObjectFactory.java
new file mode 100644
index 0000000000..ced83ff09a
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/ObjectFactory.java
@@ -0,0 +1,145 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT 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 com.example.uszip;
+
+import javax.xml.bind.annotation.XmlRegistry;
+
+
+/**
+ * This object contains factory methods for each
+ * Java content interface and Java element interface
+ * generated in the com.example.uszip package.
+ * <p>An ObjectFactory allows you to programatically
+ * construct new instances of the Java representation
+ * for XML content. The Java representation of XML
+ * content can consist of schema derived interfaces
+ * and classes representing the binding of schema
+ * type definitions, element declarations and model
+ * groups. Factory methods for each of these are
+ * provided in this class.
+ *
+ */
+@XmlRegistry
+public class ObjectFactory {
+
+
+ /**
+ * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: com.example.uszip
+ *
+ */
+ public ObjectFactory() {
+ }
+
+ /**
+ * Create an instance of {@link GetInfoByCity }
+ *
+ */
+ public GetInfoByCity createGetInfoByCity() {
+ return new GetInfoByCity();
+ }
+
+ /**
+ * Create an instance of {@link GetInfoByState }
+ *
+ */
+ public GetInfoByState createGetInfoByState() {
+ return new GetInfoByState();
+ }
+
+ /**
+ * Create an instance of {@link GetInfoByZIPResponse.GetInfoByZIPResult }
+ *
+ */
+ public GetInfoByZIPResponse.GetInfoByZIPResult createGetInfoByZIPResponseGetInfoByZIPResult() {
+ return new GetInfoByZIPResponse.GetInfoByZIPResult();
+ }
+
+ /**
+ * Create an instance of {@link GetInfoByStateResponse.GetInfoByStateResult }
+ *
+ */
+ public GetInfoByStateResponse.GetInfoByStateResult createGetInfoByStateResponseGetInfoByStateResult() {
+ return new GetInfoByStateResponse.GetInfoByStateResult();
+ }
+
+ /**
+ * Create an instance of {@link GetInfoByAreaCodeResponse.GetInfoByAreaCodeResult }
+ *
+ */
+ public GetInfoByAreaCodeResponse.GetInfoByAreaCodeResult createGetInfoByAreaCodeResponseGetInfoByAreaCodeResult() {
+ return new GetInfoByAreaCodeResponse.GetInfoByAreaCodeResult();
+ }
+
+ /**
+ * Create an instance of {@link GetInfoByZIP }
+ *
+ */
+ public GetInfoByZIP createGetInfoByZIP() {
+ return new GetInfoByZIP();
+ }
+
+ /**
+ * Create an instance of {@link GetInfoByAreaCodeResponse }
+ *
+ */
+ public GetInfoByAreaCodeResponse createGetInfoByAreaCodeResponse() {
+ return new GetInfoByAreaCodeResponse();
+ }
+
+ /**
+ * Create an instance of {@link GetInfoByCityResponse }
+ *
+ */
+ public GetInfoByCityResponse createGetInfoByCityResponse() {
+ return new GetInfoByCityResponse();
+ }
+
+ /**
+ * Create an instance of {@link GetInfoByStateResponse }
+ *
+ */
+ public GetInfoByStateResponse createGetInfoByStateResponse() {
+ return new GetInfoByStateResponse();
+ }
+
+ /**
+ * Create an instance of {@link GetInfoByCityResponse.GetInfoByCityResult }
+ *
+ */
+ public GetInfoByCityResponse.GetInfoByCityResult createGetInfoByCityResponseGetInfoByCityResult() {
+ return new GetInfoByCityResponse.GetInfoByCityResult();
+ }
+
+ /**
+ * Create an instance of {@link GetInfoByZIPResponse }
+ *
+ */
+ public GetInfoByZIPResponse createGetInfoByZIPResponse() {
+ return new GetInfoByZIPResponse();
+ }
+
+ /**
+ * Create an instance of {@link GetInfoByAreaCode }
+ *
+ */
+ public GetInfoByAreaCode createGetInfoByAreaCode() {
+ return new GetInfoByAreaCode();
+ }
+
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/USZip.java b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/USZip.java
new file mode 100644
index 0000000000..22493ba9b8
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/USZip.java
@@ -0,0 +1,89 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT 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 com.example.uszip;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+import javax.xml.ws.WebServiceFeature;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.3-b02-
+ * Generated source version: 2.1
+ *
+ */
+@WebServiceClient(name = "USZip", targetNamespace = "http://www.webserviceX.NET", wsdlLocation = "file:/C:/Tuscany/java/sca/demos/us-location/src/main/resources/wsdl/uszip.wsdl")
+public class USZip
+ extends Service
+{
+
+ private final static URL USZIP_WSDL_LOCATION;
+ private final static Logger logger = Logger.getLogger(com.example.uszip.USZip.class.getName());
+
+ static {
+ URL url = null;
+ try {
+ URL baseUrl;
+ baseUrl = com.example.uszip.USZip.class.getResource(".");
+ url = new URL(baseUrl, "file:/C:/Tuscany/java/sca/demos/us-location/src/main/resources/wsdl/uszip.wsdl");
+ } catch (MalformedURLException e) {
+ logger.warning("Failed to create URL for the wsdl Location: 'file:/C:/Tuscany/java/sca/demos/us-location/src/main/resources/wsdl/uszip.wsdl', retrying as a local file");
+ logger.warning(e.getMessage());
+ }
+ USZIP_WSDL_LOCATION = url;
+ }
+
+ public USZip(URL wsdlLocation, QName serviceName) {
+ super(wsdlLocation, serviceName);
+ }
+
+ public USZip() {
+ super(USZIP_WSDL_LOCATION, new QName("http://www.webserviceX.NET", "USZip"));
+ }
+
+ /**
+ *
+ * @return
+ * returns USZipSoap
+ */
+ @WebEndpoint(name = "USZipSoap")
+ public USZipSoap getUSZipSoap() {
+ return super.getPort(new QName("http://www.webserviceX.NET", "USZipSoap"), USZipSoap.class);
+ }
+
+ /**
+ *
+ * @param features
+ * A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the <code>features</code> parameter will have their default values.
+ * @return
+ * returns USZipSoap
+ */
+ @WebEndpoint(name = "USZipSoap")
+ public USZipSoap getUSZipSoap(WebServiceFeature... features) {
+ return super.getPort(new QName("http://www.webserviceX.NET", "USZipSoap"), USZipSoap.class, features);
+ }
+
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/USZipSoap.java b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/USZipSoap.java
new file mode 100644
index 0000000000..5ac370005f
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/USZipSoap.java
@@ -0,0 +1,103 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT 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 com.example.uszip;
+
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebResult;
+import javax.jws.WebService;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.ws.RequestWrapper;
+import javax.xml.ws.ResponseWrapper;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.3-b02-
+ * Generated source version: 2.1
+ *
+ */
+@WebService(name = "USZipSoap", targetNamespace = "http://www.webserviceX.NET")
+@XmlSeeAlso({
+ ObjectFactory.class
+})
+public interface USZipSoap {
+
+
+ /**
+ * Get State Code,City,Area Code,Time Zone,Zip Code by Zip Code
+ *
+ * @param usZip
+ * @return
+ * returns com.example.uszip.GetInfoByZIPResponse.GetInfoByZIPResult
+ */
+ @WebMethod(operationName = "GetInfoByZIP", action = "http://www.webserviceX.NET/GetInfoByZIP")
+ @WebResult(name = "GetInfoByZIPResult", targetNamespace = "http://www.webserviceX.NET")
+ @RequestWrapper(localName = "GetInfoByZIP", targetNamespace = "http://www.webserviceX.NET", className = "com.example.uszip.GetInfoByZIP")
+ @ResponseWrapper(localName = "GetInfoByZIPResponse", targetNamespace = "http://www.webserviceX.NET", className = "com.example.uszip.GetInfoByZIPResponse")
+ public com.example.uszip.GetInfoByZIPResponse.GetInfoByZIPResult getInfoByZIP(
+ @WebParam(name = "USZip", targetNamespace = "http://www.webserviceX.NET")
+ String usZip);
+
+ /**
+ * Get State Code,City,Area Code,Time Zone,Zip Code by City
+ *
+ * @param usCity
+ * @return
+ * returns com.example.uszip.GetInfoByCityResponse.GetInfoByCityResult
+ */
+ @WebMethod(operationName = "GetInfoByCity", action = "http://www.webserviceX.NET/GetInfoByCity")
+ @WebResult(name = "GetInfoByCityResult", targetNamespace = "http://www.webserviceX.NET")
+ @RequestWrapper(localName = "GetInfoByCity", targetNamespace = "http://www.webserviceX.NET", className = "com.example.uszip.GetInfoByCity")
+ @ResponseWrapper(localName = "GetInfoByCityResponse", targetNamespace = "http://www.webserviceX.NET", className = "com.example.uszip.GetInfoByCityResponse")
+ public com.example.uszip.GetInfoByCityResponse.GetInfoByCityResult getInfoByCity(
+ @WebParam(name = "USCity", targetNamespace = "http://www.webserviceX.NET")
+ String usCity);
+
+ /**
+ * Get State Code,City,Area Code,Time Zone,Zip Code by state
+ *
+ * @param usState
+ * @return
+ * returns com.example.uszip.GetInfoByStateResponse.GetInfoByStateResult
+ */
+ @WebMethod(operationName = "GetInfoByState", action = "http://www.webserviceX.NET/GetInfoByState")
+ @WebResult(name = "GetInfoByStateResult", targetNamespace = "http://www.webserviceX.NET")
+ @RequestWrapper(localName = "GetInfoByState", targetNamespace = "http://www.webserviceX.NET", className = "com.example.uszip.GetInfoByState")
+ @ResponseWrapper(localName = "GetInfoByStateResponse", targetNamespace = "http://www.webserviceX.NET", className = "com.example.uszip.GetInfoByStateResponse")
+ public com.example.uszip.GetInfoByStateResponse.GetInfoByStateResult getInfoByState(
+ @WebParam(name = "USState", targetNamespace = "http://www.webserviceX.NET")
+ String usState);
+
+ /**
+ * Get State Code,City,Area Code,Time Zone,Zip Code by Area Code
+ *
+ * @param usAreaCode
+ * @return
+ * returns com.example.uszip.GetInfoByAreaCodeResponse.GetInfoByAreaCodeResult
+ */
+ @WebMethod(operationName = "GetInfoByAreaCode", action = "http://www.webserviceX.NET/GetInfoByAreaCode")
+ @WebResult(name = "GetInfoByAreaCodeResult", targetNamespace = "http://www.webserviceX.NET")
+ @RequestWrapper(localName = "GetInfoByAreaCode", targetNamespace = "http://www.webserviceX.NET", className = "com.example.uszip.GetInfoByAreaCode")
+ @ResponseWrapper(localName = "GetInfoByAreaCodeResponse", targetNamespace = "http://www.webserviceX.NET", className = "com.example.uszip.GetInfoByAreaCodeResponse")
+ public com.example.uszip.GetInfoByAreaCodeResponse.GetInfoByAreaCodeResult getInfoByAreaCode(
+ @WebParam(name = "USAreaCode", targetNamespace = "http://www.webserviceX.NET")
+ String usAreaCode);
+
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/package-info.java b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/package-info.java
new file mode 100644
index 0000000000..d120f34ee5
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/uszip/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://www.webserviceX.NET", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package com.example.uszip;
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/ArrayOfWeatherData.java b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/ArrayOfWeatherData.java
new file mode 100644
index 0000000000..5385fb57be
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/ArrayOfWeatherData.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 com.example.weather;
+
+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 ArrayOfWeatherData complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="ArrayOfWeatherData">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="WeatherData" type="{http://www.webservicex.net}WeatherData" maxOccurs="unbounded" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ArrayOfWeatherData", propOrder = {
+ "weatherData"
+})
+public class ArrayOfWeatherData {
+
+ @XmlElement(name = "WeatherData")
+ protected List<WeatherData> weatherData;
+
+ /**
+ * Gets the value of the weatherData 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 weatherData property.
+ *
+ * <p>
+ * For example, to add a new item, do as follows:
+ * <pre>
+ * getWeatherData().add(newItem);
+ * </pre>
+ *
+ *
+ * <p>
+ * Objects of the following type(s) are allowed in the list
+ * {@link WeatherData }
+ *
+ *
+ */
+ public List<WeatherData> getWeatherData() {
+ if (weatherData == null) {
+ weatherData = new ArrayList<WeatherData>();
+ }
+ return this.weatherData;
+ }
+
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/GetWeatherByPlaceName.java b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/GetWeatherByPlaceName.java
new file mode 100644
index 0000000000..9eb205e75d
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/GetWeatherByPlaceName.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 com.example.weather;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="PlaceName" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+ "placeName"
+})
+@XmlRootElement(name = "GetWeatherByPlaceName")
+public class GetWeatherByPlaceName {
+
+ @XmlElement(name = "PlaceName")
+ protected String placeName;
+
+ /**
+ * Gets the value of the placeName property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getPlaceName() {
+ return placeName;
+ }
+
+ /**
+ * Sets the value of the placeName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setPlaceName(String value) {
+ this.placeName = value;
+ }
+
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/GetWeatherByPlaceNameResponse.java b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/GetWeatherByPlaceNameResponse.java
new file mode 100644
index 0000000000..e281509623
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/GetWeatherByPlaceNameResponse.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 com.example.weather;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="GetWeatherByPlaceNameResult" type="{http://www.webservicex.net}WeatherForecasts"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+ "getWeatherByPlaceNameResult"
+})
+@XmlRootElement(name = "GetWeatherByPlaceNameResponse")
+public class GetWeatherByPlaceNameResponse {
+
+ @XmlElement(name = "GetWeatherByPlaceNameResult", required = true)
+ protected WeatherForecasts getWeatherByPlaceNameResult;
+
+ /**
+ * Gets the value of the getWeatherByPlaceNameResult property.
+ *
+ * @return
+ * possible object is
+ * {@link WeatherForecasts }
+ *
+ */
+ public WeatherForecasts getGetWeatherByPlaceNameResult() {
+ return getWeatherByPlaceNameResult;
+ }
+
+ /**
+ * Sets the value of the getWeatherByPlaceNameResult property.
+ *
+ * @param value
+ * allowed object is
+ * {@link WeatherForecasts }
+ *
+ */
+ public void setGetWeatherByPlaceNameResult(WeatherForecasts value) {
+ this.getWeatherByPlaceNameResult = value;
+ }
+
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/GetWeatherByZipCode.java b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/GetWeatherByZipCode.java
new file mode 100644
index 0000000000..08d4a70364
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/GetWeatherByZipCode.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 com.example.weather;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="ZipCode" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+ "zipCode"
+})
+@XmlRootElement(name = "GetWeatherByZipCode")
+public class GetWeatherByZipCode {
+
+ @XmlElement(name = "ZipCode")
+ protected String zipCode;
+
+ /**
+ * Gets the value of the zipCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getZipCode() {
+ return zipCode;
+ }
+
+ /**
+ * Sets the value of the zipCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setZipCode(String value) {
+ this.zipCode = value;
+ }
+
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/GetWeatherByZipCodeResponse.java b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/GetWeatherByZipCodeResponse.java
new file mode 100644
index 0000000000..9288f5332e
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/GetWeatherByZipCodeResponse.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 com.example.weather;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType>
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="GetWeatherByZipCodeResult" type="{http://www.webservicex.net}WeatherForecasts"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+ "getWeatherByZipCodeResult"
+})
+@XmlRootElement(name = "GetWeatherByZipCodeResponse")
+public class GetWeatherByZipCodeResponse {
+
+ @XmlElement(name = "GetWeatherByZipCodeResult", required = true)
+ protected WeatherForecasts getWeatherByZipCodeResult;
+
+ /**
+ * Gets the value of the getWeatherByZipCodeResult property.
+ *
+ * @return
+ * possible object is
+ * {@link WeatherForecasts }
+ *
+ */
+ public WeatherForecasts getGetWeatherByZipCodeResult() {
+ return getWeatherByZipCodeResult;
+ }
+
+ /**
+ * Sets the value of the getWeatherByZipCodeResult property.
+ *
+ * @param value
+ * allowed object is
+ * {@link WeatherForecasts }
+ *
+ */
+ public void setGetWeatherByZipCodeResult(WeatherForecasts value) {
+ this.getWeatherByZipCodeResult = value;
+ }
+
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/ObjectFactory.java b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/ObjectFactory.java
new file mode 100644
index 0000000000..0c4fdbcde1
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/ObjectFactory.java
@@ -0,0 +1,118 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT 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 com.example.weather;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each
+ * Java content interface and Java element interface
+ * generated in the com.example.weather package.
+ * <p>An ObjectFactory allows you to programatically
+ * construct new instances of the Java representation
+ * for XML content. The Java representation of XML
+ * content can consist of schema derived interfaces
+ * and classes representing the binding of schema
+ * type definitions, element declarations and model
+ * groups. Factory methods for each of these are
+ * provided in this class.
+ *
+ */
+@XmlRegistry
+public class ObjectFactory {
+
+ private final static QName _WeatherForecasts_QNAME = new QName("http://www.webservicex.net", "WeatherForecasts");
+
+ /**
+ * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: com.example.weather
+ *
+ */
+ public ObjectFactory() {
+ }
+
+ /**
+ * Create an instance of {@link WeatherData }
+ *
+ */
+ public WeatherData createWeatherData() {
+ return new WeatherData();
+ }
+
+ /**
+ * Create an instance of {@link GetWeatherByPlaceName }
+ *
+ */
+ public GetWeatherByPlaceName createGetWeatherByPlaceName() {
+ return new GetWeatherByPlaceName();
+ }
+
+ /**
+ * Create an instance of {@link GetWeatherByPlaceNameResponse }
+ *
+ */
+ public GetWeatherByPlaceNameResponse createGetWeatherByPlaceNameResponse() {
+ return new GetWeatherByPlaceNameResponse();
+ }
+
+ /**
+ * Create an instance of {@link GetWeatherByZipCodeResponse }
+ *
+ */
+ public GetWeatherByZipCodeResponse createGetWeatherByZipCodeResponse() {
+ return new GetWeatherByZipCodeResponse();
+ }
+
+ /**
+ * Create an instance of {@link GetWeatherByZipCode }
+ *
+ */
+ public GetWeatherByZipCode createGetWeatherByZipCode() {
+ return new GetWeatherByZipCode();
+ }
+
+ /**
+ * Create an instance of {@link WeatherForecasts }
+ *
+ */
+ public WeatherForecasts createWeatherForecasts() {
+ return new WeatherForecasts();
+ }
+
+ /**
+ * Create an instance of {@link ArrayOfWeatherData }
+ *
+ */
+ public ArrayOfWeatherData createArrayOfWeatherData() {
+ return new ArrayOfWeatherData();
+ }
+
+ /**
+ * Create an instance of {@link JAXBElement }{@code <}{@link WeatherForecasts }{@code >}}
+ *
+ */
+ @XmlElementDecl(namespace = "http://www.webservicex.net", name = "WeatherForecasts")
+ public JAXBElement<WeatherForecasts> createWeatherForecasts(WeatherForecasts value) {
+ return new JAXBElement<WeatherForecasts>(_WeatherForecasts_QNAME, WeatherForecasts.class, null, value);
+ }
+
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/WeatherData.java b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/WeatherData.java
new file mode 100644
index 0000000000..a4ca6190b5
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/WeatherData.java
@@ -0,0 +1,219 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT 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 com.example.weather;
+
+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 WeatherData complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="WeatherData">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Day" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;element name="WeatherImage" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;element name="MaxTemperatureF" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;element name="MinTemperatureF" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;element name="MaxTemperatureC" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;element name="MinTemperatureC" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "WeatherData", propOrder = {
+ "day",
+ "weatherImage",
+ "maxTemperatureF",
+ "minTemperatureF",
+ "maxTemperatureC",
+ "minTemperatureC"
+})
+public class WeatherData {
+
+ @XmlElement(name = "Day")
+ protected String day;
+ @XmlElement(name = "WeatherImage")
+ protected String weatherImage;
+ @XmlElement(name = "MaxTemperatureF")
+ protected String maxTemperatureF;
+ @XmlElement(name = "MinTemperatureF")
+ protected String minTemperatureF;
+ @XmlElement(name = "MaxTemperatureC")
+ protected String maxTemperatureC;
+ @XmlElement(name = "MinTemperatureC")
+ protected String minTemperatureC;
+
+ /**
+ * Gets the value of the day property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getDay() {
+ return day;
+ }
+
+ /**
+ * Sets the value of the day property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setDay(String value) {
+ this.day = value;
+ }
+
+ /**
+ * Gets the value of the weatherImage property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getWeatherImage() {
+ return weatherImage;
+ }
+
+ /**
+ * Sets the value of the weatherImage property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setWeatherImage(String value) {
+ this.weatherImage = value;
+ }
+
+ /**
+ * Gets the value of the maxTemperatureF property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getMaxTemperatureF() {
+ return maxTemperatureF;
+ }
+
+ /**
+ * Sets the value of the maxTemperatureF property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setMaxTemperatureF(String value) {
+ this.maxTemperatureF = value;
+ }
+
+ /**
+ * Gets the value of the minTemperatureF property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getMinTemperatureF() {
+ return minTemperatureF;
+ }
+
+ /**
+ * Sets the value of the minTemperatureF property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setMinTemperatureF(String value) {
+ this.minTemperatureF = value;
+ }
+
+ /**
+ * Gets the value of the maxTemperatureC property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getMaxTemperatureC() {
+ return maxTemperatureC;
+ }
+
+ /**
+ * Sets the value of the maxTemperatureC property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setMaxTemperatureC(String value) {
+ this.maxTemperatureC = value;
+ }
+
+ /**
+ * Gets the value of the minTemperatureC property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getMinTemperatureC() {
+ return minTemperatureC;
+ }
+
+ /**
+ * Sets the value of the minTemperatureC property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setMinTemperatureC(String value) {
+ this.minTemperatureC = value;
+ }
+
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/WeatherForecast.java b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/WeatherForecast.java
new file mode 100644
index 0000000000..0902ce67fe
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/WeatherForecast.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 com.example.weather;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.logging.Logger;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebEndpoint;
+import javax.xml.ws.WebServiceClient;
+import javax.xml.ws.WebServiceFeature;
+
+
+/**
+ * Get one week weather forecast for valid zip code or Place name in USA
+ *
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.3-b02-
+ * Generated source version: 2.1
+ *
+ */
+@WebServiceClient(name = "WeatherForecast", targetNamespace = "http://www.webservicex.net", wsdlLocation = "file:/C:/Tuscany/java/sca/demos/us-location/src/main/resources/wsdl/WeatherForecast.wsdl")
+public class WeatherForecast
+ extends Service
+{
+
+ private final static URL WEATHERFORECAST_WSDL_LOCATION;
+ private final static Logger logger = Logger.getLogger(com.example.weather.WeatherForecast.class.getName());
+
+ static {
+ URL url = null;
+ try {
+ URL baseUrl;
+ baseUrl = com.example.weather.WeatherForecast.class.getResource(".");
+ url = new URL(baseUrl, "file:/C:/Tuscany/java/sca/demos/us-location/src/main/resources/wsdl/WeatherForecast.wsdl");
+ } catch (MalformedURLException e) {
+ logger.warning("Failed to create URL for the wsdl Location: 'file:/C:/Tuscany/java/sca/demos/us-location/src/main/resources/wsdl/WeatherForecast.wsdl', retrying as a local file");
+ logger.warning(e.getMessage());
+ }
+ WEATHERFORECAST_WSDL_LOCATION = url;
+ }
+
+ public WeatherForecast(URL wsdlLocation, QName serviceName) {
+ super(wsdlLocation, serviceName);
+ }
+
+ public WeatherForecast() {
+ super(WEATHERFORECAST_WSDL_LOCATION, new QName("http://www.webservicex.net", "WeatherForecast"));
+ }
+
+ /**
+ *
+ * @return
+ * returns WeatherForecastSoap
+ */
+ @WebEndpoint(name = "WeatherForecastSoap")
+ public WeatherForecastSoap getWeatherForecastSoap() {
+ return super.getPort(new QName("http://www.webservicex.net", "WeatherForecastSoap"), WeatherForecastSoap.class);
+ }
+
+ /**
+ *
+ * @param features
+ * A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the <code>features</code> parameter will have their default values.
+ * @return
+ * returns WeatherForecastSoap
+ */
+ @WebEndpoint(name = "WeatherForecastSoap")
+ public WeatherForecastSoap getWeatherForecastSoap(WebServiceFeature... features) {
+ return super.getPort(new QName("http://www.webservicex.net", "WeatherForecastSoap"), WeatherForecastSoap.class, features);
+ }
+
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/WeatherForecastSoap.java b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/WeatherForecastSoap.java
new file mode 100644
index 0000000000..aa000a44d2
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/WeatherForecastSoap.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 com.example.weather;
+
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebResult;
+import javax.jws.WebService;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.ws.RequestWrapper;
+import javax.xml.ws.ResponseWrapper;
+
+
+/**
+ * This class was generated by the JAX-WS RI.
+ * JAX-WS RI 2.1.3-b02-
+ * Generated source version: 2.1
+ *
+ */
+@WebService(name = "WeatherForecastSoap", targetNamespace = "http://www.webservicex.net")
+@XmlSeeAlso({
+ ObjectFactory.class
+})
+public interface WeatherForecastSoap {
+
+
+ /**
+ * Get one week weather forecast for a valid Zip Code(USA)
+ *
+ * @param zipCode
+ * @return
+ * returns com.example.weather.WeatherForecasts
+ */
+ @WebMethod(operationName = "GetWeatherByZipCode", action = "http://www.webservicex.net/GetWeatherByZipCode")
+ @WebResult(name = "GetWeatherByZipCodeResult", targetNamespace = "http://www.webservicex.net")
+ @RequestWrapper(localName = "GetWeatherByZipCode", targetNamespace = "http://www.webservicex.net", className = "com.example.weather.GetWeatherByZipCode")
+ @ResponseWrapper(localName = "GetWeatherByZipCodeResponse", targetNamespace = "http://www.webservicex.net", className = "com.example.weather.GetWeatherByZipCodeResponse")
+ public WeatherForecasts getWeatherByZipCode(
+ @WebParam(name = "ZipCode", targetNamespace = "http://www.webservicex.net")
+ String zipCode);
+
+ /**
+ * Get one week weather forecast for a place name(USA)
+ *
+ * @param placeName
+ * @return
+ * returns com.example.weather.WeatherForecasts
+ */
+ @WebMethod(operationName = "GetWeatherByPlaceName", action = "http://www.webservicex.net/GetWeatherByPlaceName")
+ @WebResult(name = "GetWeatherByPlaceNameResult", targetNamespace = "http://www.webservicex.net")
+ @RequestWrapper(localName = "GetWeatherByPlaceName", targetNamespace = "http://www.webservicex.net", className = "com.example.weather.GetWeatherByPlaceName")
+ @ResponseWrapper(localName = "GetWeatherByPlaceNameResponse", targetNamespace = "http://www.webservicex.net", className = "com.example.weather.GetWeatherByPlaceNameResponse")
+ public WeatherForecasts getWeatherByPlaceName(
+ @WebParam(name = "PlaceName", targetNamespace = "http://www.webservicex.net")
+ String placeName);
+
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/WeatherForecasts.java b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/WeatherForecasts.java
new file mode 100644
index 0000000000..8ded0946d9
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/WeatherForecasts.java
@@ -0,0 +1,251 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT 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 com.example.weather;
+
+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 WeatherForecasts complex type.
+ *
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ *
+ * <pre>
+ * &lt;complexType name="WeatherForecasts">
+ * &lt;complexContent>
+ * &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ * &lt;sequence>
+ * &lt;element name="Latitude" type="{http://www.w3.org/2001/XMLSchema}float"/>
+ * &lt;element name="Longitude" type="{http://www.w3.org/2001/XMLSchema}float"/>
+ * &lt;element name="AllocationFactor" type="{http://www.w3.org/2001/XMLSchema}float"/>
+ * &lt;element name="FipsCode" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;element name="PlaceName" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;element name="StateCode" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;element name="Status" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
+ * &lt;element name="Details" type="{http://www.webservicex.net}ArrayOfWeatherData" minOccurs="0"/>
+ * &lt;/sequence>
+ * &lt;/restriction>
+ * &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ *
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "WeatherForecasts", propOrder = {
+ "latitude",
+ "longitude",
+ "allocationFactor",
+ "fipsCode",
+ "placeName",
+ "stateCode",
+ "status",
+ "details"
+})
+public class WeatherForecasts {
+
+ @XmlElement(name = "Latitude")
+ protected float latitude;
+ @XmlElement(name = "Longitude")
+ protected float longitude;
+ @XmlElement(name = "AllocationFactor")
+ protected float allocationFactor;
+ @XmlElement(name = "FipsCode")
+ protected String fipsCode;
+ @XmlElement(name = "PlaceName")
+ protected String placeName;
+ @XmlElement(name = "StateCode")
+ protected String stateCode;
+ @XmlElement(name = "Status")
+ protected String status;
+ @XmlElement(name = "Details")
+ protected ArrayOfWeatherData details;
+
+ /**
+ * Gets the value of the latitude property.
+ *
+ */
+ public float getLatitude() {
+ return latitude;
+ }
+
+ /**
+ * Sets the value of the latitude property.
+ *
+ */
+ public void setLatitude(float value) {
+ this.latitude = value;
+ }
+
+ /**
+ * Gets the value of the longitude property.
+ *
+ */
+ public float getLongitude() {
+ return longitude;
+ }
+
+ /**
+ * Sets the value of the longitude property.
+ *
+ */
+ public void setLongitude(float value) {
+ this.longitude = value;
+ }
+
+ /**
+ * Gets the value of the allocationFactor property.
+ *
+ */
+ public float getAllocationFactor() {
+ return allocationFactor;
+ }
+
+ /**
+ * Sets the value of the allocationFactor property.
+ *
+ */
+ public void setAllocationFactor(float value) {
+ this.allocationFactor = value;
+ }
+
+ /**
+ * Gets the value of the fipsCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getFipsCode() {
+ return fipsCode;
+ }
+
+ /**
+ * Sets the value of the fipsCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setFipsCode(String value) {
+ this.fipsCode = value;
+ }
+
+ /**
+ * Gets the value of the placeName property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getPlaceName() {
+ return placeName;
+ }
+
+ /**
+ * Sets the value of the placeName property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setPlaceName(String value) {
+ this.placeName = value;
+ }
+
+ /**
+ * Gets the value of the stateCode property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getStateCode() {
+ return stateCode;
+ }
+
+ /**
+ * Sets the value of the stateCode property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setStateCode(String value) {
+ this.stateCode = value;
+ }
+
+ /**
+ * Gets the value of the status property.
+ *
+ * @return
+ * possible object is
+ * {@link String }
+ *
+ */
+ public String getStatus() {
+ return status;
+ }
+
+ /**
+ * Sets the value of the status property.
+ *
+ * @param value
+ * allowed object is
+ * {@link String }
+ *
+ */
+ public void setStatus(String value) {
+ this.status = value;
+ }
+
+ /**
+ * Gets the value of the details property.
+ *
+ * @return
+ * possible object is
+ * {@link ArrayOfWeatherData }
+ *
+ */
+ public ArrayOfWeatherData getDetails() {
+ return details;
+ }
+
+ /**
+ * Sets the value of the details property.
+ *
+ * @param value
+ * allowed object is
+ * {@link ArrayOfWeatherData }
+ *
+ */
+ public void setDetails(ArrayOfWeatherData value) {
+ this.details = value;
+ }
+
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/package-info.java b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/package-info.java
new file mode 100644
index 0000000000..6543ed7abf
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/com/example/weather/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://www.webservicex.net", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package com.example.weather;
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/location/LocationClient.java b/java/sca/samples/zipcode-jaxws/src/main/java/location/LocationClient.java
new file mode 100644
index 0000000000..35c114093a
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/location/LocationClient.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 location;
+
+import java.io.StringWriter;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.Marshaller;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+
+import com.example.uszip.GetInfoByZIPResponse;
+import com.example.uszip.USZipSoap;
+
+/**
+ * This client program to invoke the Mortgage LoanApproval service
+ */
+public class LocationClient {
+
+ public static void main(String[] args) throws Exception {
+
+ SCADomain domain = SCADomain.newInstance("USLocation.composite");
+ USZipSoap zipService = domain.getService(USZipSoap.class, "USLocationService");
+
+ GetInfoByZIPResponse.GetInfoByZIPResult result = zipService.getInfoByZIP("94555");
+
+ GetInfoByZIPResponse response = new GetInfoByZIPResponse();
+ response.setGetInfoByZIPResult(result);
+
+ JAXBContext context = JAXBContext.newInstance(GetInfoByZIPResponse.class);
+ StringWriter writer = new StringWriter();
+ Marshaller marshaller = context.createMarshaller();
+ marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
+ marshaller.marshal(response, writer);
+
+ String xml = writer.toString();
+ System.out.println(xml);
+ }
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/location/USLocationImpl.java b/java/sca/samples/zipcode-jaxws/src/main/java/location/USLocationImpl.java
new file mode 100644
index 0000000000..cf27332e60
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/location/USLocationImpl.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 location;
+
+import org.osoa.sca.annotations.AllowsPassByReference;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+
+import com.example.uszip.USZipSoap;
+import com.example.uszip.GetInfoByAreaCodeResponse.GetInfoByAreaCodeResult;
+import com.example.uszip.GetInfoByCityResponse.GetInfoByCityResult;
+import com.example.uszip.GetInfoByStateResponse.GetInfoByStateResult;
+import com.example.uszip.GetInfoByZIPResponse.GetInfoByZIPResult;
+
+/**
+ * @version $Rev$ $Date$
+ */
+@Service(USZipSoap.class)
+@AllowsPassByReference
+public class USLocationImpl implements USZipSoap {
+ @Reference
+ protected USZipSoap usZipService;
+
+ public GetInfoByAreaCodeResult getInfoByAreaCode(String usAreaCode) {
+ return usZipService.getInfoByAreaCode(usAreaCode);
+ }
+
+ public GetInfoByCityResult getInfoByCity(String usCity) {
+ return usZipService.getInfoByCity(usCity);
+ }
+
+ public GetInfoByStateResult getInfoByState(String usState) {
+ return usZipService.getInfoByState(usState);
+ }
+
+ public GetInfoByZIPResult getInfoByZIP(String usZip) {
+ return usZipService.getInfoByZIP(usZip);
+ }
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/weather/WeatherForecastClient.java b/java/sca/samples/zipcode-jaxws/src/main/java/weather/WeatherForecastClient.java
new file mode 100644
index 0000000000..c03cf2955f
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/weather/WeatherForecastClient.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 weather;
+
+import java.io.StringWriter;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.Marshaller;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+
+import com.example.weather.GetWeatherByZipCodeResponse;
+import com.example.weather.WeatherForecastSoap;
+import com.example.weather.WeatherForecasts;
+
+/**
+ * This client program to invoke the Mortgage LoanApproval service
+ */
+public class WeatherForecastClient {
+
+ public static void main(String[] args) throws Exception {
+
+ SCADomain domain = SCADomain.newInstance("WeatherForecast.composite");
+ WeatherForecastSoap weatherService = domain.getService(WeatherForecastSoap.class, "WeatherForecastService");
+
+ WeatherForecasts result = weatherService.getWeatherByZipCode("94555");
+
+ // Dump the result as XML
+
+ // Wrap the result so that it can be marshaled
+ GetWeatherByZipCodeResponse response = new GetWeatherByZipCodeResponse();
+ response.setGetWeatherByZipCodeResult(result);
+
+ // Marshal the JAXB object into XML
+ JAXBContext context = JAXBContext.newInstance(GetWeatherByZipCodeResponse.class);
+ StringWriter writer = new StringWriter();
+ Marshaller marshaller = context.createMarshaller();
+ marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
+ marshaller.marshal(response, writer);
+
+ String xml = writer.toString();
+ System.out.println(xml);
+ }
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/weather/WeatherForecastImpl.java b/java/sca/samples/zipcode-jaxws/src/main/java/weather/WeatherForecastImpl.java
new file mode 100644
index 0000000000..cf50a6cd9e
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/weather/WeatherForecastImpl.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT 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 weather;
+
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+
+import com.example.weather.WeatherForecastSoap;
+import com.example.weather.WeatherForecasts;
+
+/**
+ * @version $Rev$ $Date$
+ */
+@Service(WeatherForecastSoap.class)
+public class WeatherForecastImpl implements WeatherForecastSoap{
+ @Reference
+ protected WeatherForecastSoap weatherForecast;
+
+ public WeatherForecasts getWeatherByPlaceName(String placeName) {
+ return weatherForecast.getWeatherByPlaceName(placeName);
+ }
+
+ public WeatherForecasts getWeatherByZipCode(String zipCode) {
+ return weatherForecast.getWeatherByZipCode(zipCode);
+ }
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/zipcode/ZipCodeClient.java b/java/sca/samples/zipcode-jaxws/src/main/java/zipcode/ZipCodeClient.java
new file mode 100644
index 0000000000..c470230b7a
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/zipcode/ZipCodeClient.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 zipcode;
+
+import org.apache.tuscany.sca.host.embedded.SCADomain;
+
+/**
+ * This client program to invoke the Mortgage LoanApproval service
+ */
+public class ZipCodeClient {
+
+ public static void main(String[] args) throws Exception {
+
+ SCADomain domain = SCADomain.newInstance("ZipCode.composite");
+ ZipCodeService zipService = domain.getService(ZipCodeService.class, "ZipCodeService");
+
+ String result = zipService.lookup("94555");
+ System.out.println(result);
+ }
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/zipcode/ZipCodeService.java b/java/sca/samples/zipcode-jaxws/src/main/java/zipcode/ZipCodeService.java
new file mode 100644
index 0000000000..ec0f05dd6c
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/zipcode/ZipCodeService.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 zipcode;
+
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * @version $Rev$ $Date$
+ */
+@Remotable
+public interface ZipCodeService {
+ String lookup(String zipCode);
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/java/zipcode/ZipCodeServiceImpl.java b/java/sca/samples/zipcode-jaxws/src/main/java/zipcode/ZipCodeServiceImpl.java
new file mode 100644
index 0000000000..284e5a3aa3
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/java/zipcode/ZipCodeServiceImpl.java
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT 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 zipcode;
+
+import java.io.StringWriter;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.Marshaller;
+
+import org.osoa.sca.ServiceRuntimeException;
+import org.osoa.sca.annotations.AllowsPassByReference;
+import org.osoa.sca.annotations.Reference;
+import org.osoa.sca.annotations.Service;
+
+import com.example.uszip.GetInfoByZIPResponse;
+import com.example.uszip.USZipSoap;
+import com.example.uszip.GetInfoByZIPResponse.GetInfoByZIPResult;
+import com.example.weather.GetWeatherByZipCodeResponse;
+import com.example.weather.WeatherForecastSoap;
+import com.example.weather.WeatherForecasts;
+
+/**
+ * @version $Rev$ $Date$
+ */
+@Service(ZipCodeService.class)
+@AllowsPassByReference
+public class ZipCodeServiceImpl implements ZipCodeService {
+ @Reference
+ protected USZipSoap usZipService;
+
+ @Reference
+ protected WeatherForecastSoap weatherForecast;
+
+ public String lookup(String zipCode) {
+ GetInfoByZIPResult result1 = usZipService.getInfoByZIP(zipCode);
+
+ GetInfoByZIPResponse response1 = new GetInfoByZIPResponse();
+ response1.setGetInfoByZIPResult(result1);
+
+ String xml1 = toXML(response1);
+
+ WeatherForecasts result2 = weatherForecast.getWeatherByZipCode(zipCode);
+ // Wrap the result so that it can be marshaled
+ GetWeatherByZipCodeResponse response2 = new GetWeatherByZipCodeResponse();
+ response2.setGetWeatherByZipCodeResult(result2);
+
+ String xml2 = toXML(response2);
+ // Marshal the JAXB object into XML
+ return xml1 + "\n" + xml2;
+ }
+
+ private String toXML(Object jaxb) {
+ try {
+ JAXBContext context = JAXBContext.newInstance(jaxb.getClass());
+ StringWriter writer = new StringWriter();
+ Marshaller marshaller = context.createMarshaller();
+ marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
+ marshaller.marshal(jaxb, writer);
+ return writer.toString();
+ } catch (Exception e) {
+ throw new ServiceRuntimeException(e);
+ }
+ }
+
+}
diff --git a/java/sca/samples/zipcode-jaxws/src/main/resources/USLocation.composite b/java/sca/samples/zipcode-jaxws/src/main/resources/USLocation.composite
new file mode 100644
index 0000000000..a171fe62c9
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/resources/USLocation.composite
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0"
+ targetNamespace="http://location" name="USLocation">
+
+ <component name="USLocationService">
+ <implementation.java class="location.USLocationImpl" />
+ <reference name="usZipService">
+ <binding.ws wsdlElement="http://www.webserviceX.NET#wsdl.port(USZip/USZipSoap)" />
+ </reference>
+ </component>
+
+</composite>
diff --git a/java/sca/samples/zipcode-jaxws/src/main/resources/WeatherForecast.composite b/java/sca/samples/zipcode-jaxws/src/main/resources/WeatherForecast.composite
new file mode 100644
index 0000000000..0e1b118e44
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/resources/WeatherForecast.composite
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+-->
+<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0"
+ targetNamespace="http://weather" name="WeatherForecast">
+
+ <component name="WeatherForecastService">
+ <implementation.java class="weather.WeatherForecastImpl" />
+ <reference name="weatherForecast">
+ <binding.ws wsdlElement="http://www.webservicex.net#wsdl.port(WeatherForecast/WeatherForecastSoap)" />
+ </reference>
+ </component>
+
+</composite>
diff --git a/java/sca/samples/zipcode-jaxws/src/main/resources/ZipCode.composite b/java/sca/samples/zipcode-jaxws/src/main/resources/ZipCode.composite
new file mode 100644
index 0000000000..28d674c29b
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/main/resources/ZipCode.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://www.osoa.org/xmlns/sca/1.0" xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0"
+ targetNamespace="http://zipcode" name="ZipCode">
+
+ <component name="ZipCodeService">
+ <implementation.java class="zipcode.ZipCodeServiceImpl" />
+ <reference name="usZipService">
+ <binding.ws uri="http://www.webservicex.net/uszip.asmx" />
+ </reference>
+ <reference name="weatherForecast">
+ <binding.ws wsdlElement="http://www.webservicex.net#wsdl.port(WeatherForecast/WeatherForecastSoap)" />
+ </reference>
+ </component>
+
+</composite>
diff --git a/java/sca/samples/zipcode-jaxws/src/test/java/zipcode/ZipCodeClientTestCase.java b/java/sca/samples/zipcode-jaxws/src/test/java/zipcode/ZipCodeClientTestCase.java
new file mode 100644
index 0000000000..019fce26d6
--- /dev/null
+++ b/java/sca/samples/zipcode-jaxws/src/test/java/zipcode/ZipCodeClientTestCase.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 zipcode;
+
+import location.LocationClient;
+import weather.WeatherForecastClient;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests that the callback server is available
+ */
+public class ZipCodeClientTestCase {
+
+ @Before
+ public void startServer() throws Exception {
+ }
+
+ @Test
+ public void testClient() throws Exception {
+ /*
+ System.out.println("Running LocationClient...");
+ LocationClient.main(null);
+ System.out.println("Running WeatherForecastClient...");
+ WeatherForecastClient.main(null);
+ */
+ System.out.println("Running ZipCodeClient...");
+ ZipCodeClient.main(null);
+ }
+
+ @After
+ public void stopServer() throws Exception {
+ }
+}