You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by sc...@apache.org on 2006/06/20 22:26:19 UTC
svn commit: r415792 [1/3] - in /webservices/axis2/trunk/java: etc/
modules/jaxws/ modules/jaxws/src/javax/xml/ws/
modules/jaxws/src/javax/xml/ws/spi/ modules/jaxws/src/org/
modules/jaxws/src/org/apache/ modules/jaxws/src/org/apache/axis2/
modules/jaxws...
Author: scheu
Date: Tue Jun 20 13:26:16 2006
New Revision: 415792
URL: http://svn.apache.org/viewvc?rev=415792&view=rev
Log:
Introduction of JAX-WS implementation from IBM.
Issue:
http://issues.apache.org/jira/browse/AXIS2-826
Contributors:
Nick Gallardo
Rich Scheuerle
Jeff Barrett
Nikhil Thaker
Mike Rheinheirmer
Brent Ulbricht
Dan Sedov
Lizet Ernand
Samuel Isokpunwu
Added:
webservices/axis2/trunk/java/modules/jaxws/src/org/
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/AxisCallback.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/AxisController.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/BindingProvider.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/ClientConfigurationFactory.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/ClientMediator.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/Dispatch.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/JAXWSClientContext.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/Proxies.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/PortData.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/PortInfoImpl.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/impl/
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/impl/AsyncResponse.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/impl/AsyncResponseProcessor.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/param/
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/param/DOMSourceParameter.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/param/JAXBParameter.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/param/Parameter.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/param/ParameterFactory.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/param/ParameterUtils.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/param/SAXSourceParameter.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/param/SOAPMessageParameter.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/param/SourceParameter.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/param/StreamSourceParameter.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/param/StringParameter.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/server/JAXWSMessageReceiver.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/spi/
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/spi/Provider.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/spi/ServiceDelegate.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/util/
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/util/AxisReceiver.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/util/Constants.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/util/SimpleServer.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/util/SoapUtils.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/util/WSDL4JWrapper.java
webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/util/WSDLWrapper.java
webservices/axis2/trunk/java/modules/jaxws/test/client/
webservices/axis2/trunk/java/modules/jaxws/test/client/EchoString.java
webservices/axis2/trunk/java/modules/jaxws/test/client/EchoStringResponse.java
webservices/axis2/trunk/java/modules/jaxws/test/client/ObjectFactory.java
webservices/axis2/trunk/java/modules/jaxws/test/client/package-info.java
webservices/axis2/trunk/java/modules/jaxws/test/org/
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/META-INF/
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/META-INF/MANIFEST.MF
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/META-INF/services.xml
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/CallbackHandler.java
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/DOMSourceDispatch.java
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/DispatchTestConstants.java
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/DispatchTestSuite.java
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/JAXBCallbackHandler.java
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/JAXBDispatch.java
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/SAXSourceDispatch.java
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/SourceDispatch.java
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/StringDispatch.java
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/JAXWSTest.java
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/StartServer.java
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/framework/StopServer.java
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/provider/
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/provider/SimpleProvider.java
webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/provider/StringProvider.java
webservices/axis2/trunk/java/modules/jaxws/test/server/
webservices/axis2/trunk/java/modules/jaxws/test/server/EchoServiceMessageReceiverInOut.java
webservices/axis2/trunk/java/modules/jaxws/test/server/EchoServiceSkeleton.java
webservices/axis2/trunk/java/modules/jaxws/test/server/EchoString.java
webservices/axis2/trunk/java/modules/jaxws/test/server/EchoStringResponse.java
webservices/axis2/trunk/java/modules/jaxws/test/server/META-INF/
webservices/axis2/trunk/java/modules/jaxws/test/server/META-INF/services.xml
Modified:
webservices/axis2/trunk/java/etc/project.properties
webservices/axis2/trunk/java/modules/jaxws/maven.xml
webservices/axis2/trunk/java/modules/jaxws/project.properties
webservices/axis2/trunk/java/modules/jaxws/project.xml
webservices/axis2/trunk/java/modules/jaxws/src/javax/xml/ws/Service.java
webservices/axis2/trunk/java/modules/jaxws/src/javax/xml/ws/spi/FactoryFinder.java
webservices/axis2/trunk/java/modules/jaxws/src/javax/xml/ws/spi/Provider.java
webservices/axis2/trunk/java/modules/jaxws/src/javax/xml/ws/spi/ServiceDelegate.java
Modified: webservices/axis2/trunk/java/etc/project.properties
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/etc/project.properties?rev=415792&r1=415791&r2=415792&view=diff
==============================================================================
--- webservices/axis2/trunk/java/etc/project.properties (original)
+++ webservices/axis2/trunk/java/etc/project.properties Tue Jun 20 13:26:16 2006
@@ -66,13 +66,13 @@
modules/saaj/project.xml,\
modules/jibx/project.xml,\
modules/savan/project.xml,\
-modules/rahas/project.xml,\
${optional.includes}
#maven.multiproject.excludes=modules/tool/project.xml
maven.multiproject.includes.requiresJDK15=\
-modules/jaxbri/project.xml
+modules/jaxbri/project.xml,\
+modules/jaxws/project.xml
# -------------------------------------------------------------------
# JUnit
Modified: webservices/axis2/trunk/java/modules/jaxws/maven.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/maven.xml?rev=415792&r1=415791&r2=415792&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/maven.xml (original)
+++ webservices/axis2/trunk/java/modules/jaxws/maven.xml Tue Jun 20 13:26:16 2006
@@ -1,17 +1,197 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- $Revision: 1.21 $ $Date: 2004-10-27 20:54:09 +0600 (Wed, 27 Oct 2004) $ -->
-
-<project default="jar"
- xmlns:j="jelly:core"
- xmlns:u="jelly:util"
- xmlns:maven="jelly:maven"
- xmlns:deploy="deploy"
- xmlns:ant="jelly:ant">
- <preGoal name="itest:compile">
- <u:file var="file" name="${maven.itest.src}"/>
- <j:if test="${!file.exists()}">
- <j:expr value="${context.setVariable('maven.itest.skip', 'true')}"/>
- </j:if>
- </preGoal>
-</project>
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- $Revision: 1.21 $ $Date: 2004-10-27 20:54:09 +0600 (Wed, 27 Oct 2004) $ -->
+
+<project default="jar"
+ xmlns:j="jelly:core"
+ xmlns:u="jelly:util"
+ xmlns:maven="jelly:maven"
+ xmlns:util="jelly:util"
+ xmlns:deploy="deploy"
+ xmlns:ant="jelly:ant">
+
+ <preGoal name="itest:compile">
+ <u:file var="file" name="${maven.itest.src}"/>
+ <j:if test="${!file.exists()}">
+ <j:expr value="${context.setVariable('maven.itest.skip', 'true')}"/>
+ </j:if>
+ </preGoal>
+
+ <preGoal name="test:test">
+ <ant:copy toDir="target/test-classes/services/EchoService/">
+ <ant:fileset dir="target/test-classes">
+ <ant:include name="server/**"/>
+ </ant:fileset>
+ <ant:fileset dir="test/server">
+ <ant:exclude name="**/*.java"/>
+ </ant:fileset>
+ </ant:copy>
+ </preGoal>
+
+ <!-- Create the API and Impl jars -->
+ <postGoal name="jar">
+ <jar destfile="target/jaxws-api-${jaxws.version}.jar">
+ <ant:fileset dir="target/classes">
+ <ant:exclude name="com/ibm/webservices/**"/>
+ </ant:fileset>
+ </jar>
+ <jar destfile="target/jaxws-impl-${jaxws.version}.jar">
+ <ant:fileset dir="target/classes">
+ <ant:exclude name="javax/**"/>
+ </ant:fileset>
+ </jar>
+ <ant:copy toDir="${maven.repo.local}/jaxws/jars">
+ <ant:fileset file="target/jaxws-impl-${jaxws.version}.jar"/>
+ <ant:fileset file="target/jaxws-api-${jaxws.version}.jar"/>
+ </ant:copy>
+ </postGoal>
+
+ <goal name="jar">
+ <attainGoal name="jar:install"/>
+
+ </goal>
+
+ <goal name="release" prereqs="dist-bin,dist-src">
+
+
+ </goal>
+
+ <goal name="dist-bin" prereqs="jar">
+
+ <ant:echo>+----------------------------------------------</ant:echo>
+ <ant:echo>| Creating: JAXWS Binary Distribution</ant:echo>
+ <ant:echo>+----------------------------------------------</ant:echo>
+
+
+ <property name="dist" value="target/dist/temp"/>
+
+ <mkdir dir="${dist}"/>
+ <mkdir dir="${dist}/apidocs"/>
+ <mkdir dir="${dist}/build"/>
+ <!--<mkdir dir="${dist}/docs"/>-->
+ <mkdir dir="${dist}/lib"/>
+
+ <!--copy dependent jars-->
+ <maven:reactor basedir="${basedir}"
+ postProcessing="true"
+ includes="project.xml"
+ banner="Executing (${goals}):"
+ ignoreFailures="false"/>
+ <j:forEach var="x" items="${reactorProjects}">
+ <ant:echo message="Copying ${x} to ${dist}"/>
+ <deploy:copy-deps todir="${dist}/lib"
+ projectDescriptor="${x.getFile()}"/>
+ </j:forEach>
+ <ant:delete file="${dist}/lib/xmlunit-${xmlunit.version}.jar"/>
+
+ <!--Add the licenses of jars-->
+ <ant:copy toDir="${dist}/lib">
+ <ant:fileset dir="legal"/>
+ </ant:copy>
+
+ <!--add api docs-->
+
+ <ant:javadoc packagenames="org.apache.jaxws.*"
+ defaultexcludes="yes"
+ destdir="${dist}/apidocs"
+ author="true"
+ breakiterator="true"
+ version="true"
+ use="true"
+ windowtitle="JAXWS API">
+ <ant:arg
+ line="-J-Dhttp.proxy.port=${maven.proxy.port} -J-Dhttp.proxy.host=${maven.proxy.host}"/>
+ <ant:sourcepath>
+ <ant:pathelement location="src"/>
+ </ant:sourcepath>
+ <ant:classpath>
+ <ant:fileset dir="${dist}/lib">
+ <ant:include name="*.jar"/>
+ </ant:fileset>
+ </ant:classpath>
+ </ant:javadoc>
+
+ <!--add jars-->
+ <ant:copy toDir="${dist}/build">
+ <ant:fileset file="target/jaxws-api-${jaxws.version}.jar"/>
+ <ant:fileset file="target/jaxws-impl-${jaxws.version}.jar"/>
+ </ant:copy>
+
+ <!--add documents-->
+ <ant:copy toDir="${dist}/docs">
+ <ant:fileset dir="xdocs">
+ <ant:exclude name="**/.svn/**"/>
+ </ant:fileset>
+ </ant:copy>
+
+ <!--copy release notes, etc-->
+ <ant:copy toDir="${dist}">
+ <ant:fileset file="RELEASE-NOTE.txt"/>
+ <ant:fileset file="README.txt"/>
+ <ant:fileset file="NOTICE.txt"/>
+ <ant:fileset file="LICENSE.txt"/>
+ </ant:copy>
+
+
+ <!--create the zip-->
+ <ant:zip file="target/dist/jaxws-${jaxws.version}-bin.zip">
+ <ant:fileset dir="${dist}/"/>
+ </ant:zip>
+
+ <ant:delete dir="${dist}"/>
+
+ </goal>
+
+ <goal name="dist-src" prereqs="jar">
+
+ <ant:echo>+----------------------------------------------</ant:echo>
+ <ant:echo>| Creating: JAXWS Source Distribution</ant:echo>
+ <ant:echo>+----------------------------------------------</ant:echo>
+
+ <ant:property name="${dist}" value="target/dist/temp"/>
+
+ <ant:copy toDir="${dist}">
+ <ant:fileset dir=".">
+ <ant:exclude name="**/.svn/**"/>
+ <ant:include name="**/src/**"/>
+ <ant:include name="**/test/**"/>
+ </ant:fileset>
+ </ant:copy>
+
+ <!-- Copy the master maven files for the standard src distro -->
+ <ant:copy toDir="${dist}">
+ <ant:fileset file="maven.xml"/>
+ <ant:fileset file="project.xml"/>
+ <ant:fileset file="project.properties"/>
+ <ant:fileset file="RELEASE-NOTE.txt"/>
+ <ant:fileset file="NOTICE.txt"/>
+ <ant:fileset file="LICENSE.txt"/>
+ </ant:copy>
+
+ <ant:zip file="target/dist/jaxws-${jaxws.version}-src.zip">
+ <ant:fileset dir="${dist}/"/>
+ </ant:zip>
+ <ant:delete dir="${dist}"/>
+ </goal>
+
+ <goal name="javadocs">
+
+ <mkdir dir="target/apidocs"/>
+
+ <ant:javadoc packagenames="org.apache.jaxws.*"
+ defaultexcludes="yes"
+ destdir="target/apidocs"
+ author="true"
+ breakiterator="true"
+ version="true"
+ use="true"
+ windowtitle="JAXWS API">
+ <ant:arg
+ line="-J-Dhttp.proxy.port=${maven.proxy.port} -J-Dhttp.proxy.host=${maven.proxy.host}"/>
+ <ant:sourcepath>
+ <ant:pathelement location="src"/>
+ </ant:sourcepath>
+ </ant:javadoc>
+ </goal>
+
+</project>
Modified: webservices/axis2/trunk/java/modules/jaxws/project.properties
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/project.properties?rev=415792&r1=415791&r2=415792&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/project.properties (original)
+++ webservices/axis2/trunk/java/modules/jaxws/project.properties Tue Jun 20 13:26:16 2006
@@ -14,5 +14,25 @@
# limitations under the License.
# -------------------------------------------------------------------
-
maven.multiproject.type=jar
+
+# -------------------------------------------------------------------
+# JUnit
+# -------------------------------------------------------------------
+maven.junit.jvmargs=-Xmx256m -Djava.awt.headless=true -Dbuild.repository=./target/test-classes
+maven.junit.fork=true
+
+# -------------------------------------------------------------------
+# Test
+# -------------------------------------------------------------------
+maven.test.failure.ignore=true
+
+# -------------------------------------------------------------------
+# Compile
+# -------------------------------------------------------------------
+maven.compile.optimize=false
+maven.compile.fork=true
+maven.compile.target=1.5
+maven.compile.source=1.5
+
+jaxws.version=${pom.currentVersion}
Modified: webservices/axis2/trunk/java/modules/jaxws/project.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/project.xml?rev=415792&r1=415791&r2=415792&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/project.xml (original)
+++ webservices/axis2/trunk/java/modules/jaxws/project.xml Tue Jun 20 13:26:16 2006
@@ -17,18 +17,64 @@
*/
-->
<project>
- <pomVersion>3</pomVersion>
- <extend>../../etc/project.xml</extend>
-
- <name>Apache Axis 2.0 - JAXWS</name>
- <id>axis2-jaxws</id>
- <groupId>axis2</groupId>
- <description>Axis2 JAXWS implementation</description>
-
+ <pomVersion>3</pomVersion>
+ <extend>../../etc/project.xml</extend>
+
+ <name>Apache Axis 2.0 - JAX-WS</name>
+ <id>jaxws</id>
+ <groupId>axis2</groupId>
+ <description>JAX-WS implementation using Axis 2.0</description>
+
+ <!-- ========== -->
+ <!-- Developers -->
+ <!-- ========== -->
+ <developers>
+ <developer>
+ <name>Nicholas Gallardo</name>
+ <organization>IBM</organization>
+ </developer>
+ <developer>
+ <name>Rich Scheuerle</name>
+ <id>scheu</id>
+ <email>scheu AT us.ibm.com</email>
+ <organization>IBM</organization>
+ </developer>
+ <developer>
+ <name>Jeff Barrett</name>
+ <organization>IBM</organization>
+ </developer>
+ <developer>
+ <name>Nikhil Thaker</name>
+ <organization>IBM</organization>
+ </developer>
+ <developer>
+ <name>Michael Rheinheimer</name>
+ <organization>IBM</organization>
+ </developer>
+ </developers>
+ <contributors>
+ <contributor>
+ <name>Brent Ulbricht</name>
+ <organization>IBM</organization>
+ </contributor>
+ <contributor>
+ <name>Daniel Sedov</name>
+ <organization>IBM</organization>
+ </contributor>
+ <contributor>
+ <name>Lizet Ernand</name>
+ <organization>IBM</organization>
+ </contributor>
+ <contributor>
+ <name>Samual Isokpunwu</name>
+ <organization>IBM</organization>
+ </contributor>
+ </contributors>
<build>
- <nagEmailAddress>axis-dev@ws.apache.org</nagEmailAddress>
+ <defaultGoal>jar</defaultGoal>
+ <nagEmailAddress></nagEmailAddress>
<sourceDirectory>src</sourceDirectory>
- <unitTestSourceDirectory>test</unitTestSourceDirectory>
+ <unitTestSourceDirectory>test</unitTestSourceDirectory>
<unitTest>
<includes>
@@ -55,25 +101,30 @@
</resources>
</unitTest>
- <resources>
- <resource>
- <directory>conf</directory>
- <includes>
- <include>**/*.properties</include>
- </includes>
- </resource>
- <resource>
- <directory>src</directory>
- <includes>
- <include>**/*.properties</include>
- <include>**/*.xml</include>
- </includes>
- </resource>
- </resources>
+
</build>
+
+ <reports>
+ <report>maven-junit-report-plugin</report>
+ </reports>
<dependencies>
- <dependency>
+ <dependency>
+ <groupId>javax.xml</groupId>
+ <artifactId>jaxb-impl</artifactId>
+ <version>${jaxbri.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.xml</groupId>
+ <artifactId>jaxb-xjc</artifactId>
+ <version>${jaxbri.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.xml</groupId>
+ <artifactId>jaxb-api</artifactId>
+ <version>${jaxbri.version}</version>
+ </dependency>
+ <dependency>
<groupId>ws-commons</groupId>
<artifactId>axiom-api</artifactId>
<version>${axiom.version}</version>
@@ -83,26 +134,74 @@
<artifactId>axiom-impl</artifactId>
<version>${axiom.version}</version>
</dependency>
-
-
<dependency>
<groupId>axis2</groupId>
- <artifactId>axis2-core</artifactId>
+ <artifactId>axis2</artifactId>
<version>${pom.currentVersion}</version>
</dependency>
<dependency>
<groupId>axis2</groupId>
- <artifactId>axis2-adb</artifactId>
+ <artifactId>axis2-java2wsdl</artifactId>
<version>${pom.currentVersion}</version>
</dependency>
- <!-- external JARs -->
<dependency>
- <groupId>axis2</groupId>
- <artifactId>axis2-common</artifactId>
- <version>${pom.currentVersion}</version>
+ <groupId>annogen</groupId>
+ <artifactId>annogen</artifactId>
+ <version>${annogen.version}</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ </dependency>
+ <dependency>
+ <groupId>wsdl4j</groupId>
+ <artifactId>wsdl4j</artifactId>
+ <version>${wsdl4j.version}</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ </dependency>
+ <dependency>
+ <groupId>backport-util-concurrent</groupId>
+ <artifactId>backport-util-concurrent</artifactId>
+ <version>${backport_util_concurrent.version}</version>
+ <properties>
+ <module>true</module>
+ </properties>
</dependency>
<dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>${commons.codec.version}</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <version>1.2.13</version>
+ <properties>
+ <module>false</module>
+ </properties>
+ </dependency>
+ <dependency>
+ <groupId>commons-discovery</groupId>
+ <artifactId>commons-discovery</artifactId>
+ <version>${commons.discovery.version}</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ </dependency>
+ <dependency>
+ <groupId>commons-httpclient</groupId>
+ <artifactId>commons-httpclient</artifactId>
+ <version>${commons.httpclient.version}</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ </dependency>
+ <dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>${commons.logging.version}</version>
@@ -111,17 +210,17 @@
</properties>
</dependency>
<dependency>
- <groupId>${stax.impl.groupid}</groupId>
- <artifactId>${stax.impl.artifactid}</artifactId>
- <version>${stax.impl.version}</version>
+ <groupId>geronimo-spec</groupId>
+ <artifactId>geronimo-spec-javamail</artifactId>
+ <version>${geronimo.spec.javamail.version}</version>
<properties>
<module>true</module>
</properties>
</dependency>
<dependency>
- <groupId>stax</groupId>
- <artifactId>stax-api</artifactId>
- <version>${stax.api.version}</version>
+ <groupId>geronimo-spec</groupId>
+ <artifactId>geronimo-spec-jms</artifactId>
+ <version>${geronimo.spec.jms.version}</version>
<properties>
<module>true</module>
</properties>
@@ -134,7 +233,97 @@
<module>true</module>
</properties>
</dependency>
+ <!--
+ <dependency>
+ <groupId>jaxen</groupId>
+ <artifactId>jaxen</artifactId>
+ <version>${jaxen.version}</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ <url>http://www.ibiblio.org/maven/jaxen/jars/</url>
+ </dependency>
+ -->
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>${junit.version}</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ </dependency>
+
+ <dependency>
+ <groupId>stax</groupId>
+ <artifactId>stax-api</artifactId>
+ <version>${stax.api.version}</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ </dependency>
+ <dependency>
+ <groupId>${stax.impl.groupid}</groupId>
+ <artifactId>${stax.impl.artifactid}</artifactId>
+ <version>${stax.impl.version}</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ </dependency>
+ <dependency>
+ <groupId>ws-commons</groupId>
+ <artifactId>axiom-api</artifactId>
+ <version>${axiom.version}</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ </dependency>
+ <dependency>
+ <groupId>ws-commons</groupId>
+ <artifactId>axiom-impl</artifactId>
+ <version>${axiom.version}</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ </dependency>
+ <dependency>
+ <groupId>ws-commons</groupId>
+ <artifactId>neethi</artifactId>
+ <version>${neethi.version}</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ws.commons</groupId>
+ <artifactId>XmlSchema</artifactId>
+ <version>${XmlSchema.version}</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ </dependency>
+ <dependency>
+ <groupId>xml-apis</groupId>
+ <artifactId>xml-apis</artifactId>
+ <version>${xml_apis.version}</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ </dependency>
+ <dependency>
+ <groupId>xmlunit</groupId>
+ <artifactId>xmlunit</artifactId>
+ <version>${xmlunit.version}</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ </dependency>
+ <dependency>
+ <groupId>httpcomponents-httpcore</groupId>
+ <artifactId>jakarta-httpcore</artifactId>
+ <version>${jakarta.httpcore.version}</version>
+ <properties>
+ <module>true</module>
+ </properties>
+ </dependency>
</dependencies>
-
- <reports/>
</project>
Modified: webservices/axis2/trunk/java/modules/jaxws/src/javax/xml/ws/Service.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/javax/xml/ws/Service.java?rev=415792&r1=415791&r2=415792&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/javax/xml/ws/Service.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/javax/xml/ws/Service.java Tue Jun 20 13:26:16 2006
@@ -41,7 +41,7 @@
return (T) _delegate.getPort(serviceEndpointInterface);
}
- public void addPort(QName portName, URI bindingId, String endpointAddress) {
+ public void addPort(QName portName, String bindingId, String endpointAddress) {
_delegate.addPort(portName, bindingId, endpointAddress);
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/javax/xml/ws/spi/FactoryFinder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/javax/xml/ws/spi/FactoryFinder.java?rev=415792&r1=415791&r2=415792&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/javax/xml/ws/spi/FactoryFinder.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/javax/xml/ws/spi/FactoryFinder.java Tue Jun 20 13:26:16 2006
@@ -60,7 +60,7 @@
try {
- m = Thread.class.getMethod("getContextClassLoader", null);
+ m = Thread.class.getMethod("getContextClassLoader", (Class []) null);
} catch (NoSuchMethodException e) {
// Assume that we are running JDK 1.1, use the current ClassLoader
debugPrintln("assuming JDK 1.1");
@@ -68,7 +68,7 @@
}
try {
- return (ClassLoader) m.invoke(Thread.currentThread(), null);
+ return (ClassLoader) m.invoke(Thread.currentThread(), (Object []) null);
} catch (IllegalAccessException e) {
// assert(false)
throw new ConfigurationError("Unexpected IllegalAccessException",
Modified: webservices/axis2/trunk/java/modules/jaxws/src/javax/xml/ws/spi/Provider.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/javax/xml/ws/spi/Provider.java?rev=415792&r1=415791&r2=415792&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/javax/xml/ws/spi/Provider.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/javax/xml/ws/spi/Provider.java Tue Jun 20 13:26:16 2006
@@ -36,5 +36,5 @@
public abstract Endpoint createAndPublishEndpoint(String s, Object obj);
public static final String JAXWSPROVIDER_PROPERTY = "javax.xml.ws.spi.Provider";
- private static final String DEFAULT_JAXWSPROVIDER = "org.apache.ws.spi.ProviderImpl";
+ private static final String DEFAULT_JAXWSPROVIDER = "org.apache.axis2.jaxws.spi.Provider";
}
Modified: webservices/axis2/trunk/java/modules/jaxws/src/javax/xml/ws/spi/ServiceDelegate.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/javax/xml/ws/spi/ServiceDelegate.java?rev=415792&r1=415791&r2=415792&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/javax/xml/ws/spi/ServiceDelegate.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/javax/xml/ws/spi/ServiceDelegate.java Tue Jun 20 13:26:16 2006
@@ -33,7 +33,7 @@
public abstract <T> T getPort(Class<T> class1);
- public abstract void addPort(QName qname, URI uri, String s);
+ public abstract void addPort(QName qname, String bindingId, String s);
public abstract <T>Dispatch<T> createDispatch(QName qname, Class<T> class1, javax.xml.ws.Service.Mode mode);
Added: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/AxisCallback.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/AxisCallback.java?rev=415792&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/AxisCallback.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/AxisCallback.java Tue Jun 20 13:26:16 2006
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * Copyright 2006 International Business Machines Corp.
+ *
+ * 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.
+ */
+
+package org.apache.axis2.jaxws;
+
+import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axis2.client.async.AsyncResult;
+import org.apache.axis2.client.async.Callback;
+import org.apache.axis2.context.MessageContext;
+
+public class AxisCallback extends Callback {
+
+ private SOAPEnvelope responseEnv;
+ private MessageContext responseMsgCtx;
+
+ public void onComplete(AsyncResult result) {
+ responseEnv = result.getResponseEnvelope();
+ responseMsgCtx = result.getResponseMessageContext();
+ }
+
+ public void onError(Exception e) {
+ e.printStackTrace();
+ }
+
+ public SOAPEnvelope getSOAPEnvelope() {
+ return responseEnv;
+ }
+
+ public MessageContext getResponseMessageContext() {
+ return responseMsgCtx;
+ }
+}
Added: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/AxisController.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/AxisController.java?rev=415792&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/AxisController.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/AxisController.java Tue Jun 20 13:26:16 2006
@@ -0,0 +1,385 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * Copyright 2006 International Business Machines Corp.
+ *
+ * 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.
+ */
+
+
+package org.apache.axis2.jaxws;
+
+import java.net.URL;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Future;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.AsyncHandler;
+import javax.xml.ws.Response;
+import javax.xml.ws.WebServiceException;
+import javax.xml.ws.Service.Mode;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.soap.SOAPBody;
+import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axiom.soap.SOAPHeader;
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.client.ServiceClient;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ServiceContext;
+import org.apache.axis2.context.ServiceGroupContext;
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.jaxws.handler.PortData;
+import org.apache.axis2.jaxws.impl.AsyncResponse;
+import org.apache.axis2.jaxws.impl.AsyncResponseProcessor;
+import org.apache.axis2.jaxws.param.JAXBParameter;
+import org.apache.axis2.jaxws.param.Parameter;
+import org.apache.axis2.jaxws.param.ParameterFactory;
+import org.apache.axis2.jaxws.param.ParameterUtils;
+import org.apache.axis2.jaxws.util.Constants;
+import org.apache.axis2.jaxws.util.WSDLWrapper;
+
+
+public class AxisController {
+ private AxisService axisService = null;
+// TODO: This configContext will come from websphere deployment code later
+ private ConfigurationContext configContext = null;
+ private ServiceClient serviceClient = null;
+ private ServiceContext serviceContext = null;
+ private JAXWSClientContext clientContext = null;
+ private ServiceGroupContext groupContext = null;
+ private EndpointReference myEPR;
+
+ public AxisService getAxisService() {
+ return axisService;
+ }
+ public void setAxisService(AxisService axisService) {
+ this.axisService = axisService;
+ }
+ public ConfigurationContext getConfigContext() {
+ return configContext;
+ }
+ public void setConfigContext(ConfigurationContext configContext) {
+ this.configContext = configContext;
+ }
+ public ServiceClient getServiceClient() {
+ return serviceClient;
+ }
+ public void setServiceClient(ServiceClient serviceClient) {
+ this.serviceClient = serviceClient;
+ }
+ public ServiceContext getServiceContext() {
+ return serviceContext;
+ }
+ public void setServiceContext(ServiceContext serviceContext) {
+ this.serviceContext = serviceContext;
+ }
+ public JAXWSClientContext getClientContext() {
+ return clientContext;
+ }
+ public void setClientContext(JAXWSClientContext clientContext) {
+ this.clientContext = clientContext;
+ }
+ public ServiceGroupContext getGroupContext() {
+ return groupContext;
+ }
+ public void setGroupContext(ServiceGroupContext groupContext) {
+ this.groupContext = groupContext;
+ }
+ public PortData getPortInfo(){
+ return clientContext.getPort();
+ }
+ public QName getServiceName(){
+ return getPortInfo().getServiceName();
+ }
+ public QName getPortName(){
+ return getPortInfo().getPortName();
+ }
+ public String getEndpointAddress(){
+ return getPortInfo().getEndpointAddress();
+ }
+ public String getBindingId(){
+ return getPortInfo().getBindingID();
+ }
+ public WSDLWrapper getWSDLContext(){
+ return clientContext.getWsdlContext();
+ }
+ public ExecutorService getExecutor() {
+ return clientContext.getExecutor();
+ }
+ public Mode getServiceMode() {
+ return (Mode) clientContext.getServiceMode();
+ }
+ public URL getWSDLLocation(){
+ return clientContext.getWSDLLocation();
+ }
+
+ public Object invoke(Parameter param, Map requestContext) throws WebServiceException {
+ setupProperties(requestContext);
+
+ try{
+ //TODO: This is not the correct way to setup the JAXBContext
+ if (clientContext.getJAXBContext() != null) {
+ JAXBParameter p = (JAXBParameter) param;
+ p.setJAXBContext(clientContext.getJAXBContext());
+ }
+
+ serviceClient.getOptions().setTo(new org.apache.axis2.addressing.EndpointReference(getEndpointURL(requestContext)));
+ String soapAction = getSOAPAction(requestContext);
+ if (soapAction != null) {
+ serviceClient.getOptions().setAction(soapAction);
+ }
+ else {
+ //TODO: This should be an addressing exception on the client side
+ serviceClient.getOptions().setAction("none");
+ }
+
+ //Create the Parameter wrapper for the response based on what the input
+ //type was. If it was a JAXBParameter, then set the JAXBContext on it as well
+ Parameter response = ParameterFactory.createParameter(param.getValue().getClass());
+ if (param instanceof JAXBParameter) {
+ JAXBParameter p = (JAXBParameter) response;
+ p.setJAXBContext(clientContext.getJAXBContext());
+ }
+ OMElement axisResponse = null;
+
+ //TODO: Team needs to decide if we are going to use ServiceClient api or go to AxisEngine api directly. ServiceClient requires that we send a OMElement
+ //and it creates a SOAPEnvelop by reading the headers that dispatch sets in ServiceClient. This is not a good way for message modeas we will be
+ //manuplating client message first to read all the headers and then read the body. we add the headers in ServiceClient then create OMElement from body
+ //and send then OMElement in SendReceive operation, which then is converted again to an envelope and header headers are added to it by ServiceClient
+ //before sending it to axis enging.
+ axisResponse = serviceClient.sendReceive(ServiceClient.ANON_OUT_IN_OP, toOM(param));
+
+ //TODO: If ServiceClient can return the actual sopaEnvelope from MessageContext we can use the message mode and param this way.
+ //response.fromEnvelope(mode, axisResponse);
+ //return response.getValue();
+ return buildResponse(axisResponse, response).getValue();
+ }catch(AxisFault e){
+ //TODO
+ String todo = "Fault processing not supported for Alpha, we are only printing the fault node from soap fault.";
+ throw new WebServiceException(e.getMessage() + " " + todo);
+
+ }
+ }
+
+ public void invokeOneWay(Parameter param, Map requestContext) throws WebServiceException{
+ setupProperties(requestContext);
+
+ try{
+ //TODO: This is not the correct way to setup the JAXBContext
+ if (clientContext.getJAXBContext() != null) {
+ JAXBParameter p = (JAXBParameter) param;
+ p.setJAXBContext(clientContext.getJAXBContext());
+ }
+
+ serviceClient.getOptions().setTo(new org.apache.axis2.addressing.EndpointReference(getEndpointURL(requestContext)));
+ String soapAction = getSOAPAction(requestContext);
+ if (soapAction != null) {
+ serviceClient.getOptions().setAction(soapAction);
+ }
+ else {
+ serviceClient.getOptions().setAction("none");
+ }
+
+ serviceClient.fireAndForget(ServiceClient.ANON_OUT_ONLY_OP, toOM(param));
+ } catch(AxisFault e) {
+
+ String todo = "Fault processing not supported for Alpha, we are only printing the fault node from soap fault.";
+ throw new WebServiceException(e.getMessage() + " " + todo);
+ }
+ }
+
+ public Future<?> invokeAsync(Parameter param, AsyncHandler asynchandler, Map requestContext) throws WebServiceException{
+ setupProperties(requestContext);
+
+ try{
+ //TODO: This is not the correct way to setup the JAXBContext
+ if (clientContext.getJAXBContext() != null) {
+ JAXBParameter p = (JAXBParameter) param;
+ p.setJAXBContext(clientContext.getJAXBContext());
+ }
+
+ serviceClient.getOptions().setTo(new EndpointReference(getEndpointURL(requestContext)));
+ serviceClient.getOptions().setReplyTo(getMyEPR());
+
+ //TODO: This is a hack. Need a better way to determine the default wsa:Action if
+ //a SOAPAction header does not exist.
+ String soapAction = getSOAPAction(requestContext);
+ if (soapAction != null) {
+ serviceClient.getOptions().setAction(soapAction);
+ }
+ else {
+ serviceClient.getOptions().setAction("none");
+ }
+
+ AxisCallback callback = new AxisCallback();
+ Boolean useAsyncMep = (Boolean) requestContext.get(Constants.USE_ASYNC_MEP);
+
+ if((useAsyncMep != null && useAsyncMep.booleanValue())
+ || serviceClient.getOptions().isUseSeparateListener()) {
+ serviceClient.getOptions().setUseSeparateListener(true);
+ serviceClient.getOptions().setTransportInProtocol("http");
+ }
+
+ serviceClient.sendReceiveNonBlocking(ServiceClient.ANON_OUT_IN_OP,
+ toOM(param), callback);
+
+ //Create the Parameter wrapper for the response based on what the input
+ //type was. If it was a JAXBParameter, then set the JAXBContext on it as well
+ Parameter responseParam = ParameterFactory.createParameter(param.getValue().getClass());
+ if (param instanceof JAXBParameter) {
+ JAXBParameter p = (JAXBParameter) responseParam;
+ p.setJAXBContext(clientContext.getJAXBContext());
+ }
+
+ AsyncResponseProcessor asyncProcessor = new AsyncResponseProcessor(callback);
+ asyncProcessor.setMode((Mode) clientContext.getServiceMode());
+ asyncProcessor.setParameter(responseParam);
+
+ AsyncResponse<?> response = new AsyncResponse<Object>(asyncProcessor);
+ if(asynchandler !=null){
+ response.setAsyncHandler(asynchandler);
+ }
+
+ try {
+ getExecutor().submit(response).get();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ throw new WebServiceException(e.getMessage());
+ } catch (ExecutionException e) {
+ e.printStackTrace();
+ throw new WebServiceException(e.getMessage());
+ }
+
+ //TODO: Need to figure out who/when the Listener should be shutdown
+ //Do we do it after this request? Or, can we ask the listener to check
+ //itself to see if any other responses are outstanding.
+ return response;
+ }catch(AxisFault e){
+
+ String todo = "Fault processing not supported for Alpha, we are only printing the fault node from soap fault.";
+ throw new WebServiceException(e.getMessage() + " " + todo);
+ }
+ }
+
+ public Response invokeAsync(Parameter param, Map requestContext)throws WebServiceException{
+ AsyncResponse<Object> response= (AsyncResponse<Object>)invokeAsync(param, null, requestContext);
+ return response;
+ }
+
+ private String getEndpointURL(Map requestContext){
+ return (String) requestContext.get(BindingProvider.ENDPOINT_ADDRESS_PROPERTY);
+ }
+
+ private String getSOAPAction(Map requestContext){
+ Boolean useSoapAction = (Boolean)requestContext.get(BindingProvider.SOAPACTION_USE_PROPERTY);
+ if(useSoapAction!=null && useSoapAction.booleanValue()){
+ return (String)requestContext.get(BindingProvider.SOAPACTION_URI_PROPERTY);
+ }
+ return null;
+ }
+
+ private OMElement toOM(Parameter param){
+ /*TODO: This is a a hack.... I am getting the Header of the message and setting serviceClent header, then
+ * extract body of message as OM and ServiceCleint will create the envelope.
+ * I am doing this because ServiceClient wants to form the envelope and send it to AxisEngine.
+ * I would like to return param.toEnvelope() but ServiceClient will try to build envelope on top of envelope.
+ * Let just go directly to AxisEngine forget about ServiceClient... can I?
+ */
+ SOAPEnvelope env = ParameterUtils.toEnvelope((Mode) clientContext.getServiceMode(),
+ serviceClient.getOptions().getSoapVersionURI(),
+ param);
+ SOAPBody body= env.getBody();
+ SOAPHeader soapHeader = env.getHeader();
+ addHeadersToServiceClient(soapHeader);
+ return body.getFirstElement();
+ }
+
+ private void addHeadersToServiceClient(SOAPHeader soapHeader){
+ if(soapHeader!=null){
+ for(Iterator headers = soapHeader.getChildElements(); headers.hasNext();){
+ OMElement header = (OMElement)headers.next();
+ serviceClient.addHeader(header);
+ }
+ }
+ }
+
+ private Parameter buildResponse(OMElement element, Parameter xmlResponse){
+ //Create empty SoapResponse first
+ Parameter soapResponse = xmlResponse;
+
+ /* get xmlResponse param from ServiceClient OM response, By the way ServiceClient always retuns an
+ * OMElement xml string not Soap Env or Body.
+ * It does something like msgCtx.getEnvelope().getBody.getChild() --> i.e OMElement under the body.
+ * So we now have to go thru the pain of recreating the envelope. This is a performance issue...
+ */
+ xmlResponse.fromOM(element);
+ /*I will convert param toEnvelope since ServiceClient always send xml string.
+ * toEnvelope() in Parameter is coded just to handle this.
+ */
+ SOAPEnvelope env =xmlResponse.toEnvelope(null,serviceClient.getOptions().getSoapVersionURI());
+
+ //TODO:(NLG) Need to figure out why we have to cast to (Mode) here.
+ soapResponse.fromEnvelope((Mode) clientContext.getServiceMode(), env);
+
+ return soapResponse;
+ }
+
+ /*
+ * Returns the EPR that should be used for in-bound async responses
+ */
+ private EndpointReference getMyEPR() {
+ if (myEPR != null) {
+ return myEPR;
+ }
+ else {
+ try {
+ //TODO:(NLG) This should not be hard coded to HTTP and should allow
+ //for other transports to be used.
+ myEPR = serviceClient.getMyEPR("http");
+ } catch (AxisFault e) {
+ e.printStackTrace();
+ }
+ return myEPR;
+ }
+ }
+
+
+ /*
+ * TODO: This is a first pass at filtering the properties that are set on the
+ * RequestContext. Right now it's called during the invoke, but needs to be
+ * moved over to when the property is set. This should not be in the path
+ * of performance.
+ */
+ private void setupProperties(Map<String, Object> requestCtx) {
+ for (Iterator<String> it = requestCtx.keySet().iterator(); it.hasNext(); ) {
+ String key = it.next();
+ Object value = requestCtx.get(key);
+
+ if (key.equals(Constants.QOS_WSRM_ENABLE)) {
+ key = "Sandesha2AppProcessingDone";
+ value = !(Boolean) value;
+ value = value.toString();
+ }
+ else if (key.equals(Constants.QOS_WSADDRESSING_ENABLE)) {
+ key = org.apache.axis2.Constants.Configuration.DISABLE_ADDRESSING_FOR_OUT_MESSAGES;
+ value = !(Boolean) value;
+ }
+
+ serviceClient.getOptions().setProperty(key, value);
+ }
+ }
+}
Added: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/BindingProvider.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/BindingProvider.java?rev=415792&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/BindingProvider.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/BindingProvider.java Tue Jun 20 13:26:16 2006
@@ -0,0 +1,54 @@
+
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * Copyright 2006 International Business Machines Corp.
+ *
+ * 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.
+ */
+
+package org.apache.axis2.jaxws;
+
+import java.util.Hashtable;
+import java.util.Map;
+
+import javax.xml.ws.Binding;
+
+
+public class BindingProvider implements javax.xml.ws.BindingProvider {
+
+ protected Map<String, Object> requestContext;
+ protected Map<String, Object> responseContext;
+
+ public BindingProvider() {
+ requestContext = new Hashtable<String,Object>();
+ responseContext = new Hashtable<String,Object>();
+
+ //Setting standard property defaults for request context
+ requestContext.put(BindingProvider.SESSION_MAINTAIN_PROPERTY, new Boolean(false));
+ requestContext.put(BindingProvider.SOAPACTION_USE_PROPERTY, new Boolean(false));
+ requestContext.put(BindingProvider.SOAPACTION_URI_PROPERTY, "");
+ }
+
+ public Binding getBinding() {
+ // TODO
+ return null;
+ }
+
+ public Map<String, Object> getRequestContext() {
+ return requestContext;
+ }
+
+ public Map<String, Object> getResponseContext() {
+ return responseContext;
+ }
+}
Added: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/ClientConfigurationFactory.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/ClientConfigurationFactory.java?rev=415792&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/ClientConfigurationFactory.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/ClientConfigurationFactory.java Tue Jun 20 13:26:16 2006
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * Copyright 2006 International Business Machines Corp.
+ *
+ * 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.
+ */
+package org.apache.axis2.jaxws;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ConfigurationContextFactory;
+import org.apache.axis2.jaxws.util.Constants;
+
+
+/**
+ * This class serves as a factory for ConfigurationContexts suitable in the client environment.
+ */
+public class ClientConfigurationFactory {
+
+ private static ClientConfigurationFactory instance = new ClientConfigurationFactory();
+
+ private ConfigurationContext configContext = null;
+
+ protected ClientConfigurationFactory(){
+ }
+
+ /**
+ * Returns the singleton ClientConfigurationFactory object.
+ */
+ public static ClientConfigurationFactory newInstance() {
+ return instance;
+ }
+
+ /**
+ * Loads up a ConfigurationContext object using the WAS-specific configuration builder.
+ * @return a ConfigurationContext object that is suitable for the client environment
+ */
+ public synchronized ConfigurationContext getClientConfigurationContext() {
+ if (configContext == null) {
+ //TODO: Add logging
+ String repoPath = System.getProperty(Constants.AXIS2_REPO_PATH);
+ String axisConfigPath = System.getProperty(Constants.AXIS2_CONFIG_PATH);
+ try {
+ configContext = ConfigurationContextFactory
+ .createConfigurationContextFromFileSystem(repoPath, axisConfigPath);
+ } catch (AxisFault e) {
+ e.printStackTrace();
+ }
+ }
+
+ return configContext;
+ }
+}
Added: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/ClientMediator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/ClientMediator.java?rev=415792&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/ClientMediator.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/ClientMediator.java Tue Jun 20 13:26:16 2006
@@ -0,0 +1,200 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * Copyright 2006 International Business Machines Corp.
+ *
+ * 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.
+ */
+package org.apache.axis2.jaxws;
+
+import java.lang.reflect.Proxy;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Iterator;
+
+import javax.wsdl.Definition;
+import javax.xml.namespace.QName;
+import javax.xml.ws.WebServiceException;
+
+import org.apache.axis2.AxisFault;
+import org.apache.axis2.client.ServiceClient;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ServiceContext;
+import org.apache.axis2.context.ServiceGroupContext;
+import org.apache.axis2.description.AxisOperation;
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.description.AxisServiceGroup;
+import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.axis2.jaxws.handler.PortData;
+import org.apache.axis2.jaxws.util.Constants;
+import org.apache.axis2.jaxws.util.WSDLWrapper;
+/*
+ * This class acts as a mediator to creating Proxy or Dispatch implementation when Client makes a call to Service.
+ * Class creates AxisService, ServiceClient etc stores them in AxisRouter that the Dispatch or Proxy can use
+ * to call Axis Engine.
+ */
+public class ClientMediator {
+ private JAXWSClientContext clientContext = null;
+
+ public ClientMediator() {
+ super();
+ }
+
+ public <T> Dispatch<T> createDispatch(JAXWSClientContext<T> clientContext){
+
+ if (clientContext == null) {
+ throw new WebServiceException(
+ "Internal Error ... JAXWSClientContext not found");
+ }
+ this.clientContext = clientContext;
+ /*
+ * create Axis Controller, this will route all the calls from Dispatch to
+ * Axis Engine eiter using ServiceClient or instantiating
+ * AxisEngine.
+ */
+ try{
+ AxisController axisController = buildAxisController();
+ axisController.setClientContext(clientContext);
+ Dispatch<T> dispatch = new Dispatch<T>(axisController);
+ return dispatch;
+ }catch(AxisFault e){
+ throw new WebServiceException(e.getMessage());
+ }
+ }
+
+ // Add required parameter to this method.
+ public <T> T createProxy(JAXWSClientContext<T> clientContext) {
+ //TODO: Have to rewrite this
+ Class<T> sei = clientContext.getClazz();
+ //read port information from JAXWSClientContext and set that.
+ QName portName = null;
+ if(sei == null){
+ return null;
+ }
+ try{
+ AxisController axisController = buildAxisController();
+ axisController.setClientContext(this.clientContext);
+
+ Proxies proxyHandler = new Proxies(axisController);
+ Class[] seiClazz = new Class[]{sei};
+ Object proxyClass = Proxy.newProxyInstance(sei.getClassLoader(), seiClazz, proxyHandler);
+
+
+ /*TODO handle this in AxisController
+ *proxyHandler.setAxisService(axisService);
+ *proxyHandler.setServiceClient(serviceClient);
+ */
+ return sei.cast(proxyClass);
+ }catch(AxisFault e){
+ throw new WebServiceException(e.getMessage());
+ }
+
+ }
+
+ private ConfigurationContext getAxisConfigContext() {
+ try {
+ ClientConfigurationFactory factory = ClientConfigurationFactory.newInstance();
+ ConfigurationContext configCtx = factory.getClientConfigurationContext();
+ return configCtx;
+ } catch (Exception e) {
+ throw new WebServiceException(e);
+ }
+ }
+
+ private AxisService getAxisService(ServiceClient axisClient) {
+ return axisClient.getAxisService();
+ }
+
+ /*
+ * If a WSDL is present, create an AxisOperation for each of the operations
+ * that exist in that WSDL.
+ */
+ private AxisOperation getAxisOperation(AxisService service){
+ QName portName = clientContext.getPort().getPortName();
+ QName serviceName = clientContext.getPort().getServiceName();
+ WSDLWrapper wsdlContext = clientContext.getWsdlContext();
+
+ if(wsdlContext!=null){
+ String operation = wsdlContext.getOperationName(serviceName, portName);
+ return service.getOperation(new QName(operation));
+
+ }
+ else{
+ return service.getOperation(ServiceClient.ANON_OUT_IN_OP);
+ }
+ }
+
+ private PortData getPortInfo() {
+ return clientContext.getPort();
+ }
+
+ private QName getPortName() {
+ return getPortInfo().getPortName();
+ }
+
+ private ServiceClient getServiceClient(ConfigurationContext axisConfig)
+ throws AxisFault {
+
+ URL wsdlLocation = clientContext.getWSDLLocation();
+ if (wsdlLocation != null) {
+ Definition definition = clientContext.getWsdlContext().getDefinition();
+ if(definition!=null){
+ return new ServiceClient(axisConfig, definition,
+ getServiceName(), getPortName().getLocalPart());
+ }
+ return new ServiceClient(axisConfig, wsdlLocation,
+ getServiceName(), getPortName().getLocalPart());
+ }
+ return new ServiceClient(axisConfig, null);
+
+ }
+
+ private ServiceContext getServiceContext(AxisService service,
+ ServiceGroupContext groupContext) throws AxisFault {
+ return groupContext.getServiceContext(service);
+ }
+
+ private ServiceGroupContext getServiceGroupContext(
+ ConfigurationContext configContext, AxisService service) {
+ return new ServiceGroupContext(configContext,
+ (AxisServiceGroup) service.getParent());
+ }
+
+ private QName getServiceName() {
+ return getPortInfo().getServiceName();
+ }
+
+ private AxisController buildAxisController() throws AxisFault {
+ /* Create AxisController to send calls to AxisEngine
+ * There is one AxisController per Dispatch or Proxy.
+ */
+ AxisController controller = new AxisController();
+ /* Create all Web Service information from WSDL and store them in Axis API's
+ * AxisService, AxisOperation etc.
+ * Store these in AxisController. When Dispatch or Proxy receive Request from
+ * JAX-WS Client AxisController will use them to call AxisEngine and respond to
+ * Dispatch or Proxy.
+ */
+ ConfigurationContext axisConfig = getAxisConfigContext();
+ ServiceClient serviceClient = getServiceClient(axisConfig);
+ AxisService axisService = getAxisService(serviceClient);
+ ServiceGroupContext groupContext = getServiceGroupContext(axisConfig, axisService);
+ ServiceContext serviceContext = getServiceContext(axisService, groupContext);
+
+ controller.setConfigContext(axisConfig);
+ controller.setServiceClient(serviceClient);
+ controller.setAxisService(axisService);
+ controller.setGroupContext(groupContext);
+ controller.setServiceContext(serviceContext);
+ return controller;
+ }
+}
Added: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/Dispatch.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/Dispatch.java?rev=415792&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/Dispatch.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/Dispatch.java Tue Jun 20 13:26:16 2006
@@ -0,0 +1,116 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * Copyright 2006 International Business Machines Corp.
+ *
+ * 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.
+ */
+
+package org.apache.axis2.jaxws;
+
+import java.util.concurrent.Future;
+
+import javax.xml.ws.AsyncHandler;
+import javax.xml.ws.Response;
+import javax.xml.ws.WebServiceException;
+
+
+import javax.xml.namespace.QName;
+
+import org.apache.axis2.jaxws.param.Parameter;
+import org.apache.axis2.jaxws.param.ParameterFactory;
+import org.apache.axis2.jaxws.util.Constants;
+import org.apache.axis2.jaxws.util.WSDLWrapper;
+
+public class Dispatch<T> extends BindingProvider implements javax.xml.ws.Dispatch {
+
+ AxisController axisController = null;
+
+ public Dispatch() {
+ super();
+ }
+
+ public Dispatch(AxisController axisController){
+ super();
+ this.axisController = axisController;
+ setRequestContext();
+ }
+
+ public Object invoke(Object obj) throws WebServiceException {
+ try{
+ if(obj == null){
+ throw new WebServiceException("Dispatch Cannot Invoke SEI with null object");
+ }
+ Parameter param = ParameterFactory.createParameter(obj);
+ return axisController.invoke(param,requestContext);
+ }catch(Exception e){
+ throw new WebServiceException(e);
+ }
+ }
+
+ public void invokeOneWay(Object obj) throws WebServiceException{
+ if(obj == null){
+ throw new WebServiceException("Dispatch Cannot Invoke SEI with null object");
+ }
+ try{
+ Parameter param = ParameterFactory.createParameter(obj);
+ axisController.invokeOneWay(param, requestContext);
+ }catch(Exception e){
+ throw new WebServiceException(e);
+ }
+ }
+
+ public Future<?> invokeAsync(Object obj, AsyncHandler asynchandler) throws WebServiceException {
+ if(obj == null){
+ throw new WebServiceException("Dispatch Cannot Invoke SEI with null object");
+ }
+ try{
+ Parameter param = ParameterFactory.createParameter(obj);
+ return axisController.invokeAsync(param, asynchandler, requestContext);
+ } catch(Exception e) {
+ throw new WebServiceException(e);
+ }
+ }
+
+ public Response invokeAsync(Object obj)throws WebServiceException{
+ if(obj == null){
+ throw new WebServiceException("Dispatch Cannot Invoke SEI with null object");
+ }
+ try{
+ Parameter param = ParameterFactory.createParameter(obj);
+ return axisController.invokeAsync(param, requestContext);
+ }catch(Exception e){
+ throw new WebServiceException(e);
+ }
+ }
+
+ protected void setRequestContext(){
+ String endPointAddress = axisController.getEndpointAddress();
+ WSDLWrapper wsdl = axisController.getWSDLContext();
+ QName serviceName = axisController.getServiceName();
+ QName portName = axisController.getPortName();
+ if(endPointAddress != null && !"".equals(endPointAddress)){
+ getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endPointAddress);
+ }else if(wsdl != null){
+ String soapAddress = wsdl.getSOAPAddress(serviceName, portName);
+ getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, soapAddress);
+ }
+
+ if(wsdl != null){
+ String soapAction = wsdl.getSOAPAction(serviceName, portName);
+ getRequestContext().put(BindingProvider.SOAPACTION_URI_PROPERTY, soapAction);
+ }
+
+ getRequestContext().put(Constants.QOS_WSADDRESSING_ENABLE, Boolean.FALSE);
+ getRequestContext().put(Constants.QOS_WSRM_ENABLE, Boolean.FALSE);
+ }
+}
Added: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/JAXWSClientContext.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/JAXWSClientContext.java?rev=415792&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/JAXWSClientContext.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/JAXWSClientContext.java Tue Jun 20 13:26:16 2006
@@ -0,0 +1,81 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * Copyright 2006 International Business Machines Corp.
+ *
+ * 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.
+ */
+
+package org.apache.axis2.jaxws;
+
+import java.net.URL;
+import java.util.concurrent.Executor;
+import java.util.concurrent.ExecutorService;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.ws.Service.Mode;
+
+import org.apache.axis2.jaxws.handler.PortData;
+import org.apache.axis2.jaxws.util.WSDLWrapper;
+
+
+public class JAXWSClientContext<T> {
+ private PortData port = null;
+ private Mode serviceMode = null;
+ private ExecutorService executor = null;
+ private WSDLWrapper wsdlContext = null;
+ private Class<T> clazz = null; //SEI class for Proxy or Implementation type for Dispatch
+ private JAXBContext jaxbContext = null;
+
+ public ExecutorService getExecutor() {
+ return executor;
+ }
+ public void setExecutor(Executor executor) {
+ this.executor = (ExecutorService)executor;
+ }
+ public PortData getPort() {
+ return port;
+ }
+ public void setPort(PortData port) {
+ this.port = port;
+ }
+ public Mode getServiceMode() {
+ return serviceMode;
+ }
+ public void setServiceMode(Mode serviceMode) {
+ this.serviceMode = serviceMode;
+ }
+ public WSDLWrapper getWsdlContext() {
+ return wsdlContext;
+ }
+ public void setWsdlContext(WSDLWrapper wsdlContext) {
+ this.wsdlContext = wsdlContext;
+ }
+ public URL getWSDLLocation(){
+ return (wsdlContext != null)? wsdlContext.getWSLDLocation(): null;
+ }
+ public Class<T> getClazz() {
+ return clazz;
+ }
+ public void setClazz(Class<T> clazz) {
+ this.clazz = clazz;
+ }
+
+ public JAXBContext getJAXBContext() {
+ return jaxbContext;
+ }
+
+ public void setJAXBContext(JAXBContext jbc) {
+ jaxbContext = jbc;
+ }
+
+}
Added: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/Proxies.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/Proxies.java?rev=415792&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/Proxies.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/Proxies.java Tue Jun 20 13:26:16 2006
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * Copyright 2006 International Business Machines Corp.
+ *
+ * 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.
+ */
+
+package org.apache.axis2.jaxws;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+
+import org.apache.axis2.client.ServiceClient;
+import org.apache.axis2.description.AxisService;
+
+public class Proxies extends BindingProvider implements InvocationHandler {
+ private AxisService axisService = null;
+ private ServiceClient serviceClient = null;
+ private AxisController router = null;
+ public Proxies(AxisController router){
+ super();
+ this.router = router;
+ }
+
+ public Object invoke(Object proxy, Method method, Object[] args)
+ throws Throwable {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void setAxisService(AxisService svc) {
+ axisService = svc;
+ }
+
+ public void setServiceClient(ServiceClient svcClt) {
+ serviceClient = svcClt;
+ }
+
+}
Added: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/PortData.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/PortData.java?rev=415792&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/PortData.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/PortData.java Tue Jun 20 13:26:16 2006
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * Copyright 2006 International Business Machines Corp.
+ *
+ * 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.
+ */
+
+package org.apache.axis2.jaxws.handler;
+
+import javax.xml.ws.handler.PortInfo;
+
+public interface PortData extends PortInfo {
+ public String getEndpointAddress();
+}
Added: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/PortInfoImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/PortInfoImpl.java?rev=415792&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/PortInfoImpl.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/handler/PortInfoImpl.java Tue Jun 20 13:26:16 2006
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * Copyright 2006 International Business Machines Corp.
+ *
+ * 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.
+ */
+package org.apache.axis2.jaxws.handler;
+
+import javax.xml.namespace.QName;
+
+public class PortInfoImpl implements PortData {
+ private QName serviceName = null;
+ private QName portName = null;
+ private String bindingId = null;
+ private String serviceEndpoint = null;
+
+
+ public PortInfoImpl(QName serviceName, QName portName, String bindingId, String serviceEndpoint) {
+ super();
+ // TODO Auto-generated constructor stub
+ this.serviceName = serviceName;
+ this.portName = portName;
+ this.bindingId = bindingId;
+ this.serviceEndpoint = serviceEndpoint;
+ }
+
+ public QName getServiceName() {
+ // TODO Auto-generated method stub
+ return serviceName;
+ }
+
+ public QName getPortName() {
+ // TODO Auto-generated method stub
+ return portName;
+ }
+
+ public String getBindingID() {
+ // TODO Auto-generated method stub
+ return bindingId;
+ }
+
+ public void setServiceName(QName serviceName){
+ this.serviceName = serviceName;
+ }
+
+ public void setPortName(QName portName){
+ this.portName = portName;
+ }
+
+ public void setBindingID(String bindingId){
+ this.bindingId = bindingId;
+ }
+
+ public void setEndPointAddress(String serviceEndpoint){
+ this.serviceEndpoint = serviceEndpoint;
+ }
+
+ public String getEndpointAddress(){
+ return serviceEndpoint;
+ }
+}
+
Added: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/impl/AsyncResponse.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/impl/AsyncResponse.java?rev=415792&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/impl/AsyncResponse.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/impl/AsyncResponse.java Tue Jun 20 13:26:16 2006
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * Copyright 2006 International Business Machines Corp.
+ *
+ * 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.
+ */
+package org.apache.axis2.jaxws.impl;
+
+import java.util.Map;
+import java.util.concurrent.Callable;
+import java.util.concurrent.FutureTask;
+
+import javax.xml.ws.AsyncHandler;
+import javax.xml.ws.Response;
+
+/**
+ * The AsyncResponse class is the object that a JAX-WS callback, implemented
+ * using the AsyncHandler API, will recieve. The AsyncResponse encapsulates the
+ * context of the response so that the user's handler can read any available
+ * contextual data.
+ */
+public class AsyncResponse<T> extends FutureTask<T> implements Response<T> {
+
+ private Map<String, Object> responseCtx;
+ private AsyncHandler asyncHandler;
+
+ public AsyncResponse(Callable<T> processor) {
+ super(processor);
+ }
+
+ public void setAsyncHandler(AsyncHandler ah) {
+ asyncHandler = ah;
+ }
+
+ public Map<String, Object> getContext() {
+ return responseCtx;
+ }
+
+ protected void done() {
+ super.done();
+
+ if(!isCancelled()){
+ if(asyncHandler != null){
+ asyncHandler.handleResponse(this);
+ }
+ }
+ }
+
+}
Added: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/impl/AsyncResponseProcessor.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/impl/AsyncResponseProcessor.java?rev=415792&view=auto
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/impl/AsyncResponseProcessor.java (added)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/impl/AsyncResponseProcessor.java Tue Jun 20 13:26:16 2006
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * Copyright 2006 International Business Machines Corp.
+ *
+ * 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.
+ */
+package org.apache.axis2.jaxws.impl;
+
+import java.util.concurrent.Callable;
+
+import javax.xml.ws.Service.Mode;
+
+import org.apache.axis2.jaxws.AxisCallback;
+import org.apache.axis2.jaxws.param.Parameter;
+
+
+/**
+ * The AsyncResponseProcessor is responsible for collecting the async response
+ * from Axis2 and saving the value of the response. This is should be called
+ * from within the Executor configured by the JAX-WS Service (or ServiceDelegate).
+ */
+public class AsyncResponseProcessor implements Callable {
+
+ private AxisCallback axisCallback;
+ private Mode mode;
+ private Parameter param;
+
+ public AsyncResponseProcessor(AxisCallback cb) {
+ axisCallback = cb;
+ }
+
+ public void setMode(Mode m) {
+ mode = m;
+ }
+
+ //TODO: Need to re-work Parameter usage so that we're not using the same instance.
+ //Should be based off of parameter types so that we're not possibly contaminating a
+ //previous object.
+ public void setParameter(Parameter p) {
+ param = p;
+ }
+
+ /**
+ * This method will be called to collect the async response from Axis2.
+ */
+ public Object call() throws Exception {
+ if (axisCallback != null) {
+ while (!axisCallback.isComplete()) {
+ //System.out.println(">> AsyncResponseProcessor - waiting for response");
+ //TODO: The wait period should probably be configurable
+ Thread.sleep(1000);
+ }
+
+ //System.out.println(">> AsyncResponseProcessor - response received, processing");
+ param.fromEnvelope(mode, axisCallback.getSOAPEnvelope());
+ return param.getValue();
+ }
+
+ return null;
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org