[jbossws-commits] JBossWS SVN: r2897 - in trunk: build and 45 other directories.

jbossws-commits at lists.jboss.org jbossws-commits at lists.jboss.org
Mon Apr 23 02:12:13 EDT 2007


Author: thomas.diesler at jboss.com
Date: 2007-04-23 02:12:12 -0400 (Mon, 23 Apr 2007)
New Revision: 2897

Added:
   trunk/jbossws-api/
   trunk/jbossws-api/.classpath
   trunk/jbossws-api/.project
   trunk/jbossws-api/build.xml
   trunk/jbossws-api/src/
   trunk/jbossws-api/src/java/
   trunk/jbossws-api/src/java/javax/
   trunk/jbossws-api/src/java/javax/annotation/
   trunk/jbossws-api/src/java/javax/annotation/Resource.java
   trunk/jbossws-api/src/java/javax/annotation/Resources.java
   trunk/jbossws-api/src/java/javax/jws/
   trunk/jbossws-api/src/java/javax/jws/HandlerChain.java
   trunk/jbossws-api/src/java/javax/jws/Oneway.java
   trunk/jbossws-api/src/java/javax/jws/WebMethod.java
   trunk/jbossws-api/src/java/javax/jws/WebParam.java
   trunk/jbossws-api/src/java/javax/jws/WebResult.java
   trunk/jbossws-api/src/java/javax/jws/WebService.java
   trunk/jbossws-api/src/java/javax/jws/soap/
   trunk/jbossws-api/src/java/javax/jws/soap/InitParam.java
   trunk/jbossws-api/src/java/javax/jws/soap/SOAPBinding.java
   trunk/jbossws-api/src/java/javax/jws/soap/SOAPMessageHandler.java
   trunk/jbossws-api/src/java/javax/jws/soap/SOAPMessageHandlers.java
   trunk/jbossws-api/src/java/javax/xml/
   trunk/jbossws-api/src/java/javax/xml/rpc/
   trunk/jbossws-api/src/java/javax/xml/rpc/Call.java
   trunk/jbossws-api/src/java/javax/xml/rpc/JAXRPCException.java
   trunk/jbossws-api/src/java/javax/xml/rpc/NamespaceConstants.java
   trunk/jbossws-api/src/java/javax/xml/rpc/ParameterMode.java
   trunk/jbossws-api/src/java/javax/xml/rpc/Service.java
   trunk/jbossws-api/src/java/javax/xml/rpc/ServiceException.java
   trunk/jbossws-api/src/java/javax/xml/rpc/ServiceFactory.java
   trunk/jbossws-api/src/java/javax/xml/rpc/Stub.java
   trunk/jbossws-api/src/java/javax/xml/rpc/encoding/
   trunk/jbossws-api/src/java/javax/xml/rpc/encoding/DeserializationContext.java
   trunk/jbossws-api/src/java/javax/xml/rpc/encoding/Deserializer.java
   trunk/jbossws-api/src/java/javax/xml/rpc/encoding/DeserializerFactory.java
   trunk/jbossws-api/src/java/javax/xml/rpc/encoding/SerializationContext.java
   trunk/jbossws-api/src/java/javax/xml/rpc/encoding/Serializer.java
   trunk/jbossws-api/src/java/javax/xml/rpc/encoding/SerializerFactory.java
   trunk/jbossws-api/src/java/javax/xml/rpc/encoding/TypeMapping.java
   trunk/jbossws-api/src/java/javax/xml/rpc/encoding/TypeMappingRegistry.java
   trunk/jbossws-api/src/java/javax/xml/rpc/encoding/XMLType.java
   trunk/jbossws-api/src/java/javax/xml/rpc/handler/
   trunk/jbossws-api/src/java/javax/xml/rpc/handler/GenericHandler.java
   trunk/jbossws-api/src/java/javax/xml/rpc/handler/Handler.java
   trunk/jbossws-api/src/java/javax/xml/rpc/handler/HandlerChain.java
   trunk/jbossws-api/src/java/javax/xml/rpc/handler/HandlerInfo.java
   trunk/jbossws-api/src/java/javax/xml/rpc/handler/HandlerRegistry.java
   trunk/jbossws-api/src/java/javax/xml/rpc/handler/MessageContext.java
   trunk/jbossws-api/src/java/javax/xml/rpc/handler/soap/
   trunk/jbossws-api/src/java/javax/xml/rpc/handler/soap/SOAPMessageContext.java
   trunk/jbossws-api/src/java/javax/xml/rpc/holders/
   trunk/jbossws-api/src/java/javax/xml/rpc/holders/BigDecimalHolder.java
   trunk/jbossws-api/src/java/javax/xml/rpc/holders/BigIntegerHolder.java
   trunk/jbossws-api/src/java/javax/xml/rpc/holders/BooleanHolder.java
   trunk/jbossws-api/src/java/javax/xml/rpc/holders/BooleanWrapperHolder.java
   trunk/jbossws-api/src/java/javax/xml/rpc/holders/ByteArrayHolder.java
   trunk/jbossws-api/src/java/javax/xml/rpc/holders/ByteHolder.java
   trunk/jbossws-api/src/java/javax/xml/rpc/holders/ByteWrapperHolder.java
   trunk/jbossws-api/src/java/javax/xml/rpc/holders/CalendarHolder.java
   trunk/jbossws-api/src/java/javax/xml/rpc/holders/DoubleHolder.java
   trunk/jbossws-api/src/java/javax/xml/rpc/holders/DoubleWrapperHolder.java
   trunk/jbossws-api/src/java/javax/xml/rpc/holders/FloatHolder.java
   trunk/jbossws-api/src/java/javax/xml/rpc/holders/FloatWrapperHolder.java
   trunk/jbossws-api/src/java/javax/xml/rpc/holders/Holder.java
   trunk/jbossws-api/src/java/javax/xml/rpc/holders/IntHolder.java
   trunk/jbossws-api/src/java/javax/xml/rpc/holders/IntegerWrapperHolder.java
   trunk/jbossws-api/src/java/javax/xml/rpc/holders/LongHolder.java
   trunk/jbossws-api/src/java/javax/xml/rpc/holders/LongWrapperHolder.java
   trunk/jbossws-api/src/java/javax/xml/rpc/holders/ObjectHolder.java
   trunk/jbossws-api/src/java/javax/xml/rpc/holders/QNameHolder.java
   trunk/jbossws-api/src/java/javax/xml/rpc/holders/ShortHolder.java
   trunk/jbossws-api/src/java/javax/xml/rpc/holders/ShortWrapperHolder.java
   trunk/jbossws-api/src/java/javax/xml/rpc/holders/StringHolder.java
   trunk/jbossws-api/src/java/javax/xml/rpc/server/
   trunk/jbossws-api/src/java/javax/xml/rpc/server/ServiceLifecycle.java
   trunk/jbossws-api/src/java/javax/xml/rpc/server/ServletEndpointContext.java
   trunk/jbossws-api/src/java/javax/xml/rpc/soap/
   trunk/jbossws-api/src/java/javax/xml/rpc/soap/SOAPFaultException.java
   trunk/jbossws-api/src/java/javax/xml/soap/
   trunk/jbossws-api/src/java/javax/xml/soap/AttachmentPart.java
   trunk/jbossws-api/src/java/javax/xml/soap/Detail.java
   trunk/jbossws-api/src/java/javax/xml/soap/DetailEntry.java
   trunk/jbossws-api/src/java/javax/xml/soap/FactoryLoader.java
   trunk/jbossws-api/src/java/javax/xml/soap/MessageFactory.java
   trunk/jbossws-api/src/java/javax/xml/soap/MimeHeader.java
   trunk/jbossws-api/src/java/javax/xml/soap/MimeHeaders.java
   trunk/jbossws-api/src/java/javax/xml/soap/Name.java
   trunk/jbossws-api/src/java/javax/xml/soap/Node.java
   trunk/jbossws-api/src/java/javax/xml/soap/SAAJMetaFactory.java
   trunk/jbossws-api/src/java/javax/xml/soap/SAAJResult.java
   trunk/jbossws-api/src/java/javax/xml/soap/SOAPBody.java
   trunk/jbossws-api/src/java/javax/xml/soap/SOAPBodyElement.java
   trunk/jbossws-api/src/java/javax/xml/soap/SOAPConnection.java
   trunk/jbossws-api/src/java/javax/xml/soap/SOAPConnectionFactory.java
   trunk/jbossws-api/src/java/javax/xml/soap/SOAPConstants.java
   trunk/jbossws-api/src/java/javax/xml/soap/SOAPElement.java
   trunk/jbossws-api/src/java/javax/xml/soap/SOAPElementFactory.java
   trunk/jbossws-api/src/java/javax/xml/soap/SOAPEnvelope.java
   trunk/jbossws-api/src/java/javax/xml/soap/SOAPException.java
   trunk/jbossws-api/src/java/javax/xml/soap/SOAPFactory.java
   trunk/jbossws-api/src/java/javax/xml/soap/SOAPFault.java
   trunk/jbossws-api/src/java/javax/xml/soap/SOAPFaultElement.java
   trunk/jbossws-api/src/java/javax/xml/soap/SOAPHeader.java
   trunk/jbossws-api/src/java/javax/xml/soap/SOAPHeaderElement.java
   trunk/jbossws-api/src/java/javax/xml/soap/SOAPMessage.java
   trunk/jbossws-api/src/java/javax/xml/soap/SOAPPart.java
   trunk/jbossws-api/src/java/javax/xml/soap/Text.java
   trunk/jbossws-api/src/java/javax/xml/ws/
   trunk/jbossws-api/src/java/javax/xml/ws/Action.java
   trunk/jbossws-api/src/java/javax/xml/ws/AsyncHandler.java
   trunk/jbossws-api/src/java/javax/xml/ws/Binding.java
   trunk/jbossws-api/src/java/javax/xml/ws/BindingProvider.java
   trunk/jbossws-api/src/java/javax/xml/ws/BindingType.java
   trunk/jbossws-api/src/java/javax/xml/ws/Dispatch.java
   trunk/jbossws-api/src/java/javax/xml/ws/Endpoint.java
   trunk/jbossws-api/src/java/javax/xml/ws/EndpointReference.java
   trunk/jbossws-api/src/java/javax/xml/ws/FaultAction.java
   trunk/jbossws-api/src/java/javax/xml/ws/Holder.java
   trunk/jbossws-api/src/java/javax/xml/ws/LogicalMessage.java
   trunk/jbossws-api/src/java/javax/xml/ws/ProtocolException.java
   trunk/jbossws-api/src/java/javax/xml/ws/Provider.java
   trunk/jbossws-api/src/java/javax/xml/ws/RequestWrapper.java
   trunk/jbossws-api/src/java/javax/xml/ws/RespectBinding.java
   trunk/jbossws-api/src/java/javax/xml/ws/RespectBindingFeature.java
   trunk/jbossws-api/src/java/javax/xml/ws/Response.java
   trunk/jbossws-api/src/java/javax/xml/ws/ResponseWrapper.java
   trunk/jbossws-api/src/java/javax/xml/ws/Service.java
   trunk/jbossws-api/src/java/javax/xml/ws/ServiceMode.java
   trunk/jbossws-api/src/java/javax/xml/ws/WebEndpoint.java
   trunk/jbossws-api/src/java/javax/xml/ws/WebFault.java
   trunk/jbossws-api/src/java/javax/xml/ws/WebServiceClient.java
   trunk/jbossws-api/src/java/javax/xml/ws/WebServiceContext.java
   trunk/jbossws-api/src/java/javax/xml/ws/WebServiceException.java
   trunk/jbossws-api/src/java/javax/xml/ws/WebServiceFeature.java
   trunk/jbossws-api/src/java/javax/xml/ws/WebServicePermission.java
   trunk/jbossws-api/src/java/javax/xml/ws/WebServiceProvider.java
   trunk/jbossws-api/src/java/javax/xml/ws/WebServiceRef.java
   trunk/jbossws-api/src/java/javax/xml/ws/WebServiceRefs.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/Action.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/ActionNotSupportedException.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingBuilder.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingConstants.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingException.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingProperties.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingType.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/AttributeExtensible.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/AttributedQName.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/AttributedURI.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/DestinationUnreachableException.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/ElementExtensible.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/EndpointReference.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/EndpointUnavailableException.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/FaultAction.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/InvalidMapException.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/JAXWSAConstants.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/MapRequiredException.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/Metadata.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/ReferenceParameters.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/Relationship.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/soap/
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/soap/SOAPAddressingBuilder.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/soap/SOAPAddressingElement.java
   trunk/jbossws-api/src/java/javax/xml/ws/addressing/soap/SOAPAddressingProperties.java
   trunk/jbossws-api/src/java/javax/xml/ws/handler/
   trunk/jbossws-api/src/java/javax/xml/ws/handler/Handler.java
   trunk/jbossws-api/src/java/javax/xml/ws/handler/HandlerResolver.java
   trunk/jbossws-api/src/java/javax/xml/ws/handler/LogicalHandler.java
   trunk/jbossws-api/src/java/javax/xml/ws/handler/LogicalMessageContext.java
   trunk/jbossws-api/src/java/javax/xml/ws/handler/MessageContext.java
   trunk/jbossws-api/src/java/javax/xml/ws/handler/PortInfo.java
   trunk/jbossws-api/src/java/javax/xml/ws/handler/soap/
   trunk/jbossws-api/src/java/javax/xml/ws/handler/soap/SOAPHandler.java
   trunk/jbossws-api/src/java/javax/xml/ws/handler/soap/SOAPMessageContext.java
   trunk/jbossws-api/src/java/javax/xml/ws/http/
   trunk/jbossws-api/src/java/javax/xml/ws/http/HTTPBinding.java
   trunk/jbossws-api/src/java/javax/xml/ws/http/HTTPException.java
   trunk/jbossws-api/src/java/javax/xml/ws/soap/
   trunk/jbossws-api/src/java/javax/xml/ws/soap/Addressing.java
   trunk/jbossws-api/src/java/javax/xml/ws/soap/AddressingFeature.java
   trunk/jbossws-api/src/java/javax/xml/ws/soap/MTOM.java
   trunk/jbossws-api/src/java/javax/xml/ws/soap/MTOMFeature.java
   trunk/jbossws-api/src/java/javax/xml/ws/soap/SOAPBinding.java
   trunk/jbossws-api/src/java/javax/xml/ws/soap/SOAPFaultException.java
   trunk/jbossws-api/src/java/javax/xml/ws/spi/
   trunk/jbossws-api/src/java/javax/xml/ws/spi/Provider.java
   trunk/jbossws-api/src/java/javax/xml/ws/spi/ServiceDelegate.java
   trunk/jbossws-api/src/java/javax/xml/ws/spi/WebServiceFeatureAnnotation.java
   trunk/jbossws-api/src/java/javax/xml/ws/wsaddressing/
   trunk/jbossws-api/src/java/javax/xml/ws/wsaddressing/W3CEndpointReference.java
   trunk/jbossws-api/src/java/javax/xml/ws/wsaddressing/W3CEndpointReferenceBuilder.java
   trunk/jbossws-api/src/java/org/
   trunk/jbossws-api/src/java/org/jboss/
   trunk/jbossws-api/src/java/org/jboss/ws/
   trunk/jbossws-api/src/java/org/jboss/ws/integration/
   trunk/jbossws-api/src/java/org/jboss/ws/integration/deployment/
   trunk/jbossws-api/src/java/org/jboss/ws/integration/management/
   trunk/jbossws-api/src/java/org/jboss/ws/integration/message/
   trunk/jbossws-api/src/resources/
   trunk/jbossws-api/src/resources/jboss-jaxws.jar/
   trunk/jbossws-api/src/resources/jboss-jaxws.jar/META-INF/
   trunk/jbossws-api/src/resources/jboss-jaxws.jar/META-INF/services/
   trunk/jbossws-api/src/resources/jboss-jaxws.jar/META-INF/services/javax.xml.ws.spi.Provider
   trunk/jbossws-api/src/resources/jboss-saaj.jar/
   trunk/jbossws-api/src/resources/jboss-saaj.jar/META-INF/
   trunk/jbossws-api/src/resources/jboss-saaj.jar/META-INF/services/
   trunk/jbossws-api/src/resources/jboss-saaj.jar/META-INF/services/javax.xml.soap.MessageFactory
   trunk/jbossws-api/src/resources/jboss-saaj.jar/META-INF/services/javax.xml.soap.MetaFactory
   trunk/jbossws-api/src/resources/jboss-saaj.jar/META-INF/services/javax.xml.soap.SOAPFactory
Removed:
   trunk/jbossws-core/src/java/javax/
   trunk/jbossws-core/src/java/org/jboss/ws/integration/
   trunk/jbossws-core/src/resources/jboss-jaxws.jar/
   trunk/jbossws-core/src/resources/jboss-saaj.jar/
Modified:
   trunk/build/ant-import/build-deploy.xml
   trunk/build/ant-import/build-setup.xml
   trunk/build/build.xml
   trunk/integration-jboss40/build.xml
   trunk/integration-jboss42/build.xml
   trunk/integration-jboss50/build.xml
   trunk/integration-tomcat/build.xml
   trunk/jbossws-core/.classpath
   trunk/jbossws-core/build.xml
Log:
More work on general integration

Modified: trunk/build/ant-import/build-deploy.xml
===================================================================
--- trunk/build/ant-import/build-deploy.xml	2007-04-23 06:06:16 UTC (rev 2896)
+++ trunk/build/ant-import/build-deploy.xml	2007-04-23 06:12:12 UTC (rev 2897)
@@ -52,10 +52,12 @@
       </fileset>
     </copy>
     <copy todir="${jboss50.home}/client" overwrite="true">
-      <fileset dir="${core.output.lib.dir}">
+      <fileset dir="${api.output.lib.dir}">
         <include name="jboss-jaxrpc.jar"/>
         <include name="jboss-jaxws.jar"/>
         <include name="jboss-saaj.jar"/>
+      </fileset>
+      <fileset dir="${core.output.lib.dir}">
         <include name="jbossws-client.jar"/>
       </fileset>
       <fileset dir="${thirdparty.dir}">
@@ -67,7 +69,7 @@
       </fileset>
     </copy>
     <copy todir="${jboss50.home}/server/${jboss.server.instance}/lib" overwrite="true">
-      <fileset dir="${core.output.lib.dir}">
+      <fileset dir="${api.output.lib.dir}">
         <include name="jboss-jaxrpc.jar"/>
         <include name="jboss-jaxws.jar"/>
         <include name="jboss-saaj.jar"/>
@@ -101,10 +103,12 @@
       </fileset>
     </copy>
     <copy todir="${jboss42.home}/client" overwrite="true">
-      <fileset dir="${core.output.lib.dir}">
+      <fileset dir="${api.output.lib.dir}">
         <include name="jboss-jaxrpc.jar"/>
         <include name="jboss-jaxws.jar"/>
         <include name="jboss-saaj.jar"/>
+      </fileset>
+      <fileset dir="${core.output.lib.dir}">
         <include name="jbossws-client.jar"/>
       </fileset>
       <fileset dir="${thirdparty.dir}">
@@ -115,12 +119,14 @@
       </fileset>
     </copy>
     <copy todir="${jboss42.home}/server/${jboss.server.instance}/lib" overwrite="true">
-      <fileset dir="${core.output.lib.dir}">
-        <include name="jbossws-integration.jar"/>
+      <fileset dir="${api.output.lib.dir}">
         <include name="jboss-jaxrpc.jar"/>
         <include name="jboss-jaxws.jar"/>
         <include name="jboss-saaj.jar"/>
       </fileset>
+      <fileset dir="${integration.output.lib.dir}">
+        <include name="jbossws-integration.jar"/>
+      </fileset>
     </copy>
     <delete dir="${jboss42.home}/server/${jboss.server.instance}/deploy/jbossws.sar"/>
     <mkdir dir="${jboss42.home}/server/${jboss.server.instance}/deploy/jbossws.sar"/>
@@ -148,10 +154,12 @@
     </copy>
     <delete file="${jboss40.home}/client/jbossws14-client.jar" />
     <copy todir="${jboss40.home}/client" overwrite="true">
-      <fileset dir="${core.output.lib.dir}">
+      <fileset dir="${api.output.lib.dir}">
         <include name="jboss-jaxrpc.jar" />
         <include name="jboss-jaxws.jar" />
         <include name="jboss-saaj.jar" />
+      </fileset>
+      <fileset dir="${core.output.lib.dir}">
         <include name="jbossws-client.jar" />
       </fileset>
       <!-- Only available on jdk1.5 -->
@@ -165,7 +173,7 @@
       </fileset>
     </copy>
     <copy todir="${jboss40.home}/server/${jboss.server.instance}/lib" overwrite="true">
-      <fileset dir="${core.output.lib.dir}">
+      <fileset dir="${api.output.lib.dir}">
         <include name="jboss-jaxrpc.jar" />
         <include name="jboss-jaxws.jar" />
         <include name="jboss-saaj.jar" />
@@ -197,7 +205,7 @@
     </copy>
     <delete file="${jboss40.home}/client/jbossws-client.jar" />
     <copy todir="${jboss40.home}/client" overwrite="true">
-      <fileset dir="${core.output.lib.dir}">
+      <fileset dir="${api.output.lib.dir}">
         <include name="jboss-jaxrpc.jar" />
         <include name="jboss-saaj.jar" />
       </fileset>
@@ -207,7 +215,7 @@
     </copy>
     <delete file="${jboss40.home}/server/${jboss.server.instance}/lib/jboss-jaxws.jar" />
     <copy todir="${jboss40.home}/server/${jboss.server.instance}/lib" overwrite="true">
-      <fileset dir="${core.output.lib.dir}">
+      <fileset dir="${api.output.lib.dir}">
         <include name="jboss-jaxrpc.jar" />
         <include name="jboss-saaj.jar" />
       </fileset>

Modified: trunk/build/ant-import/build-setup.xml
===================================================================
--- trunk/build/ant-import/build-setup.xml	2007-04-23 06:06:16 UTC (rev 2896)
+++ trunk/build/ant-import/build-setup.xml	2007-04-23 06:12:12 UTC (rev 2897)
@@ -24,10 +24,12 @@
   <property name="build.dir" value="${basedir}/../build"/>
   <property name="build.output.dir" value="${build.dir}/output"/>
   <property name="docs.dir" value="${basedir}/../jbossws-docs"/>
+  <property name="integration.dir" value="${basedir}/../integration"/>
   <property name="integration.jboss40.dir" value="${basedir}/../integration-jboss40"/>
   <property name="integration.jboss42.dir" value="${basedir}/../integration-jboss42"/>
   <property name="integration.jboss50.dir" value="${basedir}/../integration-jboss50"/>
   <property name="integration.tomcat.dir" value="${basedir}/../integration-tomcat"/>
+  <property name="api.dir" value="${basedir}/../jbossws-api"/>
   <property name="core.dir" value="${basedir}/../jbossws-core"/>
   <property name="tests.dir" value="${basedir}/../jbossws-tests"/>
   

Modified: trunk/build/build.xml
===================================================================
--- trunk/build/build.xml	2007-04-23 06:06:16 UTC (rev 2896)
+++ trunk/build/build.xml	2007-04-23 06:12:12 UTC (rev 2897)
@@ -18,10 +18,12 @@
   <import file="${basedir}/ant-import/build-release.xml"/>
   <import file="${basedir}/ant-import/build-samples.xml"/>
   <import file="${basedir}/ant-import/build-hudson.xml"/>
+  <import file="${basedir}/../integration/build.xml"/>
   <import file="${basedir}/../integration-jboss40/build.xml"/>
   <import file="${basedir}/../integration-jboss42/build.xml"/>
   <import file="${basedir}/../integration-jboss50/build.xml"/>
   <import file="${basedir}/../integration-tomcat/build.xml"/>
+  <import file="${basedir}/../jbossws-api/build.xml"/>
   <import file="${basedir}/../jbossws-core/build.xml"/>
   <import file="${basedir}/../jbossws-tests/build.xml"/>
   
@@ -43,7 +45,9 @@
   
   <target name="clean" depends="prepare" description="Cleans up most generated files.">
     <delete dir="${build.dir}/output"/>
+    <ant antfile="${api.dir}/build.xml" target="clean" inheritall="false"/>
     <ant antfile="${core.dir}/build.xml" target="clean" inheritall="false"/>
+    <ant antfile="${integration.dir}/build.xml" target="clean" inheritall="false"/>
     <ant antfile="${integration.jboss40.dir}/build.xml" target="clean" inheritall="false"/>
     <ant antfile="${integration.jboss42.dir}/build.xml" target="clean" inheritall="false"/>
     <ant antfile="${integration.jboss50.dir}/build.xml" target="clean" inheritall="false"/>

Modified: trunk/integration-jboss40/build.xml
===================================================================
--- trunk/integration-jboss40/build.xml	2007-04-23 06:06:16 UTC (rev 2896)
+++ trunk/integration-jboss40/build.xml	2007-04-23 06:12:12 UTC (rev 2897)
@@ -68,8 +68,10 @@
       <exclude name="org/jboss/ws/integration/jboss42/ServiceEndpointGeneratorEJB3.java"/>
       <exclude name="org/jboss/ws/integration/jboss42/ServiceEndpointInvokerEJB3.java"/>
       <classpath refid="jboss40.integration.classpath"/>
-      <classpath path="${core.output.classes14.dir}"/>
       <classpath path="${core.output.classes.dir}"/>
+      <classpath path="${api.output.classes14.dir}"/>
+      <classpath path="${api.output.classes.dir}"/>
+      <classpath path="${integration.output.classes.dir}"/>
     </javac>
   </target>
   <target name="jboss40-compile-ejb3-classes" depends="jboss40-init,core-compile,jboss40-check-ejb3-classes" if="jboss40.ejb3.available">
@@ -82,8 +84,10 @@
       <include name="org/jboss/ws/integration/jboss42/ServiceEndpointGeneratorEJB3.java"/>
       <include name="org/jboss/ws/integration/jboss42/ServiceEndpointInvokerEJB3.java"/>
       <classpath refid="jboss40.integration.classpath"/>
-      <classpath path="${core.output.classes14.dir}"/>
       <classpath path="${core.output.classes.dir}"/>
+      <classpath path="${api.output.classes14.dir}"/>
+      <classpath path="${api.output.classes.dir}"/>
+      <classpath path="${integration.output.classes.dir}"/>
     </javac>
   </target>
   <target name="jboss40-check-ejb3-classes" depends="jboss40-init" unless="jboss40.ejb3.available">

Modified: trunk/integration-jboss42/build.xml
===================================================================
--- trunk/integration-jboss42/build.xml	2007-04-23 06:06:16 UTC (rev 2896)
+++ trunk/integration-jboss42/build.xml	2007-04-23 06:12:12 UTC (rev 2897)
@@ -54,8 +54,10 @@
       <exclude name="org/jboss/ws/integration/jboss42/ServiceEndpointGeneratorEJB3.java"/>
       <exclude name="org/jboss/ws/integration/jboss42/ServiceEndpointInvokerEJB3.java"/>
       <classpath refid="jboss42.integration.classpath"/>
-      <classpath path="${core.output.classes14.dir}"/>
       <classpath path="${core.output.classes.dir}"/>
+      <classpath path="${api.output.classes14.dir}"/>
+      <classpath path="${api.output.classes.dir}"/>
+      <classpath path="${integration.output.classes.dir}"/>
     </javac>
   </target>
   <target name="jboss42-compile-ejb3-classes" depends="jboss42-init,core-compile,jboss42-check-ejb3-classes" if="jboss42.ejb3.available">
@@ -66,8 +68,10 @@
       <include name="org/jboss/ws/integration/jboss42/ServiceEndpointGeneratorEJB3.java"/>
       <include name="org/jboss/ws/integration/jboss42/ServiceEndpointInvokerEJB3.java"/>
       <classpath refid="jboss42.integration.classpath"/>
-      <classpath path="${core.output.classes14.dir}"/>
       <classpath path="${core.output.classes.dir}"/>
+      <classpath path="${api.output.classes14.dir}"/>
+      <classpath path="${api.output.classes.dir}"/>
+      <classpath path="${integration.output.classes.dir}"/>
     </javac>
   </target>
   <target name="jboss42-check-ejb3-classes" depends="jboss42-init" unless="jboss42.ejb3.available">

Modified: trunk/integration-jboss50/build.xml
===================================================================
--- trunk/integration-jboss50/build.xml	2007-04-23 06:06:16 UTC (rev 2896)
+++ trunk/integration-jboss50/build.xml	2007-04-23 06:12:12 UTC (rev 2897)
@@ -50,8 +50,10 @@
       deprecation="${javac.deprecation}" failonerror="${javac.fail.onerror}">
       <include name="org/jboss/ws/integration/jboss50/**"/>
       <classpath refid="jboss50.integration.classpath"/>
-      <classpath path="${core.output.classes14.dir}"/>
       <classpath path="${core.output.classes.dir}"/>
+      <classpath path="${api.output.classes14.dir}"/>
+      <classpath path="${api.output.classes.dir}"/>
+      <classpath path="${integration.output.classes.dir}"/>
     </javac>
   </target>
   
@@ -117,9 +119,11 @@
       <fileset dir="${jboss50.output.lib.dir}">
         <include name="jbossws-jboss50-integration.jar"/>
       </fileset>
+      <fileset dir="${api.output.lib.dir}">
+        <include name="jboss-jaxws.jar"/>
+      </fileset>
       <fileset dir="${core.output.lib.dir}">
         <include name="jbossws-core.jar"/>
-        <include name="jboss-jaxws.jar"/>
       </fileset>
       <fileset dir="${thirdparty.dir}">
         <include name="wsdl4j.jar"/>
@@ -145,13 +149,15 @@
     <ant antfile="../build/ant-import/build-deploy.xml" target="deploy-jboss50" inheritall="true"/>
     <!-- The JBossAS testsuite references jbossws from thirdparty -->
     <copy todir="${jboss50.home}/../../../thirdparty/jboss/jbossws/lib" overwrite="true">
-      <fileset dir="${core.output.lib.dir}">
-        <include name="jbossws-client.jar"/>
-        <include name="jbossws-core.jar"/>
+      <fileset dir="${api.output.lib.dir}">
         <include name="jboss-jaxrpc.jar"/>
         <include name="jboss-jaxws.jar"/>
         <include name="jboss-saaj.jar"/>
       </fileset>
+      <fileset dir="${core.output.lib.dir}">
+        <include name="jbossws-client.jar"/>
+        <include name="jbossws-core.jar"/>
+      </fileset>
       <fileset dir="${jboss50.output.lib.dir}">
         <include name="jbossws-jboss50-integration.jar"/>
       </fileset>

Modified: trunk/integration-tomcat/build.xml
===================================================================
--- trunk/integration-tomcat/build.xml	2007-04-23 06:06:16 UTC (rev 2896)
+++ trunk/integration-tomcat/build.xml	2007-04-23 06:12:12 UTC (rev 2897)
@@ -51,8 +51,10 @@
       deprecation="${javac.deprecation}" failonerror="${javac.fail.onerror}">
       <include name="org/jboss/ws/integration/tomcat/**"/>
       <classpath refid="tomcat.integration.classpath"/>
-      <classpath path="${core.output.classes14.dir}"/>
       <classpath path="${core.output.classes.dir}"/>
+      <classpath path="${api.output.classes14.dir}"/>
+      <classpath path="${api.output.classes.dir}"/>
+      <classpath path="${integration.output.classes.dir}"/>
     </javac>
   </target>
   

Added: trunk/jbossws-api/.classpath
===================================================================
--- trunk/jbossws-api/.classpath	                        (rev 0)
+++ trunk/jbossws-api/.classpath	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src/main/java"/>
+	<classpathentry kind="src" path="src/test/java"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3.8.1"/>
+	<classpathentry kind="lib" path="/build/thirdparty/jboss-common-core.jar"/>
+	<classpathentry kind="lib" path="/build/thirdparty/jboss-logging-log4j.jar"/>
+	<classpathentry kind="lib" path="/build/thirdparty/jboss-logging-spi.jar"/>
+	<classpathentry kind="output" path="output-eclipse"/>
+</classpath>

Added: trunk/jbossws-api/.project
===================================================================
--- trunk/jbossws-api/.project	                        (rev 0)
+++ trunk/jbossws-api/.project	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>jbossws-api</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Added: trunk/jbossws-api/build.xml
===================================================================
--- trunk/jbossws-api/build.xml	                        (rev 0)
+++ trunk/jbossws-api/build.xml	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ====================================================================== -->
+<!--                                                                        -->
+<!--  JBoss, the OpenSource J2EE webOS                                      -->
+<!--                                                                        -->
+<!--  Distributable under LGPL license.                                     -->
+<!--  See terms of license at http://www.gnu.org.                           -->
+<!--                                                                        -->
+<!-- ====================================================================== -->
+
+<!-- $Id$ -->
+
+<project default="main" basedir="../jbossws-api" name="WebService API">
+  
+  <import file="${basedir}/../build/ant-import/build-thirdparty.xml"/>
+  <import file="${basedir}/../build/ant-import/build-setup.xml"/>
+  
+  <property name="api.src.dir" value="${api.dir}/src"/>
+  <property name="api.java.dir" value="${api.src.dir}/java"/>
+  <property name="api.resources.dir" value="${api.src.dir}/resources"/>
+  <property name="api.output.dir" value="${api.dir}/output"/>
+  <property name="api.output.apidocs.dir" value="${api.output.dir}/apidocs"/>
+  <property name="api.output.classes.dir" value="${api.output.dir}/classes"/>
+  <property name="api.output.classes14.dir" value="${api.output.dir}/classes14"/>
+  <property name="api.output.lib.dir" value="${api.output.dir}/lib"/>
+  
+  <target name="api-init" depends="prepare, thirdparty">
+  </target>
+  
+  <!-- ================================================================== -->
+  <!-- Compile                                                            -->
+  <!-- ================================================================== -->
+  
+  <!--
+  | Compile everything.
+  |
+  | This target should depend on other compile-* targets for each
+  | different type of compile that needs to be performed, short of
+  | documentation compiles.
+  -->
+  
+  <target name="api-compile" depends="api-init,api-compile-classes,api-compile-etc" description="Compile all source files."/>
+  
+  <!-- Compile java sources -->
+  <target name="api-compile-classes" depends="api-init">
+  
+    <!-- Compile interfaces with jdk1.4 -->
+    <mkdir dir="${api.output.classes14.dir}"/>
+    <javac srcdir="${api.java.dir}" destdir="${api.output.classes14.dir}" encoding="utf-8" debug="${javac.debug}" verbose="${javac.verbose}" deprecation="${javac.deprecation}"
+      failonerror="${javac.fail.onerror}" source="1.4" target="1.4">
+      <include name="javax/xml/rpc/**"/>
+      <include name="javax/xml/soap/**"/>
+      <classpath refid="core.classpath"/>
+    </javac>
+    
+    <!-- Compile api classes with jdk1.5 -->
+    <mkdir dir="${api.output.classes.dir}"/>
+    <javac srcdir="${api.java.dir}" sourcepath="" destdir="${api.output.classes.dir}" encoding="utf-8" debug="${javac.debug}" verbose="${javac.verbose}"
+      deprecation="${javac.deprecation}" failonerror="${javac.fail.onerror}" source="1.5" target="1.5">
+      <include name="javax/annotation/**"/>
+      <include name="javax/xml/ws/**"/>
+      <include name="javax/jws/**"/>
+      <include name="org/jboss/annotation/**"/>
+      <include name="org/jboss/ws/**"/>
+      <classpath path="${api.output.classes14.dir}"/>
+      <classpath refid="core.classpath"/>
+    </javac>
+  </target>
+  
+  
+  <!-- Compile etc files (manifests and such) -->
+  <target name="api-compile-etc" depends="api-init">
+    <mkdir dir="${build.etc.dir}"/>
+    <copy todir="${build.etc.dir}" filtering="yes" overwrite="yes">
+      <fileset dir="${build.dir}/etc"/>
+      <filterset>
+        <filter token="java.vm.version" value="${java.vm.version}"/>
+        <filter token="java.vm.vendor" value="${java.vm.vendor}"/>
+        <filter token="build.id" value="${build.id}"/>
+        <filter token="implementation.version" value="jbossws-${version.id}"/>
+        <filtersfile file="${build.dir}/version.properties"/>
+      </filterset>
+    </copy>
+  </target>
+  
+  <!-- ================================================================== -->
+  <!-- Archives                                                           -->
+  <!-- ================================================================== -->
+  
+  <!--
+  | Build all jar files.
+  -->
+  <target name="api-jars" depends="api-compile,api-module-jars" description="Builds all jar files.">
+  </target>
+  
+  <!--
+  |  Build all jar files.
+  -->
+  <target name="api-module-jars">
+    
+    <!-- Build jboss-jaxrpc.jar -->
+    <mkdir dir="${api.output.lib.dir}"/>
+    <jar jarfile="${api.output.lib.dir}/jboss-jaxrpc.jar" manifest="${build.etc.dir}/default.mf">
+      <fileset dir="${api.output.classes14.dir}">
+        <include name="javax/xml/rpc/**"/>
+      </fileset>
+    </jar>
+    
+    <!-- Build jboss-saaj.jar -->
+    <mkdir dir="${api.output.lib.dir}"/>
+    <jar jarfile="${api.output.lib.dir}/jboss-saaj.jar" manifest="${build.etc.dir}/default.mf">
+      <fileset dir="${api.output.classes14.dir}">
+        <include name="javax/xml/soap/**"/>
+      </fileset>
+      <metainf dir="${api.resources.dir}/jboss-saaj.jar/META-INF"/>
+    </jar>
+    
+    <!-- Build jboss-jaxws.jar -->
+    <mkdir dir="${api.output.lib.dir}"/>
+    <jar jarfile="${api.output.lib.dir}/jboss-jaxws.jar" manifest="${build.etc.dir}/default.mf">
+      <fileset dir="${api.output.classes.dir}">
+        <include name="javax/annotation/**"/>
+        <include name="javax/jws/**"/>
+        <include name="javax/xml/ws/**"/>
+      </fileset>
+      <metainf dir="${api.resources.dir}/jboss-jaxws.jar/META-INF"/>
+    </jar>
+    
+    <!-- Build jbossws-api-src.zip -->
+    <zip zipfile="${api.output.lib.dir}/jbossws-api-src.zip" >
+      <fileset dir="${api.java.dir}"/>
+    </zip>
+    
+  </target>
+  
+  <target name="clean" depends="prepare" description="Cleans up most generated files.">
+    <delete dir="${api.output.dir}"/>
+  </target>
+  
+  <target name="main" description="Executes the default target (most)." depends="most"/>
+  
+  <target name="most" description="Builds almost everything." depends="api-jars"/>
+  
+  <target name="all" description="Create a distribution zip file" depends="main">
+  </target>
+  
+</project>


Property changes on: trunk/jbossws-api/build.xml
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/annotation/Resource.java
===================================================================
--- trunk/jbossws-api/src/java/javax/annotation/Resource.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/annotation/Resource.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,67 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * The Resource annotation is used to express a dependency on an external
+ * resource in the bean’s environment. The name property refers to the name by
+ * which the resource is to be known in the environment; the type is the
+ * resource manager connection factory type. The authenticationType member
+ * specifies whether the container or bean is to perform authentication. The
+ * shareable member refers to the sharability of resource manager connections.
+ * 
+ * @author <a href="mailto:bill at jboss.org">Bill Burke</a>
+ * @version $Revision$
+ */
+ at Target({ElementType.METHOD, ElementType.TYPE, ElementType.FIELD, ElementType.PARAMETER}) @Retention(RetentionPolicy.RUNTIME)
+   public @interface Resource
+{
+   /**
+    * Enums for whether the container or bean is to perform authentication.
+    *
+    * @author <a href="mailto:bill at jboss.org">Bill Burke</a>
+    * @version $Revision$
+    */
+   public enum AuthenticationType
+   {
+      CONTAINER,
+      APPLICATION
+   }
+
+   String name() default "";
+
+   Class type() default Object.class;
+
+   AuthenticationType authenticationType() default AuthenticationType.CONTAINER;
+
+   boolean shareable() default true;
+
+   String description() default "";
+
+   String mappedName() default "";
+
+}


Property changes on: trunk/jbossws-api/src/java/javax/annotation/Resource.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/annotation/Resources.java
===================================================================
--- trunk/jbossws-api/src/java/javax/annotation/Resources.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/annotation/Resources.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,39 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Specify a collection of Resources on a bean class.
+ *
+ * @author <a href="mailto:bill at jboss.org">Bill Burke</a>
+ * @version $Revision$
+ */
+ at Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME)
+public @interface Resources
+{
+   Resource[] value();
+}


Property changes on: trunk/jbossws-api/src/java/javax/annotation/Resources.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/jws/HandlerChain.java
===================================================================
--- trunk/jbossws-api/src/java/javax/jws/HandlerChain.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/jws/HandlerChain.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,56 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.jws;
+
+// $Id$
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Associates the Web Service with an externally defined handler chain.  This annotation is typically used in scenarios
+ * where embedding the handler configuration directly in the Java source is not appropriate; for example, where the
+ * handler configuration needs to be shared across multiple Web Services, or where the handler chain consists of
+ * handlers for multiple transports.
+ *
+ * @author thomas.diesler at jboss.org
+ * @since 26-Apr-2005
+ */
+ at Retention(value = RetentionPolicy.RUNTIME)
+ at Target(value = { ElementType.TYPE, ElementType.METHOD, ElementType.FIELD })
+public @interface HandlerChain
+{
+
+   /**
+    * Location of the handler chain file.  The location is a URL, which may be relative or absolute.  Relative URLs
+    * are relative to the location of the service implementation bean at the time of processing.
+    */
+   String file();
+
+   /**
+    * Name of the handler chain in the configuration file
+    * @deprecated
+    */
+   String name() default "";
+};


Property changes on: trunk/jbossws-api/src/java/javax/jws/HandlerChain.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/jws/Oneway.java
===================================================================
--- trunk/jbossws-api/src/java/javax/jws/Oneway.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/jws/Oneway.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,44 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.jws;
+
+// $Id$
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Indicates that the given @WebMethod has only an input message and no output.  Typically, a oneway method returns
+ * the thread of control to the calling application prior to executing the actual business method.  A 181 processor
+ * should report an error if an operation marked @Oneway has a return value or Holder parameters, or declares any
+ * checked exceptions.
+ *
+ * @author thomas.diesler at jboss.org
+ * @since 26-Apr-2005
+ */
+ at Retention(value = RetentionPolicy.RUNTIME)
+ at Target(value = { ElementType.METHOD })
+public @interface Oneway
+{
+}


Property changes on: trunk/jbossws-api/src/java/javax/jws/Oneway.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/jws/WebMethod.java
===================================================================
--- trunk/jbossws-api/src/java/javax/jws/WebMethod.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/jws/WebMethod.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,59 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.jws;
+
+// $Id$
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Specifies that the given method is exposed as a Web Service operation, making it part of the Web Service's public
+ * contract.  A WebMethod annotation is required for each method that is published by the Web Service.  The associated
+ * method must be public and its parameters return value, and exceptions must follow the rules defined in JAX-RPC 1.1,
+ * section 5.  The method is not required to throw java.rmi.RemoteException.
+ *
+ * @author thomas.diesler at jboss.org
+ * @since 26-Apr-2005
+ */
+ at Retention(value = RetentionPolicy.RUNTIME)
+ at Target( { ElementType.METHOD })
+public @interface WebMethod
+{
+   /**
+    * Indicate that a method should not be exposed on the Web Service
+    */
+   boolean exclude() default false;
+
+   /**
+    * Name of the wsdl:operation matching this method.  By default the WSDL operation name will be the same
+    * as the Java method name.
+    */
+   String operationName() default "";
+
+   /**
+    *  The action for this operation.  For SOAP bindings, this determines the value of the SOAPAction header.
+    */
+   String action() default "";
+};


Property changes on: trunk/jbossws-api/src/java/javax/jws/WebMethod.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/jws/WebParam.java
===================================================================
--- trunk/jbossws-api/src/java/javax/jws/WebParam.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/jws/WebParam.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,91 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.jws;
+
+// $Id$
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Customizes the mapping of an individual parameter to a Web Service message part and XML element.
+ *
+ * @author thomas.diesler at jboss.org
+ * @since 26-Apr-2005
+ */
+ at Retention(value = RetentionPolicy.RUNTIME)
+ at Target(value = { ElementType.PARAMETER })
+public @interface WebParam
+{
+   /**
+    * The direction in which the parameter flows
+    */
+   public enum Mode
+   {
+      IN, OUT, INOUT
+   };
+
+   /**
+    * Name of the parameter.
+    * 
+    * If the operation is rpc style and @WebParam.partName has not been specified, this is name of the wsdl:part representing the parameter.
+    * If the operation is document style or the parameter maps to a header, this is the local name of the XML element representing the parameter.
+    * 
+    * A name MUST be specified if the operation is document style, the parameter style is BARE, and the mode is OUT or INOUT.
+    * 
+    * Specification Default:
+    *   If the operation is document style and the parameter style is BARE, @WebMethod.operationName.
+    *   Otherwise, argN, where N represents the index of the parameter in the method signature (starting at arg0). 
+    */
+   String name() default "";
+
+   /**
+    * The name of the wsdl:part representing this return value.
+    * This is only used if the operation is rpc style, or if the operation is document style and the parameter style is BARE. 
+    */
+   String partName() default "";
+
+   /**
+    * The XML namespace for the parameter.
+    * 
+    * Only used if the operation is document style or the paramater maps to a header. If the target namespace is set to “”, this represents the empty namespace.
+    * 
+    * Specification Default:
+    *   If the operation is document style, the parameter style is WRAPPED, and the parameter does not map to a header, the empty namespace.
+    *   Otherwise, the targetNamespace for the Web Service. 
+    */
+   String targetNamespace() default "";
+
+   /**
+    * The direction in which the parameter is flowing.  One of IN, OUT, or INOUT.  The OUT and INOUT modes may only be
+    * specified for parameter types that conform to the JAX-RPC definition of Holder types.  See JAX-RPC 1.1, section
+    * 4.3.5. OUT and INOUT modes are only supported for RPC bindings or for parameters that map to headers.
+    */
+   Mode mode() default Mode.IN;
+
+   /**
+    * If true, the parameter is pulled from a message header rather then the message body.
+    */
+   boolean header() default false;
+};


Property changes on: trunk/jbossws-api/src/java/javax/jws/WebParam.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/jws/WebResult.java
===================================================================
--- trunk/jbossws-api/src/java/javax/jws/WebResult.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/jws/WebResult.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,72 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.jws;
+
+// $Id$
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Customizes the mapping of the return value to a WSDL part and XML element.
+ *
+ * @author thomas.diesler at jboss.org
+ * @since 26-Apr-2005
+ */
+ at Retention(value = RetentionPolicy.RUNTIME)
+ at Target(value = { ElementType.METHOD })
+public @interface WebResult
+{
+   /**
+    * If true, the result is pulled from a message header rather then the message body.
+    */
+   boolean header() default false;
+
+   /**
+    * If the operation is rpc style and @WebResult.partName has not been specified, this is the name of the wsdl:part representing the return value.
+    * If the operation is document style or the return value maps to a header, this is the local name of the XML element representing the return value.
+    * 
+    * Specification Default:
+    *   If the operation is document style and the parameter style is BARE, @WebParam.operationName+”Response”.
+    *   Otherwise, “return.” 
+    */
+   String name() default "";
+
+   /**
+    * The name of the wsdl:part representing this return value.
+    * This is only used if the operation is rpc style, or if the operation is document style and the parameter style is BARE. 
+    */
+   String partName() default "";
+
+   /**
+    * The XML namespace for the return value.
+    * 
+    * Only used if the operation is document style or the return value maps to a header. If the target namespace is set to “”, this represents the empty namespace.
+    * 
+    * Specification Default:
+    *   If the operation is document style, the parameter style is WRAPPED, and the return value does not map to a header, the empty namespace.
+    *   Otherwise, the targetNamespace for the Web Service.
+    */
+   String targetNamespace() default "";
+};


Property changes on: trunk/jbossws-api/src/java/javax/jws/WebResult.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/jws/WebService.java
===================================================================
--- trunk/jbossws-api/src/java/javax/jws/WebService.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/jws/WebService.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,112 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.jws;
+
+// $Id$
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Marks a Java class as implementing a Web Service, or a Java interface as defining a Web Service interface.
+ *
+ * @author thomas.diesler at jboss.org
+ * @since 26-Apr-2005
+ */
+ at Retention(value = RetentionPolicy.RUNTIME)
+ at Target(value = { ElementType.TYPE })
+public @interface WebService
+{
+
+   /**
+    * The name of the Web Service.
+    * Used as the name of the wsdl:portType when mapped to WSDL 1.1.
+    * Specification Default:
+    *   The simple name of the Java class or interface. 
+    */
+   String name() default "";
+
+   /**
+    * The port name of the Web Service.
+    * Used as the name of the wsdl:port when mapped to WSDL 1.1.
+    * This member-value is not allowed on endpoint interfaces.
+    * Specification Default:
+    *   @WebService.name + ”Port”. 
+    */
+   String portName() default "";
+
+   /**
+    * If the @WebService.targetNamespace annotation is on a service endpoint interface, the targetNamespace is used for the 
+    * namespace for the wsdl:portType (and associated XML elements).
+    * 
+    * If the @WebService.targetNamespace annotation is on a service implementation bean that does NOT reference a service 
+    * endpoint interface (through the endpointInterface attribute), the targetNamespace is used for both the wsdl:portType 
+    * and the wsdl:service (and associated XML elements).
+    * 
+    * If the @WebService.targetNamespace annotation is on a service implementation bean that does reference a service 
+    * endpoint interface (through the endpointInterface attribute), the targetNamespace is used for only the wsdl:service 
+    * (and associated XML elements). 
+    */
+   String targetNamespace() default "";
+
+   /**
+    * The service name of the Web Service.
+    * 
+    * Used as the name of the wsdl:service when mapped to WSDL 1.1.
+    * 
+    * This member-value is not allowed on endpoint interfaces.
+    * 
+    * Specification Default:
+    *   The simple name of the Java class + “Service". 
+    */
+   String serviceName() default "";
+
+   /**
+    * The location of a pre-defined WSDL describing the service.
+    * 
+    * The wsdlLocation is a URL (relative or absolute) that refers to a pre-existing WSDL file. 
+    * The presence of a wsdlLocation value indicates that the service implementation bean is implementing a 
+    * pre-defined WSDL contract. The JSR-181 tool MUST provide feedback if the service implementation bean is 
+    * inconsistent with the portType and bindings declared in this WSDL. Note that a single WSDL file might 
+    * contain multiple portTypes and multiple bindings. The annotations on the service implementation bean 
+    * determine the specific portType and bindings that correspond to the Web Service. 
+    */
+   String wsdlLocation() default "";
+
+   /**
+    * The complete name of the service endpoint interface defining the service’s abstract Web Service contract.
+    * 
+    * This annotation allows the developer to separate the interface contract from the implementation. 
+    * If this annotation is present, the service endpoint interface is used to determine the abstract 
+    * WSDL contract (portType and bindings). The service endpoint interface MAY include JSR-181 annotations 
+    * to customize the mapping from Java to WSDL.
+    * 
+    * The service implementation bean MAY implement the service endpoint interface, but is not REQUIRED to do so.
+    * If this member-value is not present, the Web Service contract is generated from annotations on the service 
+    * implementation bean. If a service endpoint interface is required by the target environment, it will be generated into an implementation-defined package with an implementation- defined name
+    * 
+    * This member-value is not allowed on endpoint interfaces. 
+    */
+   String endpointInterface() default "";
+};


Property changes on: trunk/jbossws-api/src/java/javax/jws/WebService.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/jws/soap/InitParam.java
===================================================================
--- trunk/jbossws-api/src/java/javax/jws/soap/InitParam.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/jws/soap/InitParam.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,43 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.jws.soap;
+
+// $Id$
+
+/** An initialization parameter
+ *
+ * @author thomas.diesler at jboss.org
+ * @since 26-Apr-2005
+ */
+public @interface InitParam
+{
+
+   /**
+    * Name of the initialization parameter
+    */
+   String name();
+
+   /**
+    * Value of the initialization parameter
+    */
+   String value();
+};


Property changes on: trunk/jbossws-api/src/java/javax/jws/soap/InitParam.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/jws/soap/SOAPBinding.java
===================================================================
--- trunk/jbossws-api/src/java/javax/jws/soap/SOAPBinding.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/jws/soap/SOAPBinding.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,81 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.jws.soap;
+
+// $Id$
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Specifies the mapping of the Web Service onto the SOAP message protocol.
+ *
+ * @author thomas.diesler at jboss.org
+ * @since 26-Apr-2005
+ */
+ at Retention(value = RetentionPolicy.RUNTIME)
+ at Target(value = { ElementType.TYPE, ElementType.METHOD })
+public @interface SOAPBinding
+{
+
+   /**
+    * The SOAP binding style
+    */
+   public enum Style
+   {
+      DOCUMENT, RPC
+   };
+
+   /**
+    * The SOAP binding use
+    */
+   public enum Use
+   {
+      LITERAL, ENCODED
+   };
+
+   /**
+    * The style of mapping parameters onto SOAP messages
+    */
+   public enum ParameterStyle
+   {
+      BARE, WRAPPED
+   }
+
+   /**
+    * Defines the encoding style for messages send to and from the Web Service.
+    */
+   Style style() default Style.DOCUMENT;
+
+   /**
+    * Defines the formatting style for messages sent to and from the Web Service.
+    */
+   Use use() default Use.LITERAL;
+
+   /**
+    * Determines whether method parameters represent the entire message body, or whether the parameters are elements
+    * wrapped inside a top-level element named after the operation
+    */
+   ParameterStyle parameterStyle() default ParameterStyle.WRAPPED;
+}


Property changes on: trunk/jbossws-api/src/java/javax/jws/soap/SOAPBinding.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/jws/soap/SOAPMessageHandler.java
===================================================================
--- trunk/jbossws-api/src/java/javax/jws/soap/SOAPMessageHandler.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/jws/soap/SOAPMessageHandler.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,62 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.jws.soap;
+
+// $Id$
+
+/**
+ * A single SOAP message handler
+ *
+ * @author thomas.diesler at jboss.org
+ * @since 26-Apr-2005
+ * @deprecated
+ */
+public @interface SOAPMessageHandler
+{
+
+   /**
+    * Name of the handler.  Defaults to the name of the handler class.
+    */
+   String name() default "";
+
+   /**
+    * Name of the handler class.
+    */
+   String className();
+
+   /**
+    * Array of name/value pairs that should be passed to the handler during initialization.
+    */
+   InitParam[] initParams() default {};
+
+   /**
+    * List of SOAP roles/actors implemented by the handler
+    */
+   String[] roles() default {};
+
+   /**
+    * List of SOAP headers processed by the handler.  Each element in this array contains a QName which defines the
+    * header element processed by the handler.  The QNames are specified using the string notation described in the
+    * documentation for javax.xml.namespace.QName.valueOf(String qNameAsString)
+    */
+   String[] headers() default {};
+};


Property changes on: trunk/jbossws-api/src/java/javax/jws/soap/SOAPMessageHandler.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/jws/soap/SOAPMessageHandlers.java
===================================================================
--- trunk/jbossws-api/src/java/javax/jws/soap/SOAPMessageHandlers.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/jws/soap/SOAPMessageHandlers.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,47 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.jws.soap;
+
+// $Id$
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * This annotation was originally used to create a JAX-RPC handler chain. In this version,
+ * the annotation is ALWAYS ignored.
+ * 
+ * This annotation will be permanently removed in a future version of JSR-181.
+
+ * @author thomas.diesler at jboss.org
+ * @since 26-Apr-2005
+ * @deprecated
+ */
+ at Retention(value = RetentionPolicy.RUNTIME)
+ at Target(value = { ElementType.TYPE })
+public @interface SOAPMessageHandlers
+{
+
+   SOAPMessageHandler[] value();
+};


Property changes on: trunk/jbossws-api/src/java/javax/jws/soap/SOAPMessageHandlers.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/Call.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/Call.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/Call.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,260 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc;
+
+import java.rmi.RemoteException;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+/** The javax.xml.rpc.Call interface provides support for the dynamic invocation of a service endpoint.
+ * The javax.xml.rpc.Service interface acts as a factory for the creation of Call instances.
+ *
+ * Once a Call instance is created, various setter and getter methods may be used to configure this Call instance.
+ *
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface Call
+{
+   /** Standard property: User name for authentication Type: java.lang.String */
+   public static final String USERNAME_PROPERTY = "javax.xml.rpc.security.auth.username";
+   /** Standard property: Password for authentication Type: java.lang.String */
+   public static final String PASSWORD_PROPERTY = "javax.xml.rpc.security.auth.password";
+   /** Standard property for operation style. */
+   public static final String OPERATION_STYLE_PROPERTY = "javax.xml.rpc.soap.operation.style";
+   /** Standard property for SOAPAction. */
+   public static final String SOAPACTION_USE_PROPERTY = "javax.xml.rpc.soap.http.soapaction.use";
+   /** Standard property for SOAPAction. */
+   public static final String SOAPACTION_URI_PROPERTY = "javax.xml.rpc.soap.http.soapaction.uri";
+   /** Standard property for encoding Style: Encoding style specified as a namespace URI. */
+   public static final String ENCODINGSTYLE_URI_PROPERTY = "javax.xml.rpc.encodingstyle.namespace.uri";
+   /** Standard property: This boolean property is used by a service client to indicate whether or not it wants to participate in a session with a service endpoint. */
+   public static final String SESSION_MAINTAIN_PROPERTY = "javax.xml.rpc.session.maintain";
+
+   /** Indicates whether addParameter and setReturnType methods are to be invoked to specify the parameter and return
+    * type specification for a specific operation.
+    * @param operationName Qualified name of the operation
+    * @return Returns true if the Call implementation class requires addParameter and setReturnType to be invoked in the client code for the specified operation. This method returns false otherwise.
+    * @throws IllegalArgumentException If invalid operation name is specified
+    */
+   public boolean isParameterAndReturnSpecRequired(QName operationName);
+
+   /** Adds a parameter type and mode for a specific operation.
+    * Note that the client code may not call any addParameter and setReturnType methods before calling the invoke method.
+    * In this case, the Call implementation class determines the parameter types by using reflection on parameters,
+    * using the WSDL description and configured type mapping registry.
+    *
+    * @param paramName Name of the parameter
+    * @param xmlType XML type of the parameter
+    * @param parameterMode Mode of the parameter-whether ParameterMode.IN, ParameterMode.OUT, or ParameterMode.INOUT
+    * @throws JAXRPCException This exception may be thrown if the method isParameterAndReturnSpecRequired returns false for this operation.
+    * @throws IllegalArgumentException If any illegal parameter name or XML type is specified
+    */
+   public void addParameter(String paramName, QName xmlType, ParameterMode parameterMode);
+
+   /** Adds a parameter type and mode for a specific operation.
+    * This method is used to specify the Java type for either OUT or INOUT parameters.
+    *
+    * @param paramName Name of the parameter
+    * @param xmlType XML type of the parameter
+    * @param javaType  Java class of the parameter
+    * @param parameterMode Mode of the parameter-whether ParameterMode.IN, ParameterMode.OUT, or ParameterMode.INOUT
+    * @throws JAXRPCException
+    * <ul>
+    *    <li>This exception may be thrown if the method isParameterAndReturnSpecRequired returns false for this operation.
+    *    <li>If specified XML type and Java type mapping is not valid. For example, TypeMappingRegistry has no serializers for this mapping.
+    * </ul>
+    * @throws IllegalArgumentException If any illegal parameter name or XML type is specified
+    * @throws UnsupportedOperationException If this method is not supported
+    */
+   public void addParameter(String paramName, QName xmlType, Class javaType, ParameterMode parameterMode);
+
+   /** Gets the XML type of a parameter by name.
+    *
+    * @param paramName - Name of the parameter
+    * @return Returns XML type for the specified parameter
+    */
+   public QName getParameterTypeByName(String paramName);
+
+   /** Sets the return type for a specific operation. Invoking setReturnType(null) removes the return type for this Call object.
+    *
+    * @param xmlType XML data type of the return value
+    * @throws JAXRPCException This exception may be thrown when the method isParameterAndReturnSpecRequired returns false.
+    * @throws IllegalArgumentException If an illegal XML type is specified
+    */
+   public void setReturnType(QName xmlType);
+
+   /** Sets the return type for a specific operation.
+    *
+    * @param xmlType XML data type of the return value
+    * @param javaType Java Class of the return value
+    * @throws JAXRPCException
+    * <ul>
+    *    <li>This exception may be thrown if this method is invoked when the method isParameterAndReturnSpecRequired returns false.
+    *    <li>If XML type and Java type cannot be mapped using the standard type mapping or TypeMapping registry
+    * </ul>
+    * @throws UnsupportedOperationException If this method is not supported
+    * @throws IllegalArgumentException If an illegal XML type is specified
+    */
+   public void setReturnType(QName xmlType, Class javaType);
+
+   /** Gets the return type for a specific operation
+    *
+    * @return Returns the XML type for the return value
+    */
+   public QName getReturnType();
+
+   /** Removes all specified parameters from this Call instance. Note that this method removes only the parameters and
+    * not the return type. The setReturnType(null) is used to remove the return type.
+    * @throws JAXRPCException This exception may be thrown If this method is called when the method isParameterAndReturnSpecRequired returns false for this Call's operation.
+    */
+   public void removeAllParameters();
+
+   /** Gets the name of the operation to be invoked using this Call instance.
+    * @return Qualified name of the operation
+    */
+   public QName getOperationName();
+
+   /** Sets the name of the operation to be invoked using this Call instance.
+    *
+    * @param operationName QName of the operation to be invoked using the Call instance
+    */
+   public void setOperationName(QName operationName);
+
+   /** Gets the qualified name of the port type.
+    * @return Qualified name of the port type
+    */
+   public QName getPortTypeName();
+
+   /** Sets the qualified name of the port type.
+    *
+    * @param portType - Qualified name of the port type
+    */
+   public void setPortTypeName(QName portType);
+
+   /** Sets the address of the target service endpoint. This address must correspond to the transport
+    * specified in the binding for this Call instance.
+    *
+    * @param address Address of the target service endpoint; specified as an URI
+    */
+   public void setTargetEndpointAddress(String address);
+
+   /** Gets the address of a target service endpoint.
+    * @return Address of the target service endpoint as an URI
+    */
+   public String getTargetEndpointAddress();
+
+   /** Sets the value for a named property.
+    * JAX-RPC specification specifies a standard set of properties that may be passed to the Call.setProperty method.
+    *
+    * @param name Name of the property
+    * @param value Value of the property
+    * @throws JAXRPCException
+    * <ul>
+    *    <li> If an optional standard property name is specified, however this Call implementation class does not support the configuration of this property.
+    *    <li> If an invalid (or unsupported) property name is specified or if a value of mismatched property type is passed.
+    *    <li> If there is any error in the configuration of a valid property.
+    * </ul>
+    */
+   public void setProperty(String name, Object value);
+
+   /** Gets the value of a named property.
+    *
+    * @param name Name of the property
+    * @return Value of the named property
+    * @throws JAXRPCException if an invalid or unsupported property name is passed.
+    */
+   public Object getProperty(String name);
+
+   /** Removes a named property.
+    * @param name Name of the property
+    * @throws JAXRPCException if an invalid or unsupported property name is passed.
+    */
+   public void removeProperty(String name);
+
+   /** Gets the names of configurable properties supported by this Call object.
+    * @return Iterator for the property names
+    */
+   public Iterator getPropertyNames();
+
+   /** Invokes a specific operation using a synchronous request-response interaction mode.
+    *
+    * @param inputParams Object[]--Parameters for this invocation. This includes only the input params
+    * @return Returns the return value or null
+    * @throws RemoteException if there is any error in the remote method invocation
+    * @throws javax.xml.rpc.soap.SOAPFaultException Indicates a SOAP fault
+    * @throws JAXRPCException
+    * <ul>
+    *    <li>If there is an error in the configuration of the Call object
+    *    <li> If inputParams do not match the required parameter set (as specified through the addParameter invocations or in the corresponding WSDL)
+    *    <li> If parameters and return type are incorrectly specified
+    * </ul>
+    */
+   public Object invoke(Object[] inputParams) throws RemoteException;
+
+   /** Invokes a specific operation using a synchronous request-response interaction mode.
+    *
+    * @param operationName QName of the operation
+    * @param inputParams Object[]--Parameters for this invocation. This includes only the input params.
+    * @return Return value or null
+    * @throws RemoteException if there is any error in the remote method invocation.
+    * @throws javax.xml.rpc.soap.SOAPFaultException - Indicates a SOAP fault
+    * @throws JAXRPCException
+    * <ul>
+    *    <li> If there is an error in the configuration of the Call object
+    *    <li> If inputParams do not match the required parameter set (as specified through the addParameter invocations or in the corresponding WSDL)
+    *    <li> If parameters and return type are incorrectly specified
+    * </ul>
+    */
+   public Object invoke(QName operationName, Object[] inputParams) throws RemoteException;
+
+   /** Invokes a remote method using the one-way interaction mode.
+    * The client thread does not normally block waiting for the completion of the server processing for this
+    * remote method invocation. When the protocol in use is SOAP/HTTP, this method should block until an HTTP response
+    * code has been received or an error occurs. This method must not throw any remote exceptions.
+    * This method may throw a JAXRPCException during the processing of the one-way remote call.
+    *
+    * @param inputParams Object[]--Parameters for this invocation. This includes only the input params.
+    * @throws JAXRPCException if there is an error in the configuration of the Call object
+    * (example: a non-void return type has been incorrectly specified for the one-way call) or
+    * if there is any error during the invocation of the one-way remote call
+    */
+   public void invokeOneWay(Object[] inputParams);
+
+   /** Returns a Map of {name, value} for the output parameters of the last invoked operation.
+    *  The parameter names in the returned Map are of type java.lang.String.
+    *
+    * @return Map Output parameters for the last Call.invoke(). Empty Map is returned if there are no output parameters.
+    * @throws JAXRPCException If this method is invoked for a one-way operation or is invoked before any invoke method has been called.
+    */
+   public Map getOutputParams();
+
+   /** Returns a List values for the output parameters of the last invoked operation.
+    *
+    * @return java.util.List Values for the output parameters. An empty List is returned if there are no output values.
+    * @throws JAXRPCException If this method is invoked for a one-way operation or is invoked before any invoke method has been called.
+    */
+   public List getOutputValues();
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/Call.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/JAXRPCException.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/JAXRPCException.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/JAXRPCException.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,54 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc;
+
+
+/**
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class JAXRPCException extends RuntimeException
+{
+   public JAXRPCException()
+   {
+   }
+
+   public JAXRPCException(String message)
+   {
+      super(message);
+   }
+
+   public JAXRPCException(String message, Throwable cause)
+   {
+      super(message, cause);
+   }
+
+   public JAXRPCException(Throwable cause)
+   {
+      super(cause);
+   }
+
+   public Throwable getLinkedCause()
+   {
+      return super.getCause();
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/JAXRPCException.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/NamespaceConstants.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/NamespaceConstants.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/NamespaceConstants.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,40 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc;
+
+/** Constants used in JAX-RPC for namespace prefixes and URIs
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class NamespaceConstants
+{
+   public static final String NSPREFIX_SOAP_ENVELOPE = "soapenv";
+   public static final String NSPREFIX_SOAP_ENCODING = "soapenc";
+   public static final String NSPREFIX_SCHEMA_XSD = "xsd";
+   public static final String NSPREFIX_SCHEMA_XSI = "xsi";
+   public static final String NSURI_SOAP_ENVELOPE = "http://schemas.xmlsoap.org/soap/envelope/";
+   public static final String NSURI_SOAP_ENCODING = "http://schemas.xmlsoap.org/soap/encoding/";
+   public static final String NSURI_SOAP_NEXT_ACTOR = "http://schemas.xmlsoap.org/soap/actor/next";
+   public static final String NSURI_SCHEMA_XSD = "http://www.w3.org/2001/XMLSchema";
+   public static final String NSURI_SCHEMA_XSI = "http://www.w3.org/2001/XMLSchema-instance";
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/NamespaceConstants.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/ParameterMode.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/ParameterMode.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/ParameterMode.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,46 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc;
+
+/** A type-safe enumeration for parameter passing modes.
+ *  
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class ParameterMode
+{
+   private String mode;
+
+   public static final ParameterMode IN = new ParameterMode("IN");
+   public static final ParameterMode OUT = new ParameterMode("OUT");
+   public static final ParameterMode INOUT = new ParameterMode("INOUT");
+
+   private ParameterMode(String mode)
+   {
+      this.mode = mode;
+   }
+
+   public String toString()
+   {
+      return mode;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/ParameterMode.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/Service.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/Service.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/Service.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,152 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc;
+
+import java.net.URL;
+import java.rmi.Remote;
+import java.util.Iterator;
+
+import javax.xml.namespace.QName;
+import javax.xml.rpc.encoding.TypeMappingRegistry;
+import javax.xml.rpc.handler.HandlerRegistry;
+
+/** Service class acts as a factory for:
+ * <ul>
+ *    <li>Dynamic proxy for the target service endpoint.
+ *    <li>Instance of the type javax.xml.rpc.Call for the dynamic invocation of a remote operation on the target service endpoint.
+ *    <li>Instance of a generated stub class
+ * </ul>
+ *
+ * @author Scott.Stark at jboss.org
+ * @author Thomas.Diesler at jboss.org
+ * @version $Revision$
+ */
+public interface Service
+{
+   /**
+    * The getPort method returns either an instance of a generated stub implementation class or a dynamic proxy.
+    * A service client uses this dynamic proxy to invoke operations on the target service endpoint.
+    * The serviceEndpointInterface specifies the service endpoint interface that is supported by the created dynamic proxy or stub instance.
+    *
+    * @param portName Qualified name of the service endpoint in the WSDL service descr
+    * @param seiClass Service endpoint interface supported by the dynamic proxy or stub instance
+    * @return Stub instance or dynamic proxy that supports the specified service endpoint interface
+    * @throws ServiceException This exception is thrown in the following cases:
+    * <ul>
+    *    <li>If there is an error in creation of the dynamic proxy or stub instance
+    *    <li>If there is any missing WSDL metadata as required by this method
+    *    <li>Optionally, if an illegal serviceEndpointInterface or portName is specified 
+    * </ul>
+    */
+   public Remote getPort(QName portName, Class seiClass) throws ServiceException;
+
+   /**
+    * The getPort method returns either an instance of a generated stub implementation class or a dynamic proxy.
+    * The parameter serviceEndpointInterface specifies the service endpoint interface that is supported by the returned stub or proxy.
+    * In the implementation of this method, the JAX-RPC runtime system takes the responsibility of selecting a protocol binding (and a port)
+    * and configuring the stub accordingly. The returned Stub instance should not be reconfigured by the client.
+    */
+   public Remote getPort(Class seiClass) throws ServiceException;
+
+   /** Gets an array of preconfigured Call objects for invoking operations on the specified port.
+    * There is one Call object per operation that can be invoked on the specified port.
+    * Each Call object is pre-configured and does not need to be configured using the setter methods on Call interface.
+    *
+    * Each invocation of the getCalls method returns a new array of preconfigured Call objects
+    *
+    * This method requires the Service implementation class to have access to the WSDL related metadata.
+    *
+    * @param portName  Qualified name for the target service endpoint
+    * @return Call[] Array of pre-configured Call objects
+    * @throws ServiceException If this Service class does not have access to the required WSDL metadata or if an illegal portName is specified.
+    */
+   public Call[] getCalls(QName portName) throws ServiceException;
+
+   /** Creates a Call instance.
+    *
+    * @param portName Qualified name for the target service endpoint
+    * @return Call instance
+    * @throws ServiceException  If any error in the creation of the Call object
+    */
+   public Call createCall(QName portName) throws ServiceException;
+
+   /** Creates a Call instance.
+    *
+    * @param portName  Qualified name for the target service endpoint
+    * @param operationName Qualified name of the operation for which this Call object is to be created.
+    * @return  Call instance
+    * @throws ServiceException  If any error in the creation of the Call object
+    */
+   public Call createCall(QName portName, QName operationName) throws ServiceException;
+
+   /** Creates a Call instance.
+    *
+    * @param portName  Qualified name for the target service endpoint
+    * @param operationName   Name of the operation for which this Call object is to be created.
+    * @return  Call instance
+    * @throws ServiceException  If any error in the creation of the Call object
+    */
+   public Call createCall(QName portName, String operationName) throws ServiceException;
+
+   /**
+    * Creates a Call object not associated with specific operation or target service endpoint.
+    * This Call object needs to be configured using the setter methods on the Call interface.
+    *
+    * @return Call object
+    * @throws ServiceException   If any error in the creation of the Call object
+    */
+   public Call createCall() throws ServiceException;
+
+   /** Gets the name of this service.
+    * @return Qualified name of this service
+    */
+   public QName getServiceName();
+
+   /** Returns an Iterator for the list of QNames of service endpoints grouped by this service
+    *
+    * @return Returns java.util.Iterator with elements of type javax.xml.namespace.QName
+    * @throws ServiceException If this Service class does not have access to the required WSDL metadata
+    */
+   public Iterator getPorts() throws ServiceException;
+
+   /** Gets the location of the WSDL document for this Service.
+    *
+    * @return URL for the location of the WSDL document for this service
+    */
+   public URL getWSDLDocumentLocation();
+
+   /** Gets the TypeMappingRegistry for this Service object. The returned TypeMappingRegistry instance is pre-configured
+    * to support the standard type mapping between XML and Java types types as required by the JAX-RPC specification.
+    *
+    * @return The TypeMappingRegistry for this Service object.
+    * @throws java.lang.UnsupportedOperationException if the Service class does not support the configuration of TypeMappingRegistry.
+    */
+   public TypeMappingRegistry getTypeMappingRegistry();
+
+   /** Returns the configured HandlerRegistry instance for this Service instance.
+    *
+    * @return HandlerRegistry
+    * @throws java.lang.UnsupportedOperationException if the Service class does not support the configuration of a HandlerRegistry
+    */
+   public HandlerRegistry getHandlerRegistry();
+
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/Service.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/ServiceException.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/ServiceException.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/ServiceException.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,54 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc;
+
+
+/**
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class ServiceException extends Exception
+{
+   public ServiceException()
+   {
+   }
+
+   public ServiceException(String message)
+   {
+      super(message);
+   }
+
+   public ServiceException(String message, Throwable cause)
+   {
+      super(message, cause);
+   }
+
+   public ServiceException(Throwable cause)
+   {
+      super(cause);
+   }
+
+   public Throwable getLinkedCause()
+   {
+      return super.getCause();
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/ServiceException.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/ServiceFactory.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/ServiceFactory.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/ServiceFactory.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,193 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc;
+
+import java.net.URL;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.util.Properties;
+
+import javax.xml.namespace.QName;
+
+import org.jboss.logging.Logger;
+
+/** The javax.xml.rpc.ServiceFactory is an abstract class that provides a
+ * factory for the creation of instances of the type javax.xml.rpc.Service.
+ * This abstract class follows the abstract static factory design pattern.
+ * This enables a J2SE based client to create a Service instance in a portable
+ * manner without using the constructor of the Service implementation class.
+ * 
+ * The ServiceFactory implementation class is set using the
+ * javax.xml.rpc.ServiceFactory System property.
+ *
+ * @author Scott.Stark at jboss.org
+ * @author Thomas.Diesler at jboss.org
+ * @version 1.1
+ */
+public abstract class ServiceFactory
+{
+   // provide logging
+   private static Logger log = Logger.getLogger(ServiceFactory.class);
+
+   // The singlton
+   private static ServiceFactory factory;
+
+   /** A constant representing the property used to lookup the name of a ServiceFactory implementation class. */
+   public static final String SERVICEFACTORY_PROPERTY = "javax.xml.rpc.ServiceFactory";
+
+   private static final String DEFAULT_SERVICE_FACTORY = "org.jboss.ws.core.jaxrpc.client.ServiceFactoryImpl";
+   private static final String[] alternativeFactories = new String[] {};
+
+   protected ServiceFactory()
+   {
+   }
+
+   /** Gets an instance of the ServiceFactory
+    * Only one copy of a factory exists and is returned to the application each time this method is called.
+    *
+    * The implementation class to be used can be overridden by setting the javax.xml.rpc.ServiceFactory system property.
+    *
+    * @return The ServiceFactory singleton
+    * @throws ServiceException on failure to instantiate the ServiceFactory impl
+    */
+   public static ServiceFactory newInstance() throws ServiceException
+   {
+      // Create the factory singleton if needed
+      if (factory == null)
+      {
+         PrivilegedAction action = new PropertyAccessAction(SERVICEFACTORY_PROPERTY, DEFAULT_SERVICE_FACTORY);
+         String factoryName = (String)AccessController.doPrivileged(action);
+
+         ClassLoader loader = Thread.currentThread().getContextClassLoader();
+         try
+         {
+            try
+            {
+               Class factoryClass = loader.loadClass(factoryName);
+               factory = (ServiceFactory)factoryClass.newInstance();
+            }
+            catch (ClassNotFoundException e)
+            {
+               // Throw the exception if the user asked for a specific factory
+               if (factoryName.equals(DEFAULT_SERVICE_FACTORY) == false)
+                  throw e;
+
+               for (int i = 0; i < alternativeFactories.length; i++)
+               {
+                  factoryName = alternativeFactories[i];
+                  try
+                  {
+                     Class factoryClass = loader.loadClass(factoryName);
+                     return (ServiceFactory)factoryClass.newInstance();
+                  }
+                  catch (ClassNotFoundException e1)
+                  {
+                     if(log.isDebugEnabled()) log.debug("Cannot load factory: " + factoryName);
+                  }
+               }
+            }
+         }
+         catch (Throwable e)
+         {
+            throw new ServiceException("Failed to create factory: " + factoryName, e);
+         }
+      }
+
+      if (factory == null)
+         throw new ServiceException("Cannot find ServiceFactory implementation");
+
+      return factory;
+   }
+
+   /**
+    * Create a <code>Service</code> instance.
+    *
+    * @param   wsdlDocumentLocation URL for the WSDL document location
+    * @param   serviceName  QName for the service.
+    * @return  Service.
+    * @throws  ServiceException If any error in creation of the
+    *                specified service
+    */
+   public abstract Service createService(URL wsdlDocumentLocation, QName serviceName) throws ServiceException;
+
+   /**
+    * Create a <code>Service</code> instance.
+    *
+    * @param   serviceName QName for the service
+    * @return  Service.
+    * @throws  ServiceException If any error in creation of the specified service
+    */
+   public abstract Service createService(QName serviceName) throws ServiceException;
+
+   /** Create an instance of the generated service implementation class for a given service interface, if available.
+    * @param serviceInterface Service interface
+    * @return A Service
+    * @throws ServiceException If there is any error while creating the specified service, including the case where a
+    * generated service implementation class cannot be located
+    */
+   public abstract Service loadService(Class serviceInterface) throws ServiceException;
+
+   /**
+    * Create an instance of the generated service implementation class for a given service interface, if available.
+    * An implementation may use the provided wsdlDocumentLocation and properties to help locate the generated implementation class.
+    * If no such class is present, a ServiceException will be thrown.
+    *
+    * @param wsdlDocumentLocation URL for the WSDL document location for the service or null
+    * @param serviceInterface Service interface
+    * @param props A set of implementation-specific properties to help locate the generated service implementation class
+    * @return A Service
+    * @throws ServiceException If there is any error while creating the specified service, including the case where a
+    * generated service implementation class cannot be located
+    */
+   public abstract Service loadService(URL wsdlDocumentLocation, Class serviceInterface, Properties props) throws ServiceException;
+
+   /**
+    * Create an instance of the generated service implementation class for a given service, if available.
+    * The service is uniquely identified by the wsdlDocumentLocation and serviceName arguments.
+    * An implementation may use the provided properties to help locate the generated implementation class.
+    * If no such class is present, a ServiceException will be thrown.
+    *
+    * @param wsdlDocumentLocation URL for the WSDL document location for the service or null
+    * @param serviceName Qualified name for the service
+    * @param props A set of implementation-specific properties to help locate the generated service implementation class
+    * @return A Service
+    * @throws ServiceException If there is any error while creating the specified service, including the case where a generated service implementation class cannot be located
+    */
+   public abstract Service loadService(URL wsdlDocumentLocation, QName serviceName, Properties props) throws ServiceException;
+
+   private static class PropertyAccessAction implements PrivilegedAction
+   {
+      private String name;
+      private String defaultValue;
+
+      PropertyAccessAction(String name, String defaultValue)
+      {
+         this.name = name;
+         this.defaultValue = defaultValue;
+      }
+
+      public Object run()
+      {
+         return System.getProperty(name, defaultValue);
+      }
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/ServiceFactory.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/Stub.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/Stub.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/Stub.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,75 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc;
+
+import java.util.Iterator;
+
+/**
+ * The interface javax.xml.rpc.Stub is the common base interface for the stub classes.
+ * All generated stub classes are required to implement the javax.xml.rpc.Stub interface.
+ * An instance of a stub class represents a client side proxy or stub instance for the target service endpoint.
+ *
+ * The javax.xml.rpc.Stub interface provides an extensible property mechanism for the dynamic configuration of a stub instance.
+ *
+ * @author Scott.Stark at jboss.org
+ * @author Thomas.Diesler at jboss.org
+ * @version $Revision$
+ */
+public interface Stub
+{
+   /** Standard property: User name for authentication. */
+   public static final String USERNAME_PROPERTY = "javax.xml.rpc.security.auth.username";
+   /**  Standard property: Password for authentication. */
+   public static final String PASSWORD_PROPERTY = "javax.xml.rpc.security.auth.password";
+   /** Standard property: Target service endpoint address.  */
+   public static final String ENDPOINT_ADDRESS_PROPERTY = "javax.xml.rpc.service.endpoint.address";
+   /** Standard property: This boolean property is used by a service client to indicate whether or not it wants to participate in a session with a service endpoint. */
+   public static final String SESSION_MAINTAIN_PROPERTY = "javax.xml.rpc.session.maintain";
+
+   /** Sets the name and value of a configuration property for this Stub instance.
+    *
+    * If the Stub instances contains a value of the same property, the old value is replaced.
+    * Note that the _setProperty method may not perform validity check on a configured property value.
+    * An example is the standard property for the target service endpoint address that is not checked for validity in
+    * the _setProperty method. In this case, stub configuration errors are detected at the remote method invocation.
+    *
+    * @param name Name of the configuration property
+    * @param value Value of the property
+    * @throws  JAXRPCException
+    *    If an optional standard property name is specified, however this Stub implementation class does not support the configuration of this property.
+    *    If an invalid or unsupported property name is specified or if a value of mismatched property type is passed.
+    *    If there is any error in the configuration of a valid property.
+    */
+   public void _setProperty(String name, Object value);
+
+   /** Gets the value of a specific configuration property.
+    * @param name Name of the property whose value is to be retrieved
+    * @return Value of the configuration property
+    * @throws  JAXRPCException if an invalid or unsupported property name is passed.
+    */
+   public Object _getProperty(String name);
+
+   /** Returns an Iterato view of the names of the properties that can be configured on this stub instance.
+    * @return Iterator for the property names of the type java.lang.String
+    */
+   public Iterator _getPropertyNames();
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/Stub.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/encoding/DeserializationContext.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/encoding/DeserializationContext.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/encoding/DeserializationContext.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,32 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.encoding;
+
+/** A deserializer uses this interface to access and maintain context
+ * information during the deserialization.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface DeserializationContext
+{
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/encoding/DeserializationContext.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/encoding/Deserializer.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/encoding/Deserializer.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/encoding/Deserializer.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,36 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.encoding;
+
+import java.io.Serializable;
+
+/** A base interface for deserializers. A Deserializer converts an XML
+ * representation to a Java object using a specific XML processing mechanism
+ * and based on the specified type mapping and encoding style.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface Deserializer extends Serializable
+{
+   public String getMechanismType();
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/encoding/Deserializer.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/encoding/DeserializerFactory.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/encoding/DeserializerFactory.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/encoding/DeserializerFactory.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,52 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.encoding;
+
+import java.io.Serializable;
+import java.util.Iterator;
+
+/** A factory of deserializers. A DeserializerFactory is registered with a
+ * TypeMapping instance as part of the TypeMappingRegistry.
+ *
+ * @see Deserializer
+ * @see TypeMapping 
+ * @see TypeMappingRegistry
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface DeserializerFactory extends Serializable
+{
+   /**
+    * Returns a Deserializer for the specified XML processing mechanism type.
+    * @param mechanismType XML processing mechanism type [TBD: definition of valid constants]
+    * @return a Deserializer
+    * @throws javax.xml.rpc.JAXRPCException If DeserializerFactory does not support the specified XML processing mechanism
+    */
+   public Deserializer getDeserializerAs(String mechanismType);
+
+   /** Returns a list of all XML processing mechanism types supported by this DeserializerFactory.
+    *
+    * @return List of unique identifiers for the supported XML processing mechanism types
+    */
+   public Iterator getSupportedMechanismTypes();
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/encoding/DeserializerFactory.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/encoding/SerializationContext.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/encoding/SerializationContext.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/encoding/SerializationContext.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,37 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.encoding;
+
+/** This interface is implemented by the JAX-RPC runtime system in an XML
+ * processing mechanism specific manner. A serializer uses the
+ * SerializationContext interface during the serialization to get the context
+ * information related to the XML processing mechanism and to manage
+ * information specific to serialization.
+ * 
+ * @see Serializer
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface SerializationContext
+{
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/encoding/SerializationContext.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/encoding/Serializer.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/encoding/Serializer.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/encoding/Serializer.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,37 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.encoding;
+
+import java.io.Serializable;
+
+/** This interface defines the base interface for serializers. A Serializer
+ * converts a Java object to an XML representation using a specific XML
+ * processing mechanism and based on the specified type mapping and encoding
+ * style.
+ *  
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface Serializer extends Serializable
+{
+   public String getMechanismType();
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/encoding/Serializer.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/encoding/SerializerFactory.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/encoding/SerializerFactory.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/encoding/SerializerFactory.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,53 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.encoding;
+
+import java.io.Serializable;
+import java.util.Iterator;
+
+/**
+ * This is a factory of the serializers. A SerializerFactory is registered
+ * with a TypeMapping object as part of the TypeMappingRegistry.
+ * 
+ * @see Serializer
+ * @see TypeMapping 
+ * @see TypeMappingRegistry
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface SerializerFactory extends Serializable
+{
+   /** Returns a Serializer for the specified XML processing mechanism type.
+    *
+    * @param mechanismType XML processing mechanism type [TBD: definition of valid constants]
+    * @return A Serializer
+    * @throws javax.xml.rpc.JAXRPCException If SerializerFactory does not support the specified XML processing mechanism
+    * @throws IllegalArgumentException If an invalid mechanism type is specified.
+    */
+   public Serializer getSerializerAs(String mechanismType);
+
+   /** Returns a list of all XML processing mechanism types supported by this SerializerFactory.
+    * @return List of unique identifiers for the supported XML processing mechanism types
+    */
+   public Iterator getSupportedMechanismTypes();
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/encoding/SerializerFactory.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/encoding/TypeMapping.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/encoding/TypeMapping.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/encoding/TypeMapping.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,106 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.encoding;
+
+import javax.xml.namespace.QName;
+
+/**
+ * This is the base interface for the representation of a type mapping. A
+ * TypeMapping implementation class may support one or more encoding styles.
+ * 
+ * For its supported encoding styles, a TypeMapping instance maintains a set of
+ * tuples of the type {Java Class, SerializerFactory, DeserializerFactory, XML type-QName}.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface TypeMapping
+{
+
+   /**
+    * Gets the DeserializerFactory registered for the specified pair of Java type and XML data type.
+    * @param javaType Class of the Java type
+    * @param xmlType QName of the XML type
+    * @return Registered DeserializerFactory or null if there is no registered factory
+    */
+   public DeserializerFactory getDeserializer(Class javaType, QName xmlType);
+
+   /**
+    * Gets the SerializerFactory registered for the specified pair of Java type and XML data type.
+    * @param javaType Class of the Java type
+    * @param xmlType QName of the XML type
+    * @return Registered SerializerFactory or null if there is no registered factory
+    */
+   public SerializerFactory getSerializer(Class javaType, QName xmlType);
+
+   /**
+    * Returns the encodingStyle URIs (as String[]) supported by this TypeMapping instance.
+    * A TypeMapping that contains only encoding style independent serializers and deserializers
+    * returns null from this method.
+    *
+    * @return Array of encodingStyle URIs for the supported encoding styles
+    */
+   public String[] getSupportedEncodings();
+
+   /**
+    * Sets the encodingStyle URIs supported by this TypeMapping instance. A TypeMapping that contains only encoding
+    * independent serializers and deserializers requires null as the parameter for this method.
+    *
+    * @param encodingStyleURIs Array of encodingStyle URIs for the supported encoding styles
+    */
+   public void setSupportedEncodings(String[] encodingStyleURIs);
+
+   /**
+    * Checks whether or not type mapping between specified XML type and Java type is registered.
+    * @param javaType Class of the Java type
+    * @param xmlType QName of the XML type
+    * @return boolean; true if type mapping between the specified XML type and Java type is registered; otherwise false
+    */
+   public boolean isRegistered(Class javaType, QName xmlType);
+
+   /**
+    * Registers SerializerFactory and DeserializerFactory for a specific type mapping between an XML type and Java type.
+    * This method replaces any existing registered SerializerFactory DeserializerFactory instances.
+    * @param javaType Class of the Java type
+    * @param xmlType QName of the XML type
+    * @param sf SerializerFactory
+    * @param dsf DeserializerFactory
+    * @throws javax.xml.rpc.JAXRPCException If any error during the registration
+    */
+   public void register(Class javaType, QName xmlType, SerializerFactory sf, DeserializerFactory dsf);
+
+   /**
+    * Removes the DeserializerFactory registered for the specified pair of Java type and XML data type.
+    * @param javaType Class of the Java type
+    * @param xmlType QName of the XML type
+    * @throws javax.xml.rpc.JAXRPCException If there is error in removing the registered DeserializerFactory
+    */
+   public void removeDeserializer(Class javaType, QName xmlType);
+
+   /**
+    * Removes the SerializerFactory registered for the specified pair of Java type and XML data type.
+    * @param javaType Class of the Java type
+    * @param xmlType QName of the XML type
+    * @throws javax.xml.rpc.JAXRPCException If there is error in removing the registered SerializerFactory
+    */
+   public void removeSerializer(Class javaType, QName xmlType);
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/encoding/TypeMapping.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/encoding/TypeMappingRegistry.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/encoding/TypeMappingRegistry.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/encoding/TypeMappingRegistry.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,111 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.encoding;
+
+import java.io.Serializable;
+
+/**
+ * This defines a registry of TypeMapping instances for encoding styles.
+ *  
+ * @author Scott.Stark at jboss.org
+ * @author Thomas.Diesler at jboss.org
+ * @version $Revision$
+ */
+public interface TypeMappingRegistry extends Serializable
+{
+   /**
+    * Removes all registered TypeMappings and encodingStyleURIs from this TypeMappingRegistry.
+    */
+   public void clear();
+
+   /**
+    * Gets the registered default TypeMapping instance.
+    * This method returns null if there is no registered default TypeMapping in the registry.
+    * @return The registered default TypeMapping instance or null
+    */
+   public TypeMapping getDefaultTypeMapping();
+
+   /**
+    * Registers the TypeMapping instance that is default for all encoding styles supported by the TypeMappingRegistry.
+    * A default TypeMapping should include serializers and deserializers that are independent of and usable with any
+    * encoding style. Successive invocations of the registerDefault method replace any existing default TypeMapping instance.
+    *
+    * If the default TypeMapping is registered, any other TypeMapping instances registered through the
+    * TypeMappingRegistry.register method (for a set of encodingStyle URIs) override the default TypeMapping.
+    *
+    * @param mapping TypeMapping instance
+    * @throws javax.xml.rpc.JAXRPCException If there is an error in the registration of the default TypeMapping
+    */
+   public void registerDefault(TypeMapping mapping);
+
+   /**
+    * Creates a new empty TypeMapping object.
+    * @return TypeMapping instance
+    */
+   public TypeMapping createTypeMapping();
+
+   /**
+    * Returns the registered TypeMapping for the specified encodingStyle URI. If there is no registered TypeMapping for
+    * the specified encodingStyleURI, this method returns null.
+    * @param encodingStyleURI Encoding style specified as an URI
+    * @return TypeMapping for the specified encodingStyleURI or null
+    */
+   public TypeMapping getTypeMapping(String encodingStyleURI);
+
+   /**
+    * Returns a list of registered encodingStyle URIs in this TypeMappingRegistry instance.
+    * @return Array of the registered encodingStyle URIs
+    */
+   public String[] getRegisteredEncodingStyleURIs();
+
+   /**
+    * Registers a TypeMapping instance with the TypeMappingRegistry.
+    * This method replaces any existing registered TypeMapping instance for the specified encodingStyleURI.
+    *
+    * @param encodingStyleURI An encoding style specified as an URI.
+    * @param mapping TypeMapping instance
+    * @return Previous TypeMapping associated with the specified encodingStyleURI, or null if there was no
+    * TypeMapping associated with the specified encodingStyleURI
+    * @throws javax.xml.rpc.JAXRPCException If there is an error in the registration of the TypeMapping for the specified encodingStyleURI.
+    */
+   public TypeMapping register(String encodingStyleURI, TypeMapping mapping);
+
+   /**
+    * Unregisters a TypeMapping instance, if present, from the specified encodingStyleURI.
+    * @param encodingStyleURI Encoding style specified as an URI
+    * @return TypeMapping instance that has been unregistered or null if there was no
+    * TypeMapping registered for the specified encodingStyleURI
+    */
+   public TypeMapping unregisterTypeMapping(String encodingStyleURI);
+
+   /**
+    * Removes a TypeMapping from the TypeMappingRegistry.
+    * A TypeMapping is associated with 1 or more encodingStyleURIs. This method unregisters the specified
+    * TypeMapping instance from all associated encodingStyleURIs and then removes this TypeMapping
+    * instance from the registry.
+    *
+    * @param mapping TypeMapping to be removed
+    * @return true if specified TypeMapping is removed from the TypeMappingRegistry;
+    * false if the specified TypeMapping was not in the TypeMappingRegistry
+    */
+   public boolean removeTypeMapping(TypeMapping mapping);
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/encoding/TypeMappingRegistry.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/encoding/XMLType.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/encoding/XMLType.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/encoding/XMLType.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,57 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.encoding;
+
+import javax.xml.namespace.QName;
+
+/** Constants for common XML Schema and SOAP 1.1 types.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class XMLType
+{
+   public static final QName SOAP_ARRAY = QName.valueOf("{SOAP-ENC}Array");
+   public static final QName SOAP_BASE64 = QName.valueOf("{SOAP-ENC}base64");
+   public static final QName SOAP_BOOLEAN = QName.valueOf("{SOAP-ENC}boolean");
+   public static final QName SOAP_BYTE = QName.valueOf("{SOAP-ENC}byte");
+   public static final QName SOAP_DOUBLE = QName.valueOf("{SOAP-ENC}double");
+   public static final QName SOAP_FLOAT = QName.valueOf("{SOAP-ENC}float");
+   public static final QName SOAP_INT = QName.valueOf("{SOAP-ENC}int");
+   public static final QName SOAP_LONG = QName.valueOf("{SOAP-ENC}long");
+   public static final QName SOAP_SHORT = QName.valueOf("{SOAP-ENC}short");
+   public static final QName SOAP_STRING = QName.valueOf("{SOAP-ENC}string");
+   public static final QName XSD_BASE64 = QName.valueOf("{SOAP-ENC}base64Binary");
+   public static final QName XSD_BOOLEAN = QName.valueOf("{SOAP-ENC}boolean");
+   public static final QName XSD_BYTE = QName.valueOf("{xsd}byte");
+   public static final QName XSD_DATETIME = QName.valueOf("{xsd}dateTime");
+   public static final QName XSD_DECIMAL = QName.valueOf("{xsd}decimal");
+   public static final QName XSD_DOUBLE = QName.valueOf("{xsd}double");
+   public static final QName XSD_FLOAT = QName.valueOf("{xsd}float");
+   public static final QName XSD_HEXBINARY = QName.valueOf("{xsd}hexBinary");
+   public static final QName XSD_INT = QName.valueOf("{xsd}int");
+   public static final QName XSD_INTEGER = QName.valueOf("{xsd}integer");
+   public static final QName XSD_LONG = QName.valueOf("{xsd}long");
+   public static final QName XSD_QNAME = QName.valueOf("{xsd}QName");
+   public static final QName XSD_SHORT = QName.valueOf("{xsd}short");
+   public static final QName XSD_STRING = QName.valueOf("{xsd}string");
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/encoding/XMLType.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/handler/GenericHandler.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/handler/GenericHandler.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/handler/GenericHandler.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,108 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.handler;
+
+import javax.xml.namespace.QName;
+
+/** The GenericHandler class implements the Handler interface. SOAP Message
+ * Handler developers should typically subclass GenericHandler class unless
+ * the Handler class needs another class as a superclass.
+ * 
+ * The GenericHandler class is a convenience abstract class that makes writing
+ * Handlers easy. This class provides default implementations of the lifecycle
+ * methods init and destroy and also different handle methods. A Handler
+ * developer should only override methods that it needs to specialize as part
+ * of the derived Handler implementation class.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @author Rahul Sharma (javadoc)
+ * @version $Revision$
+ */
+public abstract class GenericHandler implements Handler
+{
+   /** Default constructor. */
+   protected GenericHandler()
+   {
+   }
+
+   /**
+    * Gets the header blocks processed by this Handler instance.
+    *
+    * @return Array of QNames of header blocks processed by this handler instance.
+    * QName is the qualified name of the outermost element of the Header block.
+    */
+   public abstract QName[] getHeaders();
+
+   /**
+    * The init method to enable the Handler instance to initialize itself. This method should be overridden if the
+    * derived Handler class needs to specialize implementation of this method.
+    * @param config handler configuration
+    */
+   public void init(HandlerInfo config)
+   {
+   }
+
+   /**
+    * The destroy method indicates the end of lifecycle for a Handler instance. This method should be overridden if
+    * the derived Handler class needs to specialize implementation of this method.
+    */
+   public void destroy()
+   {
+   }
+
+   /**
+    * The handleRequest method processes the request SOAP message. The default implementation of this method returns true.
+    * This indicates that the handler chain should continue processing of the request SOAP message.
+    * This method should be overridden if the derived Handler class needs to specialize implementation of this method.
+    * @param msgContext the message msgContext
+    * @return true/false
+    */
+   public boolean handleRequest(MessageContext msgContext)
+   {
+      return true;
+   }
+
+   /**
+    * The handleResponse method processes the response message. The default implementation of this method returns true.
+    * This indicates that the handler chain should continue processing of the response SOAP message.
+    * This method should be overridden if the derived Handler class needs to specialize implementation of this method.
+    * @param msgContext the message msgContext
+    * @return true/false
+    */
+   public boolean handleResponse(MessageContext msgContext)
+   {
+      return true;
+   }
+
+   /**
+    * The handleFault method processes the SOAP faults based on the SOAP message processing model.
+    * The default implementation of this method returns true. This indicates that the handler chain should continue
+    * processing of the SOAP fault. This method should be overridden if the derived Handler class needs to specialize
+    * implementation of this method.
+    * @param msgContext the message msgContext
+    * @return the message msgContext
+    */
+   public boolean handleFault(MessageContext msgContext)
+   {
+      return true;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/handler/GenericHandler.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/handler/Handler.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/handler/Handler.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/handler/Handler.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,136 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.handler;
+
+import javax.xml.namespace.QName;
+import javax.xml.rpc.JAXRPCException;
+import javax.xml.rpc.soap.SOAPFaultException;
+
+/** This interface is required to be implemented by a SOAP message handler.
+ * The handleRequest, handleResponse and handleFault methods for a SOAP message
+ * handler get access to the SOAPMessage from the SOAPMessageContext. The
+ * implementation of these methods can modify the SOAPMessage including the
+ * headers and body elements.
+ *  
+ * @author Scott.Stark at jboss.org
+ * @author Rahul Sharma (javadoc)
+ * @version $Revision$
+ */
+public interface Handler
+{
+   /** Gets the header blocks processed by this Handler instance.
+    *
+    * @return Array of QNames of header blocks processed by this handler instance.
+    * QName is the qualified name of the outermost element of the Header block.
+    */
+   public QName[] getHeaders();
+
+   /** The init method enables the Handler instance to initialize itself. The init method passes the handler
+    * configuration as a HandlerInfo instance. The HandlerInfo is used to configure the Handler (for example: setup
+    * access to an external resource or service) during the initialization.
+    * In the init method, the Handler class may get access to any resources
+    * (for example; access to a logging service or database) and maintain these as part of its instance variables.
+    * Note that these instance variables must not have any state specific to the SOAP message processing performed in
+    * the various handle method.
+    *
+    * @param config HandlerInfo configuration for the initialization of this handler
+    * @throws JAXRPCException - if initialization of the handler fails
+    */
+   public void init(HandlerInfo config) throws JAXRPCException;
+
+   /** The destroy method indicates the end of lifecycle for a Handler instance. The Handler implementation class should
+    * release its resources and perform cleanup in the implementation of the destroy method.
+    *
+    * @throws JAXRPCException - if there was any error during destroy
+    */
+   public void destroy() throws JAXRPCException;
+
+   /** The handleRequest method processes the request message.
+    *
+    * @param msgContext MessageContext parameter provides access to the request message.
+    * @return boolean boolean Indicates the processing mode
+    * <ul>
+    * <li> Return true to indicate continued processing of the request handler chain.
+    * The HandlerChain takes the responsibility of invoking the next entity.
+    * The next entity may be the next handler in the HandlerChain or if this handler is the last handler in the chain,
+    * the next entity is the service endpoint object. </li>
+    *
+    * <li> Return false to indicate blocking of the request handler chain. In this case, further processing of the request
+    * handler chain is blocked and the target service endpoint is not dispatched. The JAX-RPC runtime system takes the
+    * responsibility of invoking the response handler chain next with the SOAPMessageContext. The Handler implementation
+    * class has the the responsibility of setting the appropriate response SOAP message in either handleRequest and/or
+    * handleResponse method. In the default processing model, the response handler chain starts processing from the same
+    * Handler instance (that returned false) and goes backward in the execution sequence. </li>
+    * </ul>
+    *
+    * @throws JAXRPCException - indicates a handler-specific runtime error.
+    * If JAXRPCException is thrown by a handleRequest method, the HandlerChain terminates the further processing of this handler chain.
+    * On the server side, the HandlerChain generates a SOAP fault that indicates that the message could not be processed
+    * for reasons not directly attributable to the contents of the message itself but rather to a runtime error during
+    * the processing of the message. On the client side, the exception is propagated to the client code
+    *
+    * @throws SOAPFaultException - indicates a SOAP fault. The Handler implementation class has the the responsibility
+    * of setting the SOAP fault in the SOAP message in either handleRequest and/or handleFault method.
+    * If SOAPFaultException is thrown by a server-side request handler's handleRequest method, the HandlerChain
+    * terminates the further processing of the request handlers in this handler chain and invokes the handleFault
+    * method on the HandlerChain with the SOAP message msgContext. Next, the HandlerChain invokes the handleFault method
+    * on handlers registered in the handler chain, beginning with the Handler instance that threw the exception and
+    * going backward in execution. The client-side request handler's handleRequest method should not throw the SOAPFaultException.
+    */
+   public boolean handleRequest(MessageContext msgContext) throws JAXRPCException, SOAPFaultException;
+
+   /** The handleResponse method processes the response SOAP message.
+    *
+    * @param msgContext MessageContext parameter provides access to the response SOAP message
+    * @return boolean Indicates the processing mode
+    * <ul>
+    * <li> Return true to indicate continued processing ofthe response handler chain. The HandlerChain invokes the handleResponse method on the next Handler in the handler chain.</li>
+    * <li>Return false to indicate blocking of the response handler chain. In this case, no other response handlers in the handler chain are invoked.</li>
+    * </ul>
+    * @throws JAXRPCException - indicates a handler specific runtime error. If JAXRPCException is thrown by a
+    * handleResponse method, the HandlerChain terminates the further processing of this handler chain. On the server
+    * side, the HandlerChain generates a SOAP fault that indicates that the message could not be processed for reasons
+    * not directly attributable to the contents of the message itself but rather to a runtime error during the processing
+    * of the message. On the client side, the runtime exception is propagated to the client code.
+    */
+   public boolean handleResponse(MessageContext msgContext);
+
+   /** The handleFault method processes the SOAP faults based on the SOAP message processing model.
+    *
+    * @param msgContext MessageContext parameter provides access to the SOAP message
+    * @return boolean Indicates the processing mode
+    * <ul>
+    * <li> Return true to indicate continued processing of SOAP Fault. The HandlerChain invokes the handleFault method
+    * on the next Handler in the handler chain. </li>
+    * <li> Return false to indicate end of the SOAP fault processing. In this case, no other handlers in the handler
+    * chain are invoked. </li>
+    * </ul>
+    *
+    * @throws JAXRPCException - indicates handler specific runtime error.
+    * If JAXRPCException is thrown by a handleFault method, the HandlerChain terminates the further processing of this
+    * handler chain. On the server side, the HandlerChain generates a SOAP fault that indicates that the message could
+    * not be processed for reasons not directly attributable to the contents of the message itself but rather to a runtime
+    * error during the processing of the message. On the client side, the JAXRPCException is propagated to the client code.
+    */
+   public boolean handleFault(MessageContext msgContext);
+
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/handler/Handler.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/handler/HandlerChain.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/handler/HandlerChain.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/handler/HandlerChain.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,93 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.handler;
+
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.rpc.JAXRPCException;
+
+/** This interface represents a list of handlers. All elements in the
+ * HandlerChain are of the type javax.xml.rpc.handler.Handler.
+ * 
+ * An implementation class for the HandlerChain interface abstracts the policy
+ * and mechanism for the invocation of the registered handlers. 
+ * 
+ * @author Scott.Stark at jboss.org
+ * @author Rahul Sharma (javadoc)
+ * @version $Revision$
+ */
+public interface HandlerChain extends List
+{
+   /**
+    * Initializes the configuration for a HandlerChain.
+    * @param config Configuration for the initialization of this handler chain
+    * @throws JAXRPCException If any error during initialization
+    */
+   public void init(Map config);
+
+   /**
+    * Indicates the end of lifecycle for a HandlerChain.
+    * @throws JAXRPCException If any error during destroy
+    */
+   public void destroy();
+
+   /**
+    * Gets SOAP actor roles registered for this HandlerChain at this SOAP node. The returned array includes the
+    * special SOAP actor next.
+    * @return SOAP Actor roles as URIs
+    */
+   public String[] getRoles();
+
+   /**
+    * Sets SOAP Actor roles for this HandlerChain. This specifies the set of roles in which this HandlerChain is to act
+    * for the SOAP message processing at this SOAP node. These roles assumed by a HandlerChain must be invariant during
+    * the processing of an individual SOAP message through the HandlerChain.
+    * <p/>
+    * A HandlerChain always acts in the role of the special SOAP actor next. Refer to the SOAP specification for the
+    * URI name for this special SOAP actor. There is no need to set this special role using this method.
+    * @param soapActorNames URIs for SOAP actor name
+    */
+   public void setRoles(String[] soapActorNames);
+
+   /**
+    * The handleRequest method initiates the request processing for this handler chain.
+    * @param msgContext MessageContext parameter provides access to the request SOAP message.
+    * @return Returns true if all handlers in chain have been processed. Returns false if a handler in the chain returned false from its handleRequest method.
+    * @throws JAXRPCException if any processing error happens
+    */
+   public boolean handleRequest(MessageContext msgContext);
+
+   /**
+    * The handleResponse method initiates the response processing for this handler chain.
+    * @return Returns true if all handlers in chain have been processed. Returns false if a handler in the chain returned false from its handleRequest method.
+    * @throws JAXRPCException if any processing error happens
+    */
+   public boolean handleResponse(MessageContext msgContext);
+
+   /**
+    * The handleFault method initiates the SOAP fault processing for this handler chain.
+    * @return Returns true if all handlers in chain have been processed. Returns false if a handler in the chain returned false from its handleRequest method.
+    * @throws JAXRPCException if any processing error happens
+    */
+   public boolean handleFault(MessageContext msgContext);
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/handler/HandlerChain.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/handler/HandlerInfo.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/handler/HandlerInfo.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/handler/HandlerInfo.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,128 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.handler;
+
+import java.io.Serializable;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+/** This represents information about a handler in the HandlerChain. A
+ * HandlerInfo instance is passed in the Handler.init method to initialize a
+ * Handler instance.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class HandlerInfo implements Serializable
+{
+   private static final long serialVersionUID = -6735139577513563610L;
+
+   private Class handlerClass;
+   private Map configMap = new HashMap();
+   private QName[] headers;
+
+   /** Default constructor */
+   public HandlerInfo()
+   {
+   }
+
+   /** Constructor for HandlerInfo
+    *
+    * @param handlerClass Java Class for the Handler
+    * @param config Handler Configuration as a java.util.Map
+    * @param headers QNames for the header blocks processed by this Handler.
+    * QName is the qualified name of the outermost element of a header block
+    */
+   public HandlerInfo(Class handlerClass, Map config, QName[] headers)
+   {
+      this.handlerClass = handlerClass;
+      this.configMap = config;
+      this.headers = headers;
+   }
+
+   /** Gets the Handler class
+    *
+    * @return Returns null if no Handler class has been set; otherwise the set handler class
+    */
+   public Class getHandlerClass()
+   {
+      return handlerClass;
+   }
+
+   /** Sets the Handler class
+    *
+    * @param handlerClass Class for the Handler
+    */
+   public void setHandlerClass(Class handlerClass)
+   {
+      this.handlerClass = handlerClass;
+   }
+
+   /** Gets the Handler configuration
+    *
+    * @return Returns empty Map if no configuration map has been set; otherwise returns the set configuration map
+    */
+   public Map getHandlerConfig()
+   {
+      return new HashMap(configMap);
+   }
+
+   /** Sets the Handler configuration as java.util.Map
+    *
+    * @param config Configuration map
+    */
+   public void setHandlerConfig(Map config)
+   {
+      configMap.clear();
+      configMap.putAll(config);
+   }
+
+   /** Gets the header blocks processed by this Handler.
+    *
+    * @return Array of QNames for the header blocks. Returns null if no header blocks have been set using the setHeaders method.
+    */
+   public QName[] getHeaders()
+   {
+      return headers;
+   }
+
+   /** Sets the header blocks processed by this Handler.
+    *
+    * @param qnames QNames of the header blocks. QName is the qualified name of the outermost element of the SOAP header block
+    */
+   public void setHeaders(QName[] qnames)
+   {
+      headers = qnames;
+   }
+
+   /** Returns a string representation of the object.
+    */
+   public String toString()
+   {
+      List hlist = (headers != null ? Arrays.asList(headers) : null);
+      return "[class=" + handlerClass.getName() + ",headers=" + hlist + ",config=" + configMap + "]";
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/handler/HandlerInfo.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/handler/HandlerRegistry.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/handler/HandlerRegistry.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/handler/HandlerRegistry.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,48 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.handler;
+
+import java.io.Serializable;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+/** This interface provides support for the programmatic configuration of
+ * handlers in a HandlerRegistry.
+ * 
+ * A handler chain is registered per service endpoint, as indicated by the
+ * qualified name of a port. The getHandlerChain returns the handler chain
+ * (as a java.util.List) for the specified service endpoint. The returned
+ * handler chain is configured using the java.util.List interface. Each element
+ * in this list is required to be of the Java type
+ * javax.xml.rpc.handler.HandlerInfo. 
+ * 
+ * @author Scott.Stark at jboss.org
+ * @author Rahul Sharma (javadoc)
+ * @version $Revision$
+ */
+public interface HandlerRegistry extends Serializable
+{
+   public List getHandlerChain(QName portName);
+
+   public void setHandlerChain(QName portName, List chain);
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/handler/HandlerRegistry.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/handler/MessageContext.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/handler/MessageContext.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/handler/MessageContext.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,76 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.handler;
+
+import java.util.Iterator;
+
+/** This interface abstracts the message context that is processed by a handler
+ * in the handle method.
+ * 
+ * The MessageContext interface provides methods to manage a property set.
+ * MessageContext properties enable handlers in a handler chain to share
+ * processing related state. 
+ * 
+ * @author Scott.Stark at jboss.org
+ * @author Rahul Sharma, Roberto Chinnici (javadoc)
+ * @version $Revision$
+ */
+public interface MessageContext
+{
+   /**
+    * Returns true if the MessageContext contains a property with the specified name.
+    * @param name Name of the property whose presense is to be tested
+    * @return Returns true if the MessageContext contains the property; otherwise false
+    */
+   public boolean containsProperty(String name);
+
+   /**
+    * Gets the value of a specific property from the MessageContext
+    * @param name Name of the property whose value is to be retrieved
+    * @return Value of the property
+    * @throws IllegalArgumentException if an illegal property name is specified
+    */
+   public Object getProperty(String name);
+
+   /**
+    * Returns an Iterator view of the names of the properties in this MessageContext
+    * @return Iterator for the property names
+    */
+   public Iterator getPropertyNames();
+
+   /**
+    * Removes a property (name-value pair) from the MessageContext
+    * @param name Name of the property to be removed
+    * @throws IllegalArgumentException if an illegal property name is specified
+    */
+   public void removeProperty(String name);
+
+   /**
+    * Sets the name and value of a property associated with the MessageContext.
+    * If the MessageContext contains a value of the same property, the old value is replaced.
+    * @param name Name of the property associated with the MessageContext
+    * @param value Value of the property
+    * @throws IllegalArgumentException If some aspect of the property is prevents it from being stored in the context
+    * @throws UnsupportedOperationException If this method is not supported.
+    */
+   public void setProperty(String name, Object value);
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/handler/MessageContext.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/handler/soap/SOAPMessageContext.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/handler/soap/SOAPMessageContext.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/handler/soap/SOAPMessageContext.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.handler.soap;
+
+import javax.xml.rpc.handler.MessageContext;
+import javax.xml.soap.SOAPMessage;
+
+/** This interface provides access to the SOAP message for either RPC request
+ * or response. The javax.xml.soap.SOAPMessage specifies the standard Java API
+ * for the representation of a SOAP 1.1 message with attachments.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @author Rahul Sharma (javadoc)
+ * @version $Revision$
+ */
+public interface SOAPMessageContext extends MessageContext
+{
+   public SOAPMessage getMessage();
+
+   public void setMessage(SOAPMessage message);
+
+   public String[] getRoles();
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/handler/soap/SOAPMessageContext.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/holders/BigDecimalHolder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/holders/BigDecimalHolder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/holders/BigDecimalHolder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,44 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.holders;
+
+import java.math.BigDecimal;
+
+/** A holder for BigDecimals.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public final class BigDecimalHolder implements Holder
+{
+   public BigDecimal value;
+
+   public BigDecimalHolder()
+   {
+
+   }
+
+   public BigDecimalHolder(BigDecimal value)
+   {
+      this.value = value;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/holders/BigDecimalHolder.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/holders/BigIntegerHolder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/holders/BigIntegerHolder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/holders/BigIntegerHolder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,44 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.holders;
+
+import java.math.BigInteger;
+
+/** A holder for BigIntegers.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public final class BigIntegerHolder implements Holder
+{
+   public BigInteger value;
+
+   public BigIntegerHolder()
+   {
+
+   }
+
+   public BigIntegerHolder(BigInteger value)
+   {
+      this.value = value;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/holders/BigIntegerHolder.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/holders/BooleanHolder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/holders/BooleanHolder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/holders/BooleanHolder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.holders;
+
+/** A holder for booleans.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public final class BooleanHolder implements Holder
+{
+   public boolean value;
+
+   public BooleanHolder()
+   {
+
+   }
+
+   public BooleanHolder(boolean value)
+   {
+      this.value = value;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/holders/BooleanHolder.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/holders/BooleanWrapperHolder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/holders/BooleanWrapperHolder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/holders/BooleanWrapperHolder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.holders;
+
+/** A holder for Booleans.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public final class BooleanWrapperHolder implements Holder
+{
+   public Boolean value;
+
+   public BooleanWrapperHolder()
+   {
+
+   }
+
+   public BooleanWrapperHolder(Boolean value)
+   {
+      this.value = value;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/holders/BooleanWrapperHolder.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/holders/ByteArrayHolder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/holders/ByteArrayHolder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/holders/ByteArrayHolder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.holders;
+
+/** A holder for byte[]s.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public final class ByteArrayHolder implements Holder
+{
+   public byte[] value;
+
+   public ByteArrayHolder()
+   {
+
+   }
+
+   public ByteArrayHolder(byte[] value)
+   {
+      this.value = value;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/holders/ByteArrayHolder.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/holders/ByteHolder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/holders/ByteHolder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/holders/ByteHolder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.holders;
+
+/** A holder for bytes.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public final class ByteHolder implements Holder
+{
+   public byte value;
+
+   public ByteHolder()
+   {
+
+   }
+
+   public ByteHolder(byte value)
+   {
+      this.value = value;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/holders/ByteHolder.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/holders/ByteWrapperHolder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/holders/ByteWrapperHolder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/holders/ByteWrapperHolder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.holders;
+
+/** A holder for Bytes.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public final class ByteWrapperHolder implements Holder
+{
+   public Byte value;
+
+   public ByteWrapperHolder()
+   {
+
+   }
+
+   public ByteWrapperHolder(Byte value)
+   {
+      this.value = value;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/holders/ByteWrapperHolder.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/holders/CalendarHolder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/holders/CalendarHolder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/holders/CalendarHolder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,44 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.holders;
+
+import java.util.Calendar;
+
+/** A holder for Calendars.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public final class CalendarHolder implements Holder
+{
+   public Calendar value;
+
+   public CalendarHolder()
+   {
+
+   }
+
+   public CalendarHolder(Calendar value)
+   {
+      this.value = value;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/holders/CalendarHolder.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/holders/DoubleHolder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/holders/DoubleHolder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/holders/DoubleHolder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.holders;
+
+/** A holder for doubles.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public final class DoubleHolder implements Holder
+{
+   public double value;
+
+   public DoubleHolder()
+   {
+
+   }
+
+   public DoubleHolder(double value)
+   {
+      this.value = value;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/holders/DoubleHolder.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/holders/DoubleWrapperHolder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/holders/DoubleWrapperHolder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/holders/DoubleWrapperHolder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.holders;
+
+/** A holder for Doubles.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public final class DoubleWrapperHolder implements Holder
+{
+   public Double value;
+
+   public DoubleWrapperHolder()
+   {
+
+   }
+
+   public DoubleWrapperHolder(Double value)
+   {
+      this.value = value;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/holders/DoubleWrapperHolder.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/holders/FloatHolder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/holders/FloatHolder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/holders/FloatHolder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.holders;
+
+/** A holder for floats.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public final class FloatHolder implements Holder
+{
+   public float value;
+
+   public FloatHolder()
+   {
+
+   }
+
+   public FloatHolder(float value)
+   {
+      this.value = value;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/holders/FloatHolder.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/holders/FloatWrapperHolder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/holders/FloatWrapperHolder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/holders/FloatWrapperHolder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.holders;
+
+/** A holder for Floats.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public final class FloatWrapperHolder implements Holder
+{
+   public Float value;
+
+   public FloatWrapperHolder()
+   {
+
+   }
+
+   public FloatWrapperHolder(Float value)
+   {
+      this.value = value;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/holders/FloatWrapperHolder.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/holders/Holder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/holders/Holder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/holders/Holder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,34 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.holders;
+
+/** This interface represents the base interface for both standard and generated
+ * Holder classes. A generated Holder class is required to implement this Holder
+ * interface.
+ *  
+ * @author Scott.Stark at jboss.org
+ * @author Rahul Sharma (javadoc)
+ * @version $Revision$
+ */
+public interface Holder
+{
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/holders/Holder.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/holders/IntHolder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/holders/IntHolder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/holders/IntHolder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.holders;
+
+/** A holder for ints.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public final class IntHolder implements Holder
+{
+   public int value;
+
+   public IntHolder()
+   {
+
+   }
+
+   public IntHolder(int value)
+   {
+      this.value = value;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/holders/IntHolder.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/holders/IntegerWrapperHolder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/holders/IntegerWrapperHolder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/holders/IntegerWrapperHolder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.holders;
+
+/** A holder for Integers.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public final class IntegerWrapperHolder implements Holder
+{
+   public Integer value;
+
+   public IntegerWrapperHolder()
+   {
+
+   }
+
+   public IntegerWrapperHolder(Integer value)
+   {
+      this.value = value;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/holders/IntegerWrapperHolder.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/holders/LongHolder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/holders/LongHolder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/holders/LongHolder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.holders;
+
+/** A holder for longs.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public final class LongHolder implements Holder
+{
+   public long value;
+
+   public LongHolder()
+   {
+
+   }
+
+   public LongHolder(long value)
+   {
+      this.value = value;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/holders/LongHolder.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/holders/LongWrapperHolder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/holders/LongWrapperHolder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/holders/LongWrapperHolder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.holders;
+
+/** A holder for Longs.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public final class LongWrapperHolder implements Holder
+{
+   public Long value;
+
+   public LongWrapperHolder()
+   {
+
+   }
+
+   public LongWrapperHolder(Long value)
+   {
+      this.value = value;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/holders/LongWrapperHolder.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/holders/ObjectHolder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/holders/ObjectHolder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/holders/ObjectHolder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.holders;
+
+/** A holder for Objects.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public final class ObjectHolder implements Holder
+{
+   public Object value;
+
+   public ObjectHolder()
+   {
+
+   }
+
+   public ObjectHolder(Object value)
+   {
+      this.value = value;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/holders/ObjectHolder.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/holders/QNameHolder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/holders/QNameHolder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/holders/QNameHolder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,44 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.holders;
+
+import javax.xml.namespace.QName;
+
+/** A holder for QNames.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public final class QNameHolder implements Holder
+{
+   public QName value;
+
+   public QNameHolder()
+   {
+
+   }
+
+   public QNameHolder(QName value)
+   {
+      this.value = value;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/holders/QNameHolder.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/holders/ShortHolder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/holders/ShortHolder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/holders/ShortHolder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.holders;
+
+/** A holder for shorts.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public final class ShortHolder implements Holder
+{
+   public short value;
+
+   public ShortHolder()
+   {
+
+   }
+
+   public ShortHolder(short value)
+   {
+      this.value = value;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/holders/ShortHolder.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/holders/ShortWrapperHolder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/holders/ShortWrapperHolder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/holders/ShortWrapperHolder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.holders;
+
+/** A holder for Shorts.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public final class ShortWrapperHolder implements Holder
+{
+   public Short value;
+
+   public ShortWrapperHolder()
+   {
+
+   }
+
+   public ShortWrapperHolder(Short value)
+   {
+      this.value = value;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/holders/ShortWrapperHolder.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/holders/StringHolder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/holders/StringHolder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/holders/StringHolder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.holders;
+
+/** A holder for Strings.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public final class StringHolder implements Holder
+{
+   public String value;
+
+   public StringHolder()
+   {
+
+   }
+
+   public StringHolder(String value)
+   {
+      this.value = value;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/holders/StringHolder.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/server/ServiceLifecycle.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/server/ServiceLifecycle.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/server/ServiceLifecycle.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,59 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.server;
+
+import javax.xml.rpc.ServiceException;
+
+/** This interface defines a lifecycle interface for a JAX-RPC service endpoint.
+ * If the service endpoint class implements the ServiceLifeycle interface, the
+ * servlet container based JAX-RPC runtime system is required to manage the
+ * lifecycle of the corresponding service endpoint objects.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @author Rahul Sharma (javadoc)
+ * @version $Revision$
+ */
+public interface ServiceLifecycle
+{
+   /**
+    * Used for initialization of a service endpoint. After a service endpoint instance (an instance of a service endpoint class)
+    * is instantiated, the JAX-RPC runtime system invokes the init method.
+    * The service endpoint class uses the init method to initialize its configuration and setup access to any external resources.
+    * The context parameter in the init method enables the endpoint instance to access the endpoint context provided by
+    * the underlying JAX-RPC runtime system.
+    *
+    * The init method implementation should typecast the context parameter to an appropriate Java type.
+    * For service endpoints deployed on a servlet container based JAX-RPC runtime system, the context parameter is
+    * of the Java type javax.xml.rpc.server.ServletEndpointContext. The ServletEndpointContext provides an endpoint
+    * context maintained by the underlying servlet container based JAX-RPC runtime system
+    *
+    * @param context Endpoint context for a JAX-RPC service endpoint
+    * @throws ServiceException If any error in initialization of the service endpoint; or if any illegal context has been provided in the init method
+    */
+   public void init(Object context) throws ServiceException;
+
+   /**
+    *  JAX-RPC runtime system ends the lifecycle of a service endpoint instance by invoking the destroy method.
+    * The service endpoint releases its resourcesin the implementation of the destroy method. 
+    */
+   public void destroy();
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/server/ServiceLifecycle.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/server/ServletEndpointContext.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/server/ServletEndpointContext.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/server/ServletEndpointContext.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,101 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.server;
+
+import java.security.Principal;
+
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpSession;
+import javax.xml.rpc.handler.MessageContext;
+
+/**
+ * This interface provides an endpoint context maintained by the underlying
+ * servlet container based JAX-RPC runtime system. For service endpoints
+ * deployed on a servlet container based JAX-RPC runtime system, the context
+ * parameter in the ServiceLifecycle.init method is required to be of the Java
+ * type javax.xml.rpc.server.ServletEndpointContext.
+ * 
+ * A servlet container based JAX-RPC runtime system implements the
+ * ServletEndpointContext interface. The JAX-RPC runtime system is required to
+ * provide appropriate session, message context, servlet context and user
+ * principal information per method invocation on the endpoint class.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @author Rahul Sharma, Roberto Chinnici (javadoc)
+ * @version $Revision$
+ */
+public interface ServletEndpointContext
+{
+   /**
+    * The getHttpSession method returns the current HTTP session (as a javax.servlet.http.HTTPSession).
+    * When invoked by the service endpoint within a remote method implementation, the getHttpSession returns the HTTP
+    * session associated currently with this method invocation. This method returns null if there is no HTTP session
+    * currently active and associated with this service endpoint. An endpoint class should not rely on an active HTTP
+    * session being always there; the underlying JAX-RPC runtime system is responsible for managing whether or not there
+    * is an active HTTP session.
+    *
+    * The getHttpSession method throws JAXRPCException if invoked by an non HTTP bound endpoint.
+    *
+    * @return The HTTP session associated with the current invocation or null if there is no active session.
+    */
+   public HttpSession getHttpSession();
+
+   /**
+    * The method getMessageContext returns the MessageContext targeted for this endpoint instance.
+    * This enables the service endpoint instance to acccess the MessageContext propagated by request HandlerChain
+    * (and its contained Handler instances) to the target endpoint instance and to share any SOAP message processing related context.
+    * The endpoint instance can access and manipulate the MessageContext and share the SOAP message processing related context with the response HandlerChain.
+    *
+    * @return MessageContext; If there is no associated MessageContext, this method returns null.
+    */
+   public MessageContext getMessageContext();
+
+   /**
+    * The method getServletContext returns the ServletContext associated with the web application that contain this endpoint.
+    * According to the Servlet specification, There is one context per web application (installed as a WAR) per JVM .
+    * A servlet based service endpoint is deployed as part of a web application.
+    * @return ServletContext
+    */
+   public ServletContext getServletContext();
+
+   /**
+    * Returns a java.security.Principal instance that contains the name of the authenticated user for the current method
+    * invocation on the endpoint instance. This method returns null if there is no associated principal yet.
+    * The underlying JAX-RPC runtime system takes the responsibility of providing the appropriate authenticated principal
+    * for a remote method invocation on the service endpoint instance.
+    *
+    * @return A java.security.Principal for the authenticated principal associated with the current invocation on the
+    * servlet endpoint instance; Returns null if there no authenticated user associated with a method invocation.
+
+    */
+   public Principal getUserPrincipal();
+
+   /**
+    * Returns a boolean indicating whether the authenticated user for the current method invocation on the endpoint
+    * instance is included in the specified logical "role".
+    *
+    * @param role a String specifying the name of the role
+    * @return a boolean indicating whether the authenticated user associated with the current method invocation belongs
+    * to a given role; false if the user has not been authenticated
+    */
+   public boolean isUserInRole(String role);
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/server/ServletEndpointContext.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/rpc/soap/SOAPFaultException.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/rpc/soap/SOAPFaultException.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/rpc/soap/SOAPFaultException.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,91 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.rpc.soap;
+
+// $Id$
+
+import javax.xml.namespace.QName;
+import javax.xml.soap.Detail;
+import javax.xml.soap.Name;
+
+import org.jboss.logging.Logger;
+
+/** The SOAPFaultException exception represents a SOAP fault.
+ * 
+ * The message part in the SOAP fault maps to the contents of faultdetail
+ * element accessible through the getDetail method on the SOAPFaultException.
+ * The method createDetail on the javax.xml.soap.SOAPFactory creates an instance
+ * of the javax.xml.soap.Detail.
+ * 
+ * The faultstring provides a human-readable description of the SOAP fault. The
+ * faultcode element provides an algorithmic mapping of the SOAP fault.
+ *  
+ * Refer to SOAP 1.1 and WSDL 1.1 specifications for more details of the SOAP
+ * faults. 
+ * 
+ * @author Scott.Stark at jboss.org
+ * @author Thomas.Diesler at jboss.org
+ * @author Rahul Sharma (javadoc)
+ */
+public class SOAPFaultException extends RuntimeException
+{
+   // provide logging
+   private static Logger log = Logger.getLogger(SOAPFaultException.class);
+
+   private QName faultCode;
+   private String faultString;
+   private String faultActor;
+   private Detail faultDetail;
+
+   public SOAPFaultException(QName faultCode, String faultString, String faultActor, Detail faultDetail)
+   {
+      super(faultString);
+
+      Name detailName = faultDetail != null ? faultDetail.getElementName() : null;
+      if(log.isDebugEnabled()) log.debug("new SOAPFaultException [code=" + faultCode + ",string=" + faultString + ",actor=" + faultActor + ",detail=" + detailName + "]");
+
+      this.faultCode = faultCode;
+      this.faultString = faultString;
+      this.faultActor = faultActor;
+      this.faultDetail = faultDetail;
+   }
+
+   public QName getFaultCode()
+   {
+      return faultCode;
+   }
+
+   public String getFaultString()
+   {
+      return faultString;
+   }
+
+   public String getFaultActor()
+   {
+      return faultActor;
+   }
+
+   public Detail getDetail()
+   {
+      return faultDetail;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/rpc/soap/SOAPFaultException.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/AttachmentPart.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/AttachmentPart.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/AttachmentPart.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,352 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+import java.io.InputStream;
+import java.util.Iterator;
+
+import javax.activation.DataHandler;
+
+/**
+    A single attachment to a SOAPMessage object. A SOAPMessage object may contain zero, one, or
+    many AttachmentPart objects. Each AttachmentPart object consists of two parts, applicationspecific
+    content and associated MIME headers. The MIME headers consists of name/value pairs that can
+    be used to identify and describe the content.
+   
+    An AttachmentPart object must conform to certain standards.
+   
+    1. It must conform to MIME [RFC2045] standards (http://www.ietf.org/rfc/rfc2045.txt)
+    2. It MUST contain content
+    3. The header portion MUST include the following header:
+   
+    Content-Type
+    This header identifies the type of data in the content of an AttachmentPart object and MUST
+    conform to [RFC2045]. The following is an example of a Content-Type header:
+   
+    Content-Type: application/xml
+    
+    The following line of code, in which ap is an AttachmentPart object, sets the header shown in the
+    previous example.
+   
+    ap.setMimeHeader(“Content-Type”, “application/xml”);
+    
+    There are no restrictions on the content portion of an AttachmentPart object. The content may be
+    anything from a simple plain text object to a complex XML document or image file.
+   
+    An AttachmentPart object is created with the method
+    SOAPMessage.createAttachmentPart. After setting its MIME headers, the
+    AttachmentPart object is added to the message that created it with the method
+    SOAPMessage.addAttachmentPart.
+   
+    The following code fragment, in which m is a SOAPMessage object and contentStringl is a
+    String, creates an instance of AttachmentPart, sets the AttachmentPart object with some
+    content and header information, and adds the AttachmentPart object to the SOAPMessage object.
+   
+    AttachmentPart ap1 = m.createAttachmentPart();
+    ap1.setContent(contentString1, “text/plain”);
+    m.addAttachmentPart(ap1);
+    
+    The following code fragment creates and adds a second AttachmentPart instance to the same
+    message. jpegData is a binary byte buffer representing the jpeg file.
+   
+    AttachmentPart ap2 = m.createAttachmentPart();
+    byte[] jpegData = ...;
+    ap2.setContent(new ByteArrayInputStream(jpegData), “image/jpeg”);
+    m.addAttachmentPart(ap2);
+    
+    The getContent method retrieves the contents and header from an AttachmentPart object.
+    Depending on the DataContentHandler objects present, the returned Object can either be a
+    typed Java object corresponding to the MIME type or an InputStream object that contains the
+    content as bytes.
+   
+    String content1 = ap1.getContent();
+    java.io.InputStream content2 = ap2.getContent();
+    
+    The method clearContent removes all the content from an AttachmentPart object but does not
+    affect its header information.
+   
+    ap1.clearContent();
+ 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public abstract class AttachmentPart
+{
+   private String contentId;
+   private String contentLocation;
+   private String contentType;
+
+   /**
+    * Adds a MIME header with the specified name and value to this AttachmentPart object.
+    *
+    * Note that RFC822 headers can contain only US-ASCII characters.
+    * @param name a String giving the name of the header to be added
+    * @param value a String giving the value of the header to be added
+    */
+   public abstract void addMimeHeader(String name, String value);
+
+   /**
+    * Clears out the content of this AttachmentPart object. The MIME header portion is left untouched.
+    */
+   public abstract void clearContent();
+
+   /**
+    * Retrieves all the headers for this AttachmentPart object as an iterator over the MimeHeader objects.
+    * @return an Iterator object with all of the Mime headers for this AttachmentPart object
+    */
+   public abstract Iterator getAllMimeHeaders();
+
+   /**
+    * Gets the content of this AttachmentPart object as a Java object.
+    * The type of the returned Java object depends on
+    * (1) the DataContentHandler object that is used to interpret the bytes and
+    * (2) the Content-Type given in the header.
+    *
+    * For the MIME content types "text/plain", "text/html" and "text/xml", the DataContentHandler object does the
+    * conversions to and from the Java types corresponding to the MIME types.
+    *
+    * For other MIME types,the DataContentHandler object can return an InputStream object that contains the content
+    * data as raw bytes.
+    *
+    * A SAAJ-compliant implementation must, as a minimum, return a java.lang.String object corresponding to any
+    * content stream with a Content-Type value of text/plain, a javax.xml.transform.stream.StreamSource object
+    * corresponding to a content stream with a Content-Type value of text/xml,
+    * a java.awt.Image object corresponding to a content stream with a Content-Type value of image/gif or image/jpeg.
+    *
+    * For those content types that an installed DataContentHandler object does not understand, the DataContentHandler
+    * object is required to return a java.io.InputStream object with the raw bytes.
+    *
+    * @return a Java object with the content of this AttachmentPart object
+    * @throws SOAPException if there is no content set into this AttachmentPart object or if there was a data transformation error
+    */
+   public abstract Object getContent() throws SOAPException;
+
+   /**
+    * Returns an InputStream which can be used to obtain the content of AttachmentPart as Base64 encoded character data, 
+    * this method would base64 encode the raw bytes of the attachment and return.
+    * 
+    * @return an InputStream from which the Base64 encoded AttachmentPart can be read.
+    * @throws SOAPException if there is no content set into this AttachmentPart object or if there was a data transformation error.
+    * @since SAAJ 1.3
+    */
+   public abstract InputStream getBase64Content() throws SOAPException;
+
+   /**
+    * Gets the content of this AttachmentPart object as an InputStream as if a call had been made to getContent and no DataContentHandler 
+    * had been registered for the content-type of this AttachmentPart.
+    * 
+    * Note that reading from the returned InputStream would result in consuming the data in the stream. 
+    * It is the responsibility of the caller to reset the InputStream appropriately before calling a Subsequent API. 
+    * If a copy of the raw attachment content is required then the getRawContentBytes() API should be used instead.
+    *  
+    * @return an InputStream from which the raw data contained by the AttachmentPart can be accessed.
+    * @throws SOAPException if there is no content set into this AttachmentPart object or if there was a data transformation error.
+    * @since SAAJ 1.3
+    */
+   public abstract java.io.InputStream getRawContent() throws SOAPException;
+
+   /**
+    * Gets the content of this AttachmentPart object as a byte[] array as if a call had been 
+    * made to getContent and no DataContentHandler had been registered for the content-type of this AttachmentPart.
+    * 
+    * @return a byte[] array containing the raw data of the AttachmentPart.
+    * @throws SOAPException if there is no content set into this AttachmentPart object or if there was a data transformation error.
+    * @since SAAJ 1.3
+    */
+   public abstract byte[] getRawContentBytes() throws SOAPException;
+
+   /**
+    * Gets the DataHandler object for this AttachmentPart object.
+    * @return object associated with this AttachmentPart object
+    * @throws SOAPException if there is no data in this AttachmentPart object
+    */
+   public abstract DataHandler getDataHandler() throws SOAPException;
+
+   /**
+    * Retrieves all MimeHeader objects that match a name in the given array.
+    * @param names a String array with the name(s) of the MIME headers to be returned
+    * @return all of the MIME headers that match one of the names in the given array as an Iterator object
+    */
+   public abstract Iterator getMatchingMimeHeaders(String[] names);
+
+   /**
+    * Gets all the values of the header identified by the given String.
+    * @param name the name of the header; example: "Content-Type"
+    * @return a String array giving the value for the specified header
+    */
+   public abstract String[] getMimeHeader(String name);
+
+   /**
+    * Retrieves all MimeHeader objects whose name does not match a name in the given array.
+    * @param names a String array with the name(s) of the MIME headers not to be returned
+    * @return all of the MIME headers in this AttachmentPart object except those that match one of the names
+    * in the given array. The nonmatching MIME headers are returned as an Iterator object.
+    */
+   public abstract Iterator getNonMatchingMimeHeaders(String[] names);
+
+   /**
+    * Returns the number of bytes in this AttachmentPart object.
+    * @return the size of this AttachmentPart object in bytes or -1 if the size cannot be determined
+    * @throws SOAPException if the content of this attachment is corrupted of if there was an exception while trying to determine the size.
+    */
+   public abstract int getSize() throws SOAPException;
+
+   /**
+    * Removes all the MIME header entries.
+    */
+   public abstract void removeAllMimeHeaders();
+
+   /**
+    * Removes all MIME headers that match the given name.
+    * @param name the string name of the MIME header/s to be removed
+    */
+   public abstract void removeMimeHeader(String name);
+
+   /**
+    * Sets the content of this attachment part to that of the given Object and sets the value of the Content-Type header
+    * to the given type. The type of the Object should correspond to the value given for the Content-Type.
+    * This depends on the particular set of DataContentHandler objects in use.
+    *
+    * @param object the Java object that makes up the content for this attachment part
+    * @param contentType the MIME string that specifies the type of the content
+    * @throws IllegalArgumentException if the contentType does not match the type of the content object,
+    * or if there was no DataContentHandler object for this content object
+    */
+   public abstract void setContent(Object object, String contentType);
+
+   /**
+    * Sets the content of this attachment part to that contained by the InputStream content and sets the value of the Content-Type header to the value contained in contentType.
+    * 
+    * A subsequent call to getSize() may not be an exact measure of the content size.
+    *  
+    * @param content the raw data to add to the attachment part
+    * @param contentType the value to set into the Content-Type header
+    * @throws SOAPException if an there is an error in setting the content 
+    * @throws NullPointerException if content is null
+    * @since SAAJ 1.3
+    */
+   public abstract void setRawContent(InputStream content, String contentType) throws SOAPException;
+
+   /**
+    * Sets the content of this attachment part to that contained by the byte[] array content and sets the value of the Content-Type 
+    * header to the value contained in contentType.
+    * 
+    * @param content the raw data to add to the attachment part
+    * @param contentType the value to set into the Content-Type header
+    * @param offset the offset in the byte array of the content
+    * @param len the number of bytes that form the content
+    * @throws SOAPException if an there is an error in setting the content or content is null
+    * @since SAAJ 1.3
+    */
+   public abstract void setRawContentBytes(byte[] content, int offset, int len, String contentType) throws SOAPException;
+
+   /**
+    * Sets the content of this attachment part from the Base64 source InputStream and sets the value of the Content-Type header 
+    * to the value contained in contentType, This method would first decode the base64 input and write the resulting raw bytes to the attachment.
+    * 
+    * A subsequent call to getSize() may not be an exact measure of the content size.
+    *  
+    * @param content the base64 encoded data to add to the attachment part
+    * @param contentType the value to set into the Content-Type header
+    * @throws SOAPException if an there is an error in setting the content
+    * @throws NullPointerException if content is null
+    * @since SAAJ 1.3
+    */
+   public abstract void setBase64Content(InputStream content, String contentType) throws SOAPException;
+
+   /**
+    * Sets the given DataHandler object as the data handler for this AttachmentPart object.
+    * Typically, on an incoming message, the data handler is automatically set.
+    * When a message is being created and populated with content, the setDataHandler method can be used to get data
+    * from various data sources into the message.
+    * @param dataHandler the DataHandler object to be set
+    * @throws IllegalArgumentException if there was a problem with the specified DataHandler object
+    */
+   public abstract void setDataHandler(DataHandler dataHandler);
+
+   /**
+    * Changes the first header entry that matches the given name to the given value, adding a new header if no existing
+    * header matches. This method also removes all matching headers but the first.
+    *
+    * Note that RFC822 headers can only contain US-ASCII characters.
+    * @param name a String giving the name of the header for which to search
+    * @param value a String giving the value to be set for the header whose name matches the given name
+    * @throws IllegalArgumentException if there was a problem with the specified mime header name or value
+    */
+   public abstract void setMimeHeader(String name, String value);
+
+   /**
+    * Gets the value of the MIME header whose name is "Content-Id".
+    * @return a String giving the value of the "Content-Id" header or null if there is none
+    */
+   public String getContentId()
+   {
+      return contentId;
+   }
+
+   /**
+    * Sets the MIME header whose name is "Content-Id" with the given value.
+    * @param contentId a String giving the value of the "Content-Id" header
+    * @throws IllegalArgumentException if there was a problem with the specified contentId value
+    */
+   public void setContentId(String contentId)
+   {
+      this.contentId = contentId;
+   }
+
+   /**
+    * Gets the value of the MIME header whose name is "Content-Location".
+    * @return a String giving the value of the "Content-Location" header or null if there is none
+    */
+   public String getContentLocation()
+   {
+      return contentLocation;
+   }
+
+   /**
+    * Sets the MIME header whose name is "Content-Location" with the given value.
+    * @throws IllegalArgumentException if there was a problem with the specified content location
+    */
+   public void setContentLocation(String contentLocation)
+   {
+      this.contentLocation = contentLocation;
+   }
+
+   /**
+    * Gets the value of the MIME header whose name is "Content-Type".
+    * @return a String giving the value of the "Content-Type" header or null if there is none
+    */
+   public String getContentType()
+   {
+      return contentType;
+   }
+
+   /**
+    * Sets the MIME header whose name is "Content-Type" with the given value.
+    * @param contentType a String giving the value of the "Content-Type" header
+    * @throws IllegalArgumentException if there was a problem with the specified content type
+    */
+   public void setContentType(String contentType)
+   {
+      this.contentType = contentType;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/AttachmentPart.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/Detail.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/Detail.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/Detail.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,74 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+import java.util.Iterator;
+
+import javax.xml.namespace.QName;
+
+/** 
+   A container for DetailEntry objects. DetailEntry objects give detailed error information that is
+   application-specific and related to the SOAPBody object that contains it.
+   
+   A Detail object, which is part of a SOAPFault object, can be retrieved using the method
+   SOAPFault.getDetail. The Detail interface provides two methods. One creates a new
+   DetailEntry object and also automatically adds it to the Detail object. The second method gets a
+   list of the DetailEntry objects contained in a Detail object.
+   
+   The following code fragment, in which sf is a SOAPFault object, gets its Detail object (d), adds a
+   new DetailEntry object to d, and then gets a list of all the DetailEntry objects in d. The code
+   also creates a Name object to pass to the method addDetailEntry. The variable se, used to create the
+   Name object, is a SOAPEnvelope object.
+   
+      Detail d = sf.getDetail();
+      Name name = se.createName(“GetLastTradePrice”, “WOMBAT”, “http://www.wombat.org/trader”);
+      d.addDetailEntry(name);
+      Iterator it = d.getDetailEntries();
+
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface Detail extends SOAPFaultElement
+{
+   /**
+    * Creates a new DetailEntry object with the given name and adds it to this Detail object.
+    * @param name a Name object identifying the new DetailEntry object
+    * @throws SOAPException thrown when there is a problem in adding a DetailEntry object to this Detail object.
+    */
+   public DetailEntry addDetailEntry(Name name) throws SOAPException;
+
+   /**
+    * Creates a new DetailEntry object with the given QName and adds it to this Detail object. 
+    * This method is the preferred over the one using Name.
+    * 
+    * @param qname a QName object identifying the new DetailEntry object
+    * @throws SOAPException thrown when there is a problem in adding a DetailEntry object to this Detail object.
+    * @since SAAJ 1.3
+    */
+   public DetailEntry addDetailEntry(QName qname) throws SOAPException;
+
+   /**
+    * Gets an Iterator over all of the DetailEntrys in this Detail object.
+    * @return an Iterator object over the DetailEntry  objects in this Detail object
+    */
+   public Iterator getDetailEntries();
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/Detail.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/DetailEntry.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/DetailEntry.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/DetailEntry.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,33 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+/** The content for a Detail object, giving details for a SOAPFault object. A
+ * DetailEntry object, which carries information about errors related to the
+ * SOAPBody object that contains it, is application-specific.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface DetailEntry extends SOAPElement
+{
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/DetailEntry.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/FactoryLoader.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/FactoryLoader.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/FactoryLoader.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,197 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.util.Properties;
+
+import org.jboss.logging.Logger;
+
+// $Id$
+
+/**
+ * Load a factory using the factory lookup procedure 
+ * 
+ * @author Thomas.Diesler at jboss.com
+ * @since 14-Dec-2006
+ */
+public class FactoryLoader
+{
+   // provide logging
+   private static Logger log = Logger.getLogger(FactoryLoader.class);
+   
+   private FactoryLoader()
+   {
+   }
+
+   /**
+    * Load a factory using this ordered lookup procedure
+    * 
+    *  1. Use the system property
+    *  2. Use the properties file "lib/jaxm.properties" in the JRE directory
+    *  3. Use the Services API (as detailed in the JAR specification), if available, to determine the classname
+    *  4. Use the default factory implementation class
+    *  
+    *  @return the factory impl, or null 
+    */
+   public static Object loadFactory(String propertyName, String defaultFactory) 
+   {
+      Object factory = null;
+      ClassLoader loader = Thread.currentThread().getContextClassLoader();
+
+      // Use the system property
+      PrivilegedAction action = new PropertyAccessAction(propertyName);
+      String factoryName = (String)AccessController.doPrivileged(action);
+      if (factoryName != null)
+      {
+         try
+         {
+            if(log.isDebugEnabled()) log.debug("Load from system property: " + factoryName);
+            Class factoryClass = loader.loadClass(factoryName);
+            factory = factoryClass.newInstance();
+         }
+         catch (Throwable t)
+         {
+            throw new IllegalStateException("Failed to load " + propertyName + ": " + factoryName, t);
+         }
+      }
+
+      // Use the properties file "lib/jaxm.properties" in the JRE directory.
+      // This configuration file is in standard java.util.Properties format and contains the fully qualified name of the implementation class with the key being the system property defined above.
+      if (factory == null)
+      {
+         action = new PropertyAccessAction("java.home");
+         String javaHome = (String)AccessController.doPrivileged(action);
+         File jaxmFile = new File(javaHome + "/lib/jaxm.properties");
+         if (jaxmFile.exists())
+         {
+            try
+            {
+               action = new PropertyFileAccessAction(jaxmFile.getCanonicalPath());
+               Properties jaxmProperties = (Properties)AccessController.doPrivileged(action);
+               factoryName = jaxmProperties.getProperty(propertyName);
+               if (factoryName != null)
+               {
+                  if(log.isDebugEnabled()) log.debug("Load from " + jaxmFile + ": " + factoryName);
+                  Class factoryClass = loader.loadClass(factoryName);
+                  factory = factoryClass.newInstance();
+               }
+            }
+            catch (Throwable t)
+            {
+               throw new IllegalStateException("Failed to load " + propertyName + ": " + factoryName, t);
+            }
+         }
+      }
+
+      // Use the Services API (as detailed in the JAR specification), if available, to determine the classname.
+      if (factory == null)
+      {
+         String filename = "META-INF/services/" + propertyName;
+         InputStream inStream = loader.getResourceAsStream(filename);
+         if (inStream != null)
+         {
+            try
+            {
+               BufferedReader br = new BufferedReader(new InputStreamReader(inStream, "UTF-8"));
+               factoryName = br.readLine();
+               br.close();
+               if (factoryName != null)
+               {
+                  if(log.isTraceEnabled()) log.trace("Load from Service API " + filename + ": " + factoryName);
+                  Class factoryClass = loader.loadClass(factoryName);
+                  factory = factoryClass.newInstance();
+               }
+            }
+            catch (Throwable t)
+            {
+               throw new IllegalStateException("Failed to load " + propertyName + ": " + factoryName, t);
+            }
+         }
+      }
+
+      // Use the default factory implementation class.
+      if (factory == null && defaultFactory != null)
+      {
+         try
+         {
+            factoryName = defaultFactory;
+            if(log.isDebugEnabled()) log.debug("Load from default: " + factoryName);
+            Class factoryClass = loader.loadClass(factoryName);
+            factory = factoryClass.newInstance();
+         }
+         catch (Throwable t)
+         {
+            throw new IllegalStateException("Failed to load " + propertyName + ": " + factoryName, t);
+         }
+      }
+
+      return factory;
+   }
+
+   private static class PropertyAccessAction implements PrivilegedAction
+   {
+      private String name;
+
+      PropertyAccessAction(String name)
+      {
+         this.name = name;
+      }
+
+      public Object run()
+      {
+         return System.getProperty(name);
+      }
+   }
+
+   private static class PropertyFileAccessAction implements PrivilegedAction
+   {
+      private String filename;
+
+      PropertyFileAccessAction(String filename)
+      {
+         this.filename = filename;
+      }
+
+      public Object run()
+      {
+         try
+         {
+            InputStream inStream = new FileInputStream(filename);
+            Properties props = new Properties();
+            props.load(inStream);
+            return props;
+         }
+         catch (IOException ex)
+         {
+            throw new SecurityException("Cannot load properties: " + filename, ex);
+         }
+      }
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/FactoryLoader.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/MessageFactory.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/MessageFactory.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/MessageFactory.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,138 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ A factory for creating SOAPMessage objects.
+ 
+ A SAAJ client can create a MessageFactory object using the method newInstance, as shown in the following lines of code.
+ 
+ MessageFactory mf = MessageFactory.newInstance();
+ MessageFactory mf12 = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
+ 
+ 
+ All MessageFactory objects, regardless of how they are created, will produce SOAPMessage objects that have the following elements by default:
+ 
+ * A SOAPPart object
+ * A SOAPEnvelope object
+ * A SOAPBody object
+ * A SOAPHeader object 
+ 
+ In some cases, specialized MessageFactory objects may be obtained that produce messages prepopulated with additional entries in the SOAPHeader object and the SOAPBody object. The content of a new SOAPMessage object depends on which of the two MessageFactory methods is used to create it.
+ 
+ * createMessage()
+ This is the method clients would normally use to create a request message.
+ * createMessage(MimeHeaders, java.io.InputStream) -- message has content from the InputStream object and headers from the MimeHeaders object
+ This method can be used internally by a service implementation to create a message that is a response to a request.
+ 
+ *
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public abstract class MessageFactory
+{
+  
+   /**
+    * Creates a new MessageFactory object that is an instance of the default implementation (SOAP 1.1), 
+    * This method uses the following ordered lookup procedure to determine the MessageFactory implementation class to load:
+    * 
+    * Use the javax.xml.soap.MessageFactory system property.
+    * Use the properties file "lib/jaxm.properties" in the JRE directory. This configuration file is in standard java.util.Properties format and contains the fully qualified name of the implementation class with the key being the system property defined above.
+    * Use the Services API (as detailed in the JAR specification), if available, to determine the classname. The Services API will look for a classname in the file META-INF/services/javax.xml.soap.MessageFactory in jars available to the runtime.
+    * Use the SAAJMetaFactory instance to locate the MessageFactory implementation class.
+    * @throws SOAPException if there was an error in creating the default implementation of the MessageFactory. 
+    */
+   public static MessageFactory newInstance() throws SOAPException
+   {
+      MessageFactory factory = null;
+      try
+      {
+         String propertyName = "javax.xml.soap.MessageFactory";
+         factory = (MessageFactory)FactoryLoader.loadFactory(propertyName, null);
+      }
+      catch (RuntimeException rte)
+      {
+         throw new SOAPException(rte);
+      }
+      
+      // Use the SAAJMetaFactory instance to locate the MessageFactory implementation class.
+      if (factory == null)
+      {
+         SAAJMetaFactory saajFactory = SAAJMetaFactory.getInstance();
+         factory = saajFactory.newMessageFactory(SOAPConstants.DYNAMIC_SOAP_PROTOCOL);
+      }
+      
+      if (factory == null)
+         throw new SOAPException("Failed to to determine the MessageFactory implementation class");
+      
+      return factory;
+   }
+
+   /**
+    * Creates a new MessageFactory object that is an instance of the specified implementation. 
+    * May be a dynamic message factory, a SOAP 1.1 message factory, or a SOAP 1.2 message factory. 
+    * A dynamic message factory creates messages based on the MIME headers specified as arguments to the createMessage method. 
+    * This method uses the SAAJMetaFactory to locate the implementation class and create the MessageFactory instance.
+    * 
+    * @param protocol a string constant representing the class of the specified message factory implementation. 
+    *    May be either DYNAMIC_SOAP_PROTOCOL, DEFAULT_SOAP_PROTOCOL (which is the same as) SOAP_1_1_PROTOCOL, or SOAP_1_2_PROTOCOL.
+    * @throws SOAPException if there was an error in creating the specified implementation of MessageFactory.
+    * @since SAAJ 1.3
+    */
+   public static MessageFactory newInstance(String protocol) throws SOAPException
+   {
+      SAAJMetaFactory saajFactory = SAAJMetaFactory.getInstance();
+      MessageFactory factory = saajFactory.newMessageFactory(protocol);
+      
+      if (factory == null)
+         throw new SOAPException("Failed to to determine the MessageFactory implementation class");
+      
+      return factory;
+   }
+   
+   /**
+    * Creates a new SOAPMessage object with the default SOAPPart, SOAPEnvelope, SOAPBody, and SOAPHeader objects.
+    * Profile-specific message factories can choose to prepopulate the SOAPMessage object with profile-specific headers.
+    *
+    * Content can be added to this message's SOAPPart object, and the message can be sent "as is" when a message
+    * containing only a SOAP part is sufficient. Otherwise, the SOAPMessage object needs to create one or more
+    * AttachmentPart objects and add them to itself. Any content that is not in XML format must be in an AttachmentPart object.
+    *
+    * @return a new SOAPMessage object
+    * @throws SOAPException if a SOAP error occurs
+    */
+   public abstract SOAPMessage createMessage() throws SOAPException;
+
+   /**
+    * Internalizes the contents of the given InputStream object into a new SOAPMessage object and returns the SOAPMessage object.
+    *
+    * @param headers the transport-specific headers passed to the message in a transport-independent fashion for creation of the message
+    * @param in the InputStream object that contains the data for a message
+    * @return a new SOAPMessage object containing the data from the given InputStream object
+    * @throws IOException if there is a problem in reading data from the input stream
+    * @throws SOAPException  if the message is invalid
+    */
+   public abstract SOAPMessage createMessage(MimeHeaders headers, InputStream in) throws IOException, SOAPException;
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/MessageFactory.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/MimeHeader.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/MimeHeader.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/MimeHeader.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,68 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+/** An object that stores a MIME header name and its value. One or more
+ * MimeHeader objects may be contained in a MimeHeaders object.
+ *  
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class MimeHeader
+{
+   private String name;
+   private String value;
+
+   public MimeHeader(String name, String value)
+   {
+      this.name = name;
+      this.value = value;
+   }
+
+   public String getName()
+   {
+      return name;
+   }
+
+   public String getValue()
+   {
+      return value;
+   }
+
+   public int hashCode()
+   {
+      return toString().hashCode();
+   }
+
+   public boolean equals(Object obj)
+   {
+      if (!(obj instanceof MimeHeader))
+         return false;
+      MimeHeader other = (MimeHeader)obj;
+      return toString().equals(other.toString());
+   }
+
+   public String toString()
+   {
+      return "[" + name + "=" + value + "]";
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/MimeHeader.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/MimeHeaders.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/MimeHeaders.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/MimeHeaders.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,230 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+// $Id$
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+
+/** A container for MimeHeader objects, which represent the MIME headers present
+ * in a MIME part of a message. 
+ * 
+ * This class is used primarily when an application wants to retrieve specific
+ * attachments based on certain MIME headers and values. This class will most
+ * likely be used by implementations of AttachmentPart and other MIME dependent
+ * parts of the SAAJ API.
+ *  
+ * @author Scott.Stark at jboss.org
+ * @author Thomas.Diesler at jboss.org
+ */
+public class MimeHeaders
+{
+   private LinkedList headers = new LinkedList();
+
+   /**
+    * Adds a MimeHeader object with the specified name and value to this MimeHeaders object's list of headers.
+    * 
+    * Note that RFC822 headers can contain only US-ASCII characters.
+    *  
+    * @param name a String with the name of the header to be added
+    * @param value a String with the value of the header to be added
+    * @throws IllegalArgumentException - if there was a problem in the mime header name or value being added
+    */
+   public void addHeader(String name, String value) throws IllegalArgumentException
+   {
+      if (name == null || name.length() == 0)
+         throw new IllegalArgumentException("Invalid null or empty header name");
+      
+      MimeHeader header = new MimeHeader(name, value);
+      headers.add(header);
+   }
+
+   /**
+    * Returns all the MimeHeaders in this MimeHeaders object.
+    * @return an Iterator object over this MimeHeaders  object's list of MimeHeader objects
+    */
+   public Iterator getAllHeaders()
+   {
+      return headers.iterator();
+   }
+
+   /**
+    * Returns all of the values for the specified header as an array of String objects.
+    * 
+    * @param name the name of the header for which values will be returned
+    * @return a String array with all of the values for the specified header
+    */
+   public String[] getHeader(String name)
+   {
+      ArrayList tmp = new ArrayList();
+      for (int n = 0; n < headers.size(); n++)
+      {
+         MimeHeader mh = (MimeHeader)headers.get(n);
+         if (mh.getName().equalsIgnoreCase(name))
+            tmp.add(mh.getValue());
+      }
+      String[] values = null;
+      if (tmp.size() > 0)
+      {
+         values = new String[tmp.size()];
+         tmp.toArray(values);
+      }
+      return values;
+   }
+
+   /**
+    * Returns all the MimeHeader objects whose name matches a name in the given array of names.
+    * @param names an array of String objects with the names for which to search
+    * @return an Iterator object over the MimeHeader  objects whose name matches one of the names in the given list
+    */
+   public Iterator getMatchingHeaders(String[] names)
+   {
+      MatchingIterator iter = new MatchingIterator(headers, names, true);
+      return iter;
+   }
+
+   /**
+    * Returns all of the MimeHeader objects whose name does not match a name in the given array of names.
+    * @param names an array of String objects with the names for which to search
+    * @return an Iterator object over the MimeHeader  objects whose name does not match one of the names in the given list
+    */
+   public Iterator getNonMatchingHeaders(String[] names)
+   {
+      MatchingIterator iter = new MatchingIterator(headers, names, false);
+      return iter;
+   }
+
+   /**
+    * Removes all the header entries from this MimeHeaders object.
+    */
+   public void removeAllHeaders()
+   {
+      headers.clear();
+   }
+
+   /**
+    * Remove all MimeHeader objects whose name matches the given name.
+    * @param name a String with the name of the header for which to search
+    */
+   public void removeHeader(String name)
+   {
+      Iterator iter = headers.iterator();
+      while (iter.hasNext())
+      {
+         MimeHeader mh = (MimeHeader)iter.next();
+         if (mh.getName().equalsIgnoreCase(name))
+            iter.remove();
+      }
+   }
+
+   /** 
+    * Replaces the current value of the first header entry whose name matches
+    * the given name with the given value, adding a new header if no existing
+    * header name matches. This method also removes all matching headers after
+    * the first one.
+    * 
+    * Note that RFC822 headers can contain only US-ASCII characters.
+    * 
+    * @param name a String with the name of the header for which to search
+    * @param value a String with the value that will replace the current value of the specified header
+    * @throws IllegalArgumentException if there was a problem in the mime header name or the value being set
+    */
+   public void setHeader(String name, String value)
+   {
+      boolean didSet = false;
+      for (int n = 0; n < headers.size(); n++)
+      {
+         MimeHeader mh = (MimeHeader)headers.get(n);
+         if (mh.getName().equalsIgnoreCase(name))
+         {
+            if (didSet == true)
+            {
+               headers.remove(n);
+               n--;
+            }
+            else
+            {
+               mh = new MimeHeader(name, value);
+               headers.set(n, mh);
+               didSet = true;
+            }
+         }
+      }
+
+      if (didSet == false)
+      {
+         this.addHeader(name, value);
+      }
+   }
+
+   public String toString()
+   {
+      return "[MimeHeaders=" + headers + "]";
+   }
+   
+   private static class MatchingIterator implements Iterator
+   {
+      private LinkedList headers;
+      private HashSet names;
+      private boolean match;
+      private int index;
+      private MimeHeader mh;
+
+      MatchingIterator(LinkedList headers, String[] names, boolean match)
+      {
+         this.headers = headers;
+         this.index = 0;
+         this.names = new HashSet();
+         for (int n = 0; n < names.length; n++)
+            this.names.add(names[n].toLowerCase());
+         this.match = match;
+      }
+
+      public boolean hasNext()
+      {
+         boolean hasNext = index < headers.size();
+         while (hasNext == true)
+         {
+            mh = (MimeHeader)headers.get(index);
+            index++;
+            String name = mh.getName().toLowerCase();
+            if (names.contains(name) == match)
+               break;
+            hasNext = index < headers.size();
+         }
+         return hasNext;
+      }
+
+      public Object next()
+      {
+         return mh;
+      }
+
+      public void remove()
+      {
+         headers.remove(index - 1);
+      }
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/MimeHeaders.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/Name.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/Name.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/Name.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,86 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+/** A representation of an XML name. This interface provides methods for
+ getting the local and namespace-qualified names and also for getting the
+ prefix associated with the namespace for the name. It is also possible to get
+ the URI of the namespace.
+ 
+ The following is an example of a namespace declaration in an element.
+ 
+ <wombat:GetLastTradePrice xmlns:wombat="http://www.wombat.org/trader">
+ 
+ ("xmlns" stands for "XML namespace".) The following shows what the methods in
+ the Name interface will return. 
+ 
+ getQualifiedName will return "prefix:LocalName" = "WOMBAT:GetLastTradePrice" 
+ getURI will return "http://www.wombat.org/trader" 
+ getLocalName will return "GetLastTracePrice" 
+ getPrefix will return "WOMBAT" 
+ XML namespaces are used to disambiguate SOAP identifiers from
+ application-specific identifiers. 
+ Name objects are created using the method SOAPEnvelope.createName, which has
+ two versions. One method creates Name objects with a local name, a namespace
+ prefix, and a namespace URI. and the second creates Name objects with just a
+ local name. The following line of code, in which se is a SOAPEnvelope object,
+ creates a new Name object with all three.
+ 
+ Name name = se.createName("GetLastTradePrice", "WOMBAT",
+ "http://www.wombat.org/trader");
+ 
+ The following line of code gives an example of how a Name object can be used.
+ The variable element is a SOAPElement object. This code creates a new
+ SOAPElement object with the given name and adds it to element. 
+ 
+ element.addChildElement(name);
+
+ @author Scott.Stark at jboss.org
+ @version $Revision$
+ */
+public interface Name
+{
+   /** Gets the local name part of the XML name that this Name object represents.
+    *
+    * @return a string giving the local name
+    */
+   public String getLocalName();
+
+   /** Returns the prefix that was specified when this Name object was initialized.
+    * This prefix is associated with the namespace for the XML name that this Name object represents.
+    *
+    * @return the prefix as a string
+    */
+   public String getPrefix();
+
+   /** Gets the namespace-qualified name of the XML name that this Name object represents.
+    *
+    * @return the namespace-qualified name as a string
+    */
+   public String getQualifiedName();
+
+   /** Returns the URI of the namespace for the XML name that this Name object represents.
+    *
+    * @return the URI as a string
+    */
+   public String getURI();
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/Name.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/Node.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/Node.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/Node.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,79 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+/** A representation of a node (element) in an XML document. This interface
+ * extnends the standard DOM Node interface with methods for getting and setting
+ * the value of a node, for getting and setting the parent of a node, and for
+ * removing a node
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface Node extends org.w3c.dom.Node
+{
+
+   /**
+    * Removes this Node object from the tree.
+    */
+   public void detachNode();
+
+   /**
+    * Returns the parent element of this Node object.
+    * This method can throw an UnsupportedOperationException if the tree is not kept in memory.
+    * @return the SOAPElement object that is the parent of this Node object or null if this Node object is root
+    */
+   public SOAPElement getParentElement();
+
+   /**
+    * Sets the parent of this Node object to the given SOAPElement object.
+    * @param parent the SOAPElement object to be set as the parent of this Node object
+    * @throws SOAPException  if there is a problem in setting the parent to the given element
+    */
+   public void setParentElement(SOAPElement parent) throws SOAPException;
+
+   /**
+    * Returns the value of this node if this is a Text node or the value of the immediate child of this node otherwise.
+    * If there is an immediate child of this Node that it is a Text node then it's value will be returned.
+    * If there is more than one Text node then the value of the first Text Node will be returned.
+    * Otherwise null is returned.
+    * @return a String with the text of this node if this is a Text node or the text contained by the first immediate
+    * child of this Node object that is a Text object if such a child exists; null otherwise.
+    */
+   public String getValue();
+
+   /**
+    * If this is a Text node then this method will set its value, otherwise it sets the value of the immediate (Text)
+    * child of this node. The value of the immediate child of this node can be set only if, there is one child node and
+    * that node is a Text node, or if there are no children in which case a child Text node will be created.
+    * @param value A value string
+    * @throws IllegalStateException if the node is not a Text node and either has more than one child node or has a child node that is not a Text node.
+    */
+   public void setValue(String value);
+
+   /**
+    * Notifies the implementation that this Node object is no longer being used by the application and that the
+    * implementation is free to reuse this object for nodes that may be created later.
+    * Calling the method recycleNode implies that the method detachNode has been called previously.
+    */
+   public void recycleNode();
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/Node.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/SAAJMetaFactory.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/SAAJMetaFactory.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/SAAJMetaFactory.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,82 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+
+// $Id$
+
+/**
+ * The access point for the implementation classes of the factories defined in the SAAJ API.
+ * All of the newInstance methods defined on factories in SAAJ 1.3 defer to instances of this class to do the actual object creation.
+ * The implementations of newInstance() methods (in SOAPFactory and MessageFactory) that existed in SAAJ 1.2
+ * have been updated to also delegate to the SAAJMetaFactory when the SAAJ 1.2 defined lookup fails to locate the Factory implementation class name.
+ * 
+ * SAAJMetaFactory is a service provider interface. There are no public methods on this class.
+ * 
+ * @since SAAJ 1.3
+ */
+public abstract class SAAJMetaFactory
+{
+   protected SAAJMetaFactory()
+   {
+   }
+   
+   /**
+    * Creates a new instance of a concrete SAAJMetaFactory object. The SAAJMetaFactory is an SPI, 
+    * it pulls the creation of the other factories together into a single place. Changing out the SAAJMetaFactory 
+    * has the effect of changing out the entire SAAJ implementation. Service providers provide the name of their SAAJMetaFactory 
+    * implementation. This method uses the following ordered lookup procedure to determine the SAAJMetaFactory implementation class to load:
+    * 
+    *   - Use the javax.xml.soap.MetaFactory system property.
+    *   - Use the properties file "lib/jaxm.properties" in the JRE directory. This configuration file is in standard java.util.Properties format and contains the fully qualified name of the implementation class with the key being the system property defined above.
+    *   - Use the Services API (as detailed in the JAR specification), if available, to determine the classname. The Services API will look for a classname in the file META-INF/services/javax.xml.soap.MetaFactory in jars available to the runtime.
+    *   - Default to com.sun.xml.messaging.saaj.soap.SAAJMetaFactoryImpl.
+    *    
+    * @return a concrete SAAJMetaFactory object
+    * @throws SOAPException if there is an error in creating the SAAJMetaFactory
+    */
+   static SAAJMetaFactory getInstance() throws SOAPException
+   {
+      String propertyName = "javax.xml.soap.MetaFactory";
+      String defaultImpl = "org.jboss.ws.core.soap.SAAJMetaFactoryImpl";
+      SAAJMetaFactory factory = (SAAJMetaFactory)FactoryLoader.loadFactory(propertyName, defaultImpl);
+      
+      if (factory == null)
+         throw new SOAPException("Failed to to determine the implementation class for: " + propertyName);
+
+      return factory;
+   }
+   
+   /**
+    * Creates a MessageFactory object for the given String protocol.
+    * @param protocol a String indicating the protocol (SOAPConstants.SOAP_1_1_PROTOCOL, SOAPConstants.SOAP_1_2_PROTOCOL, SOAPConstants.DYNAMIC_SOAP_PROTOCOL)
+    * @throws SOAPException if there is an error in creating the MessageFactory
+    */
+   protected abstract MessageFactory newMessageFactory(String protocol) throws SOAPException;
+   
+   /**
+    * Creates a SOAPFactory object for the given String protocol.
+    * @param protocol a String indicating the protocol (SOAPConstants.SOAP_1_1_PROTOCOL, SOAPConstants.SOAP_1_2_PROTOCOL, SOAPConstants.DYNAMIC_SOAP_PROTOCOL)
+    * @throws SOAPException if there is an error in creating the SOAPFactory
+    */
+   protected abstract SOAPFactory newSOAPFactory(String protocol) throws SOAPException;
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/SAAJMetaFactory.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/SAAJResult.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/SAAJResult.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/SAAJResult.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,130 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+// $Id$
+
+import javax.xml.transform.dom.DOMResult;
+
+import org.w3c.dom.Element;
+
+/**
+ * Acts as a holder for the results of a JAXP transformation or a JAXB marshalling, in the form of a SAAJ tree. 
+ * These results should be accessed by using the getResult() method. The DOMResult.getNode()  method should be avoided in almost all cases.
+ * 
+ * @author Thomas.Diesler at jboss.org
+ * @since SAAJ 1.3
+ */
+public class SAAJResult extends DOMResult
+{
+   private SOAPElement rootElement;
+   
+   /**
+    * Creates a SAAJResult that will present results in the form of a SAAJ tree that supports the default (SOAP 1.1) protocol.
+    * 
+    * This kind of SAAJResult is meant for use in situations where the results will be used as a parameter to a method that 
+    * takes a parameter whose type, such as SOAPElement, is drawn from the SAAJ API. When used in a transformation, 
+    * the results are populated into the SOAPPart of a SOAPMessage that is created internally. 
+    * The SOAPPart returned by DOMResult.getNode() is not guaranteed to be well-formed. 
+    * 
+    * @throws SOAPException if there is a problem creating a SOAPMessage
+    * @since SAAJ 1.3
+    */
+   public SAAJResult() throws SOAPException
+   {
+   }
+
+   /**
+    * Creates a SAAJResult that will present results in the form of a SAAJ tree that supports the specified protocol. 
+    * The DYNAMIC_SOAP_PROTOCOL is ambiguous in this context and will cause this constructor to throw an UnsupportedOperationException.
+    * 
+    * This kind of SAAJResult is meant for use in situations where the results will be used as a parameter to a method that takes a parameter whose type, such as SOAPElement, is drawn from the SAAJ API. When used in a transformation the results are populated into the SOAPPart of a SOAPMessage that is created internally. The SOAPPart returned by DOMResult.getNode() is not guaranteed to be well-formed.
+    *  
+    * @param protocol the name of the SOAP protocol that the resulting SAAJ tree should support
+    * @throws SOAPException if a SOAPMessage supporting the specified protocol cannot be created
+    * @since SAAJ 1.3
+    */
+   public SAAJResult(String protocol) throws SOAPException
+   {
+   }
+
+   /**
+    * Creates a SAAJResult that will write the results into the SOAPPart of the supplied SOAPMessage. 
+    * In the normal case these results will be written using DOM APIs and, as a result, the finished SOAPPart 
+    * will not be guaranteed to be well-formed unless the data used to create it is also well formed. When used in a 
+    * transformation the validity of the SOAPMessage after the transformation can be guaranteed only by means outside SAAJ specification.
+    * 
+    * @param message the message whose SOAPPart will be populated as a result of some transformation or marshalling operation
+    * @since SAAJ 1.3
+    */
+   public SAAJResult(SOAPMessage message)
+   {
+      try
+      {
+         rootElement = message.getSOAPPart().getEnvelope();
+      }
+      catch (SOAPException ex)
+      {
+         throw new IllegalArgumentException("Cannot create SAAJ result", ex);
+      }
+   }
+
+   /**
+    * Creates a SAAJResult that will write the results as a child node of the SOAPElement specified. 
+    * In the normal case these results will be written using DOM APIs and as a result may invalidate the structure of the SAAJ tree. 
+    * This kind of SAAJResult should only be used when the validity of the incoming data can be guaranteed by means outside of the SAAJ specification.
+    * 
+    * @param rootNode the root to which the results will be appended
+    * @since SAAJ 1.3
+    */
+   public SAAJResult(SOAPElement rootNode)
+   {
+      rootElement = rootNode;
+   }
+
+   /**
+    * @return the resulting Tree that was created under the specified root Node.
+    * @since SAAJ 1.3
+    */
+   public Node getResult()
+   {
+      return rootElement;
+   }
+
+   public void setNode(org.w3c.dom.Node node)
+   {
+      rootElement = null;
+      if (node instanceof Element)
+      {
+         try
+         {
+            SOAPFactory factory = SOAPFactory.newInstance();
+            rootElement = factory.createElement((Element)node);
+         }
+         catch (SOAPException ex)
+         {
+            throw new IllegalArgumentException("Cannot set node: " + node, ex);
+         }
+      }
+   }
+}
+


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/SAAJResult.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/SOAPBody.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/SOAPBody.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/SOAPBody.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,170 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+import java.util.Locale;
+
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Document;
+
+/** An object that represents the contents of the SOAP body element in a SOAP
+ * message. A SOAP body element consists of XML data that affects the way the
+ * application-specific content is processed.
+ * 
+ * A SOAPBody object contains SOAPBodyElement objects, which have the content
+ * for the SOAP body. A SOAPFault object, which carries status and/or error
+ * information, is an example of a SOAPBodyElement object.
+
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface SOAPBody extends SOAPElement
+{
+   /** Creates a new SOAPBodyElement object with the specified name and adds it to this SOAPBody object.
+    *
+    * @param name a Name object with the name for the new SOAPBodyElement object
+    * @return the new SOAPBodyElement object
+    * @throws SOAPException if a SOAP error occurs
+    */
+   public abstract SOAPBodyElement addBodyElement(Name name) throws SOAPException;
+
+   /**
+    * Creates a new SOAPBodyElement object with the specified QName and adds it to this SOAPBody object.
+    * @param qname a QName object with the qname for the new SOAPBodyElement object
+    * @return the new SOAPBodyElement object
+    * @throws SOAPException if a SOAP error occurs
+    * @since SAAJ 1.3
+    */
+   public abstract SOAPBodyElement addBodyElement(QName qname) throws SOAPException;
+
+   /** Adds the root node of the DOM Document to this SOAPBody object.
+    *
+    * Calling this method invalidates the document parameter.
+    * The client application should discard all references to this Document and its contents upon calling addDocument.
+    * The behavior of an application that continues to use such references is undefined.
+    *
+    * @param doc  the Document object whose root node will be added to this SOAPBody.
+    * @return the SOAPBodyElement that represents the root node that was added.
+    * @throws SOAPException  if the Document cannot be added
+    */
+   public abstract SOAPBodyElement addDocument(Document doc) throws SOAPException;
+
+   /** Creates a new SOAPFault object and adds it to this SOAPBody object.
+    *
+    * The new SOAPFault will have default values set for the mandatory child elements faultcode and faultstring.
+    * A SOAPBody may contain at most one SOAPFault child element
+    *
+    * @return the new SOAPFault object
+    * @throws SOAPException if there is a SOAP error
+    */
+   public abstract SOAPFault addFault() throws SOAPException;
+
+   /** Creates a new SOAPFault object and adds it to this SOAPBody object.
+    *
+    * The new SOAPFault will have a faultcode element that is set to the faultCode parameter and a faultstring
+    * set to faultString.
+    *
+    * A SOAPBody may contain at most one SOAPFault child element
+    *
+    * @param faultCode a Name object giving the fault code to be set; must be one of the fault codes defined in the SOAP 1.1 specification and of type QName
+    * @param faultString a String giving an explanation of the fault
+    * @return the new SOAPFault object
+    * @throws SOAPException if there is a SOAP error
+    */
+   public abstract SOAPFault addFault(Name faultCode, String faultString) throws SOAPException;
+   
+   /**
+    * Creates a new SOAPFault object and adds it to this SOAPBody  object. The type of the SOAPFault  will be a SOAP 1.1 or a SOAP 1.2 SOAPFault 
+    * depending on the protocol specified while creating the MessageFactory  instance.
+    * 
+    * For SOAP 1.2 the faultCode parameter is the value of the Fault/Code/Value element and the faultString parameter is the value 
+    * of the Fault/Reason/Text element. For SOAP 1.1 the faultCode parameter is the value of the faultcode element and the 
+    * faultString parameter is the value of the faultstring element.
+    * 
+    * In case of a SOAP 1.2 fault, the default value for the mandatory xml:lang attribute on the Fault/Reason/Text element will be 
+    * set to java.util.Locale.getDefault()
+    * 
+    * A SOAPBody may contain at most one SOAPFault child element
+    *  
+    * @param faultCode a QName object giving the fault code to be set; must be one of the fault codes defined in the version of SOAP specification in use
+    * @param faultString a String giving an explanation of the fault
+    * @throws SOAPException if there is a SOAP error
+    * @since SAAJ 1.3
+    */
+   public abstract SOAPFault addFault(QName faultCode, String faultString) throws SOAPException;
+
+   /** Creates a new SOAPFault object and adds it to this SOAPBody object.
+    *
+    * The new SOAPFault will have a faultcode element that is set to the faultCode parameter and a faultstring
+    * set to faultString and localized to locale.
+    *
+    * A SOAPBody may contain at most one SOAPFault child element
+    *
+    * @param faultCode a Name object giving the fault code to be set; must be one of the fault codes defined in the SOAP 1.1 specification and of type QName
+    * @param faultString a String giving an explanation of the fault
+    * @param locale a Locale object indicating the native language of the faultString
+    * @return the new SOAPFault object
+    * @throws SOAPException if there is a SOAP error
+    */
+   public abstract SOAPFault addFault(Name faultCode, String faultString, Locale locale) throws SOAPException;
+
+   /**
+    * Creates a new SOAPFault object and adds it to this SOAPBody object. The type of the SOAPFault will be a SOAP 1.1 or a SOAP 1.2 
+    * SOAPFault depending on the protocol specified while creating the MessageFactory instance.
+    * 
+    * For SOAP 1.2 the faultCode parameter is the value of the Fault/Code/Value element and the faultString parameter is 
+    * the value of the Fault/Reason/Text element. For SOAP 1.1 the faultCode parameter is the value of the faultcode element 
+    * and the faultString parameter is the value of the faultstring element.
+    * 
+    * A SOAPBody may contain at most one SOAPFault child element.
+    *  
+    * @param faultCode a QName object giving the fault code to be set; must be one of the fault codes defined in the version of SOAP specification in use
+    * @param faultString a String giving an explanation of the fault
+    * @param locale a Locale object indicating the native language of the faultString
+    * @return the new SOAPFault object
+    * @throws SOAPException if there is a SOAP error
+    * @since SAAJ 1.3
+    */
+   public abstract SOAPFault addFault(QName faultCode, String faultString, Locale locale) throws SOAPException;
+   
+   /** Returns the SOAPFault object in this SOAPBody  object.
+    *
+    * @return the SOAPFault object in this SOAPBody  object
+    */
+   public abstract SOAPFault getFault();
+
+   /** Indicates whether a SOAPFault object exists in this SOAPBody object.
+    *
+    * @return true if a SOAPFault object exists in this SOAPBody object; false  otherwise
+    */
+   public abstract boolean hasFault();
+   
+   /**
+    * Creates a new DOM Document and sets the first child of this SOAPBody as it's document element. 
+    * The child SOAPElement is removed as part of the process.
+    * @return the Document representation of the SOAPBody content.
+    * @throws SOAPException if there is not exactly one child SOAPElement of the  SOAPBody.
+    * @since SAAJ 1.3
+    */
+   public Document extractContentAsDocument() throws SOAPException;   
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/SOAPBody.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/SOAPBodyElement.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/SOAPBodyElement.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/SOAPBodyElement.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+/** A SOAPBodyElement object represents the contents in a SOAPBody object.
+ * The SOAPFault interface is a SOAPBodyElement object that has been defined.
+ * 
+ * A new SOAPBodyElement object can be created and added to a SOAPBody object
+ * with the SOAPBody method addBodyElement. In the following line of code, sb
+ * is a SOAPBody object, and myName is a Name object. 
+
+ SOAPBodyElement sbe = sb.addBodyElement(myName);
+ 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface SOAPBodyElement extends SOAPElement
+{
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/SOAPBodyElement.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/SOAPConnection.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/SOAPConnection.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/SOAPConnection.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,73 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+import org.jboss.util.NotImplementedException;
+
+/** A point-to-point connection that a client can use for sending messages directly to a remote
+ * party (represented by a URL, for instance).
+ *
+ * The SOAPConnection class is optional. Some implementations may not implement this interface in which case the call
+ * to SOAPConnectionFactory.newInstance() (see below) will throw an UnsupportedOperationException.
+ *
+ * A client can obtain a SOAPConnection object using a SOAPConnectionFactory object as in the following example:
+ *
+ *    SOAPConnectionFactory factory = SOAPConnectionFactory.newInstance();
+ *    SOAPConnection con = factory.createConnection();
+ *
+ * A SOAPConnection object can be used to send messages directly to a URL following the request/response paradigm.
+ * That is, messages are sent using the method call, which sends the message and then waits until it gets a reply.
+ *
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public abstract class SOAPConnection
+{
+   public SOAPConnection()
+   {
+   }
+
+   /** Sends the given message to the specified endpoint and blocks until it has returned the response.
+    *
+    * @param request the SOAPMessage object to be sent
+    * @param to an Object that identifies where the message should be sent.
+    * It is required to support Objects of type java.lang.String, java.net.URL, and when JAXM is present javax.xml.messaging.URLEndpoint
+    * @return the SOAPMessage object that is the response to the message that was sent
+    * @throws SOAPException  if there is a SOAP error
+    */
+   public abstract SOAPMessage call(SOAPMessage request, Object to) throws SOAPException;
+
+   /**
+    * Gets a message from a specific endpoint and blocks until it receives,
+    * @param to an Object that identifies where the request should be sent. Objects of type java.lang.String and java.net.URL must be supported.
+    * @return the SOAPMessage object that is the response to the get message request
+    * @throws SOAPException if there is a SOAP error
+    * @since SAAJ 1.3
+    */
+   public abstract SOAPMessage get(Object to) throws SOAPException;
+   
+   /** Closes this SOAPConnection object.
+    *
+    * @throws SOAPException if there is a SOAP error
+    */
+   public abstract void close() throws SOAPException;
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/SOAPConnection.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/SOAPConnectionFactory.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/SOAPConnectionFactory.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/SOAPConnectionFactory.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,115 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+import org.jboss.logging.Logger;
+
+/** A factory for creating SOAPConnection objects. Implementation of this class
+ * is optional. If SOAPConnectionFactory.newInstance() throws an
+ * UnsupportedOperationException then the implementation does not support the
+ * SAAJ communication infrastructure. Otherwise SOAPConnection objects can be
+ * created by calling createConnection() on the newly created
+ * SOAPConnectionFactory object.
+ *  
+ * @author Scott.Stark at jboss.org
+ * @author Thomas.Diesler at jboss.org
+ * @version $Revision$
+ */
+public abstract class SOAPConnectionFactory
+{
+   // provide logging
+   private static Logger log = Logger.getLogger(SOAPConnectionFactory.class);
+
+   private static final String DEFAULT_SOAP_CONNECTION_FACTORY = "org.jboss.ws.core.soap.SOAPConnectionFactoryImpl";
+   private static final String[] alternativeFactories = new String[] { "org.jboss.webservice.soap.SOAPConnectionFactoryImpl",
+         "org.jboss.axis.soap.SOAPConnectionFactoryImpl" };
+
+   /** Creates an instance of the default SOAPConnectionFactory object.
+    * 
+    * @return
+    * @throws SOAPException
+    * @throws UnsupportedOperationException
+    */
+   public static SOAPConnectionFactory newInstance() throws SOAPException, UnsupportedOperationException
+   {
+      PrivilegedAction action = new PropertyAccessAction(SOAPConnectionFactory.class.getName(), DEFAULT_SOAP_CONNECTION_FACTORY);
+      String factoryName = (String)AccessController.doPrivileged(action);
+
+      ClassLoader loader = Thread.currentThread().getContextClassLoader();
+      try
+      {
+         try
+         {
+            Class factoryClass = loader.loadClass(factoryName);
+            return (SOAPConnectionFactory)factoryClass.newInstance();
+         }
+         catch (ClassNotFoundException e)
+         {
+            // Throw the exception if the user asked for a specific factory
+            if (factoryName.equals(DEFAULT_SOAP_CONNECTION_FACTORY) == false)
+               throw e;
+
+            for (int i = 0; i < alternativeFactories.length; i++)
+            {
+               factoryName = alternativeFactories[i];
+               try
+               {
+                  Class factoryClass = loader.loadClass(factoryName);
+                  return (SOAPConnectionFactory)factoryClass.newInstance();
+               }
+               catch (ClassNotFoundException e1)
+               {
+                  if(log.isDebugEnabled()) log.debug("Cannot load factory: " + factoryName);
+               }
+            }
+         }
+      }
+      catch (Throwable t)
+      {
+         throw new SOAPException("Failed to create SOAPConnectionFactory: " + factoryName, t);
+      }
+
+      throw new SOAPException("Cannot find SOAPConnectionFactory implementation");
+   }
+
+   public abstract SOAPConnection createConnection() throws SOAPException;
+
+   private static class PropertyAccessAction implements PrivilegedAction
+   {
+      private String name;
+      private String defaultValue;
+
+      PropertyAccessAction(String name, String defaultValue)
+      {
+         this.name = name;
+         this.defaultValue = defaultValue;
+      }
+
+      public Object run()
+      {
+         return System.getProperty(name, defaultValue);
+      }
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/SOAPConnectionFactory.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/SOAPConstants.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/SOAPConstants.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/SOAPConstants.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,75 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+import javax.xml.namespace.QName;
+
+/** The definition of constants pertaining to the SOAP protocol. 
+ * @author Scott.Stark at jboss.org
+ * @author Thomas.Diesler at jboss.org
+ * @version $Revision$
+ */
+public interface SOAPConstants
+{
+   /** The default protocol: SOAP 1.1 for backwards compatibility. */
+   String DEFAULT_SOAP_PROTOCOL = "SOAP 1.1 Protocol";
+   /** Used to create MessageFactory instances that create SOAPMessages whose concrete type is based on the Content-Type MIME header passed to the createMessage method. */
+   String DYNAMIC_SOAP_PROTOCOL = "Dynamic Protocol";
+   /** The media type of the Content-Type MIME header in SOAP 1.1. */
+   String SOAP_1_1_CONTENT_TYPE = "text/xml";
+   /** Used to create MessageFactory instances that create SOAPMessages whose behavior supports the SOAP 1.1 specification */
+   String SOAP_1_1_PROTOCOL = "SOAP 1.1 Protocol";
+   /** The media type of the Content-Type MIME header in SOAP 1.2. */
+   String SOAP_1_2_CONTENT_TYPE = "application/soap+xml";
+   /** Used to create MessageFactory instances that create SOAPMessages whose behavior supports the SOAP 1.2 specification */
+   String SOAP_1_2_PROTOCOL = "SOAP 1.2 Protocol";
+   /** The default namespace prefix for http://www.w3.org/2003/05/soap-envelope */
+   String SOAP_ENV_PREFIX = "env";
+   /** The namespace identifier for the SOAP 1.1 envelope. */
+   String URI_NS_SOAP_1_1_ENVELOPE = "http://schemas.xmlsoap.org/soap/envelope/";
+   /** The namespace identifier for the SOAP 1.2 encoding. */
+   String URI_NS_SOAP_1_2_ENCODING = "http://www.w3.org/2003/05/soap-encoding";
+   /** The namespace identifier for the SOAP 1.2 envelope. */
+   String URI_NS_SOAP_1_2_ENVELOPE = "http://www.w3.org/2003/05/soap-envelope";
+   /** The namespace identifier for the SOAP 1.1 encoding. */
+   String URI_NS_SOAP_ENCODING = "http://schemas.xmlsoap.org/soap/encoding/";
+   /** The namespace identifier for the SOAP 1.1 envelope, All SOAPElements in this namespace are defined by the SOAP 1.1 specification. */
+   String URI_NS_SOAP_ENVELOPE = URI_NS_SOAP_1_1_ENVELOPE;
+   /** The URI identifying the next application processing a SOAP request as the intended role for a SOAP 1.2 header entry (see section 2.2 of part 1 of the SOAP 1.2 specification). */
+   String URI_SOAP_1_2_ROLE_NEXT = "http://www.w3.org/2003/05/soap-envelope/role/next";
+   /** The URI specifying the role None in SOAP 1.2. */
+   String URI_SOAP_1_2_ROLE_NONE = "http://www.w3.org/2003/05/soap-envelope/role/none";
+   /** The URI identifying the ultimate receiver of the SOAP 1.2 message. */
+   String URI_SOAP_1_2_ROLE_ULTIMATE_RECEIVER = "http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver";
+   /** The URI identifying the next application processing a SOAP request as the intended actor for a SOAP 1.1 header entry (see section 4.2.2 of the SOAP 1.1 specification). */
+   String URI_SOAP_ACTOR_NEXT = "http://schemas.xmlsoap.org/soap/actor/next";
+   /** SOAP 1.2 VersionMismatch Fault */
+   QName SOAP_VERSIONMISMATCH_FAULT = new QName(URI_NS_SOAP_1_2_ENVELOPE, "VersionMismatch", SOAP_ENV_PREFIX);
+   /** SOAP 1.2 MustUnderstand Fault */
+   QName SOAP_MUSTUNDERSTAND_FAULT = new QName(URI_NS_SOAP_1_2_ENVELOPE, "MustUnderstand", SOAP_ENV_PREFIX);
+   /** SOAP 1.2 DataEncodingUnknown Fault */
+   QName SOAP_DATAENCODINGUNKNOWN_FAULT = new QName(URI_NS_SOAP_1_2_ENVELOPE, "DataEncodingUnknown", SOAP_ENV_PREFIX);
+   /** SOAP 1.2 Sender Fault */
+   QName SOAP_SENDER_FAULT = new QName(URI_NS_SOAP_1_2_ENVELOPE, "Sender", SOAP_ENV_PREFIX);
+   /** SOAP 1.2 Receiver Fault */
+   QName SOAP_RECEIVER_FAULT = new QName(URI_NS_SOAP_1_2_ENVELOPE, "Receiver", SOAP_ENV_PREFIX);
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/SOAPConstants.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/SOAPElement.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/SOAPElement.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/SOAPElement.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,321 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+import java.util.Iterator;
+
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Element;
+
+/** An object representing an element of a SOAP message that is allowed but not
+ * specifically prescribed by a SOAP specification. This interface serves as the
+ * base interface for those objects that are specifically prescribed by a SOAP
+ * specification.
+ * 
+ * Methods in this interface that are required to return SAAJ specific objects
+ * may "silently" replace nodes in the tree as required to successfully return
+ * objects of the correct type. See getChildElements() and javax.xml.soap for
+ * details.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface SOAPElement extends Node, Element
+{
+   /** Adds an attribute with the specified name and value to this SOAPElement object.
+    *
+    * @param name a Name object with the name of the attribute
+    * @param value a String giving the value of the attribute
+    * @return the SOAPElement object into which the attribute was inserted
+    * @throws SOAPException if there is an error in creating the Attribute
+    */
+   SOAPElement addAttribute(Name name, String value) throws SOAPException;
+
+   /**
+    * Adds an attribute with the specified name and value to this SOAPElement object.
+    * @param qname a QName object with the name of the attribute
+    * @param value a String giving the value of the attribute
+    * @return the SOAPElement object into which the attribute was inserted
+    * @throws SOAPException if there is an error in creating the Attribute, or it is invalid to set an attribute with QName qname on this SOAPElement.
+    * @since SAAJ 1.3
+    */
+   SOAPElement addAttribute(QName qname, String value) throws SOAPException;
+
+   /** Creates a new SOAPElement object initialized with the specified local name and adds the new element to this SOAPElement object.
+    *
+    * @param name  a String giving the local name for the element
+    * @return the new SOAPElement object that was created
+    * @throws SOAPException if there is an error in creating the SOAPElement object
+    */
+   SOAPElement addChildElement(String name) throws SOAPException;
+   
+   /**
+    * Creates a new SOAPElement object initialized with the given QName object and adds the new element to this SOAPElement  object. 
+    * The namespace, localname and prefix of the new SOAPElement are all taken from the qname argument.
+    * @param qname a QName object with the XML name for the new element
+    * @return the new SOAPElement object that was created
+    * @throws SOAPException if there is an error in creating the SOAPElement object
+    * @since SAAJ 1.3
+    */
+   SOAPElement addChildElement(QName qname) throws SOAPException;
+
+   /** Creates a new SOAPElement object initialized with the specified local name and prefix and adds the new element to this SOAPElement object.
+    *
+    * @param localName a String giving the local name for the new element
+    * @param prefix a String giving the namespace prefix for the new element
+    * @return the new SOAPElement object that was created
+    * @throws SOAPException if there is an error in creating the SOAPElement object
+    */
+   SOAPElement addChildElement(String localName, String prefix) throws SOAPException;
+
+   /** Creates a new SOAPElement object initialized with the specified local name, prefix, and URI and adds the new element to this SOAPElement object.
+    *
+    * @param localName a String giving the local name for the new element
+    * @param prefix a String giving the namespace prefix for the new element
+    * @param uri a String giving the URI of the namespace to which the new element belongs
+    * @return the new SOAPElement object that was created
+    * @throws SOAPException  if there is an error in creating the SOAPElement object
+    */
+   SOAPElement addChildElement(String localName, String prefix, String uri) throws SOAPException;
+
+   /** Creates a new SOAPElement object initialized with the given Name object and adds the new element to this SOAPElement object.
+    *
+    * @param name a Name object with the XML name for the new element
+    * @return the new SOAPElement object that was created
+    * @throws SOAPException if there is an error in creating the SOAPElement object
+    */
+   SOAPElement addChildElement(Name name) throws SOAPException;
+
+   /** Add a SOAPElement as a child of this SOAPElement instance. The SOAPElement is expected to be created by a SOAPElementFactory.
+    *
+    * Callers should not rely on the element instance being added as is into the XML tree.
+    * Implementations could end up copying the content of the SOAPElement passed into an instance of a different SOAPElement
+    * implementation. For instance if addChildElement() is called on a SOAPHeader, element will be copied into an instance of a SOAPHeaderElement.
+    *
+    * The fragment rooted in element is either added as a whole or not at all, if there was an error.
+    *
+    * The fragment rooted in element cannot contain elements named "Envelope", "Header" or "Body" and in the SOAP namespace.
+    * Any namespace prefixes present in the fragment should be fully resolved using appropriate namespace declarations within the fragment itself.
+    *
+    * @param child the SOAPElement to be added as a new child
+    * @return an instance representing the new SOAP element that was actually added to the tree.
+    * @throws SOAPException if there was an error in adding this element as a child
+    */
+   SOAPElement addChildElement(SOAPElement child) throws SOAPException;
+
+   /** Adds a namespace declaration with the specified prefix and URI to this SOAPElement object.
+    *
+    * @param prefix a String giving the prefix of the namespace
+    * @param uri a String giving the uri of the namespace
+    * @return the SOAPElement object into which this namespace declaration was inserted.
+    * @throws SOAPException if there is an error in creating the namespace
+    */
+   SOAPElement addNamespaceDeclaration(String prefix, String uri) throws SOAPException;
+
+   /** Creates a new Text object initialized with the given String and adds it to this SOAPElement object.
+    *
+    * @param text a String object with the textual content to be added
+    * @return the SOAPElement object into which the new Text object was inserted
+    * @throws SOAPException if there is an error in creating the new Text object
+    */
+   SOAPElement addTextNode(String text) throws SOAPException;
+
+   /**
+    * Creates a QName whose namespace URI is the one associated with the parameter, prefix, in the context of this SOAPElement. 
+    * The remaining elements of the new QName are taken directly from the parameters, localName and prefix.
+    * @param localName a String containing the local part of the name.
+    * @param prefix a String containing the prefix for the name.
+    * @return a QName with the specified localName  and prefix, and with a namespace that is associated with the prefix in the context of this SOAPElement. 
+    *    This namespace will be the same as the one that would be returned by getNamespaceURI(String) if it were given prefix as it's parameter.
+    * @throws SOAPException if the QName cannot be created.
+    * @since SAAJ 1.3
+    */
+   QName createQName(String localName, String prefix) throws SOAPException;
+   
+   /** Returns an Iterator over all of the attribute Name objects in this SOAPElement object.
+    *
+    * The iterator can be used to get the attribute names, which can then be passed to the method getAttributeValue to
+    * retrieve the value of each attribute.
+    *
+    * @return an iterator over the names of the attributes
+    */
+   Iterator getAllAttributes();
+
+   /**
+    * Returns an Iterator over all of the attributes in this SOAPElement as QName objects. 
+    * The iterator can be used to get the attribute QName, which can then be passed to the method getAttributeValue to retrieve the value of each attribute.
+    * @return an iterator over the QNames of the attributes
+    * @since SAAJ 1.3
+    */
+   Iterator getAllAttributesAsQNames();
+
+   /** Returns the value of the attribute with the specified name.
+    *
+    * @param name a Name object with the name of the attribute
+    * @return a String giving the value of the specified attribute
+    */
+   String getAttributeValue(Name name);
+
+   /**
+    * Returns the value of the attribute with the specified qname.
+    * @param qname a QName object with the qname of the attribute
+    * @return a String giving the value of the specified attribute, Null if there is no such attribute
+    * @since SAAJ 1.3
+    */
+   String getAttributeValue(QName qname);
+
+   /** Returns an Iterator over all the immediate child Nodes of this element.
+    *
+    * This includes javax.xml.soap.Text objects as well as SOAPElement objects.
+    * Calling this method may cause child Element, SOAPElement and org.w3c.dom.Text nodes to be replaced by SOAPElement,
+    * SOAPHeaderElement, SOAPBodyElement or javax.xml.soap.Text nodes as appropriate for the type of this parent node.
+    * As a result the calling application must treat any existing references to these child nodes that have been obtained
+    * through DOM APIs as invalid and either discard them or refresh them with the values returned by this Iterator.
+    * This behavior can be avoided by calling the equivalent DOM APIs. See javax.xml.soap for more details.
+    *
+    * @return an iterator with the content of this SOAPElement object
+    */
+   Iterator getChildElements();
+
+   /** Returns an Iterator over all the immediate child Nodes of this element with the specified name.
+    *
+    * All of these children will be SOAPElement nodes.
+    * Calling this method may cause child Element, SOAPElement and org.w3c.dom.Text nodes to be replaced by SOAPElement,
+    * SOAPHeaderElement, SOAPBodyElement or javax.xml.soap.Text nodes as appropriate for the type of this parent node.
+    * As a result the calling application must treat any existing references to these child nodes that have been obtained
+    * through DOM APIs as invalid and either discard them or refresh them with the values returned by this Iterator.
+    * This behavior can be avoided by calling the equivalent DOM APIs. See javax.xml.soap for more details.
+    *
+    * @param name a Name object with the name of the child elements to be returned
+    * @return an Iterator object over all the elements in this SOAPElement object with the specified name
+    */
+   Iterator getChildElements(Name name);
+
+   /**
+    * Returns an Iterator over all the immediate child Nodes of this element with the specified qname. 
+    * All of these children will be SOAPElement nodes.
+    * 
+    * Calling this method may cause child Element, SOAPElement and org.w3c.dom.Text nodes to be replaced by 
+    * SOAPElement, SOAPHeaderElement, SOAPBodyElement or javax.xml.soap.Text nodes as appropriate for the type of this parent node. 
+    * As a result the calling application must treat any existing references to these child nodes that have been obtained through 
+    * DOM APIs as invalid and either discard them or refresh them with the values returned by this Iterator. 
+    * This behavior can be avoided by calling the equivalent DOM APIs. See javax.xml.soap for more details. 
+    * @param qname a QName object with the qname of the child elements to be returned
+    * @return an Iterator object over all the elements in this SOAPElement object with the specified qname
+    * @since SAAJ 1.3
+    */
+   Iterator getChildElements(QName qname);
+
+   /** Returns the name of this SOAPElement object.
+    *
+    * @return a Name object with the name of this SOAPElement object
+    */
+   Name getElementName();
+
+   /**
+    * Returns the qname of this SOAPElement object.
+    * @return a QName object with the qname of this SOAPElement object
+    * @since SAAJ 1.3
+    */
+   QName getElementQName();
+
+   /**
+    * Changes the name of this Element to newName if possible. SOAP Defined elements such as SOAPEnvelope, SOAPHeader, SOAPBody etc. cannot 
+    * have their names changed using this method. Any attempt to do so will result in a SOAPException being thrown.
+    * 
+    * Callers should not rely on the element instance being renamed as is. 
+    * Implementations could end up copying the content of the SOAPElement to a renamed instance. 
+    * @param qname the new name for the Element.
+    * @return The renamed Node
+    * @throws SOAPException if changing the name of this Element  is not allowed.
+    * @since SAAJ 1.3
+    */
+   SOAPElement setElementQName(QName qname) throws SOAPException;
+
+   /** Returns the encoding style for this SOAPElement object.
+    *
+    * @return a String giving the encoding style
+    */
+   String getEncodingStyle();
+
+   /** Returns an Iterator over the namespace prefix Strings declared by this element.
+    *
+    * The prefixes returned by this iterator can be passed to the method getNamespaceURI to retrieve the URI of each namespace.
+    *
+    * @return an iterator over the namespace prefixes in this SOAPElement object
+    */
+   Iterator getNamespacePrefixes();
+
+   /** Returns the URI of the namespace that has the given prefix.
+    *
+    * @param prefix a String giving the prefix of the namespace for which to search
+    * @return a String with the uri of the namespace that has the given prefix
+    */
+   String getNamespaceURI(String prefix);
+
+   /** Returns an Iterator over the namespace prefix Strings visible to this element.
+    *
+    * The prefixes returned by this iterator can be passed to the method getNamespaceURI to retrieve the URI of each namespace.
+    *
+    * @return an iterator over the namespace prefixes are within scope of this SOAPElement object
+    */
+   Iterator getVisibleNamespacePrefixes();
+
+   /** Removes the attribute with the specified name.
+    *
+    * @param name the Name object with the name of the attribute to be removed
+    * @return true if the attribute was removed successfully; false if it was not
+    */
+   boolean removeAttribute(Name name);
+
+   /**
+    * Removes the attribute with the specified qname.
+    * @param qname the QName object with the qname of the attribute to be removed
+    * @return true if the attribute was removed successfully; false if it was not
+    * @since SAAJ 1.3
+    */
+   boolean removeAttribute(QName qname);
+
+   /** Detaches all children of this SOAPElement.
+    *
+    * This method is useful for rolling back the construction of partially completed SOAPHeaders and SOAPBodys in
+    * preparation for sending a fault when an error condition is detected.
+    * It is also useful for recycling portions of a document within a SOAP message.
+    */
+   void removeContents();
+
+   /** Removes the namespace declaration corresponding to the given prefix.
+    *
+    * @param prefix a String giving the prefix for which to search
+    * @return true if the namespace declaration was removed successfully; false if it was not
+    */
+   boolean removeNamespaceDeclaration(String prefix);
+
+   /** Sets the encoding style for this SOAPElement object to one specified.
+    *
+    * @param encodingStyle  a String giving the encoding style
+    * @throws SOAPException  if there was a problem in the encoding style being set.
+    */
+   void setEncodingStyle(String encodingStyle) throws SOAPException;
+
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/SOAPElement.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/SOAPElementFactory.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/SOAPElementFactory.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/SOAPElementFactory.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,88 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+/** SOAPElementFactory is a factory for XML fragments that will eventually end
+ * up in the SOAP part. These fragments can be inserted as children of the
+ * SOAPHeader or SOAPBody or SOAPEnvelope.
+ * 
+ * Elements created using this factory do not have the properties of an element
+ * that lives inside a SOAP header document. These elements are copied into the
+ * XML document tree when they are inserted. 
+
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class SOAPElementFactory
+{
+   private SOAPFactory soapFactory;
+
+   /**
+    * 
+    * @return
+    * @throws SOAPException
+    */
+   public static SOAPElementFactory newInstance() throws SOAPException
+   {
+      SOAPFactory factory = SOAPFactory.newInstance();
+      return new SOAPElementFactory(factory);
+   }
+
+   /**
+    * @deprecated Use javax.xml.soap.SOAPFactory.createElement(javax.xml.soap.Name) 
+    * @return
+    * @throws SOAPException
+    */
+   public SOAPElement create(String localName) throws SOAPException
+   {
+      return soapFactory.createElement(localName);
+   }
+
+   /**
+    * @deprecated Use javax.xml.soap.SOAPFactory.createElement(String localName, String prefix, String uri) instead
+    * @param localName
+    * @param prefix
+    * @param uri
+    * @return
+    * @throws SOAPException
+    */
+   public SOAPElement create(String localName, String prefix, String uri) throws SOAPException
+   {
+      return soapFactory.createElement(localName, prefix, uri);
+   }
+
+   /**
+    * @deprecated Use javax.xml.soap.SOAPFactory.createElement(javax.xml.soap.Name) 
+    * @param name
+    * @return
+    * @throws SOAPException
+    */
+   public SOAPElement create(Name name) throws SOAPException
+   {
+      return soapFactory.createElement(name);
+   }
+
+   private SOAPElementFactory(SOAPFactory soapFactory)
+   {
+      this.soapFactory = soapFactory;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/SOAPElementFactory.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/SOAPEnvelope.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/SOAPEnvelope.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/SOAPEnvelope.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,90 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+/** The container for the SOAPHeader and SOAPBody portions of a SOAPPart object.
+ * By default, a SOAPMessage object is created with a SOAPPart object that has a SOAPEnvelope object.
+ * The SOAPEnvelope object by default has an empty SOAPBody object and an empty SOAPHeader object.<p>
+ * The SOAPBody object is required, and the SOAPHeader object, though optional,
+ * is used in the majority of cases. If the SOAPHeader object is not needed, it can be deleted, which is shown later.<p>
+ * A client can access the SOAPHeader and SOAPBody objects by calling the methods SOAPEnvelope.getHeader and SOAPEnvelope.getBody.
+ * The following lines of code use these two methods after starting with the SOAPMessage object message to get the SOAPPart object
+ * sp, which is then used to get the SOAPEnvelope object se.<p>
+ *
+ * <code>
+ * SOAPPart sp = message.getSOAPPart();<br>
+ * SOAPEnvelope se = sp.getEnvelope();<br>
+ * SOAPHeader sh = se.getHeader();<br>
+ * SOAPBody sb = se.getBody(); <br>
+ * </code>
+ * <p>
+ * It is possible to change the body or header of a SOAPEnvelope object by retrieving the current one,
+ * deleting it, and then adding a new body or header.
+ * The javax.xml.soap.Node method deleteNode deletes the XML element (node) on which it is called.
+ * For example, the following line of code deletes the SOAPBody object that is retrieved by the method getBody.
+ * <p>
+ * <code>se.getBody().detachNode();</code>
+ * <p>
+ * To create a SOAPHeader object to replace the one that was removed,
+ * a client uses the method SOAPEnvelope.addHeader, which creates a new header and adds it to the SOAPEnvelope object.
+ * Similarly, the method addBody creates a new SOAPBody object and adds it to the SOAPEnvelope object.
+ * The following code fragment retrieves the current header, removes it, and adds a new one.
+ * Then it retrieves the current body, removes it, and adds a new one.
+ * <p>
+ * <code>
+ * SOAPPart sp = message.getSOAPPart();<br>
+ * SOAPEnvelope se = sp.getEnvelope();<br>
+ * se.getHeader().detachNode(); <br>
+ * SOAPHeader sh = se.addHeader();<br>
+ * se.getBody().detachNode(); <br>
+ * SOAPBody sb = se.addBody();<br>
+ * </code>
+ * <p>
+ * <b>It is an error to add a SOAPBody or SOAPHeader object if one already exists.</b>
+ * The SOAPEnvelope interface provides three methods for creating Name objects.
+ * One method creates Name objects with a local name, a namespace prefix, and a namesapce URI.
+ * The second method creates Name objects with a local name and a namespace prefix,
+ * and the third creates Name objects with just a local name.
+ * <p>
+ * The following line of code, in which se is a SOAPEnvelope object, creates a new Name object with all three.
+ * <code>
+ * Name name = se.createName("GetLastTradePrice", "WOMBAT", "http://www.wombat.org/trader");
+ * </code>
+ *
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface SOAPEnvelope extends SOAPElement
+{
+   public abstract SOAPBody addBody() throws SOAPException;
+
+   public abstract SOAPHeader addHeader() throws SOAPException;
+
+   public abstract Name createName(String localName) throws SOAPException;
+
+   public abstract Name createName(String localName, String prefix, String uri) throws SOAPException;
+
+   public abstract SOAPBody getBody() throws SOAPException;
+
+   public abstract SOAPHeader getHeader() throws SOAPException;
+
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/SOAPEnvelope.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/SOAPException.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/SOAPException.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/SOAPException.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+
+/**
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class SOAPException extends Exception
+{
+   public SOAPException()
+   {
+   }
+
+   public SOAPException(String message)
+   {
+      super(message);
+   }
+
+   public SOAPException(String message, Throwable cause)
+   {
+      super(message, cause);
+   }
+
+   public SOAPException(Throwable cause)
+   {
+      super(cause);
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/SOAPException.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/SOAPFactory.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/SOAPFactory.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/SOAPFactory.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,202 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+// $Id$
+
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Element;
+
+/** SOAPFactory is a factory for creating various objects that exist in the SOAP XML tree.
+ *
+ * SOAPFactory can be used to create XML fragments that will eventually end up in the SOAP part.
+ * These fragments can be inserted as children of the SOAPHeaderElement or SOAPBodyElement or
+ * SOAPEnvelope or other SOAPElement objects.
+ *
+ * SOAPFactory also has methods to create javax.xml.soap.Detail objects as well as java.xml.soap.Name objects.
+ *
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public abstract class SOAPFactory
+{
+   private static SOAPFactory soapFactory;
+   
+   /** 
+    * Creates a new SOAPFactory object that is an instance of the default implementation (SOAP 1.1), 
+    * This method uses the following ordered lookup procedure to determine the SOAPFactory implementation class to load:
+    * 
+    *    Use the javax.xml.soap.SOAPFactory system property.
+    *    Use the properties file "lib/jaxm.properties" in the JRE directory. This configuration file is in standard java.util.Properties format and contains the fully qualified name of the implementation class with the key being the system property defined above.
+    *    Use the Services API (as detailed in the JAR specification), if available, to determine the classname. The Services API will look for a classname in the file META-INF/services/javax.xml.soap.SOAPFactory in jars available to the runtime.
+    *    Use the SAAJMetaFactory instance to locate the SOAPFactory implementation class. 
+    *
+    * @return a new instance of a SOAPFactory
+    * @throws SOAPException if there was an error creating the default SOAPFactory
+    */
+   public static SOAPFactory newInstance() throws SOAPException
+   {
+      if (soapFactory == null)
+      {
+         try
+         {
+            String propertyName = "javax.xml.soap.SOAPFactory";
+            soapFactory = (SOAPFactory)FactoryLoader.loadFactory(propertyName, null);
+         }
+         catch (RuntimeException rte)
+         {
+            throw new SOAPException(rte);
+         }
+         
+         // Use the SAAJMetaFactory instance to locate the MessageFactory implementation class.
+         if (soapFactory == null)
+         {
+            SAAJMetaFactory saajFactory = SAAJMetaFactory.getInstance();
+            soapFactory = saajFactory.newSOAPFactory(SOAPConstants.DYNAMIC_SOAP_PROTOCOL);
+         }
+         
+         if (soapFactory == null)
+            throw new SOAPException("Failed to to determine the SOAPFactory implementation class");
+      }
+      return soapFactory;
+   }
+
+
+   /**
+    * Creates a new SOAPFactory object that is an instance of the specified implementation, this method uses the SAAJMetaFactory 
+    * to locate the implementation class and create the SOAPFactory instance.
+    * 
+    * @param protocol a string constant representing the class of the specified message factory implementation. 
+    *    May be either DYNAMIC_SOAP_PROTOCOL, DEFAULT_SOAP_PROTOCOL (which is the same as) SOAP_1_1_PROTOCOL, or SOAP_1_2_PROTOCOL.
+    * @throws SOAPException if there was an error creating the specified SOAPFactory
+    * @since SAAJ 1.3
+    */
+   public static SOAPFactory newInstance(String protocol) throws SOAPException
+   {
+      SAAJMetaFactory saajFactory = SAAJMetaFactory.getInstance();
+      SOAPFactory factory = saajFactory.newSOAPFactory(protocol);
+      
+      if (factory == null)
+         throw new SOAPException("Failed to to determine the SOAPFactory implementation class");
+      
+      return factory;
+   }
+   
+   /** Creates a new Detail object which serves as a container for DetailEntry objects.
+    *
+    *  This factory method creates Detail objects for use in situations where it is not practical to use the SOAPFault abstraction.
+    *
+    * @return a Detail object
+    * @throws SOAPException if there is a SOAP error
+    */
+   public abstract Detail createDetail() throws SOAPException;
+
+   /**
+    * Creates a SOAPElement object from an existing DOM Element. If the DOM Element that is passed in as an argument is already a 
+    * SOAPElement then this method must return it unmodified without any further work. Otherwise, a new SOAPElement is created and 
+    * a deep copy is made of the domElement argument. The concrete type of the return value will depend on the name of the domElement 
+    * argument. If any part of the tree rooted in domElement violates SOAP rules, a SOAPException will be thrown.
+    * @param domElement the Element to be copied.
+    * @return a new SOAPElement that is a copy of domElement.
+    * @throws SOAPException if there is an error in creating the SOAPElement object
+    * @since SAAJ 1.3
+    */
+   public abstract SOAPElement createElement(Element domElement) throws SOAPException;
+
+   /** Create a SOAPElement object initialized with the given local name.
+    *
+    * @param localName a String giving the local name for the new element
+    * @return the new SOAPElement object that was created
+    * @throws SOAPException if there is an error in creating the SOAPElement object
+    */
+   public abstract SOAPElement createElement(String localName) throws SOAPException;
+
+   /** Create a new SOAPElement object with the given local name, prefix and uri.
+    *
+    * @param localName a String giving the local name for the new element
+    * @param prefix the prefix for this SOAPElement
+    * @param uri a String giving the URI of the namespace to which the new element belongs
+    * @return the new SOAPElement object that was created
+    * @throws SOAPException if there is an error in creating the SOAPElement object
+    */
+   public abstract SOAPElement createElement(String localName, String prefix, String uri) throws SOAPException;
+
+   /** Create a SOAPElement object initialized with the given Name object.
+    *
+    * @param name a Name object with the XML name for the new element
+    * @return the new SOAPElement object that was created
+    * @throws SOAPException if there is an error in creating the SOAPElement object
+    */
+   public abstract SOAPElement createElement(Name name) throws SOAPException;
+
+   /**
+    * Creates a SOAPElement object initialized with the given QName object. 
+    * The concrete type of the return value will depend on the name given to the new SOAPElement. 
+    * For instance, a new SOAPElement with the name "{http://www.w3.org/2003/05/soap-envelope}Envelope" would 
+    * cause a SOAPEnvelope that supports SOAP 1.2 behavior to be created.
+    * @param qname a QName object with the XML name for the new element
+    * @return the new SOAPElement object that was created
+    * @throws SOAPException if there is an error in creating the SOAPElement object
+    * @since SAAJ 1.3
+    */
+   public abstract SOAPElement createElement(QName qname) throws SOAPException;
+
+   /**
+    * Creates a new SOAPFault object initialized with the given reasonText  and faultCode
+    * @param reasonText the ReasonText/FaultString for the fault
+    * @param faultCode the FaultCode for the fault
+    * @return a SOAPFault object
+    * @throws SOAPException if there is a SOAP error
+    * @since SAAJ 1.3
+    */
+   public abstract SOAPFault createFault(String reasonText, QName faultCode) throws SOAPException;
+
+   /**
+    * Creates a new default SOAPFault object
+    * @return a SOAPFault object
+    * @throws SOAPException if there is a SOAP error
+    * @since SAAJ 1.3
+    */
+   public abstract SOAPFault createFault() throws SOAPException;
+
+   /** Creates a new Name object initialized with the given local name.
+    *
+    * This factory method creates Name objects for use in situations where it is not practical to use the
+    * SOAPEnvelope abstraction.
+    * @return
+    * @throws SOAPException
+    */
+   public abstract Name createName(String localName) throws SOAPException;
+
+   /** Creates a new Name object initialized with the given local name, namespace prefix, and namespace URI.
+    *
+    *  This factory method creates Name objects for use in situations where it is not practical to use the SOAPEnvelope abstraction.
+    * 
+    * @param localName a String giving the local name
+    * @param prefix a String giving the prefix of the namespace
+    * @param uri a String giving the URI of the namespace
+    * @return a Name object initialized with the given local name, namespace prefix, and namespace URI
+    * @throws SOAPException  if there is a SOAP error
+    */
+   public abstract Name createName(String localName, String prefix, String uri) throws SOAPException;
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/SOAPFactory.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/SOAPFault.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/SOAPFault.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/SOAPFault.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,290 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+import java.util.Iterator;
+import java.util.Locale;
+
+import javax.xml.namespace.QName;
+
+/** An element in the SOAPBody object that contains error and/or status
+ * information. This information may relate to errors in the SOAPMessage
+ * object or to problems that are not related to the content in the message
+ * itself. Problems not related to the message itself are generally errors in
+ * processing, such as the inability to communicate with an upstream server. 
+ * 
+ * Depending on the protocol specified while creating the MessageFactory instance, a
+ * SOAPFault has sub-elements as defined in the SOAP 1.1/SOAP 1.2 specification.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @author Thomas.Diesler at jboss.org
+ * @version $Revision$
+ */
+public interface SOAPFault extends SOAPBodyElement
+{
+   /**
+    * Creates an optional Detail object and sets it as the Detail object for this SOAPFault  object.
+    *
+    * It is illegal to add a detail when the fault already contains a detail.
+    * Therefore, this method should be called only after the existing detail has been removed.
+    * @return the new Detail object
+    * @throws SOAPException  if this SOAPFault object already contains a valid Detail object
+    */
+   Detail addDetail() throws SOAPException;
+
+   /**
+    * Appends or replaces a Reason Text item containing the specified text message and an xml:lang derived from locale. 
+    * If a Reason Text item with this xml:lang already exists its text value will be replaced with text. 
+    * The locale parameter should not be null
+    * 
+    * Code sample:
+    * 
+    *    SOAPFault fault = ...;
+    *    fault.addFaultReasonText("Version Mismatch", Locale.ENGLISH);
+    *     
+    * @param text reason message string
+    * @param locale Locale object representing the locale of the message
+    * @throws SOAPException if there was an error in adding the Reason text or the locale passed was null.
+    * @throws UnsupportedOperationException if this message does not support the SOAP 1.2 concept of Fault Reason.
+    * @since SAAJ 1.3
+    */
+   void addFaultReasonText(String text, Locale locale) throws SOAPException;
+
+   /**
+    * Adds a Subcode to the end of the sequence of Subcodes contained by this SOAPFault. 
+    * Subcodes, which were introduced in SOAP 1.2, are represented by a recursive sequence of 
+    * subelements rooted in the mandatory Code subelement of a SOAP Fault.
+    * 
+    * @param subcode a QName containing the Value of the Subcode
+    * @throws SOAPException if there was an error in setting the Subcode
+    * @throws UnsupportedOperationException if this message does not support the SOAP 1.2 concept of Subcode.
+    * @since SAAJ 1.3
+    */
+   void appendFaultSubcode(javax.xml.namespace.QName subcode) throws SOAPException;
+
+   /**
+    * Returns the optional detail element for this SOAPFault  object.
+    *
+    * A Detail object carries application-specific error information related to SOAPBodyElement objects.
+    *
+    * @return a Detail object with application-specific error information
+    */
+   Detail getDetail();
+
+   /**
+    * Gets the fault actor for this SOAPFault object.
+    * @return a String giving the actor in the message path that caused this SOAPFault object
+    */
+   String getFaultActor();
+
+   /**
+    * Gets the fault code for this SOAPFault object.
+    * @return a String with the fault code
+    */
+   String getFaultCode();
+
+   /**
+    * Gets the mandatory SOAP 1.1 fault code for this SOAPFault object as a SAAJ Name object.
+    * The SOAP 1.1 specification requires the value of the "faultcode" element to be of type QName.
+    * This method returns the content of the element as a QName in the form of a SAAJ Name object.
+    * This method should be used instead of the getFaultCode method since it allows applications to
+    * easily access the namespace name without additional parsing.
+    *
+    * In the future, a QName object version of this method may also be added.
+    *
+    * @return a Name representing the faultcode
+    */
+   Name getFaultCodeAsName();
+
+   /**
+    * Gets the fault code for this SOAPFault object as a QName object.
+    * @return a QName representing the faultcode
+    * @since SAAJ 1.3
+    */
+   QName getFaultCodeAsQName();
+   
+   /**
+    * Returns the optional Node element value for this SOAPFault object. The Node element is optional in SOAP 1.2.
+    * @return Content of the env:Fault/env:Node element as a String or null if none
+    * @throws UnsupportedOperationException if this message does not support the SOAP 1.2 concept of Fault Node.
+    * @since SAAJ 1.3
+    */
+   String getFaultNode();
+
+   /**
+    * Returns an Iterator over a distinct sequence of Locales for which there are associated Reason Text items. 
+    * Any of these Locales can be used in a call to getFaultReasonText in order to obtain a localized version of the Reason Text string.
+    * @return an Iterator over a sequence of Locale  objects for which there are associated Reason Text items.
+    * @throws SOAPException if there was an error in retrieving the fault Reason locales.
+    * @throws UnsupportedOperationException if this message does not support the SOAP 1.2 concept of Fault Reason.
+    * @since SAAJ 1.3
+    */
+   Iterator getFaultReasonLocales() throws SOAPException;
+   
+   /**
+    * Returns an Iterator over a sequence of String objects containing all of the Reason Text items for this SOAPFault.
+    * @return an Iterator over env:Fault/env:Reason/env:Text items.
+    * @throws SOAPException if there was an error in retrieving the fault Reason texts.
+    * @throws UnsupportedOperationException if this message does not support the SOAP 1.2 concept of Fault Reason.
+    * @since SAAJ 1.3
+    */
+   Iterator getFaultReasonTexts() throws SOAPException;
+   
+   /**
+    * Returns the Reason Text associated with the given Locale. If more than one such Reason Text exists the first matching Text is returned
+    * @param locale the Locale for which a localized Reason Text is desired
+    * @return the Reason Text associated with locale
+    * @throws SOAPException if there was an error in retrieving the fault Reason text for the specified locale .
+    * @throws UnsupportedOperationException if this message does not support the SOAP 1.2 concept of Fault Reason.
+    * @since SAAJ 1.3
+    */
+   String getFaultReasonText(Locale locale) throws SOAPException;
+   
+   /**
+    * Creates or replaces any existing Node element value for this SOAPFault object. The Node element is optional in SOAP 1.2.
+    * @throws SOAPException f there was an error in setting the Node for this SOAPFault object.
+    * @throws UnsupportedOperationException if this message does not support the SOAP 1.2 concept of Fault Node.
+    * @since SAAJ 1.3
+    */
+   void setFaultNode(String uri) throws SOAPException;
+
+   /**
+    * Returns the optional Role element value for this SOAPFault object. The Role element is optional in SOAP 1.2.
+    * @return Content of the env:Fault/env:Role element as a String or null if none
+    * @throws UnsupportedOperationException if this message does not support the SOAP 1.2 concept of Fault Role.
+    * @since SAAJ 1.3
+    */
+   String getFaultRole();
+
+   /**
+    * Creates or replaces any existing Role element value for this SOAPFault object. The Role element is optional in SOAP 1.2.
+    * @throws SOAPException f there was an error in setting the Role for this SOAPFault object.
+    * @throws UnsupportedOperationException if this message does not support the SOAP 1.2 concept of Fault Role.
+    * @since SAAJ 1.3
+    */
+   void setFaultRole(String uri) throws SOAPException;
+   /**
+    * Gets the fault string for this SOAPFault object.
+    * @return a String giving an explanation of the fault
+    */
+   String getFaultString();
+
+   /**
+    * Gets the locale of the fault string for this SOAPFault object.
+    * @return a Locale object indicating the native language of the fault string or null if no locale was specified
+    */
+   Locale getFaultStringLocale();
+
+   /**
+    * Gets the Subcodes for this SOAPFault as an iterator over QNames.
+    * @return an Iterator that accesses a sequence of QNames. This Iterator should not support the optional remove method. 
+    *    The order in which the Subcodes are returned reflects the hierarchy of Subcodes present in the fault from top to bottom.
+    * @throws UnsupportedOperationException if this message does not support the SOAP 1.2 concept of Subcode.  
+    * @since SAAJ 1.3
+    */
+   Iterator getFaultSubcodes();
+   
+   /**
+    * Removes any Subcodes that may be contained by this SOAPFault. Subsequent calls to getFaultSubcodes will return an empty 
+    * iterator until a call to appendFaultSubcode is made.
+    * @throws UnsupportedOperationException if this message does not support the SOAP 1.2 concept of Subcode.  
+    * @since SAAJ 1.3
+    */
+   void removeAllFaultSubcodes();
+   
+   /**
+    * Returns true if this SOAPFault has a Detail  subelement and false otherwise. Equivalent to (getDetail()!=null).
+    * @return true if this SOAPFault has a Detail  subelement and false otherwise.
+    * @since SAAJ 1.3
+    */
+   boolean hasDetail();
+   
+   /**
+    * Sets this SOAPFault object with the given fault actor.
+    *
+    * The fault actor is the recipient in the message path who caused the fault to happen.
+    *
+    * @param faultActor  a String identifying the actor that caused this SOAPFault object
+    * @throws SOAPException  if there was an error in adding the faultActor to the underlying XML tree.
+    */
+   void setFaultActor(String faultActor) throws SOAPException;
+
+   /**
+    * Sets this SOAPFault object with the give fault code.
+    *
+    * Fault codes, which given information about the fault, are defined in the SOAP 1.1 specification.
+    * This element is mandatory in SOAP 1.1. Because the fault code is required to be a QName
+    * it is preferable to use the setFaultCode(Name) form of this method.
+    *
+    * @param faultCode a String giving the fault code to be set.
+    * It must be of the form "prefix:localName" where the prefix has been defined in a namespace declaration.
+    * @throws SOAPException if there was an error in adding the faultCode to the underlying XML tree.
+    */
+   void setFaultCode(String faultCode) throws SOAPException;
+
+   /**
+    * Sets this SOAPFault object with the given fault code.
+    *
+    * Fault codes, which give information about the fault, are defined in the SOAP 1.1 specification.
+    * A fault code is mandatory and must be of type QName. This method provides a convenient way to set a fault code.
+    * For example,
+    *
+    *    SOAPEnvelope se = ...;
+    *    //Create a qualified name in the SOAP namespace with a localName
+    *    // of "Client".  Note that prefix parameter is optional and is null
+    *    // here which causes the implementation to use an appropriate prefix.
+    *    Name qname = se.createName("Client", null, SOAPConstants.URI_NS_SOAP_ENVELOPE);
+    *    SOAPFault fault = ...;
+    *    fault.setFaultCode(qname);
+    *
+    * It is preferable to use this method over setFaultCode(String).
+    *
+    * @param faultCode  a Name object giving the fault code to be set. It must be namespace qualified.
+    * @throws SOAPException if there was an error in adding the faultcode element to the underlying XML tree.
+    */
+   void setFaultCode(Name faultCode) throws SOAPException;
+
+   /**
+    * Sets this SOAPFault object with the given fault code. It is preferable to use this method over setFaultCode(Name).
+    * @param faultCode a QName object giving the fault code to be set. It must be namespace qualified.
+    * @throws SOAPException if there was an error in adding the faultcode element to the underlying XML tree.
+    * @since SAAJ 1.3
+    */
+   void setFaultCode(QName faultCode) throws SOAPException;
+
+   /**
+    * Sets the fault string for this SOAPFault object to the given string.
+    *
+    * @param faultString  a String giving an explanation of the fault
+    * @throws SOAPException  if there was an error in adding the faultString to the underlying XML tree.
+    */
+   void setFaultString(String faultString) throws SOAPException;
+
+   /**
+    * Sets the fault string for this SOAPFault object to the given string and localized to the given locale.
+    *
+    * @param faultString  a String giving an explanation of the fault
+    * @param locale a Locale object indicating the native language of the faultString
+    * @throws SOAPException
+    */
+   void setFaultString(String faultString, Locale locale) throws SOAPException;
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/SOAPFault.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/SOAPFaultElement.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/SOAPFaultElement.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/SOAPFaultElement.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,35 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+/** A representation of the contents in a SOAPFault object. The Detail
+ * interface is a SOAPFaultElement. 
+ * 
+ * Content is added to a SOAPFaultElement using the SOAPElement method
+ * addTextNode.
+ * 
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface SOAPFaultElement extends SOAPElement
+{
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/SOAPFaultElement.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/SOAPHeader.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/SOAPHeader.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/SOAPHeader.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,172 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+import java.util.Iterator;
+
+import javax.xml.namespace.QName;
+
+/**
+ * A representation of the SOAP header element. A SOAP header element consists
+ * of XML data that affects the way the application-specific content is
+ * processed by the message provider. For example, transaction semantics,
+ * authentication information, and so on, can be specified as the content of a
+ * SOAPHeader object.
+ * 
+ * A SOAPEnvelope object contains an empty SOAPHeader object by default. If the
+ * SOAPHeader object, which is optional, is not needed, it can be retrieved and
+ * deleted with the following line of code. The variable se is a SOAPEnvelope
+ * object.
+ *
+ *    se.getHeader().detachNode();
+ *
+ * A SOAPHeader object is created with the SOAPEnvelope method addHeader.
+ * This method, which creates a new header and adds it to the envelope, may be
+ * called only after the existing header has been removed.
+ *
+ *    se.getHeader().detachNode();
+ *    SOAPHeader sh = se.addHeader();
+ *
+ * A SOAPHeader object can have only SOAPHeaderElement objects as its
+ * immediate children. The method addHeaderElement creates a new HeaderElement
+ * object and adds it to the SOAPHeader object. In the following line of code,
+ * the argument to the method addHeaderElement is a Name object that is the
+ * name for the new HeaderElement object.
+ *
+ *    SOAPHeaderElement shElement = sh.addHeaderElement(name);
+ *
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface SOAPHeader extends SOAPElement
+{
+   /**
+    * Creates a new SOAPHeaderElement object initialized with the specified name and adds it to this SOAPHeader object.
+    *
+    * @param name a Name object with the name of the new SOAPHeaderElement object
+    * @return the new SOAPHeaderElement object that was inserted into this SOAPHeader object
+    * @throws SOAPException if a SOAP error occurs
+    */
+   public SOAPHeaderElement addHeaderElement(Name name) throws SOAPException;
+
+   /**
+    * Creates a new SOAPHeaderElement object initialized with the specified qname and adds it to this SOAPHeader object.
+    * @param qname a QName object with the qname of the new SOAPHeaderElement object
+    * @return the new SOAPHeaderElement object that was inserted into this SOAPHeader object
+    * @throws SOAPException if a SOAP error occurs
+    * @since SAAJ 1.3 
+    */
+   public SOAPHeaderElement addHeaderElement(QName qname) throws SOAPException;
+   
+   /**
+    * Creates a new NotUnderstood SOAPHeaderElement object initialized with the specified name and adds it to this SOAPHeader object. 
+    * This operation is supported only by SOAP 1.2.
+    * 
+    * @param qname a QName object with the name of the SOAPHeaderElement object that was not understood.
+    * @return the new SOAPHeaderElement object that was inserted into this SOAPHeader object
+    * @throws SOAPException if a SOAP error occurs.
+    * @throws UnsupportedOperationException if this is a SOAP 1.1 Header.
+    * @since SAAJ 1.3 
+    */
+   public SOAPHeaderElement addNotUnderstoodHeaderElement(QName qname) throws SOAPException;
+
+   /**
+    * Creates a new Upgrade SOAPHeaderElement object initialized with the specified List of supported SOAP URIs 
+    * and adds it to this SOAPHeader object. This operation is supported on both SOAP 1.1 and SOAP 1.2 header.
+    * 
+    * @param soapURIs an Iterator object with the URIs of SOAP versions supported.
+    * @return the new SOAPHeaderElement object that was inserted into this SOAPHeader object
+    * @throws SOAPException if a SOAP error occurs.
+    * @since SAAJ 1.3 
+    */
+   public SOAPHeaderElement addUpgradeHeaderElement(Iterator soapURIs) throws SOAPException;
+
+   /**
+    * Creates a new Upgrade SOAPHeaderElement object initialized with the specified array of supported SOAP URIs 
+    * and adds it to this SOAPHeader object. This operation is supported on both SOAP 1.1 and SOAP 1.2 header.
+    * 
+    * @param soapURIs an array of the URIs of SOAP versions supported.
+    * @return the new SOAPHeaderElement object that was inserted into this SOAPHeader object
+    * @throws SOAPException if a SOAP error occurs.
+    * @since SAAJ 1.3 
+    */
+   public SOAPHeaderElement addUpgradeHeaderElement(String[] soapURIs) throws SOAPException;
+   
+   /**
+    * Creates a new Upgrade SOAPHeaderElement object initialized with the specified supported SOAP URI and adds it to this SOAPHeader object. 
+    * This operation is supported on both SOAP 1.1 and SOAP 1.2 header.
+    * 
+    * @param soapURI the URI of SOAP the version that is supported.
+    * @return the new SOAPHeaderElement object that was inserted into this SOAPHeader object
+    * @throws SOAPException if a SOAP error occurs.
+    * @since SAAJ 1.3 
+    */
+   public SOAPHeaderElement addUpgradeHeaderElement(String soapURI) throws SOAPException;
+   
+   /**
+    * Returns an Iterator over all the SOAPHeaderElement objects in this SOAPHeader object.
+    *
+    * @return an Iterator object over all the SOAPHeaderElement objects contained by this SOAPHeader
+    */
+   public Iterator examineAllHeaderElements();
+
+   /**
+    * Returns an Iterator over all the SOAPHeaderElement objects in this SOAPHeader object that have the specified actor.
+    * An actor is a global attribute that indicates the intermediate parties that should process a message before it
+    * reaches its ultimate receiver. An actor receives the message and processes it before sending it on to the next actor.
+    * The default actor is the ultimate intended recipient for the message, so if no actor attribute is included in a
+    * SOAPHeader object, it is sent to the ultimate receiver along with the message body.
+    *
+    * @param actor a String giving the URI of the actor for which to search
+    * @return an Iterator object over all the SOAPHeaderElement objects that contain the specified actor and are marked as MustUnderstand
+    */
+   public Iterator examineHeaderElements(String actor);
+
+   /**
+    * Returns an Iterator over all the SOAPHeaderElement objects in this SOAPHeader object that have the specified
+    * actor and that have a MustUnderstand attribute whose value is equivalent to true.
+    *
+    * @param actor a String giving the URI of the actor for which to search
+    * @return an Iterator object over all the SOAPHeaderElement objects that contain the specified actor and are marked as MustUnderstand
+    */
+   public Iterator examineMustUnderstandHeaderElements(String actor);
+
+   /**
+    * Returns an Iterator over all the SOAPHeaderElement objects in this SOAPHeader object and detaches
+    * them from this SOAPHeader object.
+    *
+    * @return an Iterator object over all the SOAPHeaderElement objects contained by this SOAPHeader
+    */
+   public Iterator extractAllHeaderElements();
+
+   /**
+    * Returns an Iterator over all the SOAPHeaderElement objects in this SOAPHeader object that have the specified actor
+    * and detaches them from this SOAPHeader object.
+    *
+    * This method allows an actor to process the parts of the SOAPHeader object that apply to it and to remove them
+    * before passing the message on to the next actor.
+    *
+    * @param actor a String giving the URI of the actor for which to search
+    * @return an Iterator object over all the SOAPHeaderElement objects that contain the specified actor and are marked as MustUnderstand
+    */
+   public Iterator extractHeaderElements(String actor);
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/SOAPHeader.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/SOAPHeaderElement.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/SOAPHeaderElement.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/SOAPHeaderElement.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,103 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+/** An object representing the contents in the SOAP header part of the SOAP
+ * envelope. The immediate children of a SOAPHeader object can be represented
+ * only as SOAPHeaderElement objects.
+ * 
+ * A SOAPHeaderElement object can have other SOAPElement objects as its children. 
+
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface SOAPHeaderElement extends SOAPElement
+{
+   /** Returns the uri of the actor associated with this SOAPHeaderElement object.
+    *
+    * @return  a String giving the URI of the actor
+    */
+   public String getActor();
+
+   /** Returns whether the mustUnderstand attribute for this SOAPHeaderElement object is turned on.
+    *
+    * @return true if the mustUnderstand attribute of this SOAPHeaderElement object is turned on; false otherwise
+    */
+   public boolean getMustUnderstand();
+
+   /**
+    * Returns the boolean value of the relay attribute for this SOAPHeaderElement
+    * @return true if the relay attribute is turned on; false otherwise
+    * @throws UnsupportedOperationException - if this message does not support the SOAP 1.2 concept of Relay attribute.
+    * @since SAAJ 1.3
+    */
+   public boolean getRelay();
+
+   /**
+    * Sets the relay attribute for this SOAPHeaderElement to be either true or false.
+    * 
+    * The SOAP relay attribute is set to true to indicate that the SOAP header block must be relayed by any node that is 
+    * targeted by the header block but not actually process it. This attribute is ignored on header blocks whose mustUnderstand 
+    * attribute is set to true or that are targeted at the ultimate reciever (which is the default). 
+    * The default value of this attribute is false.
+    * @param relay the new value of the relay attribute
+    * @throws SOAPException if there is a problem in setting the relay attribute.
+    * @throws UnsupportedOperationException if this message does not support the SOAP 1.2 concept of Relay attribute. 
+    * @since SAAJ 1.3
+    */
+   public void setRelay(boolean relay) throws SOAPException;
+
+   /**
+    * Returns the value of the Role attribute of this SOAPHeaderElement.
+    * @return a String giving the URI of the Role
+    * @throws UnsupportedOperationException if this message does not support the SOAP 1.2 concept of Fault Role.
+    * @since SAAJ 1.3
+    */
+   public String getRole();
+
+   /** 
+    * Sets the Role associated with this SOAPHeaderElement  object to the specified Role.
+    *
+    * @param roleURI the URI of the Role
+    * @throws SOAPException if there is an error in setting the role
+    * @throws UnsupportedOperationException if this message does not support the SOAP 1.2 concept of Fault Role
+    * @since SAAJ 1.3
+    */
+   public void setRole(String roleURI);
+
+   /** Sets the actor associated with this SOAPHeaderElement object to the specified actor.
+    * The default value of an actor is: SOAPConstants.URI_SOAP_ACTOR_NEXT
+    *
+    * @param actorURI  a String giving the URI of the actor to set
+    */
+   public void setActor(String actorURI);
+
+   /** Sets the mustUnderstand attribute for this SOAPHeaderElement object to be on or off.
+    *
+    * If the mustUnderstand attribute is on, the actor who receives the SOAPHeaderElement must process it correctly.
+    * This ensures, for example, that if the SOAPHeaderElement object modifies the message,
+    * that the message is being modified correctly.
+    *
+    * @param mustUnderstand  true to set the mustUnderstand attribute on; false to turn if off
+    */
+   public void setMustUnderstand(boolean mustUnderstand);
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/SOAPHeaderElement.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/SOAPMessage.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/SOAPMessage.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/SOAPMessage.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,315 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.HashMap;
+import java.util.Iterator;
+
+import javax.activation.DataHandler;
+
+/** The root class for all SOAP messages. As transmitted on the "wire", a SOAP message is an XML document or a
+ * MIME message whose first body part is an XML/SOAP document.
+ *
+ * A SOAPMessage object consists of a SOAP part and optionally one or more attachment parts.
+ * The SOAP part for a SOAPMessage object is a SOAPPart object, which contains information used for message routing and
+ * identification, and which can contain application-specific content. All data in the SOAP Part of a message must be in XML format.
+ *
+ * A new SOAPMessage object contains the following by default:
+ *
+ * A SOAPPart object
+ * A SOAPEnvelope object
+ * A SOAPBody object
+ * A SOAPHeader object
+ *
+ * The SOAP part of a message can be retrieved by calling the method SOAPMessage.getSOAPPart().
+ * The SOAPEnvelope object is retrieved from the SOAPPart object, and the SOAPEnvelope object is used to retrieve the
+ * SOAPBody and SOAPHeader objects.
+ *
+ * SOAPPart sp = message.getSOAPPart();
+ * SOAPEnvelope se = sp.getEnvelope();
+ * SOAPBody sb = se.getBody();
+ * SOAPHeader sh = se.getHeader();
+ *
+ * In addition to the mandatory SOAPPart object, a SOAPMessage object may contain zero or more AttachmentPart objects,
+ * each of which contains application-specific data. The SOAPMessage interface provides methods for creating AttachmentPart
+ * objects and also for adding them to a SOAPMessage object. A party that has received a SOAPMessage object can examine
+ * its contents by retrieving individual attachment parts.
+ *
+ * Unlike the rest of a SOAP message, an attachment is not required to be in XML format and can therefore be anything from
+ * simple text to an image file. Consequently, any message content that is not in XML format must be in an AttachmentPart object.
+ *
+ * A MessageFactory object may create SOAPMessage objects with behavior that is specialized to a particular
+ * implementation or application of SAAJ. For instance, a MessageFactory object may produce SOAPMessage objects that
+ * conform to a particular Profile such as ebXML. In this case a MessageFactory object might produce SOAPMessage
+ * objects that are initialized with ebXML headers.
+ *
+ * In order to ensure backward source compatibility, methods that are added to this class after version 1.1 of the SAAJ
+ * specification are all concrete instead of abstract and they all have default implementations.
+ * Unless otherwise noted in the JavaDocs for those methods the default implementations simply throw an
+ * UnsupportedOperationException and the SAAJ implementation code must override them with methods that provide
+ * the specified behavior. Legacy client code does not have this restriction, however, so long as there is no claim
+ * made that it conforms to some later version of the specification than it was originally written for.
+ * A legacy class that extends the SOAPMessage class can be compiled and/or run against succeeding versions of
+ * the SAAJ API without modification. If such a class was correctly implemented then it will continue to behave
+ * correctly relative the the version of the specification against which it was written.
+ *
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public abstract class SOAPMessage
+{
+   private HashMap properties = new HashMap();
+
+   /** Specifies the character type encoding for the SOAP Message. Valid values include "utf-8" and "utf-16". The default is "utf-8". */
+   public static final String CHARACTER_SET_ENCODING = "javax.xml.soap.character-set-encoding";
+   /** Specifies whether the SOAP Message will contain an XML declaration when it is sent. The default is "false". */
+   public static final String WRITE_XML_DECLARATION = "javax.xml.soap.write-xml-declaration";
+
+   /**
+    * Adds the given AttachmentPart object to this SOAPMessage object.
+    * An AttachmentPart object must be created before it can be added to a message.
+    * @param attachmentpart an AttachmentPart object that is to become part of this SOAPMessage object
+    */
+   public abstract void addAttachmentPart(AttachmentPart attachmentpart);
+
+   /**
+    * Creates a new empty AttachmentPart object. Note that the method addAttachmentPart must be called with this new
+    * AttachmentPart object as the parameter in order for it to become an attachment to this SOAPMessage object.
+    * @return a new AttachmentPart object that can be populated and added to this SOAPMessage object
+    */
+   public abstract AttachmentPart createAttachmentPart();
+
+   /**
+    * Creates an AttachmentPart object and populates it using the given DataHandler object.
+    * @param datahandler the javax.activation.DataHandler object that will generate the content for this SOAPMessage object
+    * @return a new AttachmentPart object that contains data generated by the given DataHandler object
+    */
+   public AttachmentPart createAttachmentPart(DataHandler datahandler)
+   {
+      AttachmentPart part = createAttachmentPart();
+      part.setDataHandler(datahandler);
+      return part;
+   }
+
+   /**
+    * Creates an AttachmentPart object and populates it with the specified data of the specified content type.
+    * @param content an Object containing the content for this SOAPMessage object
+    * @param contentType a String object giving the type of content; examples are "text/xml", "text/plain", and "image/jpeg"
+    * @return  a new AttachmentPart object that contains the given data
+    */
+   public AttachmentPart createAttachmentPart(Object content, String contentType)
+   {
+      AttachmentPart part = createAttachmentPart();
+      part.setContent(content, contentType);
+      return part;
+   }
+
+   /**
+    * Retrieves value of the specified property.
+    * @param property the name of the property to retrieve
+    * @return the value associated with the named property or null if no such property exists.
+    * @throws SOAPException if the property name is not recognized.
+    */
+   public Object getProperty(String property) throws SOAPException
+   {
+      return properties.get(property);
+   }
+
+   /**
+    * Associates the specified value with the specified property. If there was already a value associated with this
+    * property, the old value is replaced.
+    *
+    * The valid property names include WRITE_XML_DECLARATION and CHARACTER_SET_ENCODING.
+    * All of these standard SAAJ properties are prefixed by "javax.xml.soap".
+    * Vendors may also add implementation specific properties.
+    * These properties must be prefixed with package names that are unique to the vendor.
+    *
+    * Setting the property WRITE_XML_DECLARATION to "true" will cause an XML Declaration to be written out at the start
+    * of the SOAP message. The default value of "false" suppresses this declaration.
+    *
+    * The property CHARACTER_SET_ENCODING defaults to the value "utf-8" which causes the SOAP message to be
+    * encoded using UTF-8. Setting CHARACTER_SET_ENCODING to "utf-16" causes the SOAP message to be encoded using UTF-16.
+    *
+    * Some implementations may allow encodings in addition to UTF-8 and UTF-16. Refer to your vendor's documentation for details.
+    *
+    * @param property the property with which the specified value is to be associated.
+    * @param value the value to be associated with the specified property
+    * @throws SOAPException if the property name is not recognized
+    */
+   public void setProperty(String property, Object value) throws SOAPException
+   {
+      properties.put(property, value);
+   }
+
+   /**
+    * Gets the SOAP Body contained in this SOAPMessage object.
+    * @return the SOAPBody object contained by this SOAPMessage object
+    * @throws SOAPException if the SOAP Body does not exist or cannot be retrieved
+    */
+   public SOAPBody getSOAPBody() throws SOAPException
+   {
+      SOAPPart soapPart = getSOAPPart();
+      if (soapPart != null)
+      {
+         SOAPEnvelope soapEnvelope = soapPart.getEnvelope();
+         if (soapEnvelope != null)
+         {
+            SOAPBody soapBody = soapEnvelope.getBody();
+            return soapBody;
+         }
+      }
+      throw new SOAPException("Cannot obtain SOAPBody from SOAPMessage");
+   }
+
+   /**
+    * Gets the SOAP Header contained in this SOAPMessage object.
+    * @return the SOAPHeader object contained by this SOAPMessage object
+    * @throws SOAPException if the SOAP Header does not exist or cannot be retrieved
+    */
+   public SOAPHeader getSOAPHeader() throws SOAPException
+   {
+      SOAPPart soapPart = getSOAPPart();
+      if (soapPart != null)
+      {
+         SOAPEnvelope soapEnvelope = soapPart.getEnvelope();
+         if (soapEnvelope != null)
+         {
+            SOAPHeader soapHeader = soapEnvelope.getHeader();
+            return soapHeader;
+         }
+      }
+      throw new SOAPException("Cannot obtain SOAPHeader from SOAPMessage");
+   }
+
+   /**
+    * Retrieves a description of this SOAPMessage object's content.
+    * @return  a String describing the content of this message or null if no description has been set
+    */
+   public abstract String getContentDescription();
+
+   /**
+    * Sets the description of this SOAPMessage object's content with the given description.
+    * @param description a String describing the content of this message
+    */
+   public abstract void setContentDescription(String description);
+
+   /**
+    * Returns all the transport-specific MIME headers for this SOAPMessage object in a transport-independent fashion.
+    * @return a MimeHeaders object containing the MimeHeader objects
+    */
+   public abstract MimeHeaders getMimeHeaders();
+
+   /**
+    * Gets the SOAP part of this SOAPMessage object.
+    *
+    * SOAPMessage object contains one or more attachments, the SOAP Part must be the first MIME body part in the message.
+    *
+    * @return the SOAPPart object for this SOAPMessage object
+    */
+   public abstract SOAPPart getSOAPPart();
+
+   /**
+    * Removes all AttachmentPart objects that have been added to this SOAPMessage object.
+    *
+    * This method does not touch the SOAP part.
+    */
+   public abstract void removeAllAttachments();
+
+   /**
+    * Removes all the AttachmentPart objects that have header entries that match the specified headers. 
+    * Note that the removed attachment could have headers in addition to those specified.
+    * @param headers a MimeHeaders object containing the MIME headers for which to search
+    * @since SAAJ 1.3
+    */
+   public abstract void removeAttachments(MimeHeaders headers);
+
+   /**
+    * Gets a count of the number of attachments in this message. This count does not include the SOAP part.
+    * @return the number of AttachmentPart objects that are part of this SOAPMessage object
+    */
+   public abstract int countAttachments();
+
+   /**
+    * Retrieves all the AttachmentPart objects that are part of this SOAPMessage object.
+    * @return an iterator over all the attachments in this message
+    */
+   public abstract Iterator getAttachments();
+
+   /**
+    * Returns an AttachmentPart object that is associated with an attachment that is referenced by this SOAPElement or null 
+    * if no such attachment exists. References can be made via an href attribute as described in SOAP Messages with Attachments, 
+    * or via a single Text child node containing a URI as described in the WS-I Attachments Profile 1.0 for elements of 
+    * schema type ref:swaRef(ref:swaRef). These two mechanisms must be supported. 
+    * The support for references via href attribute also implies that this method should also be supported on an element that 
+    * is an xop:Include element ( XOP). other reference mechanisms may be supported by individual implementations of this standard. 
+    * Contact your vendor for details.
+    * @param element The SOAPElement containing the reference to an Attachment
+    * @return the referenced AttachmentPart or null if no such AttachmentPart exists or no reference can be found in this SOAPElement.
+    * @throws SOAPException if there is an error in the attempt to access the attachment
+    * @since SAAJ 1.3
+    */
+   public abstract AttachmentPart getAttachment(SOAPElement element) throws SOAPException;
+
+   /**
+    * Retrieves all the AttachmentPart objects that have header entries that match the specified headers.
+    * Note that a returned attachment could have headers in addition to those specified.
+    * @param mimeheaders a MimeHeaders object containing the MIME headers for which to search
+    * @return an iterator over all attachments that have a header that matches one of the given headers
+    */
+   public abstract Iterator getAttachments(MimeHeaders mimeheaders);
+
+   /**
+    * Updates this SOAPMessage object with all the changes that have been made to it.
+    * This method is called automatically when writeTo(OutputStream) is called.
+    * However, if changes are made to a message that was received or to one that has already been sent, the method
+    * saveChanges needs to be called explicitly in order to save the changes.
+    * The method saveChanges also generates any changes that can be read back (for example,
+    * a MessageId in profiles that support a message id). All MIME headers in a message that is created for sending
+    * purposes are guaranteed to have valid values only after saveChanges has been called.
+    *
+    * In addition, this method marks the point at which the data from all constituent AttachmentPart objects are pulled into the message.
+    *
+    * @throws SOAPException if there was a problem saving changes to this message.
+    */
+   public abstract void saveChanges() throws SOAPException;
+
+   /**
+    * Indicates whether this SOAPMessage object needs to have the method saveChanges called on it.
+    * @return true if saveChanges needs to be called; false otherwise.
+    */
+   public abstract boolean saveRequired();
+
+   /**
+    * Writes this SOAPMessage object to the given output stream. The externalization format is as defined by the
+    * SOAP 1.1 with Attachments specification.
+    *
+    * If there are no attachments, just an XML stream is written out. For those messages that have attachments,
+    * writeTo writes a MIME-encoded byte stream.
+    *
+    * @param outputstream the OutputStream object to which this SOAPMessage object will be written
+    * @throws SOAPException if there was a problem in externalizing this SOAP message
+    * @throws IOException if an I/O error occurs
+    */
+   public abstract void writeTo(OutputStream outputstream) throws SOAPException, IOException;
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/SOAPMessage.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/SOAPPart.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/SOAPPart.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/SOAPPart.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,127 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+import java.util.Iterator;
+
+import javax.xml.transform.Source;
+
+import org.w3c.dom.Document;
+
+/** 
+ * The container for the SOAP-specific portion of a SOAPMessage object.
+ *  
+ * All messages are required to have a SOAP part, so when a SOAPMessage object is created, 
+ * it will automatically have a SOAPPart object. 
+ * 
+ * A SOAPPart object is a MIME part and has the MIME headers Content-Id, Content-Location, and Content-Type. 
+ * Because the value of Content-Type must be "text/xml", a SOAPPart object automatically has a MIME header of 
+ * Content-Type with its value set to "text/xml".
+ *  
+ * The value must be "text/xml" because content in the SOAP part of a message must be in XML format. 
+ * Content that is not of type "text/xml" must be in an AttachmentPart object rather than in the SOAPPart object.
+ * 
+ * When a message is sent, its SOAP part must have the MIME header Content-Type set to "text/xml". 
+ * Or, from the other perspective, the SOAP part of any message that is received must have the MIME header 
+ * Content-Type with a value of "text/xml".
+ * 
+ * A client can access the SOAPPart object of a SOAPMessage object by calling the method SOAPMessage.getSOAPPart. 
+ * The following line of code, in which message is a SOAPMessage object, retrieves the SOAP part of a message.
+ * 
+ * SOAPPart soapPart = message.getSOAPPart();
+ * 
+ * A SOAPPart object contains a SOAPEnvelope object, which in turn contains a SOAPBody object and a SOAPHeader object. 
+ * The SOAPPart method getEnvelope can be used to retrieve the SOAPEnvelope object.
+ *  
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public abstract class SOAPPart implements Document, Node
+{
+   public SOAPPart()
+   {
+   }
+
+   public abstract SOAPEnvelope getEnvelope() throws SOAPException;
+
+   public String getContentId()
+   {
+      String id = null;
+      String[] header = getMimeHeader("Content-Id");
+      if (header != null && header.length > 0)
+      {
+         id = header[0];
+      }
+      return id;
+   }
+
+   public void setContentId(String contentId)
+   {
+      setMimeHeader("Content-Id", contentId);
+   }
+
+   public String getContentLocation()
+   {
+      String location = null;
+      String[] header = getMimeHeader("Content-Location");
+      if (header != null && header.length > 0)
+      {
+         location = header[0];
+      }
+      return location;
+   }
+
+   public void setContentLocation(String contentLocation)
+   {
+      setMimeHeader("Content-Location", contentLocation);
+   }
+
+   public abstract void removeMimeHeader(String s);
+
+   public abstract void removeAllMimeHeaders();
+
+   public abstract String[] getMimeHeader(String s);
+
+   public abstract void setMimeHeader(String s, String s1);
+
+   public abstract void addMimeHeader(String s, String s1);
+
+   public abstract Iterator getAllMimeHeaders();
+
+   public abstract Iterator getMatchingMimeHeaders(String as[]);
+
+   public abstract Iterator getNonMatchingMimeHeaders(String as[]);
+
+   /** Sets the content of the SOAPEnvelope object with the data from the given Source object.
+    * This Source must contain a valid SOAP document.
+    * @param source the {@link javax.xml.transform.Source} object with the data to be set
+    * @throws SOAPException if the implementation cannot convert the specified Source object
+    */
+   public abstract void setContent(Source source) throws SOAPException;
+
+   /** Returns the content of the SOAPEnvelope as a JAXP <CODE>Source</CODE> object.
+    * @return the content as a <CODE> javax.xml.transform.Source</CODE> object
+    * @throws  javax.xml.soap.SOAPException  if the implementation cannot convert the specified <CODE>Source</CODE> object
+    * @see #setContent(javax.xml.transform.Source) setContent(javax.xml.transform.Source)
+    */
+   public abstract Source getContent() throws SOAPException;
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/SOAPPart.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/soap/Text.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/soap/Text.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/soap/Text.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.soap;
+
+/** A representation of a node whose value is text. A Text object may represent
+ * text that is content or text that is a comment.
+ *  
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public interface Text extends javax.xml.soap.Node, org.w3c.dom.Text
+{
+
+   /** Retrieves whether this Text object represents a comment.
+    *
+    * @return true if this Text object is a comment; false otherwise
+    */
+   public boolean isComment();
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/soap/Text.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/Action.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/Action.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/Action.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,144 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * The <code>Action</code> annotation allows explicit association of <code>Action</code> 
+ * message addressing property with <code>input</code>, <code>output</code>, and 
+ * <code>fault</code> messages of the mapped WSDL operation. 
+ * <p>
+ * This annotation can be specified on each method of a service endpoint interface. 
+ * For such a method, the mapped operation in the generated WSDL 
+ * contains explicit <code>wsaw:Action</code> attribute on the WSDL <code>input</code>, 
+ * <code>output</code> and <code>fault</code> messages of the WSDL <code>operation</code> 
+ * based upon which attributes of the <code>Action</code> annotation have been specified.
+ * <p>
+ * <b>Example 1</b>: Specify explicit values for <code>Action</code> message addressing property 
+ * for <code>input</code> and <code>output</code> messages.
+ * 
+ * <pre>
+ * &#64;javax.jws.WebService
+ * public class AddNumbersImpl {
+ *     &#64;javax.xml.ws.Action(
+ *         input="http://example.com/inputAction",
+ *         output="http://example.com/outputAction")
+ *     public int addNumbers(int number1, int number2) {
+ *         return number1 + number2;
+ *     }
+ * }
+ * </pre>
+ * 
+ * The generated WSDL looks like:
+ * <pre>
+ *   &lt;definitions targetNamespace=&quot;http://example.com/numbers&quot; ...&gt;
+ *   ...
+ *     &lt;portType name=&quot;AddNumbersPortType&quot;&gt;
+ *       &lt;operation name=&quot;AddNumbers&quot;&gt;
+ *         &lt;input message=&quot;tns:AddNumbersInput&quot; name=&quot;Parameters&quot;
+ *           wsaw:Action=&quot;http://example.com/inputAction&quot;/&gt;
+ *        &lt;output message=&quot;tns:AddNumbersOutput&quot; name=&quot;Result&quot;
+ *           wsaw:Action=&quot;http://example.com/outputAction&quot;/&gt;
+ *       &lt;/operation&gt;
+ *     &lt;portType&gt;
+ *   ...
+ *   &lt;definitions&gt;
+ * </pre>
+ * 
+ * <p>
+ * <b>Example 2</b>: Specify explicit value for <code>Action</code> message addressing property
+ * for only the <code>input</code> message. The default values are used for the 
+ * <code>output</code> message.
+ * 
+ * <pre>
+ * &#64;javax.jws.WebService
+ * public class AddNumbersImpl {
+ *     &#64;javax.xml.ws.Action(input=&quot;http://example.com/inputAction&quot;)
+ *     public int addNumbers(int number1, int number2) {
+ *         return number1 + number2;
+ *     }
+ * }
+ * </pre>
+ * 
+ * The generated WSDL looks like:
+ * 
+ * <pre>
+ *   &lt;definitions targetNamespace=&quot;http://example.com/numbers&quot; ...&gt;
+ *   ...
+ *     &lt;portType name=&quot;AddNumbersPortType&quot;&gt;
+ *       &lt;operation name=&quot;AddNumbers&quot;&gt;
+ *         &lt;input message=&quot;tns:AddNumbersInput&quot; name=&quot;Parameters&quot;
+ *           wsaw:Action=&quot;http://example.com/inputAction&quot;/&gt;
+ *        &lt;output message=&quot;tns:AddNumbersOutput&quot; name=&quot;Result&quot;/&gt;
+ *       &lt;/operation&gt;
+ *     &lt;portType&gt;
+ *   ...
+ *   &lt;definitions&gt;
+ * </pre>
+ *
+ * It is legitimate to specify an explicit value for <code>Action</code> message addressing property for
+ * <code>output</code> message only. In this case, a default value of <code>wsaw:Action</code> is used 
+ * for the <code>input</code> message.
+ * 
+ * <p>
+ * <b>Example 3</b>: See <a href="FaultAction.html">FaultAction</a> annotation for an example of 
+ * how to specify an explicit value for <code>Action</code> message addressing property for the 
+ * <code>fault</code> message.
+ * 
+ * @see FaultAction
+ *
+ * @since JAX-WS 2.1
+ */
+
+ at Documented
+ at Retention(RetentionPolicy.RUNTIME)
+ at Target(ElementType.METHOD)
+public @interface Action {
+   /**
+    * Explicit value of <code>Action</code> message addressing property for the <code>input</code>
+    * message of the operation. If the value is "", then no <code>wsaw:Action</code>
+    * is generated.
+    */
+   String input() default "";
+
+   /**
+    * Explicit value of <code>Action</code> message addressing property for the <code>output</code>
+    * message of the operation. If the value is "", then no <code>wsaw:Action</code>
+    * is generated.
+    */
+   String output() default "";
+
+   /**
+    * Explicit value of <code>Action</code> message addressing property for the <code>fault</code>
+    * message(s) of the operation. Each exception that is mapped to a fault and requires explicit
+    * <code>Action</code> message addressing property, need to be specified as a value in this property 
+    * using <a href="FaultAction.html">FaultAction</a> annotation.
+    */
+   FaultAction[] fault() default {};
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/Action.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/AsyncHandler.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/AsyncHandler.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/AsyncHandler.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,41 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+/** The <code>AsyncHandler</code> interface is implemented by
+ * clients that wish to receive callback notification of the completion of
+ * service endpoint operations invoked asynchronously.
+ *
+ *  @since JAX-WS 2.0
+ **/
+public interface AsyncHandler<T>
+{
+
+   /** Called when the response to an asynchronous operation is available.
+    *
+    * @param res The response to the operation invocation.
+    *
+    **/
+   void handleResponse(Response<T> res);
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/AsyncHandler.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/Binding.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/Binding.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/Binding.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,66 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+
+/** The <code>Binding</code> interface is the base interface
+ *  for JAX-WS protocol bindings.
+ *
+ *  @since JAX-WS 2.0
+ **/
+public interface Binding
+{
+
+   /** 
+    * Gets a copy of the handler chain for a protocol binding instance.
+    * If the returned chain is modified a call to <code>setHandlerChain</code>
+    * is required to configure the binding instance with the new chain.
+    *
+    *  @return java.util.List<javax.xml.ws.handler.HandlerInfo> Handler chain
+    */
+   public java.util.List<javax.xml.ws.handler.Handler> getHandlerChain();
+
+   /** 
+    * Sets the handler chain for the protocol binding instance.
+    *
+    *  @param chain    A List of handler configuration entries
+    *  @throws WebServiceException On an error in the configuration of
+    *                  the handler chain
+    *  @throws java.lang.UnsupportedOperationException If this
+    *          operation is not supported. This may be done to
+    *          avoid any overriding of a pre-configured handler
+    *          chain.
+    */
+   public void setHandlerChain(java.util.List<javax.xml.ws.handler.Handler> chain);
+
+   /** 
+    * Get the URI for this binding instance. 
+    *
+    * @return String The binding identifier for the port.
+    *    Never returns <code>null</code>
+    *
+    * @since JAX-WS 2.1
+    */
+   String getBindingID();
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/Binding.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/BindingProvider.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/BindingProvider.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/BindingProvider.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,175 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+import java.util.Map;
+
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+/** The <code>BindingProvider</code> interface provides access to the
+ *  protocol binding and associated context objects for request and
+ *  response message processing.
+ *
+ *  @since JAX-WS 2.0
+ *
+ *  @see javax.xml.ws.Binding
+ **/
+public interface BindingProvider
+{
+   /** Standard property: User name for authentication.
+    *  <p>Type: java.lang.String
+    **/
+   public static final String USERNAME_PROPERTY = "javax.xml.ws.security.auth.username";
+
+   /** Standard property: Password for authentication.
+    *  <p>Type: java.lang.String
+    **/
+   public static final String PASSWORD_PROPERTY = "javax.xml.ws.security.auth.password";
+
+   /** Standard property: Target service endpoint address. The
+    *  URI scheme for the endpoint address specification MUST
+    *  correspond to the protocol/transport binding for the
+    *  binding in use.
+    *  <p>Type: java.lang.String
+    **/
+   public static final String ENDPOINT_ADDRESS_PROPERTY = "javax.xml.ws.service.endpoint.address";
+
+   /** Standard property: This boolean property is used by a service
+    *  client to indicate whether or not it wants to participate in
+    *  a session with a service endpoint. If this property is set to
+    *  true, the service client indicates that it wants the session
+    *  to be maintained. If set to false, the session is not maintained.
+    *  The default value for this property is false.
+    *  <p>Type: java.lang.Boolean
+    **/
+   public static final String SESSION_MAINTAIN_PROPERTY = "javax.xml.ws.session.maintain";
+
+   /** Standard property for SOAPAction. This boolean property
+    *  indicates whether or not SOAPAction is to be used. The
+    *  default value of this property is false indicating that
+    *  the SOAPAction is not used.
+    *  <p>Type: <code>java.lang.Boolean</code>
+    **/
+   public static final String SOAPACTION_USE_PROPERTY = "javax.xml.ws.soap.http.soapaction.use";
+
+   /** Standard property for SOAPAction. Indicates the SOAPAction
+    *  URI if the <code>javax.xml.ws.soap.http.soapaction.use</code>
+    *  property is set to <code>true</code>.
+    *  <p>Type: <code>java.lang.String</code>
+    **/
+   public static final String SOAPACTION_URI_PROPERTY = "javax.xml.ws.soap.http.soapaction.uri";
+
+   /** Get the context that is used to initialize the message context
+    *  for request messages.
+    *
+    * Modifications to the request context do not affect the message context of
+    * either synchronous or asynchronous operations that have already been
+    * started.
+    *
+    * @return The context that is used in processing request messages.
+    **/
+   Map<String, Object> getRequestContext();
+
+   /** Get the context that resulted from processing a response message.
+    *
+    * The returned context is for the most recently completed synchronous
+    * operation. Subsequent synchronous operation invocations overwrite the
+    * response context. Asynchronous operations return their response context
+    * via the Response interface.
+    *
+    * @return The context that resulted from processing the latest
+    * response messages.
+    **/
+   Map<String, Object> getResponseContext();
+
+   /** Get the Binding for this binding provider.
+    *
+    * @return The Binding for this binding provider.
+    **/
+   Binding getBinding();
+
+   /**
+    * Returns the <code>EndpointReference</code> associated with
+    * this <code>BindingProvider</code> instance.
+    * <p>
+    * If the Binding for this <code>bindingProvider</code> is
+    * either SOAP1.1/HTTP or SOAP1.2/HTTP, then a
+    * <code>W3CEndpointReference</code> MUST be returned.
+    * If the returned <code>EndpointReference</code> is a
+    * <code>W3CEndpointReference</code> it MUST contain 
+    * the <code>wsaw:ServiceName</code> element and the 
+    * <code>wsaw:EndpointName</code> attribute on the 
+    * <code>wsaw:ServiceName</code>. It SHOULD contain
+    * the embedded WSDL in the <code>wsa:Metadata</code> element
+    * if there is an associated WSDL. The
+    * <code>wsaw:InterfaceName</code> MAY also be present. 
+    * <br>
+    * See <a href="http://www.w3.org/TR/2006/CR-ws-addr-wsdl-20060529/">
+    * WS-Addressing - WSDL 1.0</a>.
+    *
+    * @return EndpointReference of the target endpoint associated with this
+    * <code>BindingProvider</code> instance.
+    *
+    * @throws java.lang.UnsupportedOperationException If this 
+    * <code>BindingProvider</code> uses the XML/HTTP binding.
+    *
+    * @see W3CEndpointReference
+    *
+    * @since JAX-WS 2.1
+    */
+   public EndpointReference getEndpointReference();
+
+   /**
+    * Returns the <code>EndpointReference</code> associated with
+    * this <code>BindingProvider</code> instance.  The instance
+    * returned will be of type <code>clazz</code>.
+    * <p>
+    * If the returned <code>EndpointReference</code> is a
+    * <code>W3CEndpointReference</code> it MUST contain 
+    * the <code>wsaw:ServiceName</code> element and the 
+    * <code>wsaw:EndpointName</code> attribute on the 
+    * <code>wsaw:ServiceName</code>. It SHOULD contain
+    * the embedded WSDL in the <code>wsa:Metadata</code> element
+    * if there is an associated WSDL. The
+    * <code>wsaw:InterfaceName</code> MAY also be present. 
+    * <br>
+    * See <a href="http://www.w3.org/TR/2006/CR-ws-addr-wsdl-20060529/">
+    * WS-Addressing - WSDL 1.0</a>.
+    *
+    * @param clazz Specifies the type of <code>EndpointReference</code>
+    * that MUST be returned.
+
+    * @return EndpointReference of the target endpoint associated with this
+    * <code>BindingProvider</code> instance. MUST be of type
+    * <code>clazz</code>.
+
+    * @throws WebServiceException If the Class <code>clazz</code>
+    * is not supported by this implementation.
+    * @throws java.lang.UnsupportedOperationException If this 
+    * <code>BindingProvider</code> uses the XML/HTTP binding.
+    *
+    * @since JAX-WS 2.1
+    */
+   public <T extends EndpointReference> T getEndpointReference(Class<T> clazz);
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/BindingProvider.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/BindingType.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/BindingType.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/BindingType.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,59 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ *  The <code>BindingType</code> annotation is used to
+ *  specify the binding to use for a web service
+ *  endpoint implementation class. As well as specify
+ *  additional features that may be enabled.
+ *
+ *  @since JAX-WS 2.0
+ *
+ **/
+
+ at Target(ElementType.TYPE)
+ at Retention(RetentionPolicy.RUNTIME)
+ at Documented
+public @interface BindingType {
+   /**
+    * A binding identifier (a URI).
+    * If not specified, the default is the SOAP 1.1 / HTTP binding.
+    * <p>
+    * See the <code>SOAPBinding</code> and <code>HTTPBinding</code>
+    * for the definition of the standard binding identifiers.
+    *
+    * @see javax.xml.ws.Binding
+    * @see javax.xml.ws.soap.SOAPBinding#SOAP11HTTP_BINDING
+    * @see javax.xml.ws.soap.SOAPBinding#SOAP12HTTP_BINDING
+    * @see javax.xml.ws.http.HTTPBinding#HTTP_BINDING
+    */
+   String value() default "";
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/BindingType.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/Dispatch.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/Dispatch.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/Dispatch.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,115 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+import java.util.concurrent.Future;
+
+/** The <code>Dispatch</code> interface provides support 
+ *  for the dynamic invocation of a service endpoint operations. The
+ *  <code>javax.xml.ws.Service</code>
+ *  interface acts as a factory for the creation of <code>Dispatch</code>
+ *  instances.
+ *
+ *  @since JAX-WS 2.0
+ **/
+public interface Dispatch<T> extends BindingProvider
+{
+
+   /** Invoke a service operation synchronously.
+    * 
+    * The client is responsible for ensuring that the <code>msg</code> object
+    * when marshalled is formed according to the requirements of the protocol
+    * binding in use.
+    *
+    * @param msg An object that will form the message or payload of
+    *     the message used to invoke the operation.
+    * @return The response message or message payload to the
+    *     operation invocation.
+    * @throws WebServiceException If a fault occurs during communication with
+    *     the service
+    * @throws WebServiceException If there is any error in the configuration of
+    *     the <code>Dispatch</code> instance
+    **/
+   public T invoke(T msg);
+
+   /** Invoke a service operation asynchronously.  The
+    *  method returns without waiting for the response to the operation
+    *  invocation, the results of the operation are obtained by polling the
+    *  returned <code>Response</code>.
+    * 
+    * The client is responsible for ensuring that the <code>msg</code> object 
+    * when marshalled is formed according to the requirements of the protocol
+    * binding in use.
+    *
+    * @param msg An object that will form the message or payload of
+    *     the message used to invoke the operation.
+    * @return The response message or message payload to the
+    *     operation invocation.
+    * @throws WebServiceException If there is any error in the configuration of
+    *     the <code>Dispatch</code> instance
+    **/
+   public Response<T> invokeAsync(T msg);
+
+   /** Invoke a service operation asynchronously. The
+    *  method returns without waiting for the response to the operation
+    *  invocation, the results of the operation are communicated to the client
+    *  via the passed in handler.
+    * 
+    * The client is responsible for ensuring that the <code>msg</code> object 
+    * when marshalled is formed according to the requirements of the protocol
+    * binding in use.
+    *
+    * @param msg An object that will form the message or payload of
+    *     the message used to invoke the operation.
+    * @param handler The handler object that will receive the
+    *     response to the operation invocation.
+    * @return A <code>Future</code> object that may be used to check the status
+    *     of the operation invocation. This object MUST NOT be used to try to
+    *     obtain the results of the operation - the object returned from
+    *     <code>Future<?>.get()</code> is implementation dependent
+    *     and any use of it will result in non-portable behaviour.
+    * @throws WebServiceException If there is any error in the configuration of
+    *     the <code>Dispatch</code> instance
+    **/
+   public Future<?> invokeAsync(T msg, AsyncHandler<T> handler);
+
+   /** Invokes a service operation using the one-way
+    *  interaction mode. The operation invocation is logically non-blocking,
+    *  subject to the capabilities of the underlying protocol, no results
+    *  are returned. When
+    *  the protocol in use is SOAP/HTTP, this method MUST block until
+    *  an HTTP response code has been received or an error occurs.
+    *
+    * The client is responsible for ensuring that the <code>msg</code> object 
+    * when marshalled is formed according to the requirements of the protocol
+    * binding in use.
+    *
+    * @param msg An object that will form the message or payload of
+    *     the message used to invoke the operation.
+    * @throws WebServiceException If there is any error in the configuration of
+    *     the <code>Dispatch</code> instance or if an error occurs during the
+    *     invocation.
+    **/
+   public void invokeOneWay(T msg);
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/Dispatch.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/Endpoint.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/Endpoint.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/Endpoint.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,374 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.ws.soap.SOAPBinding;
+import javax.xml.ws.spi.Provider;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+import org.w3c.dom.Element;
+
+/**
+ * A Web service endpoint.
+ *
+ * <p>Endpoints are created using the static methods defined in this
+ * class. An endpoint is always tied to one <code>Binding</code>
+ * and one implementor, both set at endpoint creation time.
+ *
+ * <p>An endpoint is either in a published or an unpublished state.
+ * The <code>publish</code> methods can be used to start publishing
+ * an endpoint, at which point it starts accepting incoming requests.
+ * Conversely, the <code>stop</code> method can be used to stop
+ * accepting incoming requests and take the endpoint down.
+ * Once stopped, an endpoint cannot be published again.
+ *
+ * <p>An <code>Executor</code> may be set on the endpoint in order
+ * to gain better control over the threads used to dispatch incoming
+ * requests. For instance, thread pooling with certain parameters
+ * can be enabled by creating a <code>ThreadPoolExecutor</code> and
+ * registering it with the endpoint.
+ *
+ * <p>Handler chains can be set using the contained <code>Binding</code>.
+ *
+ * <p>An endpoint may have a list of metadata documents, such as WSDL
+ * and XMLSchema documents, bound to it. At publishing time, the
+ * JAX-WS implementation will try to reuse as much of that metadata
+ * as possible instead of generating new one based on the annotations
+ * present on the implementor.
+ *
+ * @since JAX-WS 2.0
+ *
+ * @see javax.xml.ws.Binding
+ * @see javax.xml.ws.BindingType
+ * @see javax.xml.ws.soap.SOAPBinding
+ * @see java.util.concurrent.Executor
+ *
+ **/
+public abstract class Endpoint
+{
+
+   /** Standard property: name of WSDL service.
+    *  <p>Type: javax.xml.namespace.QName
+    **/
+   public static final String WSDL_SERVICE = "javax.xml.ws.wsdl.service";
+
+   /** Standard property: name of WSDL port.
+    *  <p>Type: javax.xml.namespace.QName
+    **/
+   public static final String WSDL_PORT = "javax.xml.ws.wsdl.port";
+
+   /**
+    * Creates an endpoint with the specified implementor object. If there is
+    * a binding specified via a BindingType annotation then it MUST be used else
+    * a default of SOAP 1.1 / HTTP binding MUST be used.
+    * <p>
+    * The newly created endpoint may be published by calling
+    * one of the javax.xml.ws.Endpoint#publish(String) and
+    * javax.xml.ws.Endpoint#publish(Object) methods.
+    *
+    *
+    * @param implementor The endpoint implementor.
+    *
+    * @return The newly created endpoint.
+    *
+    **/
+   public static Endpoint create(Object implementor)
+   {
+      if (implementor == null)
+         throw new IllegalArgumentException("Implementor cannot be null");
+      
+      String bindingId = SOAPBinding.SOAP11HTTP_BINDING;
+      BindingType anBindingType = implementor.getClass().getAnnotation(BindingType.class);
+      if (anBindingType != null)
+         bindingId = anBindingType.value();
+         
+      return create(bindingId, implementor);
+   }
+
+   /**
+    * Creates an endpoint with the specified binding type and
+    * implementor object.
+    * <p>
+    * The newly created endpoint may be published by calling
+    * one of the javax.xml.ws.Endpoint#publish(String) and
+    * javax.xml.ws.Endpoint#publish(Object) methods.
+    *
+    * @param bindingId A URI specifying the binding to use. If the bindingID is
+    * <code>null</code> and no binding is specified via a BindingType
+    * annotation then a default SOAP 1.1 / HTTP binding MUST be used.
+    *
+    * @param implementor The endpoint implementor.
+    *
+    * @return The newly created endpoint.
+    *
+    **/
+   public static Endpoint create(String bindingId, Object implementor)
+   {
+      return Provider.provider().createEndpoint(bindingId, implementor);
+   }
+
+   /**
+    * Returns the binding for this endpoint.
+    *
+    * @return The binding for this endpoint
+    **/
+   public abstract Binding getBinding();
+
+   /**
+    * Returns the implementation object for this endpoint.
+    *
+    * @return The implementor for this endpoint
+    **/
+   public abstract Object getImplementor();
+
+   /**
+    * Publishes this endpoint at the given address.
+    * The necessary server infrastructure will be created and
+    * configured by the JAX-WS implementation using some default configuration.
+    * In order to get more control over the server configuration, please
+    * use the javax.xml.ws.Endpoint#publish(Object) method instead.
+    *
+    * @param address A URI specifying the address to use. The address
+    *        MUST be compatible with the binding specified at the
+    *        time the endpoint was created.
+    *
+    * @throws java.lang.IllegalArgumentException 
+    *              If the provided address URI is not usable
+    *              in conjunction with the endpoint's binding.
+    *
+    * @throws java.lang.IllegalStateException 
+    *         If the endpoint has been published already or it has been stopped.
+    **/
+   public abstract void publish(String address);
+
+   /**
+    * Creates and publishes an endpoint for the specified implementor
+    * object at the given address.
+    * <p>
+    * The necessary server infrastructure will be created and
+    * configured by the JAX-WS implementation using some default configuration.
+    *
+    * In order to get more control over the server configuration, please
+    * use the javax.xml.ws.Endpoint#create(String,Object) and
+    * javax.xml.ws.Endpoint#publish(Object) method instead.
+    *
+    * @param address A URI specifying the address and transport/protocol
+    *        to use. A http: URI MUST result in the SOAP 1.1/HTTP
+    *        binding being used. Implementations may support other
+    *        URI schemes.
+    * @param implementor The endpoint implementor.
+    *
+    * @return The newly created endpoint.
+    *
+    **/
+   public static Endpoint publish(String address, Object implementor)
+   {
+      return Provider.provider().createAndPublishEndpoint(address, implementor);
+   }
+
+   /**
+    * Publishes this endpoint at the provided server context.
+    * A server context encapsulates the server infrastructure
+    * and addressing information for a particular transport.
+    * For a call to this method to succeed, the server context
+    * passed as an argument to it MUST be compatible with the
+    * endpoint's binding.
+    *
+    * @param serverContext An object representing a server
+    *           context to be used for publishing the endpoint.
+    *
+    * @throws java.lang.IllegalArgumentException 
+    *              If the provided server context is not
+    *              supported by the implementation or turns
+    *              out to be unusable in conjunction with the
+    *              endpoint's binding.
+    *
+    * @throws java.lang.IllegalStateException 
+    *         If the endpoint has been published already or it has been stopped.
+    **/
+   public abstract void publish(Object serverContext);
+
+   /**
+    * Stops publishing this endpoint.
+    *
+    * If the endpoint is not in a published state, this method
+    * has not effect.
+    *
+    **/
+   public abstract void stop();
+
+   /**
+    * Returns true if the endpoint is in the published state.
+    *
+    * @return <code>true</code> if the endpoint is in the published state.
+    **/
+   public abstract boolean isPublished();
+
+   /**
+    * Returns a list of metadata documents for the service.
+    *
+    * @return <code>List&lt;javax.xml.transform.Source&gt;</code> A list of metadata documents for the service
+    **/
+   public abstract List<javax.xml.transform.Source> getMetadata();
+
+   /**
+    * Sets the metadata for this endpoint.
+    *
+    * @param metadata A list of XML document sources containing
+    *           metadata information for the endpoint (e.g.
+    *           WSDL or XML Schema documents)
+    *
+    * @throws java.lang.IllegalStateException  If the endpoint
+    *         has already been published.
+    **/
+   public abstract void setMetadata(List<javax.xml.transform.Source> metadata);
+
+   /**
+    * Returns the executor for this <code>Endpoint</code>instance.
+    *
+    * The executor is used to dispatch an incoming request to
+    * the implementor object.
+    *
+    * @return The <code>java.util.concurrent.Executor</code> to be
+    *         used to dispatch a request.
+    *
+    * @see java.util.concurrent.Executor
+    **/
+   public abstract java.util.concurrent.Executor getExecutor();
+
+   /**
+    * Sets the executor for this <code>Endpoint</code> instance.
+    *
+    * The executor is used to dispatch an incoming request to
+    * the implementor object.
+    *
+    * If this <code>Endpoint</code> is published using the
+    * <code>publish(Object)</code> method and the specified server
+    * context defines its own threading behavior, the executor
+    * may be ignored.
+    *
+    * @param executor The <code>java.util.concurrent.Executor</code>
+    *        to be used to dispatch a request.
+    *
+    * @throws SecurityException  If the instance does not support
+    *         setting an executor for security reasons (e.g. the
+    *         necessary permissions are missing).
+    *
+    * @see java.util.concurrent.Executor
+    **/
+   public abstract void setExecutor(java.util.concurrent.Executor executor);
+
+   /**
+    * Returns the property bag for this <code>Endpoint</code> instance.
+    *
+    * @return Map&lt;String,Object&gt; The property bag
+    *         associated with this instance.
+    **/
+   public abstract Map<String, Object> getProperties();
+
+   /**
+    * Sets the property bag for this <code>Endpoint</code> instance.
+    *
+    * @param properties The property bag associated with
+    *        this instance.
+    **/
+   public abstract void setProperties(Map<String, Object> properties);
+
+   /**
+    * Returns the <code>EndpointReference</code> associated with
+    * this <code>Endpoint</code> instance.
+    * <p>
+    * If the Binding for this <code>bindingProvider</code> is
+    * either SOAP1.1/HTTP or SOAP1.2/HTTP, then a
+    * <code>W3CEndpointReference</code> MUST be returned.
+    * If the returned <code>EndpointReference</code> is a
+    * <code>W3CEndpointReference</code> it MUST contain 
+    * the <code>wsaw:ServiceName</code> element and the 
+    * <code>wsaw:EndpointName</code> attribute on the 
+    * <code>wsaw:ServiceName</code>. It SHOULD contain
+    * the embedded WSDL in the <code>wsa:Metadata</code> element
+    * if there is an associated WSDL. The
+    * <code>wsaw:InterfaceName</code> MAY also be present. 
+    * <br>
+    * See <a href="http://www.w3.org/TR/2006/CR-ws-addr-wsdl-20060529/">
+    * WS-Addressing - WSDL 1.0</a>.
+    *
+    * @param referenceParameters Reference parameters to be associated with the
+    * returned <code>EndpointReference</code> instance.
+    * @return EndpointReference of this <code>Endpoint</code> instance.
+    * If the returned <code>EndpointReference</code> is of type
+    * <code>W3CEndpointReference</code> then it MUST contain the
+    * the specified <code>referenceParameters</code>.
+
+    * @throws WebServiceException If any error in the creation of
+    * the <code>EndpointReference</code> or if the <code>Endpoint</code> is 
+    * not in the published state.
+    * @throws UnsupportedOperationException If this <code>BindingProvider</code>
+    * uses the XML/HTTP binding.
+    *
+    * @see W3CEndpointReference
+    *
+    * @since JAX-WS 2.1
+    **/
+   public abstract EndpointReference getEndpointReference(Element... referenceParameters);
+
+   /**
+    * Returns the <code>EndpointReference</code> associated with
+    * this <code>Endpoint</code> instance.
+    * <p>
+    * If the returned <code>EndpointReference</code> is a
+    * <code>W3CEndpointReference</code> it MUST contain 
+    * the <code>wsaw:ServiceName</code> element and the 
+    * <code>wsaw:EndpointName</code> attribute on the 
+    * <code>wsaw:ServiceName</code>. It SHOULD contain
+    * the embedded WSDL in the <code>wsa:Metadata</code> element
+    * if there is an associated WSDL. The
+    * <code>wsaw:InterfaceName</code> MAY also be present. 
+    * <br>
+    * See <a href="http://www.w3.org/TR/2006/CR-ws-addr-wsdl-20060529/">
+    * WS-Addressing - WSDL 1.0</a>.
+    *
+    * @param referenceParameters Reference parameters to be associated with the
+    * returned <code>EndpointReference</code> instance.
+    * @return EndpointReference of type <code>clazz</code> of this 
+    * <code>Endpoint<code> instance.
+    * If the returned <code>EndpointReference</code> is of type
+    * <code>W3CEndpointReference</code> then it MUST contain the
+    * the specified <code>referenceParameters</code>.
+
+    * @throws WebServiceException If any error in the creation of
+    * the <code>EndpointReference</code> or if the <code>Endpoint</code> is 
+    * not in the published state or if the <code>clazz</code> is not a supported
+    * <code>EndpointReference</code> type.
+    * @throws UnsupportedOperationException If this <code>BindingProvider</code>
+    * uses the XML/HTTP binding.
+    *
+    *
+    * @since JAX-WS 2.1
+    **/
+   public abstract <T extends EndpointReference> T getEndpointReference(Class<T> clazz, Element... referenceParameters);
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/Endpoint.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/EndpointReference.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/EndpointReference.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/EndpointReference.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,188 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+import java.io.StringWriter;
+
+import javax.xml.transform.Result;
+import javax.xml.transform.Source;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.ws.spi.Provider;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+/**
+ * This class represents an WS-Addressing EndpointReference
+ * which is a remote reference to a web service endpoint. 
+ * See <a href="http://www.w3.org/TR/2006/REC-ws-addr-core-20060509/">
+ * WS-Addressing</a> 
+ * for more information on WS-Addressing EndpointReferences.
+ * <p>  
+ * This class is immutable as the typical web service developer
+ * need not be concerned with its contents.  The web service
+ * developer should use this class strictly as a mechanism to 
+ * reference a remote web service endpoint. See the {@link Service} APIs 
+ * that clients can use to that utilize an <code>EndpointReference</code>. 
+ * See the {@link javax.xml.ws.Endpoint}, and 
+ * {@link javax.xml.ws.BindingProvider} APIs on how 
+ * <code>EndpointReferences</code> can be created for published 
+ * endpoints.
+ * <p>
+ * Concrete implementations of this class will represent
+ * an <code>EndpointReference</code> for a particular version of Addressing.
+ * For example the {@link W3CEndpointReference} is for use
+ * with W3C WS-Addressing 1.0 - Core Recommendation. 
+ * If JAX-WS implementors need to support different versions
+ * of addressing, they should write their own 
+ * <code>EndpointReference</code> subclass for that version.
+ * This will allow a JAX-WS implementation to createEndpointReference
+ * vendor specific <code>EndpointReferences</code> that that
+ * vendor can use to flag a different version of
+ * addressing.
+ * <p>
+ * Web service developers that wish to pass or return 
+ * <code>EndpointReferences</code> in Java methods in an
+ * SEI should use
+ * concrete instances of an <code>EndpointReference</code> such
+ * as the <code>W3CEndpointReferendce</code>.  This way the 
+ * schema mapped from the SEI will be more descriptive of the
+ * type of endpoint reference being passed.
+ * <p>
+ * JAX-WS implementors are expected to extract the XML infoset
+ * from an <CODE>EndpointReferece</CODE> using the 
+ * <code>{@link EndpointReference#writeTo}</code>
+ * method.
+ * <p>
+ * JAXB will bind this class to xs:anyType. If a better binding
+ * is desired, web services developers should use a concrete
+ * subclass such as {@link W3CEndpointReference}.
+ *
+ * @see W3CEndpointReference
+ * @see Service
+ * @since JAX-WS 2.1
+ */
+//@XmlTransient // to treat this class like Object as far as databinding is concerned (proposed JAXB 2.1 feature)
+public abstract class EndpointReference
+{
+   //
+   //Default constructor to be only called by derived types.
+   //
+   protected EndpointReference()
+   {
+   };
+
+   /**
+    * Factory method to read an EndpointReference from the infoset contained in
+    * <code>eprInfoset</code>. This method delegates to the vendor specific
+    * implementation of the {@link javax.xml.ws.spi.Provider#readEndpointReference} method.
+    *
+    * @param eprInfoset The <code>EndpointReference<code> infoset to be unmarshalled
+    *
+    * @return the EndpointReference unmarshalled from <code>eprInfoset</code>
+    *    never <code>null</code>
+    * @throws WebServiceException
+    *    if an error occurs while creating the
+    *    <code>EndpointReference</code> from the <CODE>eprInfoset</CODE>
+    * @throws java.lang.IllegalArgumentException
+    *     if the null <code>eprInfoset</tt> value is given.
+    */
+   public static EndpointReference readFrom(Source eprInfoset)
+   {
+      return Provider.provider().readEndpointReference(eprInfoset);
+   }
+
+   /**
+    * write this EndpointReference to the specified infoset format
+    * @throws WebServiceException
+    *   if there is an error writing the
+    *   EndpointReference to the specified <code>result</code>.
+    *
+    * @throws java.lang.IllegalArgumentException
+    *      If the null <code>result</tt> value is given.
+    */
+   public abstract void writeTo(Result result);
+
+   /**
+    * The getPort method returns a proxy. If there
+    * are any reference parameters in the 
+    * <code>EndpointReference</code> instance, then those reference
+    * parameters MUST appear as SOAP headers, indicating them to be
+    * reference parameters, on all messages sent to the endpoint.
+    * The parameter  <code>serviceEndpointInterface</code> specifies
+    * the service endpoint interface that is supported by the
+    * returned proxy.
+    * The <code>EndpointReference</code> instance specifies the
+    * endpoint that will be invoked by the returned proxy.
+    * In the implementation of this method, the JAX-WS
+    * runtime system takes the responsibility of selecting a protocol
+    * binding (and a port) and configuring the proxy accordingly from
+    * the WSDL Metadata from this <code>EndpointReference</code> or from
+    * annotations on the <code>serviceEndpointInterface</code>.  
+    * <p>
+    * Because this port is not created from a Service object, handlers 
+    * will not automatically be configured, and the HandlerResolver 
+    * and Executor cannot be get or set for this port. The 
+    * <code>BindingProvider().getBinding().setHandlerChain()</code>
+    * method can be used to manually configure handlers for this port.
+    *
+    *
+    * @param serviceEndpointInterface Service endpoint interface
+    * @param features  An array of WebServiceFeatures to configure on the 
+    *                proxy.  Supported features not in the <code>features
+    *                </code> parameter will have their default values.
+    * @return Object Proxy instance that supports the
+    *                  specified service endpoint interface
+    * @throws WebServiceException
+    *                  <UL>
+    *                  <LI>If there is an error during creation
+    *                      of the proxy
+    *                  <LI>If there is any missing WSDL metadata
+    *                      as required by this method 
+    *                  <LI>If this
+    *                      <code>endpointReference</code>
+    *                      is invalid
+    *                  <LI>If an illegal
+    *                      <code>serviceEndpointInterface</code>
+    *                      is specified
+    *                  <LI>If feature is enabled that is not compatible with 
+    *                      this port or is unsupported.
+    *                   </UL>
+    *
+    * @see java.lang.reflect.Proxy
+    * @see WebServiceFeature
+    **/
+   public <T> T getPort(Class<T> serviceEndpointInterface, WebServiceFeature... features)
+   {
+      return Provider.provider().getPort(this, serviceEndpointInterface, features);
+   }
+
+   /**
+    * Displays EPR infoset for debugging convenience.
+    */
+   public String toString()
+   {
+      StringWriter w = new StringWriter();
+      writeTo(new StreamResult(w));
+      return w.toString();
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/EndpointReference.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/FaultAction.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/FaultAction.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/FaultAction.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,171 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * The <code>FaultAction</code> annotation is used inside an <a href="Action.html">
+ * Action</a> annotation to allow an explicit association of <code>Action</code> message
+ * addressing property with the <code>fault</code> messages of the WSDL operation mapped from
+ * the exception class.
+ * <p>
+ * The <code>fault</code> message in the generated WSDL operation mapped for <code>className</code> 
+ * class contains explicit <code>wsaw:Action</code> attribute.
+ *
+ * <p>
+ * <b>Example 1</b>: Specify explicit values for <code>Action</code> message addressing 
+ * property for the <code>input</code>, <code>output</code> and <code>fault</code> message 
+ * if the Java method throws only one service specific exception.
+ * 
+ * <pre>
+ * &#64;javax.jws.WebService
+ * public class AddNumbersImpl {
+ *     &#64;javax.xml.ws.Action(
+ *         input=&quot;http://example.com/inputAction&quot;,
+ *         output=&quot;http://example.com/outputAction&quot;,
+ *         fault = {
+ *             &#64;javax.xml.ws.FaultAction(className=AddNumbersException.class, value=&quot;http://example.com/faultAction&quot;)
+ *         })
+ *     public int addNumbers(int number1, int number2) 
+ *         throws AddNumbersException {
+ *         return number1 + number2;
+ *     }
+ * }
+ * </pre>
+ * 
+ * The generated WSDL looks like:
+ * 
+ * <pre>
+ *   &lt;definitions targetNamespace=&quot;http://example.com/numbers&quot; ...&gt;
+ *   ...
+ *     &lt;portType name=&quot;AddNumbersPortType&quot;&gt;
+ *       &lt;operation name=&quot;AddNumbers&quot;&gt;
+ *         &lt;input message=&quot;tns:AddNumbersInput&quot; name=&quot;Parameters&quot;
+ *           wsaw:Action=&quot;http://example.com/inputAction&quot;/&gt;
+ *        &lt;output message=&quot;tns:AddNumbersOutput&quot; name=&quot;Result&quot;
+ *          wsaw:Action=&quot;http://example.com/outputAction&quot;/&gt;
+ *        &lt;fault message=&quot;tns:AddNumbersException&quot; name=&quot;AddNumbersException&quot;
+ *          wsaw:Action=&quot;http://example.com/faultAction&quot;/&gt;
+ *       &lt;/operation&gt;
+ *     &lt;portType&gt;
+ *   ...
+ *   &lt;definitions&gt;
+ * </pre>
+ *
+ * <p>
+ * Example 2: Here is an example that shows how to specify explicit values for <code>Action</code> 
+ * message addressing property if the Java method throws only one service specific exception, 
+ * without specifying the values for <code>input</code> and <code>output</code> messages.
+ * 
+ * <pre>
+ * &#64;javax.jws.WebService
+ * public class AddNumbersImpl {
+ *     &#64;javax.xml.ws.Action(
+ *         fault = {
+ *             &#64;javax.xml.ws.FaultAction(className=AddNumbersException.class, value=&quot;http://example.com/faultAction&quot;)
+ *         })
+ *     public int addNumbers(int number1, int number2) 
+ *         throws AddNumbersException {
+ *         return number1 + number2;
+ *     }
+ * }
+ * </pre>
+ * 
+ * The generated WSDL looks like:
+ * 
+ * <pre>
+ *   &lt;definitions targetNamespace=&quot;http://example.com/numbers&quot; ...&gt;
+ *   ...
+ *     &lt;portType name=&quot;AddNumbersPortType&quot;&gt;
+ *       &lt;operation name=&quot;AddNumbers&quot;&gt;
+ *         &lt;input message=&quot;tns:AddNumbersInput&quot; name=&quot;Parameters&quot;/&gt;
+ *         &lt;output message=&quot;tns:AddNumbersOutput&quot; name=&quot;Result&quot;/&gt;
+ *         &lt;fault message=&quot;tns:addNumbersFault&quot; name=&quot;InvalidNumbers&quot;
+ *           wsa:Action=&quot;http://example.com/addnumbers/fault&quot;/&gt;
+ *       &lt;/operation&gt;
+ *     &lt;portType&gt;
+ *   ...
+ *   &lt;definitions&gt;
+ * </pre>
+ * 
+ * <p>
+ * Example 3: Here is an example that shows how to specify explicit values for <code>Action</code> 
+ * message addressing property if the Java method throws more than one service specific exception.
+ * 
+ * <pre>
+ * &#64;javax.jws.WebService
+ * public class AddNumbersImpl {
+ *     &#64;javax.xml.ws.Action(
+ *         fault = {
+ *             &#64;javax.xml.ws.FaultAction(className=AddNumbersException.class, value=&quot;http://example.com/addFaultAction&quot;)
+ *             &#64;javax.xml.ws.FaultAction(className=TooBigNumbersException.class, value=&quot;http://example.com/toobigFaultAction&quot;)
+ *         })
+ *     public int addNumbers(int number1, int number2) 
+ *         throws AddNumbersException, TooBigNumbersException {
+ *         return number1 + number2;
+ *     }
+ * }
+ * </pre>
+ * 
+ * The generated WSDL looks like:
+ * 
+ * <pre>
+ *   &lt;definitions targetNamespace=&quot;http://example.com/numbers&quot; ...&gt;
+ *   ...
+ *     &lt;portType name=&quot;AddNumbersPortType&quot;&gt;
+ *       &lt;operation name=&quot;AddNumbers&quot;&gt;
+ *         &lt;input message=&quot;tns:AddNumbersInput&quot; name=&quot;Parameters&quot;/&gt;
+ *         &lt;output message=&quot;tns:AddNumbersOutput&quot; name=&quot;Result&quot;/&gt;
+ *         &lt;fault message=&quot;tns:addNumbersFault&quot; name=&quot;AddNumbersException&quot;
+ *           wsa:Action=&quot;http://example.com/addnumbers/fault&quot;/&gt;
+ *         &lt;fault message=&quot;tns:tooBigNumbersFault&quot; name=&quot;TooBigNumbersException&quot;
+ *           wsa:Action=&quot;http://example.com/toobigFaultAction&quot;/&gt;
+ *       &lt;/operation&gt;
+ *     &lt;portType&gt;
+ *   ...
+ *   &lt;definitions&gt;
+ * </pre>
+ * 
+ * @since JAX-WS 2.1
+ */
+
+ at Documented
+ at Retention(RetentionPolicy.RUNTIME)
+ at Target(ElementType.METHOD)
+public @interface FaultAction {
+   /**
+    * Name of the exception class
+    */
+   Class className();
+
+   /**
+    * Value of <code>Action</code> message addressing property for the exception
+    */
+   String value() default "";
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/FaultAction.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/Holder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/Holder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/Holder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,55 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+/** 
+ *  Holds a value of type <code>T</code>.
+ *
+ *  @since JAX-WS 2.0
+ **/
+public final class Holder<T>
+{
+
+   /**
+    * The value contained in the holder.
+    **/
+   public T value;
+
+   /**
+    * Creates a new holder with a <code>null</code> value.
+    **/
+   public Holder()
+   {
+   }
+
+   /**
+    * Create a new holder with the specified value.
+    *
+    * @param value The value to be stored in the holder.
+    **/
+   public Holder(T value)
+   {
+      this.value = value;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/Holder.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/LogicalMessage.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/LogicalMessage.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/LogicalMessage.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,90 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.transform.Source;
+
+/** The <code>LogicalMessage</code> interface represents a
+ *  protocol agnostic XML message and contains methods that
+ *  provide access to the payload of the message.
+ *
+ *  @since JAX-WS 2.0
+ **/
+public interface LogicalMessage
+{
+
+   /** Gets the message payload as an XML source, may be called
+    *  multiple times on the same LogicalMessage instance, always
+    *  returns a new Source that may be used to retrieve the entire
+    *  message payload.
+    *
+    *  <p>If the returned Source is an instance of DOMSource, then
+    *  modifications to the encapsulated DOM tree change the message
+    *  payload in-place, there is no need to susequently call
+    *  <code>setPayload</code>. Other types of Source provide only
+    *  read access to the message payload.
+    *
+    *  @return The contained message payload; returns null if no 
+    *          payload is present in this message.
+    **/
+   public Source getPayload();
+
+   /** Sets the message payload
+    *
+    *  @param  payload message payload
+    *  @throws WebServiceException If any error during the setting
+    *          of the payload in this message
+    *  @throws java.lang.UnsupportedOperationException If this
+    *          operation is not supported
+    **/
+   public void setPayload(Source payload);
+
+   /** Gets the message payload as a JAXB object. Note that there is no
+    *  connection between the returned object and the message payload,
+    *  changes to the payload require calling <code>setPayload</code>.
+    *
+    *  @param  context The JAXBContext that should be used to unmarshall
+    *          the message payload
+    *  @return The contained message payload; returns null if no 
+    *          payload is present in this message
+    *  @throws WebServiceException If an error occurs when using a supplied
+    *     JAXBContext to unmarshall the payload. The cause of
+    *     the WebServiceException is the original JAXBException.
+    **/
+   public Object getPayload(JAXBContext context);
+
+   /** Sets the message payload
+    *
+    *  @param  payload message payload
+    *  @param  context The JAXBContext that should be used to marshall 
+    *          the payload
+    *  @throws java.lang.UnsupportedOperationException If this
+    *          operation is not supported
+    *  @throws WebServiceException If an error occurs when using the supplied
+    *     JAXBContext to marshall the payload. The cause of
+    *     the WebServiceException is the original JAXBException.
+    **/
+   public void setPayload(Object payload, JAXBContext context);
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/LogicalMessage.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/ProtocolException.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/ProtocolException.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/ProtocolException.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,91 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+/** The <code>ProtocolException</code> class is a
+ *  base class for exceptions related to a specific protocol binding. Subclasses
+ *  are used to communicate protocol level fault information to clients and may
+ *  be used on the server to control the protocol specific fault representation.
+ *
+ *  @since JAX-WS 2.0
+ **/
+public class ProtocolException extends WebServiceException
+{
+   /**
+    * Constructs a new protocol exception with null as its detail message. The
+    * cause is not initialized, and may subsequently be initialized by a call
+    * to Throwable.initCause(java.lang.Throwable).
+    */
+   public ProtocolException()
+   {
+      super();
+   }
+
+   /**
+    * Constructs a new protocol exception with the specified detail message.
+    * The cause is not initialized, and may subsequently be initialized by a
+    * call to Throwable.initCause(java.lang.Throwable).
+    *
+    * @param message the detail message. The detail message is saved for later
+    *   retrieval by the Throwable.getMessage() method.
+    */
+   public ProtocolException(String message)
+   {
+      super(message);
+   }
+
+   /**
+    * Constructs a new runtime exception with the specified detail message and
+    * cause.
+    *
+    * Note that the detail message associated with  cause is not automatically
+    * incorporated in  this runtime exception's detail message.
+    *
+    * @param message the detail message (which is saved for later retrieval  by
+    *   the Throwable.getMessage() method).
+    * @param cause the cause (which is saved for later retrieval by the
+    * Throwable.getCause() method). (A null value is  permitted, and indicates
+    * that the cause is nonexistent or  unknown.)
+    */
+   public ProtocolException(String message, Throwable cause)
+   {
+      super(message, cause);
+   }
+
+   /**
+    * Constructs a new runtime exception with the specified cause and a  detail
+    * message of (cause==null ? null : cause.toString())  (which typically
+    * contains the class and detail message of  cause). This constructor is
+    * useful for runtime exceptions  that are little more than wrappers for
+    * other throwables.
+    *
+    * @param cause the cause (which is saved for later retrieval by the
+    * Throwable.getCause() method). (A null value is  permitted, and indicates
+    * that the cause is nonexistent or  unknown.)
+    */
+   public ProtocolException(Throwable cause)
+   {
+      super(cause);
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/ProtocolException.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/Provider.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/Provider.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/Provider.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,62 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+/**
+ *  <p>Service endpoints may implement the <code>Provider</code>
+ *  interface as a dynamic alternative to an SEI.
+ *
+ *  <p>Implementations are required to support <code>Provider&lt;Source&gt;</code>,
+ *  <code>Provider&lt;SOAPMessage&gt;</code> and
+ *  <code>Provider&lt;DataSource&gt;</code>, depending on the binding
+ *  in use and the service mode.
+ *
+ *  <p>The <code>ServiceMode</code> annotation can be used to control whether
+ *  the <code>Provider</code> instance will receive entire protocol messages
+ *  or just message payloads.
+ *
+ *  @since JAX-WS 2.0
+ *
+ *  @see javax.xml.transform.Source
+ *  @see javax.xml.soap.SOAPMessage
+ *  @see javax.xml.ws.ServiceMode
+ **/
+public interface Provider<T>
+{
+
+   /** Invokes an operation occording to the contents of the request
+    *  message.
+    *
+    *  @param  request The request message or message payload.
+    *  @return The response message or message payload. May be null if
+    there is no response.
+    *  @throws WebServiceException If there is an error processing request.
+    *          The cause of the WebServiceException may be set to a subclass
+    *          of ProtocolException to control the protocol level
+    *          representation of the exception.
+    *  @see javax.xml.ws.handler.MessageContext
+    *  @see javax.xml.ws.ProtocolException
+    **/
+   public T invoke(T request);
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/Provider.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/RequestWrapper.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/RequestWrapper.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/RequestWrapper.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,64 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/** 
+
+ * Used to annotate methods in the Service Endpoint Interface with the request 
+ * wrapper bean to be used at runtime. The default value of the localName is 
+ * the operationName, as defined in WebMethod annotation and the
+ * targetNamespace is the target namespace of the SEI.
+ * <p> When starting from Java this annotation is used resolve
+ * overloading conflicts in document literal mode. Only the className
+ * is required in this case.
+ * 
+ *  @since JAX-WS 2.0
+ **/
+
+ at Target(ElementType.METHOD)
+ at Retention(RetentionPolicy.RUNTIME)
+ at Documented
+public @interface RequestWrapper {
+   /**
+    *  Elements local name.
+    **/
+   public String localName() default "";
+
+   /**
+    *  Elements namespace name.
+    **/
+   public String targetNamespace() default "";
+
+   /**
+    *  Request wrapper bean name.
+    **/
+   public String className() default "";
+
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/RequestWrapper.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/RespectBinding.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/RespectBinding.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/RespectBinding.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,107 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import javax.xml.ws.spi.WebServiceFeatureAnnotation;
+
+/**
+ * This feature clarifies the use of the <code>wsdl:binding</code>
+ * in a JAX-WS runtime.
+ * <p>
+ * This feature is only useful with web services that have an
+ * associated WSDL. Enabling this feature requires that a JAX-WS
+ * implementation inspect the <code>wsdl:binding</code> for an
+ * endpoint at runtime to make sure that all <code>wsdl:extensions</code>
+ * that have the <code>required</code> attribute set to <code>true</code>
+ * are understood and are being used.
+ * <p>
+ * The following describes the affects of this feature with respect
+ * to be enabled or disabled:
+ * <ul>
+ *  <li> ENABLED: In this Mode, a JAX-WS runtime MUST assure that all
+ *  required <code>wsdl:binding</code> extensions are either understood
+ * and used by the runtime, or explicitly disabled by the web service
+ *  application.  A web service application can disable a particular
+ *  extension that has a know <code>WebServiceFeature</code> using
+ *  either the {@link BindingType#features} element on the server
+ *  or one of the following methods on the client:
+ *    <ul>
+ *      <li>{@link Service#getPort(QName,Class,WebServiceFeature...)}
+ *      <li>{@link Service#getPort(Class,WebServiceFeature...)}
+ *      <li>{@link Service#getPort(EndpointReference,Class,WebServiceFeature...)}
+ *      <li>{@link Service#createDispatch(QName,Class,
+ *           Service.Mode mode,WebServiceFeature...)}
+ *      <li>{@link Service#createDispatch(EndpointReference,
+ *           Class,Service.Mode,
+ *           WebServiceFeature...)}
+ *      <li>{@link Service#createDispatch(QName,
+ *           JAXBContext, Service.Mode, WebServiceFeature...)}
+ *      <li>{@link Service#createDispatch(EndpointReference,
+ *           JAXBContext, Service.Mode, WebServiceFeature...)}
+ *      <li>{@link EndpointReference#getPort(Class,WebServiceFeature...)}
+ *      <li>One of the <code>getXXXPort(WebServiceFeatures...)</code> methods on a
+ *          generated <code>Service</code>.
+ *    </ul>
+ *  The runtime MUST also make sure that binding of
+ *  SEI parameters/return values respect the <code>wsdl:binding</code>.
+ *  With this feature enabled, if a required
+ *  <code>wsdl:binding</code> extension is in the WSDL and it is not
+ *  supported by a JAX-WS runtime and it has not
+ *  been explicitly turned off by the web service developer, then
+ *  that JAX-WS runtime MUST behave appropriately based on whether it is
+ *  on the client or server:
+ *  <UL>
+ *    <li>Client: runtime MUST throw a
+ *  <code>WebServiceException</code> no sooner than when one of the methods
+ *  above is invoked but no later than the first invocation of an endpoint
+ *  operation.
+ *    <li>throw a WebServiceException and the endpoint MUST fail to deploy
+ *  </ul>
+ *  <li> DISABLED: In this Mode, an implementation may choose whether
+ *  to inspect the <code>wsdl:binding<code> or not and to what degree
+ *  the <code>wsdl:binding</code> will be inspected.  For example,
+ *  one implementation may choose to behave as if this feature is enabled,
+ *  another implementation may only choose to verify the SEI's
+ *  parameter/return type bindings.
+ * </ul>
+ *
+ * @see javax.xml.ws.RespectBindingFeature
+ *
+ * @since JAX-WS 2.1
+ */
+ at Target(ElementType.TYPE)
+ at Retention(RetentionPolicy.RUNTIME)
+ at Documented
+ at WebServiceFeatureAnnotation(id = RespectBindingFeature.ID, bean = RespectBindingFeature.class)
+public @interface RespectBinding {
+   /**
+    * Specifies if this feature is enabled or disabled.
+    */
+   boolean enabled() default true;
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/RespectBinding.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/RespectBindingFeature.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/RespectBindingFeature.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/RespectBindingFeature.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,128 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+import javax.xml.ws.WebServiceFeature;
+
+/**
+ * This feature clarifies the use of the <code>wsdl:binding</code>
+ * in a JAX-WS runtime.
+ * <p>
+ * This feature is only useful with web services that have an
+ * associated WSDL. Enabling this feature requires that a JAX-WS
+ * implementation inspect the <code>wsdl:binding</code> for an
+ * endpoint at runtime to make sure that all <code>wsdl:extensions</code>
+ * that have the <code>required</code> attribute set to <code>true</code>
+ * are understood and are being used.
+ * <p>
+ * The following describes the affects of this feature with respect
+ * to be enabled or disabled:
+ * <ul>
+ *  <li> ENABLED: In this Mode, a JAX-WS runtime MUST assure that all
+ *  required <code>wsdl:binding</code> extensions are either understood
+ and used by the runtime, or explicitly disabled by the web service
+ *  application.  A web service application can disable a particular
+ *  extension that has a know <code>WebServiceFeature</code> using
+ *  either the {@link BindingType#features} element on the server
+ *  or one of the following methods on the client:
+ *    <ul>
+ *      <li>{@link Service#getPort(QName,Class,WebServiceFeature...)}
+ *      <li>{@link Service#getPort(Class,WebServiceFeature...)}
+ *      <li>{@link Service#getPort(EndpointReference,Class,WebServiceFeature...)}
+ *      <li>{@link Service#createDispatch(QName,Class, 
+ *           Service.Mode mode,WebServiceFeature...)}
+ *      <li>{@link Service#createDispatch(EndpointReference,
+ *           Class,Service.Mode, 
+ *           WebServiceFeature...)}
+ *      <li>{@link Service#createDispatch(QName,
+ *           JAXBContext, Service.Mode, WebServiceFeature...)}
+ *      <li>{@link Service#createDispatch(EndpointReference,
+ *           JAXBContext, Service.Mode, WebServiceFeature...)}
+ *      <li>{@link EndpointReference#getPort(Class,WebServiceFeature...)}
+ *      <li>One of the <code>getXXXPort(WebServiceFeatures...)</code> methods on a
+ *          generated <code>Service</code>.
+ *    </ul>
+ *  The runtime MUST also make sure that binding of 
+ *  SEI parameters/return values respect the <code>wsdl:binding</code>.
+ *  With this feature enabled, if a required 
+ *  <code>wsdl:binding</code> extension is in the WSDL and it is not
+ *  supported by a JAX-WS runtime and it has not 
+ *  been explicitly turned off by the web service developer, then
+ *  that JAX-WS runtime MUST behave appropriately based on whether it is 
+ *  on the client or server:
+ *  <UL>
+ *    <li>Client: runtime MUST throw a 
+ *  <code>WebServiceException</code> no sooner than when one of the methods
+ *  above is invoked but no later than the first invocation of an endpoint
+ *  operation. 
+ *    <li>throw a WebServiceException and the endpoint MUST fail to deploy
+ *  </ul>
+ *  <li> DISABLED: In this Mode, an implementation may choose whether
+ *  to inspect the <code>wsdl:binding<code> or not and to what degree
+ *  the <code>wsdl:binding</code> will be inspected.  For example,
+ *  one implementation may choose to behave as if this feature is enabled,
+ *  another implementation may only choose to verify the SEI's 
+ *  parameter/return type bindings.
+ * </ul>
+ *
+ * @see javax.xml.ws.soap.AddressingFeature
+ *
+ * @since JAX-WS 2.1
+ */
+public final class RespectBindingFeature extends WebServiceFeature
+{
+   /**
+    * 
+    * Constant value identifying the RespectBindingFeature
+    */
+   public static final String ID = "javax.xml.ws.InspectBindingFeature";
+
+   /**
+    * Create an <code>RespectBindingFeature</code>.
+    * The instance created will be enabled.
+    */
+   public RespectBindingFeature()
+   {
+      this.enabled = true;
+   }
+
+   /**
+    * Create an RespectBindingFeature
+    * 
+    * @param enabled specifies whether this feature should
+    * be enabled or not.
+    */
+   public RespectBindingFeature(boolean enabled)
+   {
+      this.enabled = enabled;
+   }
+
+   /**
+    * {@inheritDoc}
+    */
+   public String getID()
+   {
+      return ID;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/RespectBindingFeature.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/Response.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/Response.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/Response.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,51 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+import java.util.Map;
+import java.util.concurrent.Future;
+
+/** The <code>Response</code> interface provides methods used to obtain the  
+ *  payload and context of a message sent in response to an operation
+ *  invocation.
+ *
+ *  <p>For asynchronous operation invocations it provides additional methods
+ *  to check the status of the request. The <code>get(...)</code> methods may
+ *  throw the standard
+ *  set of exceptions and their cause may be a RemoteException or a  
+ *  WebServiceException that represents the error that occured during the
+ *  asynchronous method invocation.</p>
+ *
+ *  @since JAX-WS 2.0
+ **/
+public interface Response<T> extends Future<T>
+{
+   /** Gets the contained response context.
+    *
+    * @return The contained response context. May be <code>null</code> if a
+    * response is not yet available.
+    *
+    **/
+   Map<String, Object> getContext();
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/Response.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/ResponseWrapper.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/ResponseWrapper.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/ResponseWrapper.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,73 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/** 
+ * Used to annotate methods in the Service Endpoint Interface with the response 
+ * wrapper bean to be used at runtime. The default value of the localName is 
+ * the operationName as defined in WebMethod annotation appended with
+ * Response and the targetNamespace is the target namespace of the SEI.
+ * <p> When starting from Java this annotation is used resolve
+ * overloading conflicts in document literal mode. Only the className
+ * is required in this case.
+ * 
+ *  @since JAX-WS 2.0
+ **/
+
+ at Target(ElementType.METHOD)
+ at Retention(RetentionPolicy.RUNTIME)
+ at Documented
+public @interface ResponseWrapper {
+
+   /**
+
+    *  Elements local name.
+
+    **/
+
+   public String localName() default "";
+
+   /**
+
+    *  Elements namespace name.
+
+    **/
+
+   public String targetNamespace() default "";
+
+   /**
+
+    *  Response wrapper bean name.
+
+    **/
+
+   public String className() default "";
+
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/ResponseWrapper.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/Service.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/Service.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/Service.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,751 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.net.URL;
+import java.util.Iterator;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.namespace.QName;
+import javax.xml.ws.handler.HandlerResolver;
+import javax.xml.ws.spi.Provider;
+import javax.xml.ws.spi.ServiceDelegate;
+
+/**
+ * <code>Service</code> objects provide the client view of a Web service.
+ * <p><code>Service</code> acts as a factory of the following:
+ * <ul>
+ * <li>Proxies for a target service endpoint.
+ * <li>Instances of <code>javax.xml.ws.Dispatch</code> for
+ *     dynamic message-oriented invocation of a remote
+ *     operation.
+ * </li>
+ *
+ * <p>The ports available on a service can be enumerated using the
+ * <code>getPorts</code> method. Alternatively, you can pass a
+ * service endpoint interface to the unary <code>getPort</code> method
+ * and let the runtime select a compatible port.
+ *
+ * <p>Handler chains for all the objects created by a <code>Service</code>
+ * can be set by means of a <code>HandlerResolver</code>.
+ *
+ * <p>An <code>Executor</code> may be set on the service in order
+ * to gain better control over the threads used to dispatch asynchronous
+ * callbacks. For instance, thread pooling with certain parameters
+ * can be enabled by creating a <code>ThreadPoolExecutor</code> and
+ * registering it with the service.
+ *
+ * @since JAX-WS 2.0
+ *
+ * @see javax.xml.ws.spi.Provider
+ * @see javax.xml.ws.handler.HandlerResolver
+ * @see java.util.concurrent.Executor
+ **/
+public class Service
+{
+   protected ServiceDelegate delegate;
+
+   /**
+    * The orientation of a dynamic client or service. MESSAGE provides
+    * access to entire protocol message, PAYLOAD to protocol message
+    * payload only.
+    **/
+   public enum Mode
+   {
+      MESSAGE, PAYLOAD
+   };
+
+   protected Service(java.net.URL wsdlDocumentLocation, QName serviceName)
+   {
+      delegate = Provider.provider().createServiceDelegate(wsdlDocumentLocation, serviceName, this.getClass());
+   }
+
+   /** 
+    * The getPort method returns a proxy. A service client
+    * uses this proxy to invoke operations on the target
+    * service endpoint. The <code>serviceEndpointInterface</code>
+    * specifies the service endpoint interface that is supported by
+    * the created dynamic proxy instance.
+    *
+    * @param portName  Qualified name of the service endpoint in
+    *                  the WSDL service description.
+    * @param serviceEndpointInterface Service endpoint interface
+    *                  supported by the dynamic proxy instance.
+    * @return Object Proxy instance that
+    *                supports the specified service endpoint
+    *                interface.
+    * @throws WebServiceException This exception is thrown in the
+    *                  following cases:
+    *                  <UL>
+    *                  <LI>If there is an error in creation of
+    *                      the proxy.
+    *                  <LI>If there is any missing WSDL metadata
+    *                      as required by this method.
+    *                  <LI>If an illegal
+    *                      <code>serviceEndpointInterface</code>
+    *                      or <code>portName</code> is specified.
+    *                  </UL>
+    * @see java.lang.reflect.Proxy
+    * @see java.lang.reflect.InvocationHandler
+    **/
+   public <T> T getPort(QName portName, Class<T> serviceEndpointInterface)
+   {
+      return delegate.getPort(portName, serviceEndpointInterface);
+   }
+
+   /** 
+    * The getPort method returns a proxy. A service client
+    * uses this proxy to invoke operations on the target
+    * service endpoint. The <code>serviceEndpointInterface</code>
+    * specifies the service endpoint interface that is supported by
+    * the created dynamic proxy instance.
+    *
+    * @param portName  Qualified name of the service endpoint in
+    *                  the WSDL service description.
+    * @param serviceEndpointInterface Service endpoint interface
+    *                  supported by the dynamic proxy instance.
+    * @param features  A list of WebServiceFeatures to configure on the 
+    *                proxy.  Supported features not in the <code>features
+    *                </code> parameter will have their default values.
+    * @return Object Proxy instance that
+    *                supports the specified service endpoint
+    *                interface.
+    * @throws WebServiceException This exception is thrown in the
+    *                  following cases:
+    *                  <UL>
+    *                  <LI>If there is an error in creation of
+    *                      the proxy.
+    *                  <LI>If there is any missing WSDL metadata
+    *                      as required by this method.
+    *                  <LI>If an illegal
+    *                      <code>serviceEndpointInterface</code>
+    *                      or <code>portName</code> is specified.
+    *                  <LI>If a feature is enabled that is not compatible
+    *                      with this port or is unsupported.
+    *                  </UL>
+    * @see java.lang.reflect.Proxy
+    * @see java.lang.reflect.InvocationHandler
+    * @see WebServiceFeature
+    * 
+    * @since JAX-WS 2.1
+    **/
+   public <T> T getPort(QName portName, Class<T> serviceEndpointInterface, WebServiceFeature... features)
+   {
+      return delegate.getPort(portName, serviceEndpointInterface, features);
+   }
+
+   /** 
+    * The getPort method returns a proxy. The parameter
+    * <code>serviceEndpointInterface</code> specifies the service
+    * endpoint interface that is supported by the returned proxy.
+    * In the implementation of this method, the JAX-WS
+    * runtime system takes the responsibility of selecting a protocol
+    * binding (and a port) and configuring the proxy accordingly.
+    * The returned proxy should not be reconfigured by the client.
+    *
+    * @param serviceEndpointInterface Service endpoint interface.
+    * @return Object instance that supports the
+    *                  specified service endpoint interface.
+    * @throws WebServiceException
+    *                  <UL>
+    *                  <LI>If there is an error during creation
+    *                      of the proxy.
+    *                  <LI>If there is any missing WSDL metadata
+    *                      as required by this method.
+    *                  <LI>If an illegal.
+    *                      <code>serviceEndpointInterface</code>
+    *                      is specified.
+    *                  </UL>
+    **/
+   public <T> T getPort(Class<T> serviceEndpointInterface)
+   {
+      return delegate.getPort(serviceEndpointInterface);
+   }
+
+   /**
+    * The getPort method returns a proxy. The parameter
+    * <code>serviceEndpointInterface</code> specifies the service
+    * endpoint interface that is supported by the returned proxy.
+    * In the implementation of this method, the JAX-WS
+    * runtime system takes the responsibility of selecting a protocol
+    * binding (and a port) and configuring the proxy accordingly.
+    * The returned proxy should not be reconfigured by the client.
+    *
+    * @param serviceEndpointInterface Service endpoint interface.
+    * @param features  A list of WebServiceFeatures to configure on the 
+    *                proxy.  Supported features not in the <code>features
+    *                </code> parameter will have their default values.
+    * @return Object instance that supports the
+    *                  specified service endpoint interface.
+    * @throws WebServiceException
+    *                  <UL>
+    *                  <LI>If there is an error during creation
+    *                      of the proxy.
+    *                  <LI>If there is any missing WSDL metadata
+    *                      as required by this method.
+    *                  <LI>If an illegal
+    *                      <code>serviceEndpointInterface</code>
+    *                      is specified.
+    *                  <LI>If a feature is enabled that is not compatible
+    *                      with this port or is unsupported.
+    *                  </UL>
+    *
+    * @see WebServiceFeature
+    *
+    * @since JAX-WS 2.1
+    **/
+   public <T> T getPort(Class<T> serviceEndpointInterface, WebServiceFeature... features)
+   {
+      return delegate.getPort(serviceEndpointInterface, features);
+   }
+
+   /** 
+    * The getPort method returns a proxy.
+    * The parameter <code>endpointReference</code> specifies the
+    * endpoint that will be invoked by the returned proxy.  If there
+    * are any reference parameters in the 
+    * <code>endpointReference</code>, then those reference
+    * parameters MUST appear as SOAP headers, indicating them to be
+    * reference parameters, on all messages sent to the endpoint.
+    * The <code>endpointReference's</code> address MUST be used
+    * for invocations on the endpoint.
+    * The parameter <code>serviceEndpointInterface</code> specifies
+    * the service endpoint interface that is supported by the 
+    * returned proxy.
+    * In the implementation of this method, the JAX-WS
+    * runtime system takes the responsibility of selecting a protocol
+    * binding (and a port) and configuring the proxy accordingly from
+    * the WSDL associated with this <code>Service</code> instance or
+    * from the WSDL Metadata from the <code>endpointReference</code>.
+    * If this <code>Service</code> instance has a WSDL and 
+    * the <code>endpointReference</code>
+    * also has a WSDL, then the WSDL from this instance will be used.
+    * If this <code>Service</code> instance does not have a WSDL and
+    * the <code>endpointReference</code> does have a WSDL, then the 
+    * WSDL from the <code>endpointReference</code> will be used.
+    * The returned proxy should not be reconfigured by the client.
+    * If this <code>Service</code> instance has a known proxy 
+    * port that matches the information contained in 
+    * the WSDL,
+    * then that proxy is returned, otherwise a WebServiceException
+    * is thrown.
+    * <p>
+    * Calling this method has the same behavior as the following
+    * <pre>
+    * port = service.getPort(portName, serviceEndpointInterface);
+    * </pre>
+    * where the <code>portName</code> is retrieved from the 
+    * <code>wsaw:EndpontName</code> attribute of the
+    * <code>wsaw:ServiceName</code> element in the 
+    * metadata of the <code>endpointReference</code> or from the 
+    * <code>serviceEndpointInterface</code> and the WSDL
+    * associated with this <code>Service</code> instance.
+    * <br>
+    * See <a href="http://www.w3.org/TR/2006/CR-ws-addr-wsdl-20060529/">WS-Addressing - WSDL 1.0
+    * </a>.
+    *
+    * @param endpointReference  The <code>EndpointReference</code>
+    * for the target service endpoint that will be invoked by the
+    * returned proxy.
+    * @param serviceEndpointInterface Service endpoint interface.
+    * @param features  An array of WebServiceFeatures to configure on the 
+    *                proxy.  Supported features not in the <code>features
+    *                </code> parameter will have their default values.
+    * @return Object Proxy instance that supports the
+    *                  specified service endpoint interface.
+    * @throws WebServiceException
+    *                  <UL>
+    *                  <LI>If there is an error during creation
+    *                      of the proxy.
+    *                  <LI>If there is any missing WSDL metadata
+    *                      as required by this method.
+    *                  <LI>If the <code>wsaw:EndpointName</code> is
+    *                      missing from the <code>endpointReference</code>
+    *                      or does not match a wsdl:Port
+    *                      in the WSDL metadata.
+    *                  <LI>If the <code>wsaw:ServiceName</code> in the
+    *                      <code>endpointReference</code> metadata does not
+    *                      match the <code>serviceName</code> of this
+    *                      <code>Service</code> instance.
+    *                  <LI>If an invalid
+    *                      <code>endpointReference</code>
+    *                      is specified.
+    *                  <LI>If an invalid
+    *                      <code>serviceEndpointInterface</code>
+    *                      is specified.
+    *                  <LI>If a feature is enabled that is not compatible
+    *                      with this port or is unsupported.
+    *                  </UL>
+    *
+    *  @since JAX-WS 2.1
+    **/
+   public <T> T getPort(EndpointReference endpointReference, Class<T> serviceEndpointInterface, WebServiceFeature... features)
+   {
+      return delegate.getPort(endpointReference, serviceEndpointInterface, features);
+   }
+
+   /** 
+    * Creates a new port for the service. Ports created in this way contain
+    * no WSDL port type information and can only be used for creating
+    * <code>Dispatch</code>instances.
+    *
+    * @param portName  Qualified name for the target service endpoint.
+    * @param bindingId A String identifier of a binding.
+    * @param endpointAddress Address of the target service endpoint as a URI.
+    * @throws WebServiceException If any error in the creation of
+    * the port.
+    *
+    * @see javax.xml.ws.soap.SOAPBinding#SOAP11HTTP_BINDING
+    * @see javax.xml.ws.soap.SOAPBinding#SOAP12HTTP_BINDING
+    * @see javax.xml.ws.http.HTTPBinding#HTTP_BINDING
+    **/
+   public void addPort(QName portName, String bindingId, String endpointAddress)
+   {
+      delegate.addPort(portName, bindingId, endpointAddress);
+   }
+
+   /** 
+    * Creates a <code>Dispatch</code> instance for use with objects of
+    * the users choosing.
+    *
+    * @param portName  Qualified name for the target service endpoint
+    * @param type The class of object used for messages or message
+    * payloads. Implementations are required to support
+    * <code>javax.xml.transform.Source</code>, <code>javax.xml.soap.SOAPMessage</code>
+    * and <code>javax.activation.DataSource</code>, depending on
+    * the binding in use.
+    * @param mode Controls whether the created dispatch instance is message
+    * or payload oriented, i.e. whether the user will work with complete
+    * protocol messages or message payloads. E.g. when using the SOAP
+    * protocol, this parameter controls whether the user will work with
+    * SOAP messages or the contents of a SOAP body. Mode MUST be MESSAGE
+    * when type is SOAPMessage.
+    *
+    * @return Dispatch instance.
+    * @throws WebServiceException If any error in the creation of
+    *                  the <code>Dispatch</code> object.
+    *
+    * @see javax.xml.transform.Source
+    * @see javax.xml.soap.SOAPMessage
+    **/
+   public <T> Dispatch<T> createDispatch(QName portName, Class<T> type, Mode mode)
+   {
+      return delegate.createDispatch(portName, type, mode);
+   }
+
+   /** 
+    * Creates a <code>Dispatch</code> instance for use with objects of
+    * the users choosing.
+    *
+    * @param portName  Qualified name for the target service endpoint
+    * @param type The class of object used for messages or message
+    * payloads. Implementations are required to support
+    * javax.xml.transform.Source and javax.xml.soap.SOAPMessage.
+    * @param mode Controls whether the created dispatch instance is message
+    * or payload oriented, i.e. whether the user will work with complete
+    * protocol messages or message payloads. E.g. when using the SOAP
+    * protocol, this parameter controls whether the user will work with
+    * SOAP messages or the contents of a SOAP body. Mode MUST be MESSAGE
+    * when type is SOAPMessage.
+    * @param features  A list of WebServiceFeatures to configure on the 
+    *                proxy.  Supported features not in the <code>features
+    *                </code> parameter will have their default values.
+    *
+    * @return Dispatch instance.
+    * @throws WebServiceException If any error in the creation of
+    *                  the <code>Dispatch</code> object or if a 
+    *                  feature is enabled that is not compatible with 
+    *                  this port or is unsupported.
+    *
+    * @see javax.xml.transform.Source
+    * @see javax.xml.soap.SOAPMessage
+    * @see WebServiceFeature
+    *
+    * @since JAX-WS 2.1
+    **/
+   public <T> Dispatch<T> createDispatch(QName portName, Class<T> type, Service.Mode mode, WebServiceFeature... features)
+   {
+      return delegate.createDispatch(portName, type, mode, features);
+   }
+
+   /** 
+    * Creates a <code>Dispatch</code> instance for use with objects of
+    * the users choosing. If there
+    * are any reference parameters in the 
+    * <code>endpointReference</code>, then those reference
+    * parameters MUST appear as SOAP headers, indicating them to be
+    * reference parameters, on all messages sent to the endpoint.
+    * The <code>endpointReference's</code> address MUST be used
+    * for invocations on the endpoint.
+    * In the implementation of this method, the JAX-WS
+    * runtime system takes the responsibility of selecting a protocol
+    * binding (and a port) and configuring the dispatch accordingly from
+    * the WSDL associated with this <code>Service</code> instance or
+    * from the WSDL Metadata from the <code>endpointReference</code>.
+    * If this <code>Service</code> instance has a WSDL and 
+    * the <code>endpointReference</code>
+    * also has a WSDL, then the WSDL from this instance will be used.
+    * If this <code>Service</code> instance does not have a WSDL and
+    * the <code>endpointReference</code> does have a WSDL, then the 
+    * WSDL from the <code>endpointReference</code> will be used.     
+    * <p>
+    * This method behaves the same as calling
+    * <pre>
+    * dispatch = service.createDispatch(portName, type, mode, features);
+    * </pre>
+    * where the <code>portName</code> is retrieved from the 
+    * <code>wsaw:EndpointName</code> attribute of the <code>wsaw:ServiceName</code>
+    * element in the 
+    * metadata of the <code>endpointReference</code>.
+    * <br>
+    * See <a href="http://www.w3.org/TR/2006/CR-ws-addr-wsdl-20060529/">WS-Addressing - WSDL 1.0
+    * </a>.
+    *
+    * @param endpointReference  The <code>EndpointReference</code>
+    * for the target service endpoint that will be invoked by the
+    * returned <code>Dispatch</code> object.
+    * @param type The class of object used to messages or message
+    * payloads. Implementations are required to support
+    * javax.xml.transform.Source and javax.xml.soap.SOAPMessage.
+    * @param mode Controls whether the created dispatch instance is message
+    * or payload oriented, i.e. whether the user will work with complete
+    * protocol messages or message payloads. E.g. when using the SOAP
+    * protocol, this parameter controls whether the user will work with
+    * SOAP messages or the contents of a SOAP body. Mode MUST be MESSAGE
+    * when type is SOAPMessage.
+    * @param features  An array of WebServiceFeatures to configure on the 
+    *                proxy.  Supported features not in the <code>features
+    *                </code> parameter will have their default values.
+    *
+    * @return Dispatch instance
+    * @throws WebServiceException 
+    *                  <UL>
+    *                    <LI>If there is any missing WSDL metadata
+    *                      as required by this method.
+    *                    <li>If the <code>wsaw:ServiceName</code> element 
+    *                    or the <code>wsaw:EndpointName</code> attribute
+    *                    is missing in the metdata of the 
+    *                    <code>endpointReference</code>.
+    *                    <li>If the <code>wsaw:ServiceName</code> does not
+    *                    match the <code>serviceName</code> of this instance.
+    *                    <li>If the <code>wsaw:EndpointName</code> does not
+    *                    match a valid wsdl:Port in the WSDL metadata.
+    *                    <li>If any error in the creation of
+    *                     the <code>Dispatch</code> object.
+    *                    <li>if a feature is enabled that is not 
+    *                    compatible with this port or is unsupported.
+    *                  </UL>
+    *
+    * @see javax.xml.transform.Source
+    * @see javax.xml.soap.SOAPMessage
+    * @see WebServiceFeature;
+    *
+    * @since JAX-WS 2.1
+    **/
+   public <T> Dispatch<T> createDispatch(EndpointReference endpointReference, Class<T> type, Service.Mode mode, WebServiceFeature... features)
+   {
+      return delegate.createDispatch(endpointReference, type, mode, features);
+   }
+
+   /** 
+    * Creates a <code>Dispatch</code> instance for use with JAXB
+    * generated objects.
+    *
+    * @param portName  Qualified name for the target service endpoint
+    * @param context The JAXB context used to marshall and unmarshall
+    * messages or message payloads.
+    * @param mode Controls whether the created dispatch instance is message
+    * or payload oriented, i.e. whether the user will work with complete
+    * protocol messages or message payloads. E.g. when using the SOAP
+    * protocol, this parameter controls whether the user will work with
+    * SOAP messages or the contents of a SOAP body.
+    *
+    * @return Dispatch instance.
+    * @throws WebServiceException If any error in the creation of
+    *                  the <code>Dispatch</code> object.
+    *
+    * @see javax.xml.bind.JAXBContext
+    **/
+   public Dispatch<Object> createDispatch(QName portName, JAXBContext context, Mode mode)
+   {
+      return delegate.createDispatch(portName, context, mode);
+   }
+
+   /** 
+    * Creates a <code>Dispatch</code> instance for use with JAXB
+    * generated objects.
+    *
+    * @param portName  Qualified name for the target service endpoint
+    * @param context The JAXB context used to marshall and unmarshall
+    * messages or message payloads.
+    * @param mode Controls whether the created dispatch instance is message
+    * or payload oriented, i.e. whether the user will work with complete
+    * protocol messages or message payloads. E.g. when using the SOAP
+    * protocol, this parameter controls whether the user will work with
+    * SOAP messages or the contents of a SOAP body.
+    * @param features  A list of WebServiceFeatures to configure on the 
+    *                proxy.  Supported features not in the <code>features
+    *                </code> parameter will have their default values.
+    *
+    * @return Dispatch instance.
+    * @throws WebServiceException If any error in the creation of
+    *                  the <code>Dispatch</code> object or if a 
+    *                  feature is enabled that is not compatible with 
+    *                  this port or is unsupported.
+    *
+    * @see javax.xml.bind.JAXBContext
+    * @see WebServiceFeature
+    *
+    * @since JAX-WS 2.1
+    **/
+   public Dispatch<Object> createDispatch(QName portName, JAXBContext context, Service.Mode mode, WebServiceFeature... features)
+   {
+      return delegate.createDispatch(portName, context, mode, features);
+   }
+
+   /** 
+    * Creates a <code>Dispatch</code> instance for use with JAXB
+    * generated objects. If there
+    * are any reference parameters in the 
+    * <code>endpointReference</code>, then those reference
+    * parameters MUST appear as SOAP headers, indicating them to be
+    * reference parameters, on all messages sent to the endpoint.
+    * The <code>endpointReference's</code> address MUST be used
+    * for invocations on the endpoint.
+    * In the implementation of this method, the JAX-WS
+    * runtime system takes the responsibility of selecting a protocol
+    * binding (and a port) and configuring the dispatch accordingly from
+    * the WSDL associated with this <code>Service</code> instance or
+    * from the WSDL Metadata from the <code>endpointReference</code>.
+    * If this <code>Service</code> instance has a WSDL and 
+    * the <code>endpointReference</code>
+    * also has a WSDL, then the WSDL from this instance will be used.
+    * If this <code>Service</code> instance does not have a WSDL and
+    * the <code>endpointReference</code> does have a WSDL, then the 
+    * WSDL from the <code>endpointReference</code> will be used.      
+    * <p>
+    * This method behavies the same as calling
+    * <pre>
+    * dispatch = service.createDispatch(portName, context, mode, features);
+    * </pre>
+    * where the <code>portName</code> is retrieved from the 
+    * <code>wsaw:EndpointName</code> attribute of the <code>wsaw:ServiceName</code>
+    * element in the 
+    * metadata of the <code>endpointReference</code>.
+    * <br>
+    * See <a href="http://www.w3.org/TR/2006/CR-ws-addr-wsdl-20060529/">WS-Addressing - WSDL 1.0
+    * </a>.
+    *
+    * @param endpointReference  The <code>EndpointReference</code>
+    * for the target service endpoint that will be invoked by the
+    * returned <code>Dispatch</code> object.
+    * @param context The JAXB context used to marshall and unmarshall
+    * messages or message payloads.
+    * @param mode Controls whether the created dispatch instance is message
+    * or payload oriented, i.e. whether the user will work with complete
+    * protocol messages or message payloads. E.g. when using the SOAP
+    * protocol, this parameter controls whether the user will work with
+    * SOAP messages or the contents of a SOAP body.
+    * @param features  An array of WebServiceFeatures to configure on the 
+    *                proxy.  Supported features not in the <code>features
+    *                </code> parameter will have their default values.
+    *
+    * @return Dispatch instance
+    * @throws WebServiceException 
+    * @throws WebServiceException 
+    *                  <UL>
+    *                    <li>If there is any missing WSDL metadata
+    *                      as required by this method.
+    *                    <li>If the <code>wsaw:ServiceName</code> element 
+    *                    or the <code>wsaw:EndpointName</code> attribute
+    *                    is missing in the metdata of the 
+    *                    <code>endpointReference</code>.
+    *                    <li>If the <code>wsaw:ServiceName</code> does not
+    *                    match the <code>serviceName</code> of this instance.
+    *                    <li>If the <code>wsaw:EndpointName</code> does not
+    *                    match a valid wsdl:Port in the WSDL metadata.
+    *                    <li>If any error in the creation of
+    *                  the <code>Dispatch</code> object.
+    *                    <li>if a feature is enabled that is not 
+    *                    compatible with this port or is unsupported.
+    *                  </UL>
+    *
+    * @see javax.xml.bind.JAXBContext
+    * @see WebServiceFeature
+    *
+    * @since JAX-WS 2.1
+    **/
+   public Dispatch<Object> createDispatch(EndpointReference endpointReference, JAXBContext context, Service.Mode mode, WebServiceFeature... features)
+   {
+      return delegate.createDispatch(endpointReference, context, mode, features);
+   }
+
+   /** 
+    * Gets the name of this service.
+    * @return Qualified name of this service
+    **/
+   public QName getServiceName()
+   {
+      return delegate.getServiceName();
+   }
+
+   /** 
+    * Returns an <code>Iterator</code> for the list of
+    * <code>QName</code>s of service endpoints grouped by this
+    * service
+    *
+    * @return Returns <code>java.util.Iterator</code> with elements
+    *         of type <code>javax.xml.namespace.QName</code>.
+    * @throws WebServiceException If this Service class does not
+    *         have access to the required WSDL metadata.
+    **/
+   public Iterator<javax.xml.namespace.QName> getPorts()
+   {
+      return delegate.getPorts();
+   }
+
+   /** 
+    * Gets the location of the WSDL document for this Service.
+    *
+    * @return URL for the location of the WSDL document for
+    *         this service.
+    **/
+   public java.net.URL getWSDLDocumentLocation()
+   {
+      return delegate.getWSDLDocumentLocation();
+   }
+
+   /**
+    * Returns the configured handler resolver.
+    *
+    * @return HandlerResolver The <code>HandlerResolver</code> being
+    *         used by this <code>Service</code> instance, or <code>null</code>
+    *         if there isn't one.
+    **/
+   public HandlerResolver getHandlerResolver()
+   {
+      return delegate.getHandlerResolver();
+   }
+
+   /**
+    * Sets the <code>HandlerResolver</code> for this <code>Service</code>
+    * instance.
+    * <p>
+    * The handler resolver, if present, will be called once for each
+    * proxy or dispatch instance that is created, and the handler chain
+    * returned by the resolver will be set on the instance.
+    *
+    * @param handlerResolver The <code>HandlerResolver</code> to use
+    *        for all subsequently created proxy/dispatch objects.
+    *
+    * @see javax.xml.ws.handler.HandlerResolver
+    **/
+   public void setHandlerResolver(HandlerResolver handlerResolver)
+   {
+      delegate.setHandlerResolver(handlerResolver);
+   }
+
+   /**
+    * Returns the executor for this <code>Service</code>instance.
+    *
+    * The executor is used for all asynchronous invocations that
+    * require callbacks.
+    *
+    * @return The <code>java.util.concurrent.Executor</code> to be
+    *         used to invoke a callback.
+    *
+    * @see java.util.concurrent.Executor
+    **/
+   public java.util.concurrent.Executor getExecutor()
+   {
+      return delegate.getExecutor();
+   }
+
+   /**
+    * Sets the executor for this <code>Service</code> instance.
+    *
+    * The executor is used for all asynchronous invocations that
+    * require callbacks.
+    *
+    * @param executor The <code>java.util.concurrent.Executor</code>
+    *        to be used to invoke a callback.
+    *
+    * @throws SecurityException If the instance does not support
+    *         setting an executor for security reasons (e.g. the
+    *         necessary permissions are missing).
+    *
+    * @see java.util.concurrent.Executor
+    **/
+   public void setExecutor(java.util.concurrent.Executor executor)
+   {
+      delegate.setExecutor(executor);
+   }
+
+   /**
+    * Create a <code>Service</code> instance.
+    *
+    * The specified WSDL document location and service qualified name MUST
+    * uniquely identify a <code>wsdl:service</code> element.
+    *
+    * @param wsdlDocumentLocation URL for the WSDL document location
+    *                             for the service
+    * @param serviceName QName for the service
+    * @throws WebServiceException If any error in creation of the
+    *                    specified service.
+    **/
+   public static Service create(URL wsdlLocation, QName serviceName)
+   {
+      Service service;
+      try
+      {
+         Class extClass = Class.forName("org.jboss.ws.core.jaxws.client.ServiceExt");
+         Constructor ctor = extClass.getConstructor(new Class[] { URL.class, QName.class });
+         service = (Service)ctor.newInstance(new Object[] { wsdlLocation, serviceName });
+      }
+      catch (InvocationTargetException ex)
+      {
+         Throwable target = ex.getTargetException();
+         throw new WebServiceException(target);
+      }
+      catch (Exception e)
+      {
+         service = new Service(wsdlLocation, serviceName);
+      }
+      return service;
+   }
+
+   /**
+    * Create a <code>Service</code> instance.
+    *
+    * @param serviceName QName for the service
+    * @throws WebServiceException If any error in creation of the
+    *                    specified service
+    */
+   public static Service create(QName serviceName)
+   {
+      return create(null, serviceName);
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/Service.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/ServiceMode.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/ServiceMode.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/ServiceMode.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,51 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/** 
+ * Used to indicate whether a Provider implementation wishes to work
+ * with entire protocol messages or just with protocol message payloads.
+ *
+ *  @since JAX-WS 2.0
+ **/
+ at Target( { ElementType.TYPE })
+ at Retention(RetentionPolicy.RUNTIME)
+ at Inherited
+ at Documented
+public @interface ServiceMode {
+   /**
+    * Service mode. PAYLOAD indicates that the Provider implementation
+    * wishes to work with protocol message payloads only. MESSAGE indicates
+    * that the Provider implementation wishes to work with entire protocol
+    * messages.
+    **/
+   public Service.Mode value() default Service.Mode.PAYLOAD;
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/ServiceMode.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/WebEndpoint.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/WebEndpoint.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/WebEndpoint.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,54 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/** 
+ *  Used to annotate the <code>get<em>PortName</em>()</code>
+ *  methods of a generated service interface.
+ *
+ *  <p>The information specified in this annotation is sufficient
+ *  to uniquely identify a <code>wsdl:port</code> element
+ *  inside a <code>wsdl:service</code>. The latter is
+ *  determined based on the value of the <code>WebServiceClient</code>
+ *  annotation on the generated service interface itself.
+ *
+ *  @since JAX-WS 2.0
+ *
+ *  @see javax.xml.ws.WebServiceClient
+ **/
+ at Target( { ElementType.METHOD })
+ at Retention(RetentionPolicy.RUNTIME)
+ at Documented
+public @interface WebEndpoint {
+   /**
+    *  The local name of the endpoint.
+    **/
+   String name() default "";
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/WebEndpoint.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/WebFault.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/WebFault.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/WebFault.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,57 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/** 
+ * Used to annotate service specific exception classes to customize 
+ * to the local and namespace name of the fault element and the name
+ * of the fault bean.
+ *
+ *  @since JAX-WS 2.0
+ **/
+ at Target( { ElementType.TYPE })
+ at Retention(RetentionPolicy.RUNTIME)
+ at Documented
+public @interface WebFault {
+   /**
+    *  Elements local name.
+    **/
+   public String name() default "";
+
+   /**
+    *  Elements namespace name.
+    **/
+   public String targetNamespace() default "";
+
+   /**
+    *  Fault bean name.
+    **/
+   public String faultBean() default "";
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/WebFault.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/WebServiceClient.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/WebServiceClient.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/WebServiceClient.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/** 
+ *  Used to annotate a generated service interface.
+ *
+ *  <p>The information specified in this annotation is sufficient
+ *  to uniquely identify a <code>wsdl:service</code>
+ *  element inside a WSDL document. This <code>wsdl:service</code>
+ *  element represents the Web service for which the generated
+ *  service interface provides a client view.
+ *
+ *  @since JAX-WS 2.0
+ **/
+ at Target( { ElementType.TYPE })
+ at Retention(RetentionPolicy.RUNTIME)
+ at Documented
+public @interface WebServiceClient {
+   /**
+    *  The local name of the Web service.
+    **/
+   String name() default "";
+
+   /**
+    *  The namespace for the Web service.
+    **/
+   String targetNamespace() default "";
+
+   /**
+    *  The location of the WSDL document for the service (a URL).
+    **/
+   String wsdlLocation() default "";
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/WebServiceClient.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/WebServiceContext.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/WebServiceContext.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/WebServiceContext.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,173 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+import java.security.Principal;
+
+import javax.xml.ws.handler.MessageContext;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+import org.w3c.dom.Element;
+
+/**
+ *  A <code>WebServiceContext</code> makes it possible for
+ *  a web service endpoint implementation class to access
+ *  message context and security information relative to
+ *  a request being served.
+ *
+ *  Typically a <code>WebServiceContext</code> is injected
+ *  into an endpoint implementation class using the
+ *  <code>Resource</code> annotation.
+ *
+ *  @since JAX-WS 2.0
+ *
+ *  @see javax.annotation.Resource
+ **/
+public interface WebServiceContext
+{
+
+   /**
+    * Returns the MessageContext for the request being served
+    * at the time this method is called. Only properties with
+    * APPLICATION scope will be visible to the application.
+    *
+    * @return MessageContext The message context.
+    *
+    * @throws IllegalStateException This exception is thrown
+    *         if the method is called while no request is
+    *         being serviced.
+    *
+    * @see javax.xml.ws.handler.MessageContext
+    * @see javax.xml.ws.handler.MessageContext.Scope
+    * @see java.lang.IllegalStateException
+    **/
+   public MessageContext getMessageContext();
+
+   /**
+    * Returns the Principal that identifies the sender
+    * of the request currently being serviced. If the
+    * sender has not been authenticated, the method
+    * returns <code>null</code>.
+    *
+    * @return Principal The principal object.
+    *
+    * @throws IllegalStateException This exception is thrown
+    *         if the method is called while no request is
+    *         being serviced.
+    *
+    * @see java.security.Principal
+    * @see java.lang.IllegalStateException
+    **/
+   public Principal getUserPrincipal();
+
+   /**
+    * Returns a boolean indicating whether the
+    * authenticated user is included in the specified
+    * logical role. If the user has not been
+    * authenticated, the method returns </code>false</code>.
+    *
+    * @param role  A <code>String</code> specifying the name of the role
+    *
+    * @return a <code>boolean</code> indicating whether
+    * the sender of the request belongs to a given role
+    *
+    * @throws IllegalStateException This exception is thrown
+    *         if the method is called while no request is
+    *         being serviced.
+    **/
+   public boolean isUserInRole(String role);
+
+   /**
+    * Returns the <code>WEndpointReference</code> for this
+    * endpoint.
+    * <p>
+    * If the Binding for this <code>bindingProvider</code> is
+    * either SOAP1.1/HTTP or SOAP1.2/HTTP, then a
+    * <code>W3CEndpointReference</code> MUST be returned.
+    * If the returned <code>EndpointReference</code> is a
+    * <code>W3CEndpointReference</code> it MUST contain 
+    * the <code>wsaw:ServiceName</code> element and the 
+    * <code>wsaw:EndpointName</code> attribute on the 
+    * <code>wsaw:ServiceName</code>. It SHOULD contain
+    * the embedded WSDL in the <code>wsa:Metadata</code> element
+    * if there is an associated WSDL. The
+    * <code>wsaw:InterfaceName</code> MAY also be present. 
+    * <br>
+    * See <a href="http://www.w3.org/TR/2006/CR-ws-addr-wsdl-20060529/">
+    * WS-Addressing - WSDL 1.0</a>.
+    *
+    * @param referenceParameters Reference parameters to be associated with the
+    * returned <code>EndpointReference</code> instance.
+    * @return EndpointReference of the endpoint associated with this
+    * <code>WebServiceContext</code>.   
+    * If the returned <code>EndpointReference</code> is of type
+    * <code>W3CEndpointReference</code> then it MUST contain the
+    * the specified <code>referenceParameters</code>.
+    *
+    * @throws IllegalStateException This exception is thrown
+    *         if the method is called while no request is
+    *         being serviced.
+    *
+    * @see W3CEndpointReference
+    *
+    * @since JAX-WS 2.1
+    */
+   public EndpointReference getEndpointReference(Element... referenceParameters);
+
+   /**
+    * Returns the <code>EndpointReference</code> associated with
+    * this endpoint.
+    * <p>
+    * If the returned <code>EndpointReference</code> is a
+    * <code>W3CEndpointReference</code> it MUST contain 
+    * the <code>wsaw:ServiceName</code> element and the 
+    * <code>wsaw:EndpointName</code> attribute on the 
+    * <code>wsaw:ServiceName</code>. It SHOULD contain
+    * the embedded WSDL in the <code>wsa:Metadata</code> element
+    * if there is an associated WSDL. The
+    * <code>wsaw:InterfaceName</code> MAY also be present. 
+    * <br>
+    * See <a href="http://www.w3.org/TR/2006/CR-ws-addr-wsdl-20060529/">
+    * WS-Addressing - WSDL 1.0</a>.
+    *
+    * @param clazz The type of <code>EndpointReference</code> that
+    * MUST be returned.
+    * @param referenceParameters Reference parameters to be associated with the
+    * returned <code>EndpointReference</code> instance.
+    * @return EndpointReference of type <code>clazz</code> of the endpoint
+    * associated with this <code>WebServiceContext</code> instance.
+    * If the returned <code>EndpointReference</code> is of type
+    * <code>W3CEndpointReference</code> then it MUST contain the
+    * the specified <code>referenceParameters</code>.
+    *
+    * @throws IllegalStateException This exception is thrown
+    *         if the method is called while no request is
+    *         being serviced.     
+    * @throws WebServiceException If the <code>clazz</code> type of
+    * <code>EndpointReference</code> is not supported.
+    *
+    * @since JAX-WS 2.1
+    **/
+   public abstract <T extends EndpointReference> T getEndpointReference(Class<T> clazz, Element... referenceParameters);
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/WebServiceContext.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/WebServiceException.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/WebServiceException.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/WebServiceException.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,82 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+/** The <code>WebServiceException</code> class is the base 
+ *  exception class for all JAX-WS API runtime exceptions.
+ *
+ *  @since JAX-WS 2.0
+ **/
+
+public class WebServiceException extends java.lang.RuntimeException
+{
+
+   /** Constructs a new exception with <code>null</code> as its 
+    *  detail message. The cause is not initialized.
+    **/
+   public WebServiceException()
+   {
+      super();
+   }
+
+   /** Constructs a new exception with the specified detail 
+    *  message.  The cause is not initialized.
+    *  @param message The detail message which is later 
+    *                 retrieved using the getMessage method
+    **/
+   public WebServiceException(String message)
+   {
+      super(message);
+   }
+
+   /** Constructs a new exception with the specified detail 
+    *  message and cause.
+    *
+    *  @param message The detail message which is later retrieved
+    *                 using the getMessage method
+    *  @param cause   The cause which is saved for the later
+    *                 retrieval throw by the getCause method 
+    **/
+   public WebServiceException(String message, Throwable cause)
+   {
+      super(message, cause);
+   }
+
+   /** Constructs a new WebServiceException with the specified cause
+    *  and a detail message of <tt>(cause==null ? null : 
+    *  cause.toString())</tt> (which typically contains the 
+    *  class and detail message of <tt>cause</tt>).
+    *
+    *  @param cause   The cause which is saved for the later
+    *                 retrieval throw by the getCause method.
+    *                 (A <tt>null</tt> value is permitted, and
+    *                 indicates that the cause is nonexistent or
+    *               unknown.)
+    **/
+   public WebServiceException(Throwable cause)
+   {
+      super(cause);
+   }
+
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/WebServiceException.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/WebServiceFeature.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/WebServiceFeature.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/WebServiceFeature.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,79 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+/**
+ * A WebServiceFeature is used to represent a feature that can be 
+ * enabled or disabled for a web service.  
+ * <p>
+ * The JAX-WS specification will define some standard features and
+ * JAX-WS implementors are free to define additional features if
+ * necessary.  Vendor specific features may not be portable so 
+ * caution should be used when using them. Each Feature definition 
+ * MUST define a <code>public static final String ID</code> 
+ * that can be used in the Feature annotation to refer 
+ * to the feature. This ID MUST be unique across all features
+ * of all vendors.  When defining a vendor specific feature ID,
+ * use a vendor specific namespace in the ID string. 
+ *
+ * @see javax.xml.ws.RespectBindingFeature
+ * @see javax.xml.ws.soap.AddressingFeature
+ * @see javax.xml.ws.soap.MTOMFeature
+ * 
+ * @since 2.1
+ */
+public abstract class WebServiceFeature
+{
+   /**
+    * Each Feature definition MUST define a public static final 
+    * String ID that can be used in the Feature annotation to refer 
+    * to the feature.
+    */
+   // public static final String ID = "some unique feature Identifier";
+   /**
+    * Get the unique identifier for this WebServiceFeature.
+    * 
+    * @return the unique identifier for this feature.
+    */
+   public abstract String getID();
+
+   /**
+    * Specifies if the feature is enabled or disabled
+    */
+   protected boolean enabled = false;
+
+   protected WebServiceFeature()
+   {
+   }
+
+   /**
+    * Returns <code>true</code> if this feature is enabled.
+    *
+    * @return <code>true</code> if and only if the feature is enabled .
+    */
+   public boolean isEnabled()
+   {
+      return enabled;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/WebServiceFeature.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/WebServicePermission.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/WebServicePermission.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/WebServicePermission.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,80 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+import java.security.BasicPermission;
+
+/**
+ * This class defines web service permissions.
+ * <p>
+ * Web service Permissions are identified by name (also referred to as
+ * a "target name") alone. There are no actions associated
+ * with them.
+ * <p>
+ * The following permission target name is defined:
+ * <p>
+ * <dl>
+ *   <dt>publishEndpoint
+ * </dl>
+ * <p>
+ * The <code>publishEndpoint</code> permission allows publishing a
+ * web service endpoint using the <code>publish</code> methods
+ * defined by the <code>javax.xml.ws.Endpoint</code> class.
+ *
+ * @see javax.xml.ws.Endpoint
+ * @see java.security.BasicPermission
+ * @see java.security.Permission
+ * @see java.security.Permissions
+ * @see java.lang.SecurityManager
+ */
+public final class WebServicePermission extends BasicPermission
+{
+
+   private static final long serialVersionUID = -146474640053770988L;
+
+   /**
+    * Creates a new permission with the specified name.
+    *
+    * @param name the name of the <code>WebServicePermission</code>
+    */
+   public WebServicePermission(String name)
+   {
+      super(name);
+   }
+
+   /**
+    * Creates a new permission with the specified name and actions.
+    *
+    * The <code>actions</code> parameter is currently unused and
+    * it should be <code>null</code>.
+    *
+    * @param name the name of the <code>WebServicePermission</code>
+    * @param actions should be <code>null</code>
+    */
+   public WebServicePermission(String name, String actions)
+   {
+      super(name, actions);
+   }
+
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/WebServicePermission.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/WebServiceProvider.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/WebServiceProvider.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/WebServiceProvider.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Used to annotate a Provider implementation class.
+ *
+ * @since JAX-WS 2.0
+ * @see javax.xml.ws.Provider
+ */
+ at Target(ElementType.TYPE)
+ at Retention(RetentionPolicy.RUNTIME)
+ at Documented
+public @interface WebServiceProvider {
+   /**
+    * Location of the WSDL description for the service.
+    */
+   String wsdlLocation() default "";
+
+   /**
+    * Service name.
+    */
+   String serviceName() default "";
+
+   /**
+    * Target namespace for the service
+    */
+   String targetNamespace() default "";
+
+   /**
+    * Port name.
+    */
+   String portName() default "";
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/WebServiceProvider.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/WebServiceRef.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/WebServiceRef.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/WebServiceRef.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,97 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ *  The <code>WebServiceRef</code> annotation is used to
+ *  define a reference to a web service and
+ *  (optionally) an injection target for it.
+ *
+ *  Web service references are resources in the Java EE 5 sense.
+ * 
+ *  @see javax.annotation.Resource
+ *
+ *  @since JAX-WS 2.0
+ *
+ **/
+
+ at Target( { ElementType.TYPE, ElementType.METHOD, ElementType.FIELD })
+ at Retention(RetentionPolicy.RUNTIME)
+ at Documented
+public @interface WebServiceRef {
+   /**
+    * The JNDI name of the resource.  For field annotations,
+    * the default is the field name.  For method annotations,
+    * the default is the JavaBeans property name corresponding
+    * to the method.  For class annotations, there is no default
+    * and this MUST be specified.
+    */
+   String name() default "";
+
+   /**
+    * The Java type of the resource.  For field annotations,
+    * the default is the type of the field.  For method annotations,
+    * the default is the type of the JavaBeans property.
+    * For class annotations, there is no default and this MUST be
+    * specified.
+    */
+   Class type() default Object.class;
+
+   /**
+    * A product specific name that this resource should be mapped to.
+    * The name of this resource, as defined by the <code>name</code>
+    * element or defaulted, is a name that is local to the application
+    * component using the resource.  (It's a name in the JNDI
+    * <code>java:comp/env</code> namespace.)  Many application servers
+    * provide a way to map these local names to names of resources
+    * known to the application server.  This mapped name is often a
+    * <i>global</i> JNDI name, but may be a name of any form. <p>
+    *
+    * Application servers are not required to support any particular
+    * form or type of mapped name, nor the ability to use mapped names.
+    * The mapped name is product-dependent and often installation-dependent.
+    * No use of a mapped name is portable.
+    */
+   String mappedName() default "";
+
+   /**
+    * The service class, always a type extending
+    * <code>javax.xml.ws.Service</code>. This element MUST be specified
+    * whenever the type of the reference is a service endpoint interface.
+    */
+   Class value() default Object.class;
+
+   /**
+    * A URL pointing to the WSDL document for the web service.
+    * If not specified, the WSDL location specified by annotations
+    * on the resource type is used instead.
+    */
+   String wsdlLocation() default "";
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/WebServiceRef.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/WebServiceRefs.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/WebServiceRefs.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/WebServiceRefs.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,50 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws;
+
+// $Id$
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+/**
+ * The <code>WebServiceRefs</code> annotation allows
+ * multiple web service references to be declared at the
+ * class level.
+ *
+ * @see javax.xml.ws.WebServiceRef
+ * @since 2.0
+ */
+
+ at Documented
+ at Retention(RUNTIME)
+ at Target(TYPE)
+public @interface WebServiceRefs {
+   /**
+    * Array used for multiple web service reference declarations.
+    */
+   WebServiceRef[] value();
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/WebServiceRefs.java
___________________________________________________________________
Name: svn:executable
   + *
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/Action.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/Action.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/Action.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,43 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing;
+
+//$Id$
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+ at Documented
+ at Retention(RetentionPolicy.RUNTIME)
+ at Target(ElementType.METHOD)
+public @interface Action
+{
+
+   String input() default "##default";
+
+   String output() default "##default";
+
+   String[] fault() default "##default";
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/Action.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/ActionNotSupportedException.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/ActionNotSupportedException.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/ActionNotSupportedException.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing;
+
+//$Id$
+
+import javax.xml.namespace.QName;
+
+public class ActionNotSupportedException extends AddressingException
+{
+
+   static
+   {
+      fMessage = ac.getActionNotSupportedText();
+   }
+
+   private String action;
+
+   protected ActionNotSupportedException()
+   {
+      super();
+   }
+
+   public ActionNotSupportedException(String action)
+   {
+      super(fMessage + ": " + action);
+      this.action = action;
+   }
+
+   public String getAction()
+   {
+      return action;
+   }
+
+   public QName getSubcode()
+   {
+      return ac.getActioNotSupportedQName();
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/ActionNotSupportedException.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingBuilder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingBuilder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingBuilder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,115 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing;
+
+//$Id$
+
+import static javax.xml.ws.addressing.JAXWSAConstants.ADDRESSING_BUILDER_PROPERTY;
+import static javax.xml.ws.addressing.JAXWSAConstants.DEFAULT_ADDRESSING_BUILDER;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+import javax.xml.namespace.QName;
+
+import org.jboss.logging.Logger;
+
+public abstract class AddressingBuilder implements AddressingType
+{
+   // provide logging
+   private static Logger log = Logger.getLogger(AddressingBuilder.class);
+
+   protected AddressingBuilder()
+   {
+   }
+
+   public static AddressingBuilder getAddressingBuilder()
+   {
+      ClassLoader classLoader;
+      try
+      {
+         classLoader = Thread.currentThread().getContextClassLoader();
+      }
+      catch (Exception x)
+      {
+         throw new AddressingException(x.toString(), x);
+      }
+
+      String name = null;
+
+      // Use the system property first
+      try
+      {
+         name = System.getProperty(ADDRESSING_BUILDER_PROPERTY);
+         if (name != null)
+         {
+            return newInstance(name, classLoader);
+         }
+      }
+      catch (Exception e)
+      {
+         log.warn("Could not create and instance of " + name + " trying " + DEFAULT_ADDRESSING_BUILDER);
+      }
+
+      // default builder
+      return newInstance(DEFAULT_ADDRESSING_BUILDER, classLoader);
+   }
+
+   private static AddressingBuilder newInstance(String className, ClassLoader classLoader)
+   {
+      try
+      {
+         Class cls;
+         if (classLoader == null)
+         {
+            cls = Class.forName(className);
+         }
+         else
+         {
+            cls = classLoader.loadClass(className);
+         }
+         return (AddressingBuilder)cls.newInstance();
+      }
+      catch (ClassNotFoundException x)
+      {
+         throw new AddressingException("Provider " + className + " not found", x);
+      }
+      catch (Exception x)
+      {
+         throw new AddressingException("Provider " + className + " could not be instantiated: " + x, x);
+      }
+   }
+
+   public abstract AttributedURI newURI(URI uri);
+
+   public abstract AttributedURI newURI(String uri) throws URISyntaxException;
+
+   public abstract AttributedQName newQName(QName name);
+
+   public abstract Relationship newRelationship(URI uri);
+
+   public abstract EndpointReference newEndpointReference(URI uri);
+
+   public abstract AddressingProperties newAddressingProperties();
+
+   public abstract AddressingConstants newAddressingConstants();
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingBuilder.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingConstants.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingConstants.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingConstants.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,96 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing;
+
+//$Id$
+
+import javax.xml.namespace.QName;
+
+public interface AddressingConstants
+{
+   String getNamespaceURI();
+
+   String getNamespacePrefix();
+
+   String getWSDLNamespaceURI();
+
+   String getWSDLNamespacePrefix();
+
+   QName getWSDLExtensibilityQName();
+
+   QName getWSDLActionQName();
+
+   String getAnonymousURI();
+
+   String getNoneURI();
+
+   QName getFromQName();
+
+   QName getToQName();
+
+   QName getReplyToQName();
+
+   QName getFaultToQName();
+
+   QName getActionQName();
+
+   QName getMessageIDQName();
+
+   QName getRelationshipReplyQName();
+
+   QName getRelatesToQName();
+
+   String getRelationshipTypeName();
+
+   // [TODO] Add this method
+   QName getReferenceParametersQName();
+
+   QName getMetadataQName();
+
+   QName getAddressQName();
+
+   String getPackageName();
+
+   String getIsReferenceParameterName();
+
+   QName getInvalidMapQName();
+
+   QName getMapRequiredQName();
+
+   QName getDestinationUnreachableQName();
+
+   QName getActioNotSupportedQName();
+
+   QName getEndpointUnavailableQName();
+
+   String getDefaultFaultAction();
+
+   String getActionNotSupportedText();
+
+   String getDestinationUnreachableText();
+
+   String getEndpointUnavailableText();
+
+   String getInvalidMapText();
+
+   String getMapRequiredText();
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingConstants.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingException.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingException.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingException.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,89 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing;
+
+//$Id$
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.WebServiceException;
+
+public class AddressingException extends WebServiceException
+{
+
+   protected QName code;
+
+   protected String reason;
+
+   protected Object detail;
+
+   protected static AddressingConstants ac = null;
+   protected static String fMessage = null;
+   static
+   {
+      ac = AddressingBuilder.getAddressingBuilder().newAddressingConstants();
+   }
+
+   public AddressingException()
+   {
+   }
+
+   public AddressingException(String message)
+   {
+      super(message);
+   }
+
+   public AddressingException(Throwable cause)
+   {
+      super(cause);
+   }
+
+   public AddressingException(String message, Throwable cause)
+   {
+      super(message, cause);
+   }
+
+   /**
+    * Returns the fault code.
+    *
+    * @return the fault code
+    */
+   public QName getCode()
+   {
+      return code;
+   }
+
+   public QName getSubcode()
+   {
+      return null;
+   }
+
+   public String getReason()
+   {
+      return reason;
+   }
+
+   public Object getDetail()
+   {
+      return detail;
+   }
+
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingException.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingProperties.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingProperties.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingProperties.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,66 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing;
+
+//$Id$
+
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+public interface AddressingProperties extends AddressingType, Map<QName, AddressingType>
+{
+
+   public AttributedURI getTo();
+
+   public void setTo(AttributedURI iri);
+
+   public AttributedURI getAction();
+
+   public void setAction(AttributedURI iri);
+
+   public AttributedURI getMessageID();
+
+   public void setMessageID(AttributedURI iri);
+
+   public Relationship[] getRelatesTo();
+
+   public void setRelatesTo(Relationship[] relationship);
+
+   public EndpointReference getReplyTo();
+
+   public void setReplyTo(EndpointReference ref);
+
+   public EndpointReference getFaultTo();
+
+   public void setFaultTo(EndpointReference ref);
+
+   public EndpointReference getFrom();
+
+   public void setFrom(EndpointReference ref);
+
+   public ReferenceParameters getReferenceParameters();
+
+   public void initializeAsDestination(EndpointReference ref);
+
+   public void initializeAsReply(AddressingProperties props, boolean isFault);
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingProperties.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingType.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingType.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingType.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,29 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing;
+
+//$Id$
+
+public interface AddressingType
+{
+   public String getNamespaceURI();
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/AddressingType.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/AttributeExtensible.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/AttributeExtensible.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/AttributeExtensible.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,36 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing;
+
+//$Id$
+
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+public interface AttributeExtensible extends AddressingType
+{
+   public Map<QName, String> getAttributes();
+
+   public void addAttribute(QName name, String value) throws AddressingException;
+
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/AttributeExtensible.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/AttributedQName.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/AttributedQName.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/AttributedQName.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,35 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing;
+
+//$Id$
+
+import javax.xml.namespace.QName;
+
+public interface AttributedQName extends AddressingType, AttributeExtensible
+{
+
+   public QName getQName();
+
+   public void addAttribute(QName name, String value);
+
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/AttributedQName.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/AttributedURI.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/AttributedURI.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/AttributedURI.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,35 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing;
+
+//$Id$
+
+import java.net.URI;
+
+import javax.xml.namespace.QName;
+
+public interface AttributedURI extends AddressingType, AttributeExtensible
+{
+   public URI getURI();
+
+   public void addAttribute(QName name, String value);
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/AttributedURI.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/DestinationUnreachableException.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/DestinationUnreachableException.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/DestinationUnreachableException.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing;
+
+//$Id$
+
+import javax.xml.namespace.QName;
+
+public class DestinationUnreachableException extends AddressingException
+{
+
+   static
+   {
+      fMessage = ac.getDestinationUnreachableText();
+   }
+
+   public DestinationUnreachableException()
+   {
+   }
+
+   public DestinationUnreachableException(String problemIRI)
+   {
+      super(fMessage + ": " + problemIRI);
+   }
+
+   public QName getSubcode()
+   {
+      return ac.getDestinationUnreachableQName();
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/DestinationUnreachableException.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/ElementExtensible.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/ElementExtensible.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/ElementExtensible.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,36 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing;
+
+//$Id$
+
+import java.util.List;
+
+public interface ElementExtensible extends AddressingType
+{
+   public List<Object> getElements();
+
+   public void addElement(Object element);
+
+   public boolean removeElement(Object element);
+
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/ElementExtensible.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/EndpointReference.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/EndpointReference.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/EndpointReference.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,34 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing;
+
+//$Id$
+
+public interface EndpointReference extends AddressingType, AttributeExtensible, ElementExtensible
+{
+   public AttributedURI getAddress();
+
+   public ReferenceParameters getReferenceParameters();
+
+   public Metadata getMetadata();
+
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/EndpointReference.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/EndpointUnavailableException.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/EndpointUnavailableException.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/EndpointUnavailableException.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing;
+
+//$Id$
+
+import javax.xml.namespace.QName;
+
+public class EndpointUnavailableException extends AddressingException
+{
+
+   static
+   {
+      fMessage = ac.getEndpointUnavailableText();
+   }
+
+   public EndpointUnavailableException()
+   {
+   }
+
+   public EndpointUnavailableException(int retryAfter, String problemIRI)
+   {
+      super(fMessage + ": [retry=" + retryAfter + ",iri=" + problemIRI + "]");
+   }
+
+   public QName getSubcode()
+   {
+      return ac.getEndpointUnavailableQName();
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/EndpointUnavailableException.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/FaultAction.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/FaultAction.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/FaultAction.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,41 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing;
+
+//$Id$
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+ at Documented
+ at Retention(RetentionPolicy.RUNTIME)
+ at Target(ElementType.METHOD)
+public @interface FaultAction
+{
+
+   Class className();
+
+   String value() default "##default";
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/FaultAction.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/InvalidMapException.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/InvalidMapException.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/InvalidMapException.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing;
+
+//$Id$
+
+import javax.xml.namespace.QName;
+
+public class InvalidMapException extends AddressingException
+{
+
+   static
+   {
+      fMessage = ac.getInvalidMapText();
+   }
+
+   protected InvalidMapException()
+   {
+   }
+
+   public InvalidMapException(QName name)
+   {
+      super(fMessage + ": " + name);
+   }
+
+   public QName getSubcode()
+   {
+      return ac.getInvalidMapQName();
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/InvalidMapException.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/JAXWSAConstants.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/JAXWSAConstants.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/JAXWSAConstants.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,80 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing;
+
+//$Id$
+
+import javax.xml.namespace.QName;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPFactory;
+
+public class JAXWSAConstants
+{
+
+   private JAXWSAConstants()
+   {
+   }
+
+   public static final String ADDRESSING_BUILDER_PROPERTY = "javax.xml.ws.addressing.AddressingBuilder";
+
+   public static final String DEFAULT_ADDRESSING_BUILDER = "org.jboss.ws.extensions.addressing.soap.SOAPAddressingBuilderImpl";
+
+   public static final String SOAP11_NAMESPACE_NAME = "http://schemas.xmlsoap.org/soap/envelope/";
+
+   public static final String SOAP12_NAMESPACE_NAME = "http://www.w3.org/2003/05/soap-envelope";
+
+   public static final QName SOAP11_SENDER_QNAME = new QName(SOAP11_NAMESPACE_NAME, "Client");
+
+   public static final QName SOAP11_RECEIVER_QNAME = new QName(SOAP11_NAMESPACE_NAME, "Server");
+
+   public static final QName SOAP12_SENDER_QNAME = new QName(SOAP12_NAMESPACE_NAME, "Sender");
+
+   public static final QName SOAP12_RECEIVER_QNAME = new QName(SOAP12_NAMESPACE_NAME, "Receiver");
+
+   public static final String SOAP11HTTP_ADDRESSING_BINDING = "http://schemas.xmlsoap.org/wsdl/soap/http?addressing=1.0";
+
+   public static final String SOAP12HTTP_ADDRESSING_BINDING = "http://www.w3.org/2003/05/soap/bindings/HTTP/?addressing=1.0";
+
+   public static final String CLIENT_ADDRESSING_PROPERTIES = "javax.xml.ws.addressing.context";
+
+   public static final String CLIENT_ADDRESSING_PROPERTIES_INBOUND = "javax.xml.ws.addressing.context.inbound";
+
+   public static final String CLIENT_ADDRESSING_PROPERTIES_OUTBOUND = "javax.xml.ws.addressing.context.outbound";
+
+   public static final String SERVER_ADDRESSING_PROPERTIES_INBOUND = "javax.xml.ws.addressing.context.inbound";
+
+   public static final String SERVER_ADDRESSING_PROPERTIES_OUTBOUND = "javax.xml.ws.addressing.context.outbound";
+
+   public static SOAPFactory SOAP_FACTORY = null;
+
+   static
+   {
+      try
+      {
+         SOAP_FACTORY = SOAPFactory.newInstance();
+      }
+      catch (SOAPException e)
+      {
+      }
+   }
+
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/JAXWSAConstants.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/MapRequiredException.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/MapRequiredException.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/MapRequiredException.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,49 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing;
+
+//$Id$
+
+import javax.xml.namespace.QName;
+
+public class MapRequiredException extends AddressingException
+{
+
+   static
+   {
+      fMessage = ac.getMapRequiredText();
+   }
+
+   public MapRequiredException()
+   {
+   }
+
+   public MapRequiredException(QName name)
+   {
+      super(fMessage + ": " + name);
+   }
+
+   public QName getSubcode()
+   {
+      return ac.getMapRequiredQName();
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/MapRequiredException.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/Metadata.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/Metadata.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/Metadata.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,29 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing;
+
+//$Id$
+
+public interface Metadata extends AttributeExtensible, ElementExtensible
+{
+
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/Metadata.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/ReferenceParameters.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/ReferenceParameters.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/ReferenceParameters.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,28 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing;
+
+//$Id$
+
+public interface ReferenceParameters extends AttributeExtensible, ElementExtensible
+{
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/ReferenceParameters.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/Relationship.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/Relationship.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/Relationship.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,39 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing;
+
+//$Id$
+
+import java.net.URI;
+
+import javax.xml.namespace.QName;
+
+public interface Relationship extends AttributeExtensible
+{
+
+   public URI getID();
+
+   public QName getType();
+
+   public void setType(QName type);
+
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/Relationship.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/soap/SOAPAddressingBuilder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/soap/SOAPAddressingBuilder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/soap/SOAPAddressingBuilder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,30 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing.soap;
+
+//$Id$
+
+import javax.xml.ws.addressing.AddressingBuilder;
+
+public abstract class SOAPAddressingBuilder extends AddressingBuilder
+{
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/soap/SOAPAddressingBuilder.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/soap/SOAPAddressingElement.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/soap/SOAPAddressingElement.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/soap/SOAPAddressingElement.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing.soap;
+
+//$Id$
+
+import javax.xml.namespace.QName;
+import javax.xml.soap.SOAPElement;
+import javax.xml.ws.addressing.AddressingException;
+import javax.xml.ws.addressing.AddressingType;
+
+public interface SOAPAddressingElement extends AddressingType
+{
+
+   public void read(SOAPElement element) throws AddressingException;
+
+   public SOAPElement write(SOAPElement parent, QName name) throws AddressingException;
+
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/soap/SOAPAddressingElement.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/addressing/soap/SOAPAddressingProperties.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/addressing/soap/SOAPAddressingProperties.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/addressing/soap/SOAPAddressingProperties.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.addressing.soap;
+
+//$Id$
+
+import javax.xml.soap.SOAPMessage;
+import javax.xml.ws.addressing.AddressingException;
+import javax.xml.ws.addressing.AddressingProperties;
+
+public interface SOAPAddressingProperties extends AddressingProperties
+{
+   public void readHeaders(SOAPMessage message) throws AddressingException;
+
+   public void writeHeaders(SOAPMessage message) throws AddressingException;
+
+   public void setMu(boolean mu);
+
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/addressing/soap/SOAPAddressingProperties.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/handler/Handler.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/handler/Handler.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/handler/Handler.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,84 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.handler;
+
+// $Id$
+
+import javax.xml.ws.ProtocolException;
+
+/** The <code>Handler</code> interface
+ *  is the base interface for JAX-WS handlers.
+ * 
+ *  @since JAX-WS 2.0
+**/
+public interface Handler<C extends MessageContext> {
+
+  /** The <code>handleMessage</code> method is invoked for normal processing
+   *  of inbound and outbound messages. Refer to the description of the handler
+   *  framework in the JAX-WS specification for full details.
+   *
+   *  @param context the message context.
+   *  @return An indication of whether handler processing should continue for
+   *  the current message
+   *                 <ul>
+   *                 <li>Return <code>true</code> to continue 
+   *                     processing.</li>
+   *                 <li>Return <code>false</code> to block 
+   *                     processing.</li>
+   *                  </ul>
+   *  @throws RuntimeException Causes the JAX-WS runtime to cease
+   *    handler processing and generate a fault.
+   *  @throws ProtocolException Causes the JAX-WS runtime to switch to
+   *    fault message processing.
+  **/
+  public boolean handleMessage(C context);
+
+  /** The <code>handleFault</code> method is invoked for fault message 
+   *  processing.  Refer to the description of the handler
+   *  framework in the JAX-WS specification for full details.
+   *
+   *  @param context the message context
+   *  @return An indication of whether handler fault processing should continue 
+   *  for the current message
+   *                 <ul>
+   *                 <li>Return <code>true</code> to continue 
+   *                     processing.</li>
+   *                 <li>Return <code>false</code> to block 
+   *                     processing.</li>
+   *                  </ul>
+   *  @throws RuntimeException Causes the JAX-WS runtime to cease
+   *    handler fault processing and dispatch the fault.
+   *  @throws ProtocolException Causes the JAX-WS runtime to cease
+   *    handler fault processing and dispatch the fault.
+  **/
+  public boolean handleFault(C context);
+
+  /**
+   * Called at the conclusion of a message exchange pattern just prior to
+   * the JAX-WS runtime disptaching a message, fault or exception.  Refer to
+   * the description of the handler
+   * framework in the JAX-WS specification for full details.
+   *
+   * @param context the message context
+  **/
+  public void close(MessageContext context);
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/handler/Handler.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/handler/HandlerResolver.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/handler/HandlerResolver.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/handler/HandlerResolver.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,51 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.handler;
+
+// $Id$
+
+/** 
+ *  <code>HandlerResolver</code> is an interface implemented
+ *  by an application to get control over the handler chain
+ *  set on proxy/dispatch objects at the time of their creation.
+ *  <p>
+ *  A <code>HandlerResolver</code> may be set on a <code>Service</code>
+ *  using the <code>setHandlerResolver</code> method.
+ * <p>
+ *  When the runtime invokes a <code>HandlerResolver</code>, it will
+ *  pass it a <code>PortInfo</code> object containing information
+ *  about the port that the proxy/dispatch object will be accessing.
+ *
+ *  @see javax.xml.ws.Service#setHandlerResolver
+ *
+ *  @since JAX-WS 2.0
+**/
+public interface HandlerResolver {
+
+  /** 
+   *  Gets the handler chain for the specified port.
+   *
+   *  @param portInfo Contains information about the port being accessed.
+   *  @return java.util.List Handler chain
+  **/
+  public java.util.List<Handler> getHandlerChain(PortInfo portInfo);
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/handler/HandlerResolver.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/handler/LogicalHandler.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/handler/LogicalHandler.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/handler/LogicalHandler.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,32 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.handler;
+
+// $Id$
+
+/** The <code>LogicalHandler</code> extends
+ *  Handler to provide typesafety for the message context parameter.
+ * 
+ *  @since JAX-WS 2.0
+**/
+public interface LogicalHandler<C extends LogicalMessageContext> extends Handler<C> {
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/handler/LogicalHandler.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/handler/LogicalMessageContext.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/handler/LogicalMessageContext.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/handler/LogicalMessageContext.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,44 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.handler;
+
+// $Id$
+
+import javax.xml.ws.LogicalMessage;
+
+/** The <code>LogicalMessageContext</code> interface extends 
+ *  <code>MessageContext</code> to
+ *  provide access to a the contained message as a protocol neutral
+ *  LogicalMessage
+ * 
+ *  @since JAX-WS 2.0
+**/
+public interface LogicalMessageContext 
+                    extends MessageContext {
+
+  /** Gets the message from this message context
+   *
+   *  @return The contained message; returns null if no 
+   *          message is present in this message context
+  **/
+  public LogicalMessage getMessage();
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/handler/LogicalMessageContext.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/handler/MessageContext.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/handler/MessageContext.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/handler/MessageContext.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,190 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.handler;
+
+// $Id$
+
+import java.util.Map;
+
+/**
+ * The interface <code>MessageContext</code> abstracts the message
+ * context that is processed by a handler in the <code>handle</code>
+ * method.
+ *
+ * <p>The <code>MessageContext</code> interface provides methods to
+ * manage a property set. <code>MessageContext</code> properties
+ * enable handlers in a handler chain to share processing related
+ * state.
+ *
+ * @since JAX-WS 2.0
+ */
+public interface MessageContext extends Map<String, Object>
+{
+
+   /**
+    * Standard property: message direction, <code>true</code> for
+    * outbound messages, <code>false</code> for inbound.
+    * <p>Type: boolean
+    */
+   public static final String MESSAGE_OUTBOUND_PROPERTY = "javax.xml.ws.handler.message.outbound";
+
+   /**
+    * Standard property: Map of attachments to a message for the inbound
+    * message, key is  the MIME Content-ID, value is a DataHandler.
+    * <p>Type: java.util.Map<String,DataHandler>
+    */
+   public static final String INBOUND_MESSAGE_ATTACHMENTS = "javax.xml.ws.binding.attachments.inbound";
+
+   /**
+    * Standard property: Map of attachments to a message for the outbound
+    * message, key is the MIME Content-ID, value is a DataHandler.
+    * <p>Type: java.util.Map<String,DataHandler>
+    */
+   public static final String OUTBOUND_MESSAGE_ATTACHMENTS = "javax.xml.ws.binding.attachments.outbound";
+
+   /**
+    * Standard property: input source for WSDL document.
+    * <p>Type: org.xml.sax.InputSource
+    */
+   public static final String WSDL_DESCRIPTION = "javax.xml.ws.wsdl.description";
+
+   /**
+    * Standard property: name of WSDL service.
+    * <p>Type: javax.xml.namespace.QName
+    */
+   public static final String WSDL_SERVICE = "javax.xml.ws.wsdl.service";
+
+   /**
+    * Standard property: name of WSDL port.
+    * <p>Type: javax.xml.namespace.QName
+    */
+   public static final String WSDL_PORT = "javax.xml.ws.wsdl.port";
+
+   /**
+    * Standard property: name of wsdl interface (2.0) or port type (1.1).
+    * <p>Type: javax.xml.namespace.QName
+    */
+   public static final String WSDL_INTERFACE = "javax.xml.ws.wsdl.interface";
+
+   /**
+    * Standard property: name of WSDL operation.
+    * <p>Type: javax.xml.namespace.QName
+    */
+   public static final String WSDL_OPERATION = "javax.xml.ws.wsdl.operation";
+
+   /**
+    * Standard property: HTTP response status code.
+    * <p>Type: java.lang.Integer
+    */
+   public static final String HTTP_RESPONSE_CODE = "javax.xml.ws.http.response.code";
+
+   /**
+    * Standard property: HTTP request headers.
+    * <p>Type: java.util.Map<java.lang.String, java.util.List<java.lang.String>>
+    */
+   public static final String HTTP_REQUEST_HEADERS = "javax.xml.ws.http.request.headers";
+
+   /**
+    * Standard property: HTTP response headers.
+    * <p>Type: java.util.Map<java.lang.String, java.util.List<java.lang.String>>
+    */
+   public static final String HTTP_RESPONSE_HEADERS = "javax.xml.ws.http.response.headers";
+
+   /**
+    * Standard property: HTTP request method.
+    * <p>Type: java.lang.String
+    */
+   public static final String HTTP_REQUEST_METHOD = "javax.xml.ws.http.request.method";
+
+   /**
+    * Standard property: servlet request object.
+    * <p>Type: javax.servlet.http.HttpServletRequest
+    */
+   public static final String SERVLET_REQUEST = "javax.xml.ws.servlet.request";
+
+   /**
+    * Standard property: servlet response object.
+    * <p>Type: javax.servlet.http.HttpServletResponse
+    */
+   public static final String SERVLET_RESPONSE = "javax.xml.ws.servlet.response";
+
+   /**
+    * Standard property: servlet context object.
+    * <p>Type: javax.servlet.ServletContext
+    */
+   public static final String SERVLET_CONTEXT = "javax.xml.ws.servlet.context";
+
+   /**
+    * Standard property: Query string for request.
+    * <p>Type: String
+    **/
+   public static final String QUERY_STRING = "javax.xml.ws.http.request.querystring";
+
+   /**
+    * Standard property: Request Path Info
+    * <p>Type: String
+    */
+   public static final String PATH_INFO = "javax.xml.ws.http.request.pathinfo";
+
+   /**
+    * Standard property: WS Addressing Reference Parameters.
+    * The list MUST include all SOAP headers marked with the
+    * wsa:IsReferenceParameter="true" attribute.
+    * <p>Type: List<Element>
+    *
+    * @since JAX-WS 2.1
+    */
+   public static final String REFERENCE_PARAMETERS = "javax.xml.ws.reference.parameters";
+
+   /**
+    * Property scope. Properties scoped as <code>APPLICATION</code> are
+    * visible to handlers,
+    * client applications and service endpoints; properties scoped as
+    * <code>HANDLER</code>
+    * are only normally visible to handlers.
+    */
+   public enum Scope
+   {
+      APPLICATION, HANDLER
+   };
+
+   /** 
+    * Sets the scope of a property.
+    *
+    * @param name Name of the property associated with the
+    *             <code>MessageContext</code>
+    * @param scope Desired scope of the property
+    * @throws java.lang.IllegalArgumentException if an illegal
+    *             property name is specified
+    */
+   public void setScope(String name, Scope scope);
+
+   /** 
+    * Gets the scope of a property.
+    *
+    * @param name Name of the property
+    * @return Scope of the property
+    * @throws java.lang.IllegalArgumentException if a non-existant
+    *             property name is specified
+    */
+   public Scope getScope(String name);
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/handler/MessageContext.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/handler/PortInfo.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/handler/PortInfo.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/handler/PortInfo.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,64 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.handler;
+
+// $Id$
+
+import javax.xml.namespace.QName;
+
+/** 
+ *  The <code>PortInfo</code> interface is used by a
+ *  <code>HandlerResolver</code> to query information about
+ *  the port it is being asked to create a handler chain for.
+ *  <p>
+ *  This interface is never implemented by an application,
+ *  only by a JAX-WS implementation.
+ *
+ *  @since JAX-WS 2.0
+**/
+public interface PortInfo {
+
+  /** 
+   *  Gets the qualified name of the WSDL service name containing
+   *  the port being accessed.
+   *
+   *  @return javax.xml.namespace.QName The qualified name of the WSDL service.
+  **/
+  public QName getServiceName();
+
+  /** 
+   *  Gets the qualified name of the WSDL port being accessed.
+   *
+   *  @return javax.xml.namespace.QName The qualified name of the WSDL port.
+  **/
+  public QName getPortName();
+
+  /** 
+   *  Gets the URI identifying the binding used by the port being accessed.
+   *
+   *  @return String The binding identifier for the port.
+   *
+   *  @see javax.xml.ws.Binding
+  **/
+  public String getBindingID();
+
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/handler/PortInfo.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/handler/soap/SOAPHandler.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/handler/soap/SOAPHandler.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/handler/soap/SOAPHandler.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,48 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.handler.soap;
+
+// $Id$
+
+import java.util.Set;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.handler.Handler;
+
+/** The <code>SOAPHandler</code> class extends <code>Handler</code>
+ *  to provide typesafety for the message context parameter and add a method
+ *  to obtain access to the headers that may be processed by the handler.
+ * 
+ *  @since JAX-WS 2.0
+**/
+public interface SOAPHandler<T extends SOAPMessageContext>
+    extends Handler<T> {
+
+  /** Gets the header blocks that can be processed by this Handler
+   *  instance.
+   *
+   *  @return Set of QNames of header blocks processed by this
+   *           handler instance. <code>QName</code> is the qualified 
+   *           name of the outermost element of the Header block.
+  **/
+  Set<QName> getHeaders();
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/handler/soap/SOAPHandler.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/handler/soap/SOAPMessageContext.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/handler/soap/SOAPMessageContext.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/handler/soap/SOAPMessageContext.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,99 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.handler.soap;
+
+// $Id$
+
+import java.util.Set;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.namespace.QName;
+import javax.xml.soap.SOAPMessage;
+import javax.xml.ws.WebServiceException;
+
+/** The interface <code>SOAPMessageContext</code> 
+ *  provides access to the SOAP message for either RPC request or 
+ *  response. The <code>javax.xml.soap.SOAPMessage</code> specifies
+ *  the standard Java API for the representation of a SOAP 1.1 message
+ *  with attachments.
+ *
+ *  @see javax.xml.soap.SOAPMessage
+ * 
+ *  @since JAX-WS 2.0
+**/
+public interface SOAPMessageContext 
+                    extends javax.xml.ws.handler.MessageContext {
+
+  /** Gets the SOAPMessage from this message context. Modifications
+   *  to the returned SOAPMessage change the message in-place, there
+   *  is no need to susequently call <code>setMessage</code>.
+   *
+   *  @return Returns the SOAPMessage; returns null if no 
+   *          SOAPMessage is present in this message context
+  **/
+  public SOAPMessage getMessage();
+
+  /** Sets the SOAPMessage in this message context
+   *
+   *  @param  message SOAP message
+   *  @throws WebServiceException If any error during the setting
+   *          of the SOAPMessage in this message context
+   *  @throws java.lang.UnsupportedOperationException If this
+   *          operation is not supported
+  **/
+  public void setMessage(SOAPMessage message);
+
+  /** Gets headers that have a particular qualified name from the message in the
+   *  message context. Note that a SOAP message can contain multiple headers
+   *  with the same qualified name.
+   *
+   *  @param  header The XML qualified name of the SOAP header(s).
+   *  @param  context The JAXBContext that should be used to unmarshall the 
+   *          header
+   *  @param  allRoles If <code>true</code> then returns headers for all SOAP
+   *          roles, if <code>false</code> then only returns headers targetted
+   *          at the roles currently being played by this SOAP node, see
+   *          <code>getRoles</code>.
+   *  @return An array of unmarshalled headers; returns an empty array if no 
+   *          message is present in this message context or no headers match
+   *          the supplied qualified name.
+   *  @throws WebServiceException If an error occurs when using the supplied
+   *     JAXBContext to unmarshall. The cause of
+   *     the WebServiceException is the original JAXBException.
+  **/
+  public Object[] getHeaders(QName header, JAXBContext context,
+    boolean allRoles);
+
+  /** Gets the SOAP actor roles associated with an execution
+   *  of the handler chain.
+   *  Note that SOAP actor roles apply to the SOAP node and
+   *  are managed using <code>SOAPBinding.setRoles</code> and
+   *  <code>SOAPBinding.getRoles</code>. Handler instances in
+   *  the handler chain use this information about the SOAP actor
+   *  roles to process the SOAP header blocks. Note that the
+   *  SOAP actor roles are invariant during the processing of
+   *  SOAP message through the handler chain.
+   *
+   *  @return Array of String for SOAP actor roles
+  **/
+  public Set<String> getRoles();
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/handler/soap/SOAPMessageContext.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/http/HTTPBinding.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/http/HTTPBinding.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/http/HTTPBinding.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,39 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.http;
+
+// $Id$
+
+import javax.xml.ws.Binding;
+
+/** The <code>HTTPBinding</code> interface is an 
+ *  abstraction for the XML/HTTP binding.
+ * 
+ *  @since JAX-WS 2.0
+**/
+public interface HTTPBinding extends Binding {
+
+  /**
+   * A constant representing the identity of the XML/HTTP binding.
+   */
+  public static final String HTTP_BINDING = "http://www.w3.org/2004/08/wsdl/http";
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/http/HTTPBinding.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/http/HTTPException.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/http/HTTPException.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/http/HTTPException.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,54 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.http;
+
+// $Id$
+
+
+/** The <code>HTTPException</code> exception represents a 
+ *  XML/HTTP fault.
+ *
+ *  <p>Since there is no standard format for faults or exceptions
+ *  in XML/HTTP messaging, only the HTTP status code is captured. 
+ * 
+ *  @since JAX-WS 2.0
+**/
+public class HTTPException extends javax.xml.ws.ProtocolException  {
+  
+  private int statusCode;
+
+  /** Constructor for the HTTPException
+   *  @param statusCode   <code>int</code> for the HTTP status code
+  **/
+  public HTTPException(int statusCode) { 
+    super();
+    this.statusCode = statusCode;
+  }
+
+  /** Gets the HTTP status code.
+   *
+   *  @return HTTP status code
+  **/
+  public int getStatusCode() {
+    return statusCode;
+  }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/http/HTTPException.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/soap/Addressing.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/soap/Addressing.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/soap/Addressing.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,90 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.soap;
+
+// $Id$
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import javax.xml.ws.spi.WebServiceFeatureAnnotation;
+
+/**
+ * This feature represents the use of WS-Addressing with either
+ * the SOAP 1.1/HTTP or SOAP 1.2/HTTP binding.  Using this feature
+ * with any other binding is NOT required.
+ * <p>
+ * Enabling this feature will result in the
+ * <code>wsaw:UsingAddressing</code> element being added to the
+ * <code>wsdl:Binding</code> for
+ * the endpoint and in the runtime being capable of responding to
+ * WS-Addressing headers.
+ * <p>
+ * The following describes the affects of this feature with respect
+ * to be enabled or disabled:
+ * <ul>
+ *  <li> ENABLED: In this Mode, Addressing will be enabled.
+ *       If there is not a WSDL associated with the Endpoint and
+ *       a WSDL is to be generated, it MUST be generated with the
+ *       wsaw:UsingAddressing element. At runtime, Addressing headers
+ *       MUST be consumed by the receiver and generated by the
+ *       sender even if the WSDL declares otherwise. The
+ *       mustUnderstand="0" attribute MUST be used on the Addressing
+ *       headers.
+ *  <li> DISABLED: In this Mode, Addressing will be disabled
+ *       even if an associated WSDL specifies otherwise. At runtime,
+ *       Addressing headers MUST NOT be used.
+ * </ul>
+ * <p>
+ * The {@link #required} property can be used to
+ * specify if the <code>required</code> attribute on the
+ * <code>wsaw:UsingAddressing</code> element should
+ * be <code>true</code> or <code>false</code>.  By default the
+ * <code>wsdl:required</code> parameter is <code>false</code>.
+ *
+ * See <a href="http://www.w3.org/TR/2006/REC-ws-addr-core-20060509/">WS-Addressing</a>
+ * for more information on WS-Addressing.
+ * See <a href="http://www.w3.org/TR/2006/CR-ws-addr-wsdl-20060529/">WS-Addressing - WSDL 1.0
+ * </a> for more information on <code>wsaw:UsingAddressing</code>.
+ *
+ * @since JAX-WS 2.1
+ */
+ at Target(ElementType.TYPE)
+ at Retention(RetentionPolicy.RUNTIME)
+ at Documented
+ at WebServiceFeatureAnnotation(id=AddressingFeature.ID,bean=AddressingFeature.class)
+public @interface Addressing {
+    /**
+     * Specifies if this feature is enabled or disabled.
+     */
+    boolean enabled() default true;
+    
+    /**
+     * Property to determine the value of the
+     * <code>wsdl:required</code> attribute on
+     * <code>wsaw:UsingAddressing</code> element in the WSDL.
+     */
+    boolean required() default false;
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/soap/Addressing.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/soap/AddressingFeature.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/soap/AddressingFeature.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/soap/AddressingFeature.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,143 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.soap;
+
+// $Id$
+
+import javax.xml.ws.WebServiceFeature;
+
+/**
+ * This feature represents the use of WS-Addressing with either
+ * the SOAP 1.1/HTTP or SOAP 1.2/HTTP binding.  Using this feature
+ * with any other binding is NOT required.
+ * <p>
+ * Enabling this feature on the server will result in the
+ * <code>wsaw:UsingAddressing</code> element being added to the 
+ * <code>wsdl:Binding</code> for 
+ * the endpoint and in the runtime being capable of responding to
+ * WS-Addressing headers.
+ * <p>
+ * Enabling this feature on the client will cause the JAX-WS runtime
+ * to include WS-Addressing headers in SOAP messages.
+ * <p>
+ * If the web service developer has not explicitly enabled this feature,
+ * it may be automatically enabled if the associated WSDL enables
+ * WS-Addressing via the <code>wsaw:UsingAddressing</code> element with
+ * the <code>wsdl:required</code> attribute set to <code>true</code>.
+ * <br>
+ * See {@link javax.xml.ws.RespectBindingFeature} for more information 
+ * on required WSDL extensions.
+ * <p>
+ * The following describes the affects of this feature with respect
+ * to be enabled or disabled:
+ * <ul>
+ *  <li> ENABLED: In this Mode, Addressing will be enabled. 
+ *       If there is not a WSDL associated with the Endpoint and
+ *       a WSDL is to be generated, it MUST be generated with the 
+ *       wsaw:UsingAddressing element. At runtime, Addressing headers
+ *       MUST be consumed by the receiver and generated by the
+ *       sender even if the WSDL declares otherwise. The
+ *       mustUnderstand="0" attribute MUST be used on the Addressing
+ *       headers.
+ *  <li> DISABLED: In this Mode, Addressing will be disabled
+ *       even if an associated WSDL specifies otherwise. At runtime, 
+ *       Addressing headers MUST NOT be used.
+ * </ul>
+ * <p>
+ * The {@link #required} property can be used to 
+ * specify if the <code>required</code> attribute on the 
+ * <code>wsaw:UsingAddressing</code> element should
+ * be <code>true</code> or <code>false</code>.  By default the
+ * <code>wsdl:required</code> parameter is <code>false</code>.
+ *
+ * See <a href="http://www.w3.org/TR/2006/REC-ws-addr-core-20060509/">WS-Addressing</a>
+ * for more information on WS-Addressing.
+ * See <a href="http://www.w3.org/TR/2006/CR-ws-addr-wsdl-20060529/">WS-Addressing - WSDL 1.0
+ * </a> for more information on <code>wsaw:UsingAddressing</code>.
+ *
+ * @since JAX-WS 2.1
+ */
+public final class AddressingFeature extends WebServiceFeature {
+    /** 
+     * Constant value identifying the AddressingFeature
+     */
+    public static final String ID = "http://www.w3.org/2005/08/addressing/module";
+  
+    /**
+     * Property for <code>required</code> feature parameter. When Addressing 
+     * is enabled, the value of this property will be set to the 
+     * <code>wsdl:required</code> attribute on 
+     * <code>wsaw:UsingAddressing</code> element in the WSDL.
+     */
+    protected boolean required = false;
+    
+    /**
+     * Create an <code>AddressingFeature</code>.
+     * The instance created will be enabled.
+     */
+    public AddressingFeature() {
+        this.enabled = true;
+    }
+    
+    /** 
+     * Create an <code>AddressingFeature</code>
+     * 
+     * @param enabled specifies whether this feature should
+     * be enabled or not.
+     */
+    public AddressingFeature(boolean enabled) {
+        this.enabled = enabled;
+    }
+
+    /** 
+     * Create an <code>AddressingFeature</code>
+     * 
+     * @param enabled specifies whether this feature should
+     * be enabled or not.
+     * @param required specifies the value that will be used  
+     * for the <code>wsdl:required</code> attribute on the
+     * <code>wsaw:UsingAddressing</code> element.
+     */
+    public AddressingFeature(boolean enabled, boolean required) {
+        this.enabled = enabled;
+        this.required = required;
+    }    
+    
+    /**
+     * {@inheritDoc}
+     */
+    public String getID() {
+        return ID;
+    }
+    
+    /**
+     * Gets the boolean value used to set the
+     * <code>wsdl:required</code> attribute on 
+     * <code>wsaw:UsingAddressing</code> element 
+     * in the WSDL.
+     *
+     * @return the current required value
+     */
+    public boolean isRequired() {
+        return required;
+    }    
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/soap/AddressingFeature.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/soap/MTOM.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/soap/MTOM.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/soap/MTOM.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,67 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.soap;
+
+// $Id$
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import javax.xml.ws.spi.WebServiceFeatureAnnotation;
+
+/**
+ * This feature represents the use of MTOM with a 
+ * web service.
+ *
+ * <p>
+ * The following describes the affects of this feature with respect
+ * to being enabled or disabled:
+ * <ul>
+ *  <li> ENABLED: In this Mode, MTOM will be enabled.
+ *  <li> DISABLED: In this Mode, MTOM will be disabled
+ * </ul>
+ * <p>
+ * The {@link #threshold} property can be used to set the threshold 
+ * value used to determine when binary data should be XOP encoded.
+ *
+ * @since JAX-WS 2.1
+ */   
+ at Target(ElementType.TYPE)
+ at Retention(RetentionPolicy.RUNTIME)
+ at Documented
+ at WebServiceFeatureAnnotation(id=MTOMFeature.ID,bean=MTOMFeature.class)
+public @interface MTOM {
+    /**
+     * Specifies if this feature is enabled or disabled.
+     */
+    boolean enabled() default true; 
+     
+    /**
+     * Property for MTOM threshold value. When MTOM is enabled, binary data above this 
+     * size in bytes will be XOP encoded or sent as attachment. The value of this property 
+     * MUST always be >= 0. Default value is 0.      
+     */         
+    int threshold() default 0;
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/soap/MTOM.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/soap/MTOMFeature.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/soap/MTOMFeature.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/soap/MTOMFeature.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,129 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.soap;
+
+// $Id$
+
+import javax.xml.ws.WebServiceException;
+import javax.xml.ws.WebServiceFeature;
+
+
+/**
+ * This feature represents the use of MTOM with a 
+ * web service.
+ *
+ * <p>
+ * The following describes the affects of this feature with respect
+ * to being enabled or disabled:
+ * <ul>
+ *  <li> ENABLED: In this Mode, MTOM will be enabled.
+ *  <li> DISABLED: In this Mode, MTOM will be disabled
+ * </ul>
+ * <p>
+ * The {@link #threshold} property can be used to set the threshold 
+ * value used to determine when binary data should be XOP encoded.
+ *
+ * @since JAX-WS 2.1
+ */       
+public final class MTOMFeature extends WebServiceFeature {
+    /** 
+     * Constant value identifying the MTOMFeature
+     */
+    public static final String ID = "http://www.w3.org/2004/08/soap/features/http-optimization";
+  
+   
+    /**
+     * Property for MTOM threshold value. This property serves as a hint when 
+     * MTOM is enabled, binary data above this size in bytes SHOULD be sent 
+     * as attachment.
+     * The value of this property MUST always be >= 0. Default value is 0.      
+     */
+    protected int threshold = 0;
+    
+
+    /**
+     * Create an <code>MTOMFeature</code>.
+     * The instance created will be enabled.
+     */
+    public MTOMFeature() {
+        this.enabled = true;
+    }    
+    
+    /**
+     * Creates an <code>MTOMFeature</code>.
+     * 
+     * @param enabled specifies if this feature should be enabled or not
+     */
+    public MTOMFeature(boolean enabled) {
+        this.enabled = enabled;
+    }
+
+
+    /**
+     * Creates an <code>MTOMFeature</code>.
+     * The instance created will be enabled.
+     *
+     * @param threshold the size in bytes that binary data SHOULD be before
+     * being sent as an attachment.
+     *
+     * @throws WebServiceException if threshold is < 0
+     */
+    public MTOMFeature(int threshold) {
+        if (threshold < 0)
+            throw new WebServiceException("MTOMFeature.threshold must be >= 0, actual value: "+threshold);
+        this.enabled = true;
+        this.threshold = threshold;
+    }    
+    
+    /**
+     * Creates an <code>MTOMFeature</code>.
+     * 
+     * @param enabled specifies if this feature should be enabled or not
+     * @param threshold the size in bytes that binary data SHOULD be before
+     * being sent as an attachment.
+     *
+     * @throws WebServiceException if threshold is < 0
+     */
+    public MTOMFeature(boolean enabled, int threshold) {
+        if (threshold < 0)
+            throw new WebServiceException("MTOMFeature.threshold must be >= 0, actual value: "+threshold);
+        this.enabled = enabled;
+        this.threshold = threshold;
+    }    
+    
+    /**
+     * {@inheritDoc}
+     */
+    public String getID() {
+        return ID;
+    }
+    
+    /**
+     * Gets the threshold value used to determine when binary data 
+     * should be sent as an attachment.
+     *
+     * @return the current threshold size in bytes
+     */
+    public int getThreshold() {
+        return threshold;
+    }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/soap/MTOMFeature.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/soap/SOAPBinding.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/soap/SOAPBinding.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/soap/SOAPBinding.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,108 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.soap;
+
+// $Id$
+
+import java.util.Set;
+
+import javax.xml.soap.MessageFactory;
+import javax.xml.soap.SOAPFactory;
+import javax.xml.ws.Binding;
+import javax.xml.ws.WebServiceException;
+
+/** The <code>SOAPBinding</code> interface is an abstraction for
+ *  the SOAP binding.
+ * 
+ *  @since JAX-WS 2.0
+ **/
+public interface SOAPBinding extends Binding
+{
+   /**
+    * A constant representing the identity of the SOAP 1.1 over HTTP binding.
+    */
+   public static final String SOAP11HTTP_BINDING = "http://schemas.xmlsoap.org/wsdl/soap/http";
+
+   /**
+    * A constant representing the identity of the SOAP 1.2 over HTTP binding.
+    */
+   public static final String SOAP12HTTP_BINDING = "http://www.w3.org/2003/05/soap/bindings/HTTP/";
+
+   /**
+    * A constant representing the identity of the SOAP 1.1 over HTTP binding
+    * with MTOM enabled by default.
+    */
+   public static final String SOAP11HTTP_MTOM_BINDING = "http://schemas.xmlsoap.org/wsdl/soap/http?mtom=true";
+
+   /**
+    * A constant representing the identity of the SOAP 1.2 over HTTP binding
+    * with MTOM enabled by default.
+    */
+   public static final String SOAP12HTTP_MTOM_BINDING = "http://www.w3.org/2003/05/soap/bindings/HTTP/?mtom=true";
+
+   /** Gets the roles played by the SOAP binding instance.
+    *
+    *  @return Set<String> The set of roles played by the binding instance.
+    **/
+   public Set<String> getRoles();
+
+   /** Sets the roles played by the SOAP binding instance.
+    *
+    *  @param roles    The set of roles played by the binding instance.
+    *  @throws WebServiceException On an error in the configuration of
+    *                  the list of roles.
+    **/
+   public void setRoles(Set<String> roles);
+
+   /**
+    * Returns <code>true</code> if the use of MTOM is enabled.
+    *
+    * @return <code>true</code> if and only if the use of MTOM is enabled.
+    **/
+
+   public boolean isMTOMEnabled();
+
+   /**
+    * Enables or disables use of MTOM.
+    *
+    * @param flag   A <code>boolean</code> specifying whether the use of MTOM should
+    *               be enabled or disabled.
+    *  @throws WebServiceException If the specified setting is not supported
+    *                  by this binding instance.
+    *   *
+    **/
+   public void setMTOMEnabled(boolean flag);
+
+   /**
+    * Gets the SAAJ <code>SOAPFactory</code> instance used by this SOAP binding.
+    *
+    * @return SOAPFactory instance used by this SOAP binding.
+    **/
+   public SOAPFactory getSOAPFactory();
+
+   /**
+    * Gets the SAAJ <code>MessageFactory</code> instance used by this SOAP binding.
+    *
+    * @return MessageFactory instance used by this SOAP binding.
+    **/
+   public MessageFactory getMessageFactory();
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/soap/SOAPBinding.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/soap/SOAPFaultException.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/soap/SOAPFaultException.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/soap/SOAPFaultException.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,91 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.soap;
+
+// $Id$
+
+import javax.xml.soap.SOAPFault;
+
+/** The <code>SOAPFaultException</code> exception represents a
+ *  SOAP 1.1 or 1.2 fault.
+ *
+ *  <p>A <code>SOAPFaultException</code> wraps a SAAJ <code>SOAPFault</code>
+ *  that manages the SOAP-specific representation of faults.
+ *  The <code>createFault</code> method of
+ *  <code>javax.xml.soap.SOAPFactory</code> may be used to create an instance
+ *  of <code>javax.xml.soap.SOAPFault</code> for use with the
+ *  constructor. <code>SOAPBinding</code> contains an accessor for the
+ *  <code>SOAPFactory</code> used by the binding instance.
+ *
+ *  <p>Note that the value of <code>getFault</code> is the only part of the
+ *  exception used when searializing a SOAP fault.
+ *
+ *  <p>Refer to the SOAP specification for a complete
+ *  description of SOAP faults.
+ *
+ *  @see javax.xml.soap.SOAPFault
+ *  @see javax.xml.ws.soap.SOAPBinding#getSOAPFactory
+ *  @see javax.xml.ws.ProtocolException
+ *
+ *  @since JAX-WS 2.0
+ **/
+public class SOAPFaultException extends javax.xml.ws.ProtocolException
+{
+
+   private SOAPFault fault;
+
+   /** Constructor for SOAPFaultException
+    *  @param fault   <code>SOAPFault</code> representing the fault
+    *
+    *  @see javax.xml.soap.SOAPFactory#createFault
+    **/
+   public SOAPFaultException(SOAPFault fault)
+   {
+      super(fault.getFaultString());
+      this.fault = fault;
+   }
+
+   public SOAPFaultException(String message)
+   {
+      super(message);
+   }
+
+   public SOAPFaultException(String message, Exception ex)
+   {
+      super(message, ex);
+   }
+
+   public SOAPFaultException(Exception ex)
+   {
+      super(ex);
+   }
+
+   /** Gets the embedded <code>SOAPFault</code> instance.
+    *
+    *  @return <code>javax.xml.soap.SOAPFault</code> SOAP
+    *          fault element
+    **/
+   public javax.xml.soap.SOAPFault getFault()
+   {
+      return this.fault;
+   }
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/soap/SOAPFaultException.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/spi/Provider.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/spi/Provider.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/spi/Provider.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,301 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.spi;
+
+// $Id$
+
+import java.util.List;
+
+import javax.xml.namespace.QName;
+import javax.xml.soap.FactoryLoader;
+import javax.xml.transform.Source;
+import javax.xml.ws.Endpoint;
+import javax.xml.ws.EndpointReference;
+import javax.xml.ws.WebServiceException;
+import javax.xml.ws.WebServiceFeature;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+
+import org.w3c.dom.Element;
+
+/**
+ * Service provider for ServiceDelegate and Endpoint objects.
+ *  
+ * @author Thomas.Diesler at jboss.com
+ * @since 03-May-2006
+ */
+public abstract class Provider
+{
+   public static final String JAXWSPROVIDER_PROPERTY = "javax.xml.ws.spi.Provider";
+   private static final String DEFAULT_JAXWSPROVIDER = "org.jboss.ws.core.jaxws.spi.ProviderImpl";
+
+   /**
+    * Creates a new instance of Provider
+    */
+   protected Provider()
+   {
+   }
+
+   /**
+    *
+    * Creates a new provider object.
+    * <p>
+    * The algorithm used to locate the provider subclass to use consists
+    * of the following steps:
+    * <p>
+    * <ul>
+    * <li>
+    *   If a resource with the name of
+    *   <code>META-INF/services/javax.xml.ws.spi.Provider</code>
+    *   exists, then its first line, if present, is used as the UTF-8 encoded
+    *   name of the implementation class.
+    * </li>
+    * <li>
+    *   If the $java.home/lib/jaxws.properties file exists and it is readable by
+    *   the <code>java.util.Properties.load(InputStream)</code> method and it contains
+    *   an entry whose key is <code>javax.xml.ws.spi.Provider</code>, then the value of
+    *   that entry is used as the name of the implementation class.
+    * </li>
+    * <li>
+    *   If a system property with the name <code>javax.xml.ws.spi.Provider</code>
+    *   is defined, then its value is used as the name of the implementation class.
+    * </li>
+    * <li>
+    *   Finally, a default implementation class name is used.
+    * </li>
+    * </ul>
+    *
+    */
+   public static Provider provider()
+   {
+      try
+      {
+         return (Provider)FactoryLoader.loadFactory(JAXWSPROVIDER_PROPERTY, DEFAULT_JAXWSPROVIDER);
+      }
+      catch (WebServiceException ex)
+      {
+         throw ex;
+      }
+      catch (Exception ex)
+      {
+         throw new WebServiceException("Unable to createEndpointReference Provider: " + ex.getMessage());
+      }
+
+   }
+
+   /**
+    * Creates a service delegate object.
+    * <p>
+    * @param wsdlDocumentLocation A URL pointing to the WSDL document
+    *        for the service, or <code>null</code> if there isn't one.
+    * @param serviceName The qualified name of the service.
+    * @param serviceClass The service class, which MUST be either
+    *        <code>javax.xml.ws.Service</code> or a subclass thereof.
+    * @return The newly created service delegate.
+    */
+   public abstract ServiceDelegate createServiceDelegate(java.net.URL wsdlDocumentLocation, QName serviceName, Class serviceClass);
+
+   /**
+    *
+    * Creates an endpoint object with the provided binding and implementation
+    * object.
+    *
+    * @param bindingId A URI specifying the desired binding (e.g. SOAP/HTTP)
+    * @param implementor A service implementation object to which
+    *        incoming requests will be dispatched. The corresponding
+    *        class MUST be annotated with all the necessary Web service
+    *        annotations.
+    * @return The newly created endpoint.
+    */
+   public abstract Endpoint createEndpoint(String bindingId, Object implementor);
+
+   /**
+    * Creates and publishes an endpoint object with the specified
+    * address and implementation object.
+    *
+    * @param address A URI specifying the address and transport/protocol
+    *        to use. A http: URI MUST result in the SOAP 1.1/HTTP
+    *        binding being used. Implementations may support other
+    *        URI schemes.
+    * @param implementor A service implementation object to which
+    *        incoming requests will be dispatched. The corresponding
+    *        class MUST be annotated with all the necessary Web service
+    *        annotations.
+    * @return The newly created endpoint.
+    */
+   public abstract Endpoint createAndPublishEndpoint(String address, Object implementor);
+
+   /**
+    * read an EndpointReference from the infoset contained in
+    * <code>eprInfoset</code>.
+    *
+    * @returns the <code>EndpointReference</code> unmarshalled from
+    * <code>eprInfoset</code>.  This method never returns <code>null</code>.
+    *
+    * @throws WebServiceException If there is an error creating the
+    * <code>EndpointReference</code> from the specified <code>eprInfoset</code>.
+    *
+    * @throws NullPointerException If the <code>null</code>
+    * <code>eprInfoset</code> value is given.
+    *
+    * @since JAX-WS 2.1
+    **/
+   public abstract EndpointReference readEndpointReference(javax.xml.transform.Source eprInfoset);
+
+   /**
+    * Create an EndpointReference for <code>serviceName</code>
+    * service and <code>portName</code> port from the WSDL <code>wsdlDocumentLocation</code>. The instance
+    * returned will be of type <code>clazz</code> and contain the <code>referenceParameters</code>
+    * reference parameters. This method delegates to the vendor specific
+    * implementation of the {@link javax.xml.ws.spi.Provider#createEndpointReference(Class<T>, javax.xml.namespace.QName, javax.xml.namespace.QName, javax.xml.transform.Source, org.w3c.dom.Element...)} method.
+    *
+    * @param clazz Specifies the type of <code>EndpointReference</code> that MUST be returned.
+    * @param serviceName Qualified name of the service in the WSDL.
+    * @param portName Qualified name of the endpoint in the WSDL.
+    * @param wsdlDocumentLocation URL for the WSDL document location for the service.
+    * @param referenceParameters Reference parameters to be associated with the
+    * returned <code>EndpointReference</code> instance.
+    *
+    * @return the EndpointReference created from <code>serviceName</code>, <code>portName</code>,
+    *          <code>wsdlDocumentLocation</code> and <code>referenceParameters</code>. This method
+    *          never returns <code>null</code>.
+    * @throws WebServiceException
+    *         <UL>
+    *             <li>If the <code>serviceName</code> service is not present in the WSDL.
+    *             <li>If the <code>portName</code> port is not present in <code>serviceName</code> service in the WSDL.
+    *             <li>If the <code>wsdlDocumentLocation</code> does not represent a valid WSDL.
+    *             <li>If an error occurs while creating the <code>EndpointReference</code>.
+    *             <li>If the Class <code>clazz</code> is not supported by this implementation.
+    *         </UL>
+    * @throws java.lang.IllegalArgumentException
+    *     if any of the <code>clazz</code>, <code>serviceName</code>, <code>portName</code> and <code>wsdlDocumentLocation</code> is null.
+    */
+   public abstract <T extends EndpointReference> T createEndpointReference(Class<T> clazz, QName serviceName, QName portName, Source wsdlDocumentLocation,
+         Element... referenceParameters);
+
+   /**
+    * The getPort method returns a proxy.  If there
+    * are any reference parameters in the
+    * <code>endpointReference</code>, then those reference
+    * parameters MUST appear as SOAP headers, indicating them to be
+    * reference parameters, on all messages sent to the endpoint.
+    * The parameter  <code>serviceEndpointInterface</code> specifies
+    * the service endpoint interface that is supported by the
+    * returned proxy.
+    * The parameter <code>endpointReference</code> specifies the
+    * endpoint that will be invoked by the returned proxy.
+    * In the implementation of this method, the JAX-WS
+    * runtime system takes the responsibility of selecting a protocol
+    * binding (and a port) and configuring the proxy accordingly from
+    * the WSDL Metadata from the <code>EndpointReference</code>.
+    *
+    *
+    * @param endpointReference the EndpointReference that will
+    * be invoked by the returned proxy.
+    * @param serviceEndpointInterface Service endpoint interface
+    * @param features  A list of WebServiceFeatures to configure on the
+    *                proxy.  Supported features not in the <code>features
+    *                </code> parameter will have their default values.
+    * @return Object Proxy instance that supports the
+    *                  specified service endpoint interface
+    * @throws WebServiceException
+    *                  <UL>
+    *                  <LI>If there is an error during creation
+    *                      of the proxy
+    *                  <LI>If there is any missing WSDL metadata
+    *                      as required by this method
+    *                  <LI>If this
+    *                      <code>endpointReference</code>
+    *                      is illegal
+    *                  <LI>If an illegal
+    *                      <code>serviceEndpointInterface</code>
+    *                      is specified
+    *                  <LI>If feature is enabled that is not compatible with
+    *                      this port or is unsupported.
+    *                   </UL>
+    *
+    * @see WebServiceFeature
+    *
+    * @since JAX-WS 2.1
+    **/
+   public abstract <T> T getPort(EndpointReference endpointReference, Class<T> serviceEndpointInterface, WebServiceFeature... features);
+
+   /**
+    * Factory method to create a <code>W3CEndpointReference</code>.
+    *
+    * <p>
+    * This method can be used to create a <code>W3CEndpointReference</code>
+    * for any endpoint by specifying the <code>address</code> property along
+    * with any other desired properties.  This method
+    * can also be used to create a <code>W3CEndpointReference</code> for
+    * an endpoint that is published by the same Java EE application.
+    * To do so the <code>address</code> property can be provided or this
+    * method can automatically determine the <code>address</code> of 
+    * an endpoint that is published by the same Java EE application and is
+    * identified by the <code>serviceName</code> and 
+    * <code>portName</code> propeties.  If the <code>address</code> is 
+    * <code>null</code> and the <code>serviceName</code> and 
+    * <code>portName</code> do not identify an endpoint published by the 
+    * same Java EE application, a
+    * <code>javax.lang.IllegalArgumentException</code> MUST be thrown.
+    *
+    * @param address Specifies the address of the target endpoint
+    * @param serviceName Qualified name of the service in the WSDL.
+    * @param portName Qualified name of the endpoint in the WSDL.
+    * @param metadata A list of elements that should be added to the 
+    * <code>W3CEndpointReference</code> instances <code>wsa:metadata</code> 
+    * element.
+    * @param wsdlDocumentLocation URL for the WSDL document location for 
+    * the service.  
+    * @param referenceParameters Reference parameters to be associated 
+    * with the returned <code>EndpointReference</code> instance.
+    *
+    * @return the <code>W3CEndpointReference<code> created from 
+    *          <code>serviceName</code>, <code>portName</code>,
+    *          <code>metadata</code>, <code>wsdlDocumentLocation</code> 
+    *          and <code>referenceParameters</code>. This method
+    *          never returns <code>null</code>.
+    *
+    * @throws javax.lang.IllegalArgumentException
+    *     <ul>
+    *        <li>If the <code>address</code>, <code>serviceName</code> and
+    *            <code>portName</code> are all <code>null</code>.
+    *        <li>If the <code>serviceName</code> service is <code>null</code> and the
+    *            <code>portName> is NOT <code>null</code>.
+    *        <li>If the <code>address</code> property is <code>null</code> and
+    *            the <code>serviceName</code> and <code>portName</code> do not
+    *            specify a valid endpoint published by the same Java EE
+    *            application.
+    *        <li>If the <code>serviceName</code>is NOT <code>null</code>
+    *             and is not present in the specified WSDL.
+    *        <li>If the <code>portName</code> port is not <code>null<code> and it
+    *             is not present in <code>serviceName</code> service in the WSDL.
+    *        <li>If the <code>wsdlDocumentLocation</code> is NOT <code>null</code>
+    *            and does not represent a valid WSDL.
+    *     </ul>
+    * @throws WebServiceException If an error occurs while creating the 
+    *                             <code>W3CEndpointReference</code>.
+    *
+    * @since JAX-WS 2.1
+    */
+   public abstract W3CEndpointReference createW3CEndpointReference(String address, QName serviceName, QName portName, List<Element> metadata,
+         String wsdlDocumentLocation, List<Element> referenceParameters);
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/spi/Provider.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/spi/ServiceDelegate.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/spi/ServiceDelegate.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/spi/ServiceDelegate.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,641 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.spi;
+
+// $Id$
+
+import java.util.Iterator;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.namespace.QName;
+import javax.xml.rpc.ServiceException;
+import javax.xml.ws.Dispatch;
+import javax.xml.ws.EndpointReference;
+import javax.xml.ws.Service;
+import javax.xml.ws.WebServiceException;
+import javax.xml.ws.WebServiceFeature;
+import javax.xml.ws.handler.HandlerResolver;
+
+/**
+ * Service delegates are used internally by <code>Service</code> objects
+ * to allow pluggability of JAX-WS implementations.
+ * <p>
+ * Every <code>Service</code> object has its own delegate, created using
+ * the javax.xml.ws.Provider#createServiceDelegate method. A <code>Service</code>
+ * object delegates all of its instance methods to its delegate.
+ *
+ * @see javax.xml.ws.Service
+ * @see javax.xml.ws.spi.Provider
+ *
+ * @since JAX-WS 2.0
+ */
+public abstract class ServiceDelegate {
+    
+    protected ServiceDelegate() {
+    }
+    
+    /** 
+     * The getPort method returns a proxy. A service client
+     * uses this proxy to invoke operations on the target
+     * service endpoint. The <code>serviceEndpointInterface</code>
+     * specifies the service endpoint interface that is supported by
+     * the created dynamic proxy instance.
+     *
+     * @param portName  Qualified name of the service endpoint in
+     *                  the WSDL service description
+     * @param serviceEndpointInterface Service endpoint interface
+     *                  supported by the dynamic proxy
+     * @return Object Proxy instance that
+     *                supports the specified service endpoint
+     *                interface
+     * @throws WebServiceException This exception is thrown in the
+     *                  following cases:
+     *                  <UL>
+     *                  <LI>If there is an error in creation of
+     *                      the proxy
+     *                  <LI>If there is any missing WSDL metadata
+     *                      as required by this method
+     *                  <LI>If an illegal
+     *                      <code>serviceEndpointInterface</code>
+     *                      or <code>portName</code> is specified
+     *                  </UL>
+     * @see java.lang.reflect.Proxy
+     * @see java.lang.reflect.InvocationHandler
+     **/
+    public abstract <T> T getPort(QName portName,
+            Class<T> serviceEndpointInterface);
+    
+    /** 
+     * The getPort method returns a proxy. A service client
+     * uses this proxy to invoke operations on the target
+     * service endpoint. The <code>serviceEndpointInterface</code>
+     * specifies the service endpoint interface that is supported by
+     * the created dynamic proxy instance.
+     *
+     * @param portName  Qualified name of the service endpoint in
+     *                  the WSDL service description
+     * @param serviceEndpointInterface Service endpoint interface
+     *                  supported by the dynamic proxy or instance
+     * @param features  A list of WebServiceFeatures to configure on the 
+     *                proxy.  Supported features not in the <code>features
+     *                </code> parameter will have their default values.
+     * @return Object Proxy instance that
+     *                supports the specified service endpoint
+     *                interface
+     * @throws WebServiceException This exception is thrown in the
+     *                  following cases:
+     *                  <UL>
+     *                  <LI>If there is an error in creation of
+     *                      the proxy
+     *                  <LI>If there is any missing WSDL metadata
+     *                      as required by this method
+     *                  <LI>If an illegal
+     *                      <code>serviceEndpointInterface</code>
+     *                      or <code>portName</code> is specified
+     *                  <LI>If a feature is enabled that is not compatible
+     *                      with this port or is unsupported.
+     *                  </UL>
+     * @see java.lang.reflect.Proxy
+     * @see java.lang.reflect.InvocationHandler
+     * @see WebServiceFeature
+     * 
+     * @since JAX-WS 2.1
+     **/
+    public abstract <T> T getPort(QName portName,
+            Class<T> serviceEndpointInterface, WebServiceFeature... features);    
+    
+    /** 
+     * The getPort method returns a proxy.
+     * The parameter <code>endpointReference</code> specifies the
+     * endpoint that will be invoked by the returned proxy.  If there
+     * are any reference parameters in the 
+     * <code>endpointReference</code>, then those reference
+     * parameters MUST appear as SOAP headers, indicating them to be
+     * reference parameters, on all messages sent to the endpoint.
+     * The <code>endpointReference's</code> address MUST be used
+     * for invocations on the endpoint.
+     * The parameter <code>serviceEndpointInterface</code> specifies
+     * the service endpoint interface that is supported by the 
+     * returned proxy.
+     * In the implementation of this method, the JAX-WS
+     * runtime system takes the responsibility of selecting a protocol
+     * binding (and a port) and configuring the proxy accordingly from
+     * the WSDL associated with this <code>Service</code> instance or
+     * from the WSDL Metadata from the <code>endpointReference</code>.
+     * If this <code>Service</code> instance has a WSDL and 
+     * the <code>endpointReference</code>
+     * also has a WSDL, then the WSDL from this instance will be used.
+     * If this <code>Service</code> instance does not have a WSDL and
+     * the <code>endpointReference</code> does have a WSDL, then the 
+     * WSDL from the <code>endpointReference</code> will be used.
+     * The returned proxy should not be reconfigured by the client.
+     * If this <code>Service</code> instance has a known proxy 
+     * port that matches the information contained in 
+     * the WSDL,
+     * then that proxy is returned, otherwise a WebServiceException
+     * is thrown.
+     * <p>
+     * Calling this method has the same behavior as the following
+     * <pre>
+     * port = service.getPort(portName, serviceEndpointInterface);
+     * </pre>
+     * where the <code>portName</code> is retrieved from the 
+     * <code>wsaw:EndpontName</code> attribute of the
+     * <code>wsaw:ServiceName</code> element in the 
+     * metadata of the <code>endpointReference</code> or from the 
+     * <code>serviceEndpointInterface</code> and the WSDL
+     * associated with this <code>Service</code> instance.
+     * <br>
+     * See <a href="http://www.w3.org/TR/2006/CR-ws-addr-wsdl-20060529/">WS-Addressing - WSDL 1.0
+     * </a>.
+     *
+     * @param endpointReference  The <code>EndpointReference</code>
+     * for the target service endpoint that will be invoked by the
+     * returned proxy.
+     * @param serviceEndpointInterface Service endpoint interface.
+     * @param features  A list of WebServiceFeatures to configure on the 
+     *                proxy.  Supported features not in the <code>features
+     *                </code> parameter will have their default values.
+     * @return Object Proxy instance that supports the
+     *                  specified service endpoint interface.
+     * @throws WebServiceException
+     *                  <UL>
+     *                  <LI>If there is an error during creation
+     *                      of the proxy.
+     *                  <LI>If there is any missing WSDL metadata
+     *                      as required by this method.
+     *                  <LI>If the <code>wsaw:EndpointName</code> is
+     *                      missing from the <code>endpointReference</code>
+     *                      or does not match a wsdl:Port
+     *                      in the WSDL metadata.
+     *                  <LI>If the <code>wsaw:ServiceName</code> in the
+     *                      <code>endpointReference</code> metadata does not
+     *                      match the <code>serviceName</code> of this
+     *                      <code>Service</code> instance.
+     *                  <LI>If an invalid
+     *                      <code>endpointReference</code>
+     *                      is specified.
+     *                  <LI>If an invalid
+     *                      <code>serviceEndpointInterface</code>
+     *                      is specified.
+     *                  <LI>If a feature is enabled that is not compatible
+     *                      with this port or is unsupported.
+     *                  </UL>
+     *
+     *  @since JAX-WS 2.1
+     **/
+    public abstract <T> T getPort(EndpointReference endpointReference,
+           Class<T> serviceEndpointInterface, WebServiceFeature... features);
+
+    
+    /** 
+     * The getPort method returns a proxy. The parameter
+     * <code>serviceEndpointInterface</code> specifies the service
+     * endpoint interface that is supported by the returned proxy.
+     * In the implementation of this method, the JAX-WS
+     * runtime system takes the responsibility of selecting a protocol
+     * binding (and a port) and configuring the proxy accordingly.
+     * The returned proxy should not be reconfigured by the client.
+     *
+     * @param serviceEndpointInterface Service endpoint interface
+     * @return Object instance that supports the
+     *                  specified service endpoint interface
+     * @throws WebServiceException
+     *                  <UL>
+     *                  <LI>If there is an error during creation
+     *                      of the proxy
+     *                  <LI>If there is any missing WSDL metadata
+     *                      as required by this method
+     *                  <LI>If an illegal
+     *                      <code>serviceEndpointInterface</code>
+     *                      is specified
+     *                  </UL>
+     **/
+    public abstract <T> T getPort(Class<T> serviceEndpointInterface);
+
+    
+    /**
+     * The getPort method returns a proxy. The parameter
+     * <code>serviceEndpointInterface</code> specifies the service
+     * endpoint interface that is supported by the returned proxy.
+     * In the implementation of this method, the JAX-WS
+     * runtime system takes the responsibility of selecting a protocol
+     * binding (and a port) and configuring the proxy accordingly.
+     * The returned proxy should not be reconfigured by the client.
+     *
+     * @param serviceEndpointInterface Service endpoint interface
+     * @param features  An array of WebServiceFeatures to configure on the 
+     *                proxy.  Supported features not in the <code>features
+     *                </code> parameter will have their default values.
+     * @return Object instance that supports the
+     *                  specified service endpoint interface
+     * @throws WebServiceException
+     *                  <UL>
+     *                  <LI>If there is an error during creation
+     *                      of the proxy
+     *                  <LI>If there is any missing WSDL metadata
+     *                      as required by this method
+     *                  <LI>If an illegal
+     *                      <code>serviceEndpointInterface</code>
+     *                      is specified
+     *                  <LI>If a feature is enabled that is not compatible
+     *                      with this port or is unsupported.
+     *                  </UL>
+     *
+     * @see WebServiceFeature
+     *
+     * @since JAX-WS 2.1
+     **/
+    public abstract <T> T getPort(Class<T> serviceEndpointInterface, 
+            WebServiceFeature... features);
+
+    
+    
+    /** 
+     * Creates a new port for the service. Ports created in this way contain
+     * no WSDL port type information and can only be used for creating
+     * <code>Dispatch</code>instances.
+     *
+     * @param portName  Qualified name for the target service endpoint
+     * @param bindingId A URI identifier of a binding.
+     * @param endpointAddress Address of the target service endpoint as a URI
+     * @throws WebServiceException If any error in the creation of
+     * the port
+     *
+     * @see javax.xml.ws.soap.SOAPBinding#SOAP11HTTP_BINDING
+     * @see javax.xml.ws.soap.SOAPBinding#SOAP12HTTP_BINDING
+     * @see javax.xml.ws.http.HTTPBinding#HTTP_BINDING
+     **/
+    public abstract void addPort(QName portName, String bindingId,
+            String endpointAddress);
+    
+   
+    
+    /** 
+     * Creates a <code>Dispatch</code> instance for use with objects of
+     * the users choosing.
+     *
+     * @param portName  Qualified name for the target service endpoint
+     * @param type The class of object used for messages or message
+     * payloads. Implementations are required to support
+     * javax.xml.transform.Source and javax.xml.soap.SOAPMessage.
+     * @param mode Controls whether the created dispatch instance is message
+     * or payload oriented, i.e. whether the user will work with complete
+     * protocol messages or message payloads. E.g. when using the SOAP
+     * protocol, this parameter controls whether the user will work with
+     * SOAP messages or the contents of a SOAP body. Mode MUST be MESSAGE
+     * when type is SOAPMessage.
+     *
+     * @return Dispatch instance
+     * @throws WebServiceException If any error in the creation of
+     *                  the <code>Dispatch</code> object
+     * @see javax.xml.transform.Source
+     * @see javax.xml.soap.SOAPMessage
+     **/
+    public abstract <T> Dispatch<T> createDispatch(QName portName, Class<T> type, 
+            Service.Mode mode);
+    
+    /** 
+     * Creates a <code>Dispatch</code> instance for use with objects of
+     * the users choosing.
+     *
+     * @param portName  Qualified name for the target service endpoint
+     * @param type The class of object used for messages or message
+     * payloads. Implementations are required to support
+     * javax.xml.transform.Source and javax.xml.soap.SOAPMessage.
+     * @param mode Controls whether the created dispatch instance is message
+     * or payload oriented, i.e. whether the user will work with complete
+     * protocol messages or message payloads. E.g. when using the SOAP
+     * protocol, this parameter controls whether the user will work with
+     * SOAP messages or the contents of a SOAP body. Mode MUST be MESSAGE
+     * when type is SOAPMessage.
+     * @param features  A list of WebServiceFeatures to configure on the 
+     *                proxy.  Supported features not in the <code>features
+     *                </code> parameter will have their default values.
+     *
+     * @return Dispatch instance
+     * @throws WebServiceException If any error in the creation of
+     *                  the <code>Dispatch</code> object or if a 
+     *                  feature is enabled that is not compatible with 
+     *                  this port or is unsupported.
+     *
+     * @see javax.xml.transform.Source
+     * @see javax.xml.soap.SOAPMessage
+     * @see WebServiceFeature
+     *
+     * @since JAX-WS 2.1
+     **/
+    public abstract <T> Dispatch<T> createDispatch(QName portName, Class<T> type, 
+            Service.Mode mode, WebServiceFeature... features);    
+    
+    
+    /** 
+     * Creates a <code>Dispatch</code> instance for use with objects of
+     * the users choosing. If there
+     * are any reference parameters in the 
+     * <code>endpointReference</code>, then those reference
+     * parameters MUST appear as SOAP headers, indicating them to be
+     * reference parameters, on all messages sent to the endpoint.
+     * The <code>endpointReference's</code> address MUST be used
+     * for invocations on the endpoint.
+     * In the implementation of this method, the JAX-WS
+     * runtime system takes the responsibility of selecting a protocol
+     * binding (and a port) and configuring the dispatch accordingly from
+     * the WSDL associated with this <code>Service</code> instance or
+     * from the WSDL Metadata from the <code>endpointReference</code>.
+     * If this <code>Service</code> instance has a WSDL and 
+     * the <code>endpointReference</code>
+     * also has a WSDL, then the WSDL from this instance will be used.
+     * If this <code>Service</code> instance does not have a WSDL and
+     * the <code>endpointReference</code> does have a WSDL, then the 
+     * WSDL from the <code>endpointReference</code> will be used.     
+     * <p>
+     * This method behaves the same as calling
+     * <pre>
+     * dispatch = service.createDispatch(portName, type, mode, features);
+     * </pre>
+     * where the <code>portName</code> is retrieved from the 
+     * <code>wsaw:EndpointName</code> attribute of the <code>wsaw:ServiceName</code>
+     * element in the 
+     * metadata of the <code>endpointReference</code>.
+     * <br>
+     * See <a href="http://www.w3.org/TR/2006/CR-ws-addr-wsdl-20060529/">WS-Addressing - WSDL 1.0
+     * </a>.
+     *
+     * @param endpointReference  The <code>EndpointReference</code>
+     * for the target service endpoint that will be invoked by the
+     * returned <code>Dispatch</code> object.
+     * @param type The class of object used to messages or message
+     * payloads. Implementations are required to support
+     * javax.xml.transform.Source and javax.xml.soap.SOAPMessage.
+     * @param mode Controls whether the created dispatch instance is message
+     * or payload oriented, i.e. whether the user will work with complete
+     * protocol messages or message payloads. E.g. when using the SOAP
+     * protocol, this parameter controls whether the user will work with
+     * SOAP messages or the contents of a SOAP body. Mode MUST be MESSAGE
+     * when type is SOAPMessage.
+     * @param features  An array of WebServiceFeatures to configure on the 
+     *                proxy.  Supported features not in the <code>features
+     *                </code> parameter will have their default values.
+     *
+     * @return Dispatch instance
+     * @throws WebServiceException 
+     *                  <UL>
+     *                    <LI>If there is any missing WSDL metadata
+     *                      as required by this method.
+     *                    <li>If the <code>wsaw:ServiceName</code> element 
+     *                    or the <code>wsaw:EndpointName</code> attribute
+     *                    is missing in the metdata of the 
+     *                    <code>endpointReference</code>.
+     *                    <li>If the <code>wsaw:ServiceName</code> does not
+     *                    match the <code>serviceName</code> of this instance.
+     *                    <li>If the <code>wsaw:EndpointName</code> does not
+     *                    match a valid wsdl:Port in the WSDL metadata.
+     *                    <li>If any error in the creation of
+     *                     the <code>Dispatch</code> object.
+     *                    <li>if a feature is enabled that is not 
+     *                    compatible with this port or is unsupported.
+     *                  </UL>
+     *
+     * @see javax.xml.transform.Source
+     * @see javax.xml.soap.SOAPMessage
+     * @see WebServiceFeature;
+     *
+     * @since JAX-WS 2.1
+     **/
+    public abstract <T> Dispatch<T> createDispatch(EndpointReference endpointReference,
+            Class<T> type, Service.Mode mode, 
+            WebServiceFeature... features);    
+
+
+    
+    /** 
+     * Creates a <code>Dispatch</code> instance for use with JAXB
+     * generated objects.
+     *
+     * @param portName  Qualified name for the target service endpoint
+     * @param context The JAXB context used to marshall and unmarshall
+     * messages or message payloads.
+     * @param mode Controls whether the created dispatch instance is message
+     * or payload oriented, i.e. whether the user will work with complete
+     * protocol messages or message payloads. E.g. when using the SOAP
+     * protocol, this parameter controls whether the user will work with
+     * SOAP messages or the contents of a SOAP body.
+     *
+     * @return Dispatch instance
+     * @throws ServiceException If any error in the creation of
+     *                  the <code>Dispatch</code> object
+     *
+     * @see javax.xml.bind.JAXBContext
+     **/
+    public abstract Dispatch<Object> createDispatch(QName portName,
+            JAXBContext context, Service.Mode mode);
+    
+
+    /** 
+     * Creates a <code>Dispatch</code> instance for use with JAXB
+     * generated objects.
+     *
+     * @param portName  Qualified name for the target service endpoint
+     * @param context The JAXB context used to marshall and unmarshall
+     * messages or message payloads.
+     * @param mode Controls whether the created dispatch instance is message
+     * or payload oriented, i.e. whether the user will work with complete
+     * protocol messages or message payloads. E.g. when using the SOAP
+     * protocol, this parameter controls whether the user will work with
+     * SOAP messages or the contents of a SOAP body.
+     * @param features  A list of WebServiceFeatures to configure on the 
+     *                proxy.  Supported features not in the <code>features
+     *                </code> parameter will have their default values.
+     *
+     * @return Dispatch instance
+     * @throws WebServiceException If any error in the creation of
+     *                  the <code>Dispatch</code> object or if a 
+     *                  feature is enabled that is not compatible with 
+     *                  this port or is unsupported.
+     *
+     * @see javax.xml.bind.JAXBContext
+     * @see WebServiceFeature
+     *
+     * @since JAX-WS 2.1
+     **/
+    public abstract Dispatch<Object> createDispatch(QName portName,
+            JAXBContext context, Service.Mode mode, WebServiceFeature... features);    
+    
+     /** 
+     * Creates a <code>Dispatch</code> instance for use with JAXB
+     * generated objects. If there
+     * are any reference parameters in the 
+     * <code>endpointReference</code>, then those reference
+     * parameters MUST appear as SOAP headers, indicating them to be
+     * reference parameters, on all messages sent to the endpoint.
+     * The <code>endpointReference's</code> address MUST be used
+     * for invocations on the endpoint.
+     * In the implementation of this method, the JAX-WS
+     * runtime system takes the responsibility of selecting a protocol
+     * binding (and a port) and configuring the dispatch accordingly from
+     * the WSDL associated with this <code>Service</code> instance or
+     * from the WSDL Metadata from the <code>endpointReference</code>.
+     * If this <code>Service</code> instance has a WSDL and 
+     * the <code>endpointReference</code>
+     * also has a WSDL, then the WSDL from this instance will be used.
+     * If this <code>Service</code> instance does not have a WSDL and
+     * the <code>endpointReference</code> does have a WSDL, then the 
+     * WSDL from the <code>endpointReference</code> will be used.      
+     * <p>
+     * This method behavies the same as calling
+     * <pre>
+     * dispatch = service.createDispatch(portName, context, mode, features);
+     * </pre>
+     * where the <code>portName</code> is retrieved from the 
+     * <code>wsaw:EndpointName</code> attribute of the <code>wsaw:ServiceName</code>
+     * element in the 
+     * metadata of the <code>endpointReference</code>.
+     * <br>
+     * See <a href="http://www.w3.org/TR/2006/CR-ws-addr-wsdl-20060529/">WS-Addressing - WSDL 1.0
+     * </a>.
+     *
+     * @param endpointReference  The <code>EndpointReference</code>
+     * for the target service endpoint that will be invoked by the
+     * returned <code>Dispatch</code> object.
+     * @param context The JAXB context used to marshall and unmarshall
+     * messages or message payloads.
+     * @param mode Controls whether the created dispatch instance is message
+     * or payload oriented, i.e. whether the user will work with complete
+     * protocol messages or message payloads. E.g. when using the SOAP
+     * protocol, this parameter controls whether the user will work with
+     * SOAP messages or the contents of a SOAP body.
+     * @param features  An array of WebServiceFeatures to configure on the 
+     *                proxy.  Supported features not in the <code>features
+     *                </code> parameter will have their default values.
+     *
+     * @return Dispatch instance
+     * @throws WebServiceException 
+     * @throws WebServiceException 
+     *                  <UL>
+     *                    <li>If there is any missing WSDL metadata
+     *                      as required by this method.
+     *                    <li>If the <code>wsaw:ServiceName</code> element 
+     *                    or the <code>wsaw:EndpointName</code> attribute
+     *                    is missing in the metdata of the 
+     *                    <code>endpointReference</code>.
+     *                    <li>If the <code>wsaw:ServiceName</code> does not
+     *                    match the <code>serviceName</code> of this instance.
+     *                    <li>If the <code>wsaw:EndpointName</code> does not
+     *                    match a valid wsdl:Port in the WSDL metadata.
+     *                    <li>If any error in the creation of
+     *                  the <code>Dispatch</code> object.
+     *                    <li>if a feature is enabled that is not 
+     *                    compatible with this port or is unsupported.
+     *                  </UL>
+     *
+     * @see javax.xml.bind.JAXBContext
+     * @see WebServiceFeature
+     *
+     * @since JAX-WS 2.1
+     **/
+    public abstract Dispatch<Object> createDispatch(EndpointReference endpointReference,
+            JAXBContext context, Service.Mode mode,
+            WebServiceFeature... features);
+        
+    
+    /** 
+     * Gets the name of this service.
+     * @return Qualified name of this service
+     **/
+    public abstract QName getServiceName();
+    
+    /** 
+     * Returns an <code>Iterator</code> for the list of
+     * <code>QName</code>s of service endpoints grouped by this
+     * service
+     *
+     * @return Returns <code>java.util.Iterator</code> with elements
+     *         of type <code>javax.xml.namespace.QName</code>
+     * @throws WebServiceException If this Service class does not
+     *         have access to the required WSDL metadata
+     **/
+    public abstract Iterator<javax.xml.namespace.QName> getPorts();
+    
+    /** 
+     * Gets the location of the WSDL document for this Service.
+     *
+     * @return URL for the location of the WSDL document for
+     *         this service
+     **/
+    public abstract java.net.URL getWSDLDocumentLocation();
+    
+    /**
+     * Returns the configured handler resolver.
+     *
+     * @return HandlerResolver The <code>HandlerResolver</code> being
+     *         used by this <code>Service</code> instance, or <code>null</code>
+     *         if there isn't one.
+     **/
+    public abstract HandlerResolver getHandlerResolver();
+    
+    /**
+     * Sets the <code>HandlerResolver</code> for this <code>Service</code>
+     * instance.
+     * <p>
+     * The handler resolver, if present, will be called once for each
+     * proxy or dispatch instance that is created, and the handler chain
+     * returned by the resolver will be set on the instance.
+     *
+     * @param handlerResolver The <code>HandlerResolver</code> to use
+     *        for all subsequently created proxy/dispatch objects.
+     *
+     * @see javax.xml.ws.handler.HandlerResolver
+     **/
+    public abstract void setHandlerResolver(HandlerResolver handlerResolver);
+    
+    /**
+     * Returns the executor for this <code>Service</code>instance.
+     *
+     * The executor is used for all asynchronous invocations that
+     * require callbacks.
+     *
+     * @return The <code>java.util.concurrent.Executor</code> to be
+     *         used to invoke a callback.
+     *
+     * @see java.util.concurrent.Executor
+     **/
+    public abstract java.util.concurrent.Executor getExecutor();
+    
+    /**
+     * Sets the executor for this <code>Service</code> instance.
+     *
+     * The executor is used for all asynchronous invocations that
+     * require callbacks.
+     *
+     * @param executor The <code>java.util.concurrent.Executor</code>
+     *        to be used to invoke a callback.
+     *
+     * @throws SecurityException If the instance does not support
+     *         setting an executor for security reasons (e.g. the
+     *         necessary permissions are missing).
+     *
+     * @see java.util.concurrent.Executor
+     **/
+    public abstract void setExecutor(java.util.concurrent.Executor executor);
+    
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/spi/ServiceDelegate.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/spi/WebServiceFeatureAnnotation.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/spi/WebServiceFeatureAnnotation.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/spi/WebServiceFeatureAnnotation.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,71 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.spi;
+
+// $Id$
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import javax.xml.ws.WebServiceFeature;
+
+/**
+ * Annotation used to identify other annotations
+ * as a <code>WebServiceFeature</code>.
+ *
+ * Each <code>WebServiceFeature</code> annotation annotated with
+ * this annotation MUST contain an 
+ * <code>enabled</code> property of type
+ * <code>boolean</code> with a default value of <code>true</code>. 
+ * JAX-WS defines the following
+ * <code>WebServiceFeature</code> annotations, however, an implementation
+ * may define vendors specific annotations for other features.
+ * If a JAX-WS implementation encounters an annotation annotated
+ * with the <code>WebServiceFeatureAnnotation</code> that is does not
+ * recognize/support an error MUST be given.
+ *
+ * @see javax.xml.ws.soap.WSAddressing
+ * @see javax.xml.ws.soap.MTOM
+ * @see javax.xml.ws.RespectBinding
+ *
+ * @since JAX-WS 2.1
+ */
+ at Target(ElementType.ANNOTATION_TYPE)
+ at Retention(RetentionPolicy.RUNTIME)
+ at Documented
+public @interface WebServiceFeatureAnnotation {
+    /**
+     * Unique identifier for the WebServiceFeature.  This 
+     * identifier MUST be unique across all implementations
+     * of JAX-WS.
+     */
+    String id();
+
+    /**
+     * The <code>WebServiceFeature</code> bean that is associated
+     * with the <code>WebServiceFeature</code> annotation
+     */
+    Class<? extends WebServiceFeature> bean();
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/spi/WebServiceFeatureAnnotation.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/wsaddressing/W3CEndpointReference.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/wsaddressing/W3CEndpointReference.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/wsaddressing/W3CEndpointReference.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,153 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.wsaddressing;
+
+// $Id$
+
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
+import javax.xml.bind.annotation.XmlAnyAttribute;
+import javax.xml.bind.annotation.XmlAnyElement;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.namespace.QName;
+import javax.xml.transform.Result;
+import javax.xml.transform.Source;
+import javax.xml.ws.EndpointReference;
+import javax.xml.ws.WebServiceException;
+
+import org.w3c.dom.Element;
+
+
+/**
+ * This class represents a W3C Addressing EndpointReferece which is
+ * a remote reference to a web service endpoint that supports the
+ * W3C WS-Addressing 1.0 - Core Recommendation.
+ * <p>
+ * Developers should use this class in their SEIs if they want to
+ * pass/return endpoint references that represent the W3C WS-Addressing
+ * recommendation.
+ * <p>
+ * JAXB will use the JAXB annotations and bind this class to XML infoset
+ * that is consistent with that defined by WS-Addressing.  See
+ * <a href="http://www.w3.org/TR/2006/REC-ws-addr-core-20060509/">
+ * WS-Addressing</a> 
+ * for more information on WS-Addressing EndpointReferences.
+ *
+ * @since JAX-WS 2.1
+ */
+
+// XmlRootElement allows this class to be marshalled on its own
+ at XmlRootElement(name="EndpointReference",namespace=W3CEndpointReference.NS)
+ at XmlType(name="EndpointReferenceType",namespace=W3CEndpointReference.NS)
+public final class W3CEndpointReference extends EndpointReference {
+    
+    private final static JAXBContext w3cjc = getW3CJaxbContext();
+
+    protected W3CEndpointReference() {
+    }
+    
+    /**
+     * construct an EPR from infoset representation
+     *
+     * @param source A source object containing valid XmlInfoset
+     * instance consistent with the W3C WS-Addressing Core
+     * recommendation.
+     *
+     * @throws WebServiceException 
+     *   If the source does NOT contain a valid W3C WS-Addressing
+     *   EndpointReference.
+     * @throws NullPointerException 
+     *   If the <code>null</code> <code>source</code> value is given
+     */
+    public W3CEndpointReference(Source source) {
+        try {
+            W3CEndpointReference epr = w3cjc.createUnmarshaller().unmarshal(source,W3CEndpointReference.class).getValue();
+            this.address = epr.address;
+            this.metadata = epr.metadata;
+            this.referenceParameters = epr.referenceParameters;
+        } catch (JAXBException e) {
+            throw new WebServiceException("Error unmarshalling W3CEndpointReference " ,e);
+        } catch (ClassCastException e) {
+            throw new WebServiceException("Source did not contain W3CEndpointReference", e);
+        }
+    }
+    
+    /**
+     * {@inheritDoc}
+     */
+    public void writeTo(Result result){
+        try {
+            Marshaller marshaller = w3cjc.createMarshaller();
+            marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
+            marshaller.marshal(this, result);
+        } catch (JAXBException e) {
+            throw new WebServiceException("Error marshalling W3CEndpointReference. ", e);
+        }
+    }
+    
+    private static JAXBContext getW3CJaxbContext() {
+        try {
+            return JAXBContext.newInstance(W3CEndpointReference.class);
+        } catch (JAXBException e) {
+            throw new WebServiceException("Error creating JAXBContext for W3CEndpointReference. ", e);
+        }
+    }
+    
+    // private but necessary properties for databinding
+    @XmlElement(name="Address",namespace=NS)
+    private Address address;
+    @XmlElement(name="ReferenceParameters",namespace=NS)
+    private Elements referenceParameters;
+    @XmlElement(name="Metadata",namespace=NS)
+    private Elements metadata;
+    @XmlAnyAttribute
+    Map<QName,String> attributes;
+    @XmlAnyElement
+    List<Element> elements;
+    
+    
+    private static class Address {
+        protected Address() {}
+        @XmlValue
+        String uri;
+        @XmlAnyAttribute
+        Map<QName,String> attributes;
+    }
+    
+    
+    private static class Elements {
+        protected Elements() {}
+        @XmlAnyElement
+        List<Element> elements;
+        @XmlAnyAttribute
+        Map<QName,String> attributes;
+    }
+    
+    protected static final String NS = "http://www.w3.org/2005/08/addressing";
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/wsaddressing/W3CEndpointReference.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/java/javax/xml/ws/wsaddressing/W3CEndpointReferenceBuilder.java
===================================================================
--- trunk/jbossws-api/src/java/javax/xml/ws/wsaddressing/W3CEndpointReferenceBuilder.java	                        (rev 0)
+++ trunk/jbossws-api/src/java/javax/xml/ws/wsaddressing/W3CEndpointReferenceBuilder.java	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1,262 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package javax.xml.ws.wsaddressing;
+
+// $Id$
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.WebServiceException;
+import javax.xml.ws.spi.Provider;
+
+import org.w3c.dom.Element;
+
+
+/**
+ * This class is used to build <code>W3CEndpointReference</code>
+ * instances. The intended use of this clsss is for
+ * an application component, for example a factory component,
+ * to create an <code>W3CEndpointReference</code> for a
+ * web service endpoint published by the same 
+ * Java EE application. It can also be used to create
+ * <code>W3CEndpointReferences</code> for an Java SE based
+ * endpoint by providing the <code>address</code> property.
+ * <p>
+ * When creating a <code>W3CEndpointReference</code> for an
+ * endpoint that is not published by the same Java EE application,
+ * the <code>address</code> property MUST be specified.  
+ * <p>
+ * When creating a <code>W3CEndpointReference</code> for an endpoint 
+ * published by the same Java EE application, the <code>address</code>
+ * property MAY be <code>null</code> but then the <code>serviceName</code>
+ * and <code>endpointName</code> MUST specify an endpoint published by
+ * the same Java EE application.
+ * <p>
+ * When the <code>wsdlDocumentLocation</code> is specified it MUST refer
+ * to a valid WSDL document and the <code>serviceName</code> and
+ * <code>endpointName</code> (if specified) MUST match a service and port 
+ * in the WSDL document.
+ *
+ * @since JAX-WS 2.1
+ */
+public final class W3CEndpointReferenceBuilder {
+    
+    public W3CEndpointReferenceBuilder() {
+        referenceParameters = new ArrayList<Element>();
+        metadata = new ArrayList<Element>();
+    }
+    
+    /**
+     * Sets the <code>address</code> to the
+     * <code>W3CEndpointReference</code> instance's
+     * <code>wsa:Address</code>.
+     * <p>
+     * The <code>address</code> MUST be set to a non-<code>null</code>
+     * value when building a <code>W3CEndpointReference</code> for a 
+     * web service endpoint that is not published by the same
+     * Java EE application or when running on Java SE.
+     *
+     * @param address The address of the endpoint to be targeted
+     *      by the returned <code>W3CEndpointReference<code>.
+     *
+     * @return A <code>W3CEndpointReferenceBuilder</code> instance with
+     *   the <code>address</code> set to the <code>wsa:Address</code>.
+     */
+    public W3CEndpointReferenceBuilder address(String address) {
+        this.address = address;
+        return this;
+    }
+    
+    /**
+     * Sets the <code>serviceName</code> as the
+     * <code>wsaw:ServiceName</code> element in the
+     * <code>wsa:Metadata</code> element.
+     *
+     * @param serviceName The service name of the endpoint to be targeted
+     *      by the returned <code>W3CEndpointReference<code>.  This property
+     *      may also be used with the <code>endpointName</code> (portName) 
+     *      property to lookup the <code>address</code> of a web service 
+     *      endpoint that is published by the same Java EE application.
+     *
+     * @return A <code>W3CEndpointReferenceBuilder</code> instance with
+     *   the <code>serviceName</code> element added to the
+     *  <code>wsa:Metadata</code> element.
+     *
+     */
+    public W3CEndpointReferenceBuilder serviceName(QName serviceName) {
+        this.serviceName = serviceName;
+        return this;
+    }
+    
+    /**
+     * Sets the <code>endpointName</code> as and attribute on
+     * <code>wsaw:ServiceName</code> element in the
+     * <code>wsa:Metadata</code> element. This method can only
+     * be called after the {@link #serviceName} method has been called.
+     *
+     * @param endpointName The name of the endpoint to be targeted
+     *      by the returned <code>W3CEndpointReference<code>. The 
+     *      <code>endpointName</code> (portName) property may also be
+     *      used with the <code>serviceName</code> property to lookup 
+     *      the <code>address</code> of a web service 
+     *      endpoint published by the same Java EE application.
+     *
+     * @return A <code>W3CEndpointReferenceBuilder</code> instance with
+     *   the <code>endpointName</code> atrribute added to the
+     *  <code>wsaw:ServiceName</code> element in the
+     *  <code>wsa:Metadata</code> element.
+     *
+     * @throws javax.lang.IllegalStateException If the <code>serviceName</code> has not
+     *  been set.
+     */
+    public W3CEndpointReferenceBuilder endpointName(QName endpointName) {
+        if (serviceName == null) {
+            throw new IllegalStateException("The W3CEndpointReferenceBuilder's serviceName must be set before setting the endpointName: "+endpointName);
+        }
+        
+        this.endpointName = endpointName;
+        return this;
+    }
+    
+    /**
+     * Sets the <code>wsdlDocumentLocation</code> that will be inlined
+     * in the <code>W3CEndpointReferenc</code> instance's
+     * <code>wsa:Metadata</code>.
+     *
+     * @param wsdlDocumentLocation The location of the WSDL document to
+     *      be inlined in the <code>wsa:Metadata</code> of the
+     *     <code>W3CEndpointReference<code>.
+     *
+     * @return A <code>W3CEndpointReferenceBuilder</code> instance with
+     *   the <code>wsdlDocumentLocation</code> that is to be inlined.
+     *
+     */
+    public W3CEndpointReferenceBuilder wsdlDocumentLocation(String wsdlDocumentLocation) {
+        this.wsdlDocumentLocation = wsdlDocumentLocation;
+        return this;
+    }
+    
+    /**
+     * Adds the <code>referenceParameter</code> to the
+     * <code>W3CEndpointReference</code> instance
+     * <code>wsa:ReferenceParameters</code> element.
+     *
+     * @param referenceParameter The element to be added to the
+     *      <code>wsa:ReferenceParameters</code> element.
+     *
+     * @return A <code>W3CEndpointReferenceBuilder</code> instance with
+     *   the <code>referenceParameter</code> added to the
+     *   <code>wsa:ReferenceParameters</code> element.
+     *
+     * @throws java.lang.IllegalArgumentException if <code>referenceParameter</code>
+     * is <code>null</code>.
+     */
+    public W3CEndpointReferenceBuilder referenceParameter(Element referenceParameter) {
+        if (referenceParameter == null)
+            throw new java.lang.IllegalArgumentException("The referenceParameter cannot be null.");
+        referenceParameters.add(referenceParameter);
+        return this;
+    }
+    
+    /**
+     * Adds the <code>metadataElement</code> to the
+     * <code>W3CEndpointReference</code> instance's
+     * <code>wsa:Metadata</code> element.
+     *
+     * @param metadataElement The element to be added to the
+     *      <code>wsa:Metadata</code> element.
+     *
+     * @return A <code>W3CEndpointReferenceBuilder</code> instance with
+     *   the <code>metadataElement</code> added to the
+     *    <code>wsa:Metadata</code> element.
+     *
+     * @throws java.lang.IllegalArgumentException if <code>metadataElement</code>
+     * is <code>null</code>.
+     */
+    public W3CEndpointReferenceBuilder metadata(Element metadataElement) {
+        if (metadataElement == null)
+            throw new java.lang.IllegalArgumentException("The metadataElement cannot be null.");
+        metadata.add(metadataElement);
+        return this;
+    }
+    
+    /**
+     * Builds a <code>W3CEndpointReference</code> from the accumulated
+     * properties set on this <code>W3CEndpointReferenceBuilder</code>
+     * instance.
+     * <p>
+     * This method can be used to create a <code>W3CEndpointReference</code>
+     * for any endpoint by specifying the <code>address</code> property along
+     * with any other desired properties.  This method
+     * can also be used to create a <code>W3CEndpointReference</code> for
+     * an endpoint that is published by the same Java EE application.
+     * This method can automatically determine the <code>address</code> of 
+     * an endpoint published by the same Java EE application that is identified by the 
+     * <code>serviceName</code> and 
+     * <code>endpointName</code> properties.  If the <code>address</code> is 
+     * <code>null</code> and the <code>serviceName</code> and 
+     * <code>endpointName</code> 
+     * do not identify an endpoint published by the same Java EE application, a 
+     * <code>javax.lang.IllegalStateException</code> MUST be thrown.
+     * 
+     *
+     * @return <code>W3CEndpointReference</code> from the accumulated
+     * properties set on this <code>W3CEndpointReferenceBuilder</code>
+     * instance. This method never returns <code>null</code>.
+     *
+     * @throws javax.lang.IllegalStateException
+     *     <ul>
+     *        <li>If the <code>address</code>, <code>serviceName</code> and
+     *            <code>endpointName</code> are all <code>null</code>.
+     *        <li>If the <code>serviceName</code> service is <code>null</code> and the
+     *            <code>endpointName</code> is NOT <code>null</code>.
+     *        <li>If the <code>address</code> property is <code>null</code> and
+     *            the <code>serviceName</code> and <code>endpointName</code> do not
+     *            specify a valid endpoint published by the same Java EE
+     *            application.
+     *        <li>If the <code>serviceName</code>is NOT <code>null</code>
+     *             and is not present in the specified WSDL.
+     *        <li>If the <code>endpointName</code> port is not <code>null<code> and it
+     *             is not present in <code>serviceName</code> service in the WSDL.
+     *        <li>If the <code>wsdlDocumentLocation</code> is NOT <code>null</code>
+     *            and does not represent a valid WSDL.
+     *     </ul>
+     * @throws WebServiceException If an error occurs while creating the 
+     *                             <code>W3CEndpointReference</code>.
+     *       
+     */
+    public W3CEndpointReference build() {
+        return Provider.provider().createW3CEndpointReference(address,
+                serviceName, endpointName, metadata, wsdlDocumentLocation,
+                referenceParameters);
+    }
+    
+    private String address;
+    private List<Element> referenceParameters;
+    private List<Element> metadata;
+    private QName serviceName;
+    private QName endpointName;
+    private String wsdlDocumentLocation;
+}


Property changes on: trunk/jbossws-api/src/java/javax/xml/ws/wsaddressing/W3CEndpointReferenceBuilder.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: trunk/jbossws-api/src/resources/jboss-jaxws.jar/META-INF/services/javax.xml.ws.spi.Provider
===================================================================
--- trunk/jbossws-api/src/resources/jboss-jaxws.jar/META-INF/services/javax.xml.ws.spi.Provider	                        (rev 0)
+++ trunk/jbossws-api/src/resources/jboss-jaxws.jar/META-INF/services/javax.xml.ws.spi.Provider	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1 @@
+org.jboss.ws.core.jaxws.spi.ProviderImpl
\ No newline at end of file

Added: trunk/jbossws-api/src/resources/jboss-saaj.jar/META-INF/services/javax.xml.soap.MessageFactory
===================================================================
--- trunk/jbossws-api/src/resources/jboss-saaj.jar/META-INF/services/javax.xml.soap.MessageFactory	                        (rev 0)
+++ trunk/jbossws-api/src/resources/jboss-saaj.jar/META-INF/services/javax.xml.soap.MessageFactory	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1 @@
+org.jboss.ws.core.soap.MessageFactoryImpl
\ No newline at end of file

Added: trunk/jbossws-api/src/resources/jboss-saaj.jar/META-INF/services/javax.xml.soap.MetaFactory
===================================================================
--- trunk/jbossws-api/src/resources/jboss-saaj.jar/META-INF/services/javax.xml.soap.MetaFactory	                        (rev 0)
+++ trunk/jbossws-api/src/resources/jboss-saaj.jar/META-INF/services/javax.xml.soap.MetaFactory	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1 @@
+org.jboss.ws.core.soap.SAAJMetaFactoryImpl
\ No newline at end of file

Added: trunk/jbossws-api/src/resources/jboss-saaj.jar/META-INF/services/javax.xml.soap.SOAPFactory
===================================================================
--- trunk/jbossws-api/src/resources/jboss-saaj.jar/META-INF/services/javax.xml.soap.SOAPFactory	                        (rev 0)
+++ trunk/jbossws-api/src/resources/jboss-saaj.jar/META-INF/services/javax.xml.soap.SOAPFactory	2007-04-23 06:12:12 UTC (rev 2897)
@@ -0,0 +1 @@
+org.jboss.ws.core.soap.SOAPFactoryImpl
\ No newline at end of file

Modified: trunk/jbossws-core/.classpath
===================================================================
--- trunk/jbossws-core/.classpath	2007-04-23 06:06:16 UTC (rev 2896)
+++ trunk/jbossws-core/.classpath	2007-04-23 06:12:12 UTC (rev 2897)
@@ -31,5 +31,6 @@
 	<classpathentry kind="lib" path="/build/thirdparty/wstx.jar"/>
 	<classpathentry kind="lib" path="/build/thirdparty/getopt.jar"/>
 	<classpathentry kind="lib" path="/build/thirdparty/jboss-common.jar" sourcepath="/build/thirdparty/jboss-common-sources.jar"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/jbossws-api"/>
 	<classpathentry kind="output" path="output-eclipse"/>
 </classpath>

Modified: trunk/jbossws-core/build.xml
===================================================================
--- trunk/jbossws-core/build.xml	2007-04-23 06:06:16 UTC (rev 2896)
+++ trunk/jbossws-core/build.xml	2007-04-23 06:12:12 UTC (rev 2897)
@@ -15,6 +15,7 @@
   
   <import file="${basedir}/../build/ant-import/build-thirdparty.xml"/>
   <import file="${basedir}/../build/ant-import/build-setup.xml"/>
+  <import file="${basedir}/../integration/build.xml"/>
   
   <property name="core.src.dir" value="${core.dir}/src"/>
   <property name="core.java.dir" value="${core.src.dir}/java"/>
@@ -23,7 +24,6 @@
   <property name="core.output.dir" value="${core.dir}/output"/>
   <property name="core.output.apidocs.dir" value="${core.output.dir}/apidocs"/>
   <property name="core.output.classes.dir" value="${core.output.dir}/classes"/>
-  <property name="core.output.classes14.dir" value="${core.output.dir}/classes14"/>
   <property name="core.output.lib.dir" value="${core.output.dir}/lib"/>
   
   <target name="core-init" depends="prepare, thirdparty">
@@ -41,48 +41,27 @@
   | documentation compiles.
   -->
   
-  <target name="core-compile" depends="core-init,core-compile-classes,core-compile-etc" description="Compile all source files."/>
+  <target name="core-compile" depends="core-init,core-compile-classes,core-compile-etc" 
+    description="Compile all source files."/>
   
   <!-- Compile java sources -->
-  <target name="core-compile-classes" depends="core-init">
+  <target name="core-compile-classes" depends="core-init,integration-compile-classes">
   
-    <!-- Compile interfaces with jdk1.4 -->
-    <mkdir dir="${core.output.classes14.dir}"/>
-    <javac srcdir="${core.java.dir}" destdir="${core.output.classes14.dir}" encoding="utf-8" debug="${javac.debug}" verbose="${javac.verbose}" deprecation="${javac.deprecation}"
-      failonerror="${javac.fail.onerror}" source="1.4" target="1.4">
-      <include name="javax/xml/rpc/**"/>
-      <include name="javax/xml/soap/**"/>
-      <classpath refid="core.classpath"/>
-    </javac>
-    
     <!-- Compile core classes with jdk1.5 -->
     <mkdir dir="${core.output.classes.dir}"/>
     <javac srcdir="${core.java.dir}" sourcepath="" destdir="${core.output.classes.dir}" encoding="utf-8" debug="${javac.debug}" verbose="${javac.verbose}"
       deprecation="${javac.deprecation}" failonerror="${javac.fail.onerror}" source="1.5" target="1.5">
-      <include name="javax/annotation/**"/>
-      <include name="javax/xml/ws/**"/>
-      <include name="javax/jws/**"/>
       <include name="org/jboss/annotation/**"/>
       <include name="org/jboss/ws/**"/>
-      <classpath path="${core.output.classes14.dir}"/>
       <classpath refid="core.classpath"/>
+      <classpath path="${api.output.classes14.dir}"/>
+      <classpath path="${api.output.classes.dir}"/>
+      <classpath path="${integration.output.classes.dir}"/>
     </javac>
   </target>
   
-  
   <!-- Compile etc files (manifests and such) -->
-  <target name="core-compile-etc" depends="core-init">
-    <mkdir dir="${build.etc.dir}"/>
-    <copy todir="${build.etc.dir}" filtering="yes" overwrite="yes">
-      <fileset dir="${build.dir}/etc"/>
-      <filterset>
-        <filter token="java.vm.version" value="${java.vm.version}"/>
-        <filter token="java.vm.vendor" value="${java.vm.vendor}"/>
-        <filter token="build.id" value="${build.id}"/>
-        <filter token="implementation.version" value="jbossws-${version.id}"/>
-        <filtersfile file="${build.dir}/version.properties"/>
-      </filterset>
-    </copy>
+  <target name="core-compile-etc" depends="core-init,integration-compile-etc">
   </target>
   
   <!-- ================================================================== -->
@@ -100,34 +79,6 @@
   -->
   <target name="core-module-jars">
     
-    <!-- Build jboss-jaxrpc.jar -->
-    <mkdir dir="${core.output.lib.dir}"/>
-    <jar jarfile="${core.output.lib.dir}/jboss-jaxrpc.jar" manifest="${build.etc.dir}/default.mf">
-      <fileset dir="${core.output.classes14.dir}">
-        <include name="javax/xml/rpc/**"/>
-      </fileset>
-    </jar>
-    
-    <!-- Build jboss-saaj.jar -->
-    <mkdir dir="${core.output.lib.dir}"/>
-    <jar jarfile="${core.output.lib.dir}/jboss-saaj.jar" manifest="${build.etc.dir}/default.mf">
-      <fileset dir="${core.output.classes14.dir}">
-        <include name="javax/xml/soap/**"/>
-      </fileset>
-      <metainf dir="${core.resources.dir}/jboss-saaj.jar/META-INF"/>
-    </jar>
-    
-    <!-- Build jboss-jaxws.jar -->
-    <mkdir dir="${core.output.lib.dir}"/>
-    <jar jarfile="${core.output.lib.dir}/jboss-jaxws.jar" manifest="${build.etc.dir}/default.mf">
-      <fileset dir="${core.output.classes.dir}">
-        <include name="javax/annotation/**"/>
-        <include name="javax/jws/**"/>
-        <include name="javax/xml/ws/**"/>
-      </fileset>
-      <metainf dir="${core.resources.dir}/jboss-jaxws.jar/META-INF"/>
-    </jar>
-    
     <!-- Build jbossws-core.jar -->
     <mkdir dir="${core.output.lib.dir}"/>
     <jar jarfile="${core.output.lib.dir}/jbossws-core.jar" manifest="${build.etc.dir}/default.mf">
@@ -141,14 +92,6 @@
       </fileset>
     </jar>
     
-    <!-- Build jbossws-integration.jar -->
-    <mkdir dir="${core.output.lib.dir}"/>
-    <jar jarfile="${core.output.lib.dir}/jbossws-integration.jar" manifest="${build.etc.dir}/default.mf">
-      <fileset dir="${core.output.classes.dir}">
-        <include name="org/jboss/ws/integration/**"/>
-      </fileset>
-    </jar>
-    
     <!-- Build jbossws-client.jar -->
     <jar jarfile="${core.output.lib.dir}/jbossws-client.jar" manifest="${build.etc.dir}/default.mf">
       <fileset dir="${core.output.classes.dir}">




More information about the jbossws-commits mailing list