[jbossws-commits] JBossWS SVN: r6807 - in stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws: handler and 2 other directories.

jbossws-commits at lists.jboss.org jbossws-commits at lists.jboss.org
Wed Apr 30 13:36:22 EDT 2008


Author: thomas.diesler at jboss.com
Date: 2008-04-30 13:36:21 -0400 (Wed, 30 Apr 2008)
New Revision: 6807

Added:
   stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/Action.java
   stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/Binding21.java
   stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/Endpoint21.java
   stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/EndpointReference.java
   stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/FaultAction.java
   stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/RespectBinding.java
   stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/RespectBindingFeature.java
   stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/Service21.java
   stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/WebServiceContext21.java
   stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/WebServiceFeature.java
   stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/handler/MessageContext21.java
   stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/soap/Addressing.java
   stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/soap/AddressingFeature.java
   stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/spi/Provider21.java
   stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/spi/ServiceDelegate21.java
   stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/spi/WebServiceFeatureAnnotation.java
Log:


Added: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/Action.java
===================================================================
--- stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/Action.java	                        (rev 0)
+++ stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/Action.java	2008-04-30 17:36:21 UTC (rev 6807)
@@ -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: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/Action.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/Binding21.java
===================================================================
--- stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/Binding21.java	                        (rev 0)
+++ stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/Binding21.java	2008-04-30 17:36:21 UTC (rev 6807)
@@ -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$
+
+/**
+ * @author Heiko.Braun at jboss.com
+ * @version $Revision$
+ */
+public interface Binding21 extends Binding
+{
+   /**
+    * 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: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/Binding21.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/Endpoint21.java
===================================================================
--- stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/Endpoint21.java	                        (rev 0)
+++ stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/Endpoint21.java	2008-04-30 17:36:21 UTC (rev 6807)
@@ -0,0 +1,105 @@
+/*
+ * 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;
+
+import org.w3c.dom.Element;
+
+/**
+ * @author Heiko.Braun at jboss.com
+ * @version $Revision$
+ */
+public abstract class Endpoint21 extends Endpoint
+{
+   /**
+    * 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 javax.xml.ws.wsaddressing.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: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/Endpoint21.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/EndpointReference.java
===================================================================
--- stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/EndpointReference.java	                        (rev 0)
+++ stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/EndpointReference.java	2008-04-30 17:36:21 UTC (rev 6807)
@@ -0,0 +1,189 @@
+/*
+ * 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.spi.Provider21;
+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 ((Provider21)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 ((Provider21)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: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/EndpointReference.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/FaultAction.java
===================================================================
--- stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/FaultAction.java	                        (rev 0)
+++ stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/FaultAction.java	2008-04-30 17:36:21 UTC (rev 6807)
@@ -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: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/FaultAction.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/RespectBinding.java
===================================================================
--- stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/RespectBinding.java	                        (rev 0)
+++ stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/RespectBinding.java	2008-04-30 17:36:21 UTC (rev 6807)
@@ -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 Service21#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 start
+ *  </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: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/RespectBinding.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/RespectBindingFeature.java
===================================================================
--- stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/RespectBindingFeature.java	                        (rev 0)
+++ stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/RespectBindingFeature.java	2008-04-30 17:36:21 UTC (rev 6807)
@@ -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 Service21#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 start
+ *  </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: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/RespectBindingFeature.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/Service21.java
===================================================================
--- stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/Service21.java	                        (rev 0)
+++ stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/Service21.java	2008-04-30 17:36:21 UTC (rev 6807)
@@ -0,0 +1,457 @@
+/*
+ * 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.namespace.QName;
+import javax.xml.bind.JAXBContext;
+import java.net.URL;
+
+/**
+ * @author Heiko.Braun at jboss.com
+ * @version $Revision$
+ */
+public class Service21 extends Service
+{
+   
+   protected Service21(URL wsdlDocumentLocation, QName serviceName)
+   {
+      super(wsdlDocumentLocation, serviceName);
+   }
+
+   /**
+    * 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 wsdlLocation 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 Service21 create(URL wsdlLocation, QName serviceName)
+   {
+      return new Service21(wsdlLocation, serviceName);
+   }
+
+   /**
+    * 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 Service21 create(QName serviceName)
+   {
+      return create(null, serviceName);
+   }
+   
+   /**
+       * 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. 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);
+   }
+
+   /**
+    * 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 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);
+   }
+
+
+   /**
+    * 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);
+   }
+
+   /**
+    * 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);
+   }
+}


Property changes on: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/Service21.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/WebServiceContext21.java
===================================================================
--- stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/WebServiceContext21.java	                        (rev 0)
+++ stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/WebServiceContext21.java	2008-04-30 17:36:21 UTC (rev 6807)
@@ -0,0 +1,104 @@
+/*
+ * 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;
+
+import org.w3c.dom.Element;
+
+/**
+ * @author Heiko.Braun at jboss.com
+ * @version $Revision$
+ */
+public interface WebServiceContext21 extends WebServiceContext
+{
+   /**
+    * 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 javax.xml.ws.wsaddressing.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: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/WebServiceContext21.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/WebServiceFeature.java
===================================================================
--- stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/WebServiceFeature.java	                        (rev 0)
+++ stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/WebServiceFeature.java	2008-04-30 17:36:21 UTC (rev 6807)
@@ -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: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/WebServiceFeature.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/handler/MessageContext21.java
===================================================================
--- stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/handler/MessageContext21.java	                        (rev 0)
+++ stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/handler/MessageContext21.java	2008-04-30 17:36:21 UTC (rev 6807)
@@ -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.handler;
+
+/**
+ * @author Heiko.Braun at jboss.com
+ * @version $Revision$
+ */
+public interface MessageContext21 extends MessageContext
+{
+   /**
+    * 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 changes on: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/handler/MessageContext21.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/soap/Addressing.java
===================================================================
--- stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/soap/Addressing.java	                        (rev 0)
+++ stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/soap/Addressing.java	2008-04-30 17:36:21 UTC (rev 6807)
@@ -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: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/soap/Addressing.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/soap/AddressingFeature.java
===================================================================
--- stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/soap/AddressingFeature.java	                        (rev 0)
+++ stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/soap/AddressingFeature.java	2008-04-30 17:36:21 UTC (rev 6807)
@@ -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: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/soap/AddressingFeature.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/spi/Provider21.java
===================================================================
--- stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/spi/Provider21.java	                        (rev 0)
+++ stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/spi/Provider21.java	2008-04-30 17:36:21 UTC (rev 6807)
@@ -0,0 +1,194 @@
+/*
+ * 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;
+
+import org.w3c.dom.Element;
+
+import javax.xml.ws.EndpointReference;
+import javax.xml.ws.WebServiceFeature;
+import javax.xml.ws.wsaddressing.W3CEndpointReference;
+import javax.xml.namespace.QName;
+import javax.xml.transform.Source;
+import java.util.List;
+
+/**
+ * @author Heiko.Braun at jboss.com
+ * @version $Revision$
+ */
+public abstract class Provider21 extends Provider
+{
+   /**
+    * 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 javax.xml.ws.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 javax.xml.ws.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 javax.xml.ws.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);
+
+    /**
+    * 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 javax.xml.ws.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 javax.xml.ws.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);
+}


Property changes on: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/spi/Provider21.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/spi/ServiceDelegate21.java
===================================================================
--- stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/spi/ServiceDelegate21.java	                        (rev 0)
+++ stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/spi/ServiceDelegate21.java	2008-04-30 17:36:21 UTC (rev 6807)
@@ -0,0 +1,411 @@
+/*
+ * 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;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.WebServiceFeature;
+import javax.xml.ws.Dispatch;
+import javax.xml.ws.Service;
+import javax.xml.ws.EndpointReference;
+import javax.xml.bind.JAXBContext;
+
+/**
+ * @author Heiko.Braun at jboss.com
+ * @version $Revision$
+ */
+public abstract class ServiceDelegate21 extends 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 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 javax.xml.ws.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 javax.xml.ws.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 javax.xml.ws.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
+    * @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 javax.xml.ws.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 <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 javax.xml.ws.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 javax.xml.ws.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.
+    * @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 javax.xml.ws.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 javax.xml.ws.WebServiceException
+    * @throws javax.xml.ws.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);
+
+}


Property changes on: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/spi/ServiceDelegate21.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/spi/WebServiceFeatureAnnotation.java
===================================================================
--- stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/spi/WebServiceFeatureAnnotation.java	                        (rev 0)
+++ stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/spi/WebServiceFeatureAnnotation.java	2008-04-30 17:36:21 UTC (rev 6807)
@@ -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: stack/native/branches/tdiesler/trunk/modules/jaxws-impl/src/main/java/javax/xml/ws/spi/WebServiceFeatureAnnotation.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF




More information about the jbossws-commits mailing list