feat(jdk8): move files to new folder to avoid resources compiled.
This commit is contained in:
147
jdkSrc/jdk8/javax/xml/ws/Action.java
Normal file
147
jdkSrc/jdk8/javax/xml/ws/Action.java
Normal file
@@ -0,0 +1,147 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
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 a
|
||||
* WS-Addressing <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's
|
||||
* <code>wsam:Action</code> attribute on the WSDL <code>input</code>,
|
||||
* <code>output</code> and <code>fault</code> messages of the WSDL <code>operation</code>
|
||||
* is based upon which attributes of the <code>Action</code> annotation have been specified.
|
||||
* For the exact computation of <code>wsam:Action</code> values for the messages, refer
|
||||
* to the algorithm in the JAX-WS specification.
|
||||
* <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>
|
||||
* @WebService(targetNamespace="http://example.com/numbers")
|
||||
* public class AddNumbersImpl {
|
||||
* <b>@Action(
|
||||
* input="http://example.com/inputAction",
|
||||
* output="http://example.com/outputAction")</b>
|
||||
* public int addNumbers(int number1, int number2) {
|
||||
* return number1 + number2;
|
||||
* }
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* The generated WSDL looks like:
|
||||
* <pre>
|
||||
* <definitions targetNamespace="http://example.com/numbers" ...>
|
||||
* ...
|
||||
* <portType name="AddNumbersPortType">
|
||||
* <operation name="AddNumbers">
|
||||
* <input message="tns:AddNumbersInput" name="foo"
|
||||
* <b>wsam:Action="http://example.com/inputAction"</b>/>
|
||||
* <output message="tns:AddNumbersOutput" name="bar"
|
||||
* <b>wsam:Action="http://example.com/outputAction"</b>/>
|
||||
* </operation>
|
||||
* </portType>
|
||||
* ...
|
||||
* </definitions>
|
||||
* </pre>
|
||||
*
|
||||
* <p>
|
||||
* <b>Example 2</b>: Specify explicit value for <code>Action</code> message addressing property
|
||||
* for only the <code>input</code> message. The <code>wsam:Action</code> values for the
|
||||
* WSDL <code>output</code> message are computed using the algorithm in the JAX-WS specification.
|
||||
*
|
||||
* <pre>
|
||||
* @WebService(targetNamespace="http://example.com/numbers")
|
||||
* public class AddNumbersImpl {
|
||||
* <b>@Action(input="http://example.com/inputAction")</b>
|
||||
* public int addNumbers(int number1, int number2) {
|
||||
* return number1 + number2;
|
||||
* }
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* The generated WSDL looks like:
|
||||
* <pre>
|
||||
* <definitions targetNamespace="http://example.com/numbers" ...>
|
||||
* ...
|
||||
* <portType name="AddNumbersPortType">
|
||||
* <operation name="AddNumbers">
|
||||
* <input message="tns:AddNumbersInput" name="foo"
|
||||
* <b>wsam:Action="http://example.com/inputAction"</b> />
|
||||
* <output message="tns:AddNumbersOutput" name="bar"
|
||||
* <b>wsam:Action="http://example.com/numbers/AddNumbersPortType/AddNumbersResponse"</b>/>
|
||||
* </operation>
|
||||
* </portType>
|
||||
* ...
|
||||
* </definitions>
|
||||
* </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, <code>wsam:Action</code> value for the
|
||||
* WSDL <code>input</code> message is computed using the algorithm in the JAX-WS specification.
|
||||
*
|
||||
* <p>
|
||||
* <b>Example 3</b>: See {@link FaultAction} 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
|
||||
*/
|
||||
|
||||
@Documented
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.METHOD)
|
||||
public @interface Action {
|
||||
/**
|
||||
* Explicit value of the WS-Addressing <code>Action</code> message addressing property for the <code>input</code>
|
||||
* message of the operation.
|
||||
*/
|
||||
String input() default "";
|
||||
|
||||
/**
|
||||
* Explicit value of the WS-Addressing <code>Action</code> message addressing property for the <code>output</code>
|
||||
* message of the operation.
|
||||
*/
|
||||
String output() default "";
|
||||
|
||||
/**
|
||||
* Explicit value of the WS-Addressing <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 an explicit WS-Addressing
|
||||
* <code>Action</code> message addressing property, needs to be specified as a value in this property
|
||||
* using {@link FaultAction} annotation.
|
||||
*/
|
||||
FaultAction[] fault() default { };
|
||||
}
|
||||
42
jdkSrc/jdk8/javax/xml/ws/AsyncHandler.java
Normal file
42
jdkSrc/jdk8/javax/xml/ws/AsyncHandler.java
Normal file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
/** The <code>AsyncHandler</code> interface is implemented by
|
||||
* clients that wish to receive callback notification of the completion of
|
||||
* service endpoint operations invoked asynchronously.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
**/
|
||||
public interface AsyncHandler<T> {
|
||||
|
||||
/** Called when the response to an asynchronous operation is available.
|
||||
*
|
||||
* @param res The response to the operation invocation.
|
||||
*
|
||||
**/
|
||||
void handleResponse(Response<T> res);
|
||||
}
|
||||
67
jdkSrc/jdk8/javax/xml/ws/Binding.java
Normal file
67
jdkSrc/jdk8/javax/xml/ws/Binding.java
Normal file
@@ -0,0 +1,67 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
|
||||
/** The <code>Binding</code> interface is the base interface
|
||||
* for JAX-WS protocol bindings.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
**/
|
||||
public interface Binding {
|
||||
|
||||
/**
|
||||
* Gets a copy of the handler chain for a protocol binding instance.
|
||||
* If the returned chain is modified a call to <code>setHandlerChain</code>
|
||||
* is required to configure the binding instance with the new chain.
|
||||
*
|
||||
* @return java.util.List<Handler> Handler chain
|
||||
*/
|
||||
public java.util.List<javax.xml.ws.handler.Handler> getHandlerChain();
|
||||
|
||||
/**
|
||||
* Sets the handler chain for the protocol binding instance.
|
||||
*
|
||||
* @param chain A List of handler configuration entries
|
||||
* @throws WebServiceException On an error in the configuration of
|
||||
* the handler chain
|
||||
* @throws java.lang.UnsupportedOperationException If this
|
||||
* operation is not supported. This may be done to
|
||||
* avoid any overriding of a pre-configured handler
|
||||
* chain.
|
||||
*/
|
||||
public void setHandlerChain(java.util.List<javax.xml.ws.handler.Handler> chain);
|
||||
|
||||
/**
|
||||
* Get the URI for this binding instance.
|
||||
*
|
||||
* @return String The binding identifier for the port.
|
||||
* Never returns <code>null</code>
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
*/
|
||||
String getBindingID();
|
||||
}
|
||||
182
jdkSrc/jdk8/javax/xml/ws/BindingProvider.java
Normal file
182
jdkSrc/jdk8/javax/xml/ws/BindingProvider.java
Normal file
@@ -0,0 +1,182 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
import java.util.Map;
|
||||
import javax.xml.ws.wsaddressing.W3CEndpointReference;
|
||||
|
||||
/**
|
||||
* The <code>BindingProvider</code> interface provides access to the
|
||||
* protocol binding and associated context objects for request and
|
||||
* response message processing.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
*
|
||||
* @see javax.xml.ws.Binding
|
||||
**/
|
||||
public interface BindingProvider {
|
||||
/**
|
||||
* Standard property: User name for authentication.
|
||||
* <p>Type: <code>java.lang.String</code>
|
||||
**/
|
||||
public static final String USERNAME_PROPERTY =
|
||||
"javax.xml.ws.security.auth.username";
|
||||
|
||||
/**
|
||||
* Standard property: Password for authentication.
|
||||
* <p>Type: <code>java.lang.String</code>
|
||||
**/
|
||||
public static final String PASSWORD_PROPERTY =
|
||||
"javax.xml.ws.security.auth.password";
|
||||
|
||||
/**
|
||||
* Standard property: Target service endpoint address. The
|
||||
* URI scheme for the endpoint address specification MUST
|
||||
* correspond to the protocol/transport binding for the
|
||||
* binding in use.
|
||||
* <p>Type: <code>java.lang.String</code>
|
||||
**/
|
||||
public static final String ENDPOINT_ADDRESS_PROPERTY =
|
||||
"javax.xml.ws.service.endpoint.address";
|
||||
|
||||
/**
|
||||
* Standard property: This boolean property is used by a service
|
||||
* client to indicate whether or not it wants to participate in
|
||||
* a session with a service endpoint. If this property is set to
|
||||
* <code>true</code>, the service client indicates that it wants the session
|
||||
* to be maintained. If set to <code>false</code>, the session is not maintained.
|
||||
* The default value for this property is <code>false</code>.
|
||||
* <p>Type: <code>java.lang.Boolean</code>
|
||||
**/
|
||||
public static final String SESSION_MAINTAIN_PROPERTY =
|
||||
"javax.xml.ws.session.maintain";
|
||||
|
||||
/**
|
||||
* Standard property for SOAPAction. This boolean property
|
||||
* indicates whether or not the value of the
|
||||
* <code>javax.xml.ws.soap.http.soapaction.uri</code> property
|
||||
* is used for the value of the SOAPAction. The
|
||||
* default value of this property is <code>false</code> indicating
|
||||
* that the
|
||||
* <code>javax.xml.ws.soap.http.soapaction.uri</code> property
|
||||
* is not used for the value of the SOAPAction, however,
|
||||
* if WS-Addressing is enabled, the default value is
|
||||
* <code>true</code>.
|
||||
*
|
||||
* <p>Type: <code>java.lang.Boolean</code>
|
||||
**/
|
||||
public static final String SOAPACTION_USE_PROPERTY =
|
||||
"javax.xml.ws.soap.http.soapaction.use";
|
||||
|
||||
/**
|
||||
* Standard property for SOAPAction. Indicates the SOAPAction
|
||||
* URI if the <code>javax.xml.ws.soap.http.soapaction.use</code>
|
||||
* property is set to <code>true</code>. If WS-Addressing
|
||||
* is enabled, this value will also be used for the value of the
|
||||
* WS-Addressing Action header. If this property is not set,
|
||||
* the default SOAPAction and WS-Addressing Action will be sent.
|
||||
*
|
||||
* <p>Type: <code>java.lang.String</code>
|
||||
**/
|
||||
public static final String SOAPACTION_URI_PROPERTY =
|
||||
"javax.xml.ws.soap.http.soapaction.uri";
|
||||
|
||||
/**
|
||||
* Get the context that is used to initialize the message context
|
||||
* for request messages.
|
||||
*
|
||||
* Modifications to the request context do not affect the message context of
|
||||
* either synchronous or asynchronous operations that have already been
|
||||
* started.
|
||||
*
|
||||
* @return The context that is used in processing request messages.
|
||||
**/
|
||||
Map<String, Object> getRequestContext();
|
||||
|
||||
/**
|
||||
* Get the context that resulted from processing a response message.
|
||||
*
|
||||
* The returned context is for the most recently completed synchronous
|
||||
* operation. Subsequent synchronous operation invocations overwrite the
|
||||
* response context. Asynchronous operations return their response context
|
||||
* via the Response interface.
|
||||
*
|
||||
* @return The context that resulted from processing the latest
|
||||
* response messages.
|
||||
**/
|
||||
Map<String, Object> getResponseContext();
|
||||
|
||||
/**
|
||||
* Get the Binding for this binding provider.
|
||||
*
|
||||
* @return The Binding for this binding provider.
|
||||
**/
|
||||
Binding getBinding();
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Returns the <code>EndpointReference</code> associated with
|
||||
* this <code>BindingProvider</code> instance.
|
||||
* <p>
|
||||
* If the Binding for this <code>bindingProvider</code> is
|
||||
* either SOAP1.1/HTTP or SOAP1.2/HTTP, then a
|
||||
* <code>W3CEndpointReference</code> MUST be returned.
|
||||
*
|
||||
* @return EndpointReference of the target endpoint associated with this
|
||||
* <code>BindingProvider</code> instance.
|
||||
*
|
||||
* @throws java.lang.UnsupportedOperationException If this
|
||||
* <code>BindingProvider</code> uses the XML/HTTP binding.
|
||||
*
|
||||
* @see W3CEndpointReference
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
*/
|
||||
public EndpointReference getEndpointReference();
|
||||
|
||||
|
||||
/**
|
||||
* Returns the <code>EndpointReference</code> associated with
|
||||
* this <code>BindingProvider</code> instance. The instance
|
||||
* returned will be of type <code>clazz</code>.
|
||||
*
|
||||
* @param clazz Specifies the type of <code>EndpointReference</code>
|
||||
* that MUST be returned.
|
||||
|
||||
* @return EndpointReference of the target endpoint associated with this
|
||||
* <code>BindingProvider</code> instance. MUST be of type
|
||||
* <code>clazz</code>.
|
||||
|
||||
* @throws WebServiceException If the Class <code>clazz</code>
|
||||
* is not supported by this implementation.
|
||||
* @throws java.lang.UnsupportedOperationException If this
|
||||
* <code>BindingProvider</code> uses the XML/HTTP binding.
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
*/
|
||||
public <T extends EndpointReference> T getEndpointReference(Class<T> clazz);
|
||||
}
|
||||
62
jdkSrc/jdk8/javax/xml/ws/BindingType.java
Normal file
62
jdkSrc/jdk8/javax/xml/ws/BindingType.java
Normal file
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
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;
|
||||
|
||||
/**
|
||||
* The <code>BindingType</code> annotation is used to
|
||||
* specify the binding to use for a web service
|
||||
* endpoint implementation class.
|
||||
* <p>
|
||||
* This annotation may be overriden programmatically or via
|
||||
* deployment descriptors, depending on the platform in use.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
*
|
||||
**/
|
||||
@Target(ElementType.TYPE)
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
public @interface BindingType {
|
||||
/**
|
||||
* A binding identifier (a URI).
|
||||
* If not specified, the default is the SOAP 1.1 / HTTP binding.
|
||||
* <p>
|
||||
* See the <code>SOAPBinding</code> and <code>HTTPBinding</code>
|
||||
* for the definition of the standard binding identifiers.
|
||||
*
|
||||
* @see javax.xml.ws.Binding
|
||||
* @see javax.xml.ws.soap.SOAPBinding#SOAP11HTTP_BINDING
|
||||
* @see javax.xml.ws.soap.SOAPBinding#SOAP12HTTP_BINDING
|
||||
* @see javax.xml.ws.http.HTTPBinding#HTTP_BINDING
|
||||
*/
|
||||
String value() default "" ;
|
||||
}
|
||||
116
jdkSrc/jdk8/javax/xml/ws/Dispatch.java
Normal file
116
jdkSrc/jdk8/javax/xml/ws/Dispatch.java
Normal file
@@ -0,0 +1,116 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
import java.util.concurrent.Future;
|
||||
|
||||
/** The <code>Dispatch</code> interface provides support
|
||||
* for the dynamic invocation of a service endpoint operations. The
|
||||
* <code>javax.xml.ws.Service</code>
|
||||
* class acts as a factory for the creation of <code>Dispatch</code>
|
||||
* instances.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
**/
|
||||
public interface Dispatch<T> extends BindingProvider {
|
||||
|
||||
/** Invoke a service operation synchronously.
|
||||
*
|
||||
* The client is responsible for ensuring that the <code>msg</code> object
|
||||
* when marshalled is formed according to the requirements of the protocol
|
||||
* binding in use.
|
||||
*
|
||||
* @param msg An object that will form the message or payload of
|
||||
* the message used to invoke the operation.
|
||||
* @return The response message or message payload to the
|
||||
* operation invocation.
|
||||
* @throws WebServiceException If a fault occurs during communication with
|
||||
* the service
|
||||
* @throws WebServiceException If there is any error in the configuration of
|
||||
* the <code>Dispatch</code> instance
|
||||
**/
|
||||
public T invoke(T msg);
|
||||
|
||||
/** Invoke a service operation asynchronously. The
|
||||
* method returns without waiting for the response to the operation
|
||||
* invocation, the results of the operation are obtained by polling the
|
||||
* returned <code>Response</code>.
|
||||
* <p>
|
||||
* The client is responsible for ensuring that the <code>msg</code> object
|
||||
* when marshalled is formed according to the requirements of the protocol
|
||||
* binding in use.
|
||||
*
|
||||
* @param msg An object that will form the message or payload of
|
||||
* the message used to invoke the operation.
|
||||
* @return The response message or message payload to the
|
||||
* operation invocation.
|
||||
* @throws WebServiceException If there is any error in the configuration of
|
||||
* the <code>Dispatch</code> instance
|
||||
**/
|
||||
public Response<T> invokeAsync(T msg);
|
||||
|
||||
/** Invoke a service operation asynchronously. The
|
||||
* method returns without waiting for the response to the operation
|
||||
* invocation, the results of the operation are communicated to the client
|
||||
* via the passed in <code>handler</code>.
|
||||
* <p>
|
||||
* The client is responsible for ensuring that the <code>msg</code> object
|
||||
* when marshalled is formed according to the requirements of the protocol
|
||||
* binding in use.
|
||||
*
|
||||
* @param msg An object that will form the message or payload of
|
||||
* the message used to invoke the operation.
|
||||
* @param handler The handler object that will receive the
|
||||
* response to the operation invocation.
|
||||
* @return A <code>Future</code> object that may be used to check the status
|
||||
* of the operation invocation. This object MUST NOT be used to try to
|
||||
* obtain the results of the operation - the object returned from
|
||||
* <code>Future<?>.get()</code> is implementation dependent
|
||||
* and any use of it will result in non-portable behaviour.
|
||||
* @throws WebServiceException If there is any error in the configuration of
|
||||
* the <code>Dispatch</code> instance
|
||||
**/
|
||||
public Future<?> invokeAsync(T msg, AsyncHandler<T> handler);
|
||||
|
||||
/** Invokes a service operation using the one-way
|
||||
* interaction mode. The operation invocation is logically non-blocking,
|
||||
* subject to the capabilities of the underlying protocol, no results
|
||||
* are returned. When
|
||||
* the protocol in use is SOAP/HTTP, this method MUST block until
|
||||
* an HTTP response code has been received or an error occurs.
|
||||
* <p>
|
||||
* The client is responsible for ensuring that the <code>msg</code> object
|
||||
* when marshalled is formed according to the requirements of the protocol
|
||||
* binding in use.
|
||||
*
|
||||
* @param msg An object that will form the message or payload of
|
||||
* the message used to invoke the operation.
|
||||
* @throws WebServiceException If there is any error in the configuration of
|
||||
* the <code>Dispatch</code> instance or if an error occurs during the
|
||||
* invocation.
|
||||
**/
|
||||
public void invokeOneWay(T msg);
|
||||
}
|
||||
498
jdkSrc/jdk8/javax/xml/ws/Endpoint.java
Normal file
498
jdkSrc/jdk8/javax/xml/ws/Endpoint.java
Normal file
@@ -0,0 +1,498 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import javax.xml.ws.spi.Provider;
|
||||
import javax.xml.ws.spi.http.HttpContext;
|
||||
import javax.xml.ws.wsaddressing.W3CEndpointReference;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
|
||||
/**
|
||||
* A Web service endpoint.
|
||||
*
|
||||
* <p>Endpoints are created using the static methods defined in this
|
||||
* class. An endpoint is always tied to one <code>Binding</code>
|
||||
* and one implementor, both set at endpoint creation time.
|
||||
*
|
||||
* <p>An endpoint is either in a published or an unpublished state.
|
||||
* The <code>publish</code> methods can be used to start publishing
|
||||
* an endpoint, at which point it starts accepting incoming requests.
|
||||
* Conversely, the <code>stop</code> method can be used to stop
|
||||
* accepting incoming requests and take the endpoint down.
|
||||
* Once stopped, an endpoint cannot be published again.
|
||||
*
|
||||
* <p>An <code>Executor</code> may be set on the endpoint in order
|
||||
* to gain better control over the threads used to dispatch incoming
|
||||
* requests. For instance, thread pooling with certain parameters
|
||||
* can be enabled by creating a <code>ThreadPoolExecutor</code> and
|
||||
* registering it with the endpoint.
|
||||
*
|
||||
* <p>Handler chains can be set using the contained <code>Binding</code>.
|
||||
*
|
||||
* <p>An endpoint may have a list of metadata documents, such as WSDL
|
||||
* and XMLSchema documents, bound to it. At publishing time, the
|
||||
* JAX-WS implementation will try to reuse as much of that metadata
|
||||
* as possible instead of generating new ones based on the annotations
|
||||
* present on the implementor.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
*
|
||||
* @see javax.xml.ws.Binding
|
||||
* @see javax.xml.ws.BindingType
|
||||
* @see javax.xml.ws.soap.SOAPBinding
|
||||
* @see java.util.concurrent.Executor
|
||||
*
|
||||
**/
|
||||
public abstract class Endpoint {
|
||||
|
||||
/** Standard property: name of WSDL service.
|
||||
* <p>Type: javax.xml.namespace.QName
|
||||
**/
|
||||
public static final String WSDL_SERVICE = "javax.xml.ws.wsdl.service";
|
||||
|
||||
/** Standard property: name of WSDL port.
|
||||
* <p>Type: javax.xml.namespace.QName
|
||||
**/
|
||||
public static final String WSDL_PORT = "javax.xml.ws.wsdl.port";
|
||||
|
||||
|
||||
/**
|
||||
* Creates an endpoint with the specified implementor object. If there is
|
||||
* a binding specified via a BindingType annotation then it MUST be used else
|
||||
* a default of SOAP 1.1 / HTTP binding MUST be used.
|
||||
* <p>
|
||||
* The newly created endpoint may be published by calling
|
||||
* one of the {@link javax.xml.ws.Endpoint#publish(String)} and
|
||||
* {@link javax.xml.ws.Endpoint#publish(Object)} methods.
|
||||
*
|
||||
*
|
||||
* @param implementor The endpoint implementor.
|
||||
*
|
||||
* @return The newly created endpoint.
|
||||
*
|
||||
**/
|
||||
public static Endpoint create(Object implementor) {
|
||||
return create(null, implementor);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an endpoint with the specified implementor object and web
|
||||
* service features. If there is a binding specified via a BindingType
|
||||
* annotation then it MUST be used else a default of SOAP 1.1 / HTTP
|
||||
* binding MUST be used.
|
||||
* <p>
|
||||
* The newly created endpoint may be published by calling
|
||||
* one of the {@link javax.xml.ws.Endpoint#publish(String)} and
|
||||
* {@link javax.xml.ws.Endpoint#publish(Object)} methods.
|
||||
*
|
||||
*
|
||||
* @param implementor The endpoint implementor.
|
||||
* @param features A list of WebServiceFeature to configure on the
|
||||
* endpoint. Supported features not in the <code>features
|
||||
* </code> parameter will have their default values.
|
||||
*
|
||||
*
|
||||
* @return The newly created endpoint.
|
||||
* @since JAX-WS 2.2
|
||||
*
|
||||
*/
|
||||
public static Endpoint create(Object implementor, WebServiceFeature ... features) {
|
||||
return create(null, implementor, features);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an endpoint with the specified binding type and
|
||||
* implementor object.
|
||||
* <p>
|
||||
* The newly created endpoint may be published by calling
|
||||
* one of the {@link javax.xml.ws.Endpoint#publish(String)} and
|
||||
* {@link javax.xml.ws.Endpoint#publish(Object)} methods.
|
||||
*
|
||||
* @param bindingId A URI specifying the binding to use. If the bindingID is
|
||||
* <code>null</code> and no binding is specified via a BindingType
|
||||
* annotation then a default SOAP 1.1 / HTTP binding MUST be used.
|
||||
*
|
||||
* @param implementor The endpoint implementor.
|
||||
*
|
||||
* @return The newly created endpoint.
|
||||
*
|
||||
**/
|
||||
public static Endpoint create(String bindingId, Object implementor) {
|
||||
return Provider.provider().createEndpoint(bindingId, implementor);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an endpoint with the specified binding type,
|
||||
* implementor object, and web service features.
|
||||
* <p>
|
||||
* The newly created endpoint may be published by calling
|
||||
* one of the {@link javax.xml.ws.Endpoint#publish(String)} and
|
||||
* {@link javax.xml.ws.Endpoint#publish(Object)} methods.
|
||||
*
|
||||
* @param bindingId A URI specifying the binding to use. If the bindingID is
|
||||
* <code>null</code> and no binding is specified via a BindingType
|
||||
* annotation then a default SOAP 1.1 / HTTP binding MUST be used.
|
||||
*
|
||||
* @param implementor The endpoint implementor.
|
||||
*
|
||||
* @param features A list of WebServiceFeature to configure on the
|
||||
* endpoint. Supported features not in the <code>features
|
||||
* </code> parameter will have their default values.
|
||||
*
|
||||
* @return The newly created endpoint.
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
public static Endpoint create(String bindingId, Object implementor, WebServiceFeature ... features) {
|
||||
return Provider.provider().createEndpoint(bindingId, implementor, features);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the binding for this endpoint.
|
||||
*
|
||||
* @return The binding for this endpoint
|
||||
**/
|
||||
public abstract Binding getBinding();
|
||||
|
||||
/**
|
||||
* Returns the implementation object for this endpoint.
|
||||
*
|
||||
* @return The implementor for this endpoint
|
||||
**/
|
||||
public abstract Object getImplementor();
|
||||
|
||||
/**
|
||||
* Publishes this endpoint at the given address.
|
||||
* The necessary server infrastructure will be created and
|
||||
* configured by the JAX-WS implementation using some default configuration.
|
||||
* In order to get more control over the server configuration, please
|
||||
* use the {@link javax.xml.ws.Endpoint#publish(Object)} method instead.
|
||||
*
|
||||
* @param address A URI specifying the address to use. The address
|
||||
* MUST be compatible with the binding specified at the
|
||||
* time the endpoint was created.
|
||||
*
|
||||
* @throws java.lang.IllegalArgumentException
|
||||
* If the provided address URI is not usable
|
||||
* in conjunction with the endpoint's binding.
|
||||
*
|
||||
* @throws java.lang.IllegalStateException
|
||||
* If the endpoint has been published already or it has been stopped.
|
||||
*
|
||||
* @throws java.lang.SecurityException
|
||||
* If a <code>java.lang.SecurityManger</code>
|
||||
* is being used and the application doesn't have the
|
||||
* <code>WebServicePermission("publishEndpoint")</code> permission.
|
||||
**/
|
||||
public abstract void publish(String address);
|
||||
|
||||
/**
|
||||
* Creates and publishes an endpoint for the specified implementor
|
||||
* object at the given address.
|
||||
* <p>
|
||||
* The necessary server infrastructure will be created and
|
||||
* configured by the JAX-WS implementation using some default configuration.
|
||||
*
|
||||
* In order to get more control over the server configuration, please
|
||||
* use the {@link javax.xml.ws.Endpoint#create(String,Object)} and
|
||||
* {@link javax.xml.ws.Endpoint#publish(Object)} methods instead.
|
||||
*
|
||||
* @param address A URI specifying the address and transport/protocol
|
||||
* to use. A http: URI MUST result in the SOAP 1.1/HTTP
|
||||
* binding being used. Implementations may support other
|
||||
* URI schemes.
|
||||
* @param implementor The endpoint implementor.
|
||||
*
|
||||
* @return The newly created endpoint.
|
||||
*
|
||||
* @throws java.lang.SecurityException
|
||||
* If a <code>java.lang.SecurityManger</code>
|
||||
* is being used and the application doesn't have the
|
||||
* <code>WebServicePermission("publishEndpoint")</code> permission.
|
||||
*
|
||||
**/
|
||||
public static Endpoint publish(String address, Object implementor) {
|
||||
return Provider.provider().createAndPublishEndpoint(address, implementor);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates and publishes an endpoint for the specified implementor
|
||||
* object at the given address. The created endpoint is configured
|
||||
* with the web service features.
|
||||
* <p>
|
||||
* The necessary server infrastructure will be created and
|
||||
* configured by the JAX-WS implementation using some default configuration.
|
||||
*
|
||||
* In order to get more control over the server configuration, please
|
||||
* use the {@link javax.xml.ws.Endpoint#create(String,Object)} and
|
||||
* {@link javax.xml.ws.Endpoint#publish(Object)} methods instead.
|
||||
*
|
||||
* @param address A URI specifying the address and transport/protocol
|
||||
* to use. A http: URI MUST result in the SOAP 1.1/HTTP
|
||||
* binding being used. Implementations may support other
|
||||
* URI schemes.
|
||||
* @param implementor The endpoint implementor.
|
||||
* @param features A list of WebServiceFeature to configure on the
|
||||
* endpoint. Supported features not in the <code>features
|
||||
* </code> parameter will have their default values.
|
||||
* @return The newly created endpoint.
|
||||
*
|
||||
* @throws java.lang.SecurityException
|
||||
* If a <code>java.lang.SecurityManger</code>
|
||||
* is being used and the application doesn't have the
|
||||
* <code>WebServicePermission("publishEndpoint")</code> permission.
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
public static Endpoint publish(String address, Object implementor, WebServiceFeature ... features) {
|
||||
return Provider.provider().createAndPublishEndpoint(address, implementor, features);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Publishes this endpoint at the provided server context.
|
||||
* A server context encapsulates the server infrastructure
|
||||
* and addressing information for a particular transport.
|
||||
* For a call to this method to succeed, the server context
|
||||
* passed as an argument to it MUST be compatible with the
|
||||
* endpoint's binding.
|
||||
*
|
||||
* @param serverContext An object representing a server
|
||||
* context to be used for publishing the endpoint.
|
||||
*
|
||||
* @throws java.lang.IllegalArgumentException
|
||||
* If the provided server context is not
|
||||
* supported by the implementation or turns
|
||||
* out to be unusable in conjunction with the
|
||||
* endpoint's binding.
|
||||
*
|
||||
* @throws java.lang.IllegalStateException
|
||||
* If the endpoint has been published already or it has been stopped.
|
||||
*
|
||||
* @throws java.lang.SecurityException
|
||||
* If a <code>java.lang.SecurityManger</code>
|
||||
* is being used and the application doesn't have the
|
||||
* <code>WebServicePermission("publishEndpoint")</code> permission.
|
||||
**/
|
||||
public abstract void publish(Object serverContext);
|
||||
|
||||
/**
|
||||
* Publishes this endpoint at the provided server context.
|
||||
* A server context encapsulates the server infrastructure
|
||||
* and addressing information for a particular transport.
|
||||
* For a call to this method to succeed, the server context
|
||||
* passed as an argument to it MUST be compatible with the
|
||||
* endpoint's binding.
|
||||
*
|
||||
* <p>
|
||||
* This is meant for container developers to publish the
|
||||
* the endpoints portably and not intended for the end
|
||||
* developers.
|
||||
*
|
||||
*
|
||||
* @param serverContext An object representing a server
|
||||
* context to be used for publishing the endpoint.
|
||||
*
|
||||
* @throws java.lang.IllegalArgumentException
|
||||
* If the provided server context is not
|
||||
* supported by the implementation or turns
|
||||
* out to be unusable in conjunction with the
|
||||
* endpoint's binding.
|
||||
*
|
||||
* @throws java.lang.IllegalStateException
|
||||
* If the endpoint has been published already or it has been stopped.
|
||||
*
|
||||
* @throws java.lang.SecurityException
|
||||
* If a <code>java.lang.SecurityManger</code>
|
||||
* is being used and the application doesn't have the
|
||||
* <code>WebServicePermission("publishEndpoint")</code> permission.
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
public void publish(HttpContext serverContext) {
|
||||
throw new UnsupportedOperationException("JAX-WS 2.2 implementation must override this default behaviour.");
|
||||
}
|
||||
|
||||
/**
|
||||
* Stops publishing this endpoint.
|
||||
*
|
||||
* If the endpoint is not in a published state, this method
|
||||
* has no effect.
|
||||
*
|
||||
**/
|
||||
public abstract void stop();
|
||||
|
||||
/**
|
||||
* Returns true if the endpoint is in the published state.
|
||||
*
|
||||
* @return <code>true</code> if the endpoint is in the published state.
|
||||
**/
|
||||
public abstract boolean isPublished();
|
||||
|
||||
/**
|
||||
* Returns a list of metadata documents for the service.
|
||||
*
|
||||
* @return <code>List<javax.xml.transform.Source></code> A list of metadata documents for the service
|
||||
**/
|
||||
public abstract List<javax.xml.transform.Source> getMetadata();
|
||||
|
||||
/**
|
||||
* Sets the metadata for this endpoint.
|
||||
*
|
||||
* @param metadata A list of XML document sources containing
|
||||
* metadata information for the endpoint (e.g.
|
||||
* WSDL or XML Schema documents)
|
||||
*
|
||||
* @throws java.lang.IllegalStateException If the endpoint
|
||||
* has already been published.
|
||||
**/
|
||||
public abstract void setMetadata(List<javax.xml.transform.Source> metadata);
|
||||
|
||||
/**
|
||||
* Returns the executor for this <code>Endpoint</code>instance.
|
||||
*
|
||||
* The executor is used to dispatch an incoming request to
|
||||
* the implementor object.
|
||||
*
|
||||
* @return The <code>java.util.concurrent.Executor</code> to be
|
||||
* used to dispatch a request.
|
||||
*
|
||||
* @see java.util.concurrent.Executor
|
||||
**/
|
||||
public abstract java.util.concurrent.Executor getExecutor();
|
||||
|
||||
/**
|
||||
* Sets the executor for this <code>Endpoint</code> instance.
|
||||
*
|
||||
* The executor is used to dispatch an incoming request to
|
||||
* the implementor object.
|
||||
*
|
||||
* If this <code>Endpoint</code> is published using the
|
||||
* <code>publish(Object)</code> method and the specified server
|
||||
* context defines its own threading behavior, the executor
|
||||
* may be ignored.
|
||||
*
|
||||
* @param executor The <code>java.util.concurrent.Executor</code>
|
||||
* to be used to dispatch a request.
|
||||
*
|
||||
* @throws SecurityException If the instance does not support
|
||||
* setting an executor for security reasons (e.g. the
|
||||
* necessary permissions are missing).
|
||||
*
|
||||
* @see java.util.concurrent.Executor
|
||||
**/
|
||||
public abstract void setExecutor(java.util.concurrent.Executor executor);
|
||||
|
||||
|
||||
/**
|
||||
* Returns the property bag for this <code>Endpoint</code> instance.
|
||||
*
|
||||
* @return Map<String,Object> The property bag
|
||||
* associated with this instance.
|
||||
**/
|
||||
public abstract Map<String,Object> getProperties();
|
||||
|
||||
/**
|
||||
* Sets the property bag for this <code>Endpoint</code> instance.
|
||||
*
|
||||
* @param properties The property bag associated with
|
||||
* this instance.
|
||||
**/
|
||||
public abstract void setProperties(Map<String,Object> properties);
|
||||
|
||||
/**
|
||||
* Returns the <code>EndpointReference</code> associated with
|
||||
* this <code>Endpoint</code> instance.
|
||||
* <p>
|
||||
* If the Binding for this <code>bindingProvider</code> is
|
||||
* either SOAP1.1/HTTP or SOAP1.2/HTTP, then a
|
||||
* <code>W3CEndpointReference</code> MUST be returned.
|
||||
*
|
||||
* @param referenceParameters Reference parameters to be associated with the
|
||||
* returned <code>EndpointReference</code> instance.
|
||||
* @return EndpointReference of this <code>Endpoint</code> instance.
|
||||
* If the returned <code>EndpointReference</code> is of type
|
||||
* <code>W3CEndpointReference</code> then it MUST contain the
|
||||
* the specified <code>referenceParameters</code>.
|
||||
|
||||
* @throws WebServiceException If any error in the creation of
|
||||
* the <code>EndpointReference</code> or if the <code>Endpoint</code> is
|
||||
* not in the published state.
|
||||
* @throws UnsupportedOperationException If this <code>BindingProvider</code>
|
||||
* uses the XML/HTTP binding.
|
||||
*
|
||||
* @see W3CEndpointReference
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
**/
|
||||
public abstract EndpointReference getEndpointReference(Element... referenceParameters);
|
||||
|
||||
|
||||
/**
|
||||
* Returns the <code>EndpointReference</code> associated with
|
||||
* this <code>Endpoint</code> instance.
|
||||
*
|
||||
* @param clazz Specifies the type of EndpointReference 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 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);
|
||||
|
||||
/**
|
||||
* By settng a <code>EndpointContext</code>, JAX-WS runtime knows about
|
||||
* addresses of other endpoints in an application. If multiple endpoints
|
||||
* share different ports of a WSDL, then the multiple port addresses
|
||||
* are patched when the WSDL is accessed.
|
||||
*
|
||||
* <p>
|
||||
* This needs to be set before publishing the endpoints.
|
||||
*
|
||||
* @param ctxt that is shared for multiple endpoints
|
||||
* @throws java.lang.IllegalStateException
|
||||
* If the endpoint has been published already or it has been stopped.
|
||||
*
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
public void setEndpointContext(EndpointContext ctxt) {
|
||||
throw new UnsupportedOperationException("JAX-WS 2.2 implementation must override this default behaviour.");
|
||||
}
|
||||
}
|
||||
59
jdkSrc/jdk8/javax/xml/ws/EndpointContext.java
Normal file
59
jdkSrc/jdk8/javax/xml/ws/EndpointContext.java
Normal file
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
import javax.xml.ws.Endpoint;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* <code>EndpointContext</code> allows multiple endpoints in an application
|
||||
* to share any information. For example, servlet application's war may
|
||||
* contain multiple endpoints and these endpoints can get addresses of each
|
||||
* other by sharing this context. If multiple endpoints share different
|
||||
* ports of a WSDL, then the multiple port addresses can be patched
|
||||
* when the WSDL is accessed. It also allows all endpoints to share any
|
||||
* other runtime information.
|
||||
*
|
||||
* <p>
|
||||
* This needs to be set by using {@link Endpoint#setEndpointContext}
|
||||
* before {@link Endpoint#publish} methods.
|
||||
*
|
||||
* @author Jitendra Kotamraju
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
public abstract class EndpointContext {
|
||||
|
||||
/**
|
||||
* This gives list of endpoints in an application. For e.g in
|
||||
* servlet container, a war file may contain multiple endpoints.
|
||||
* In case of http, these endpoints are hosted on the same http
|
||||
* server.
|
||||
*
|
||||
* @return list of all endpoints in an application
|
||||
*/
|
||||
public abstract Set<Endpoint> getEndpoints();
|
||||
|
||||
}
|
||||
192
jdkSrc/jdk8/javax/xml/ws/EndpointReference.java
Normal file
192
jdkSrc/jdk8/javax/xml/ws/EndpointReference.java
Normal file
@@ -0,0 +1,192 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
import javax.xml.bind.annotation.XmlTransient;
|
||||
import javax.xml.transform.Result;
|
||||
import javax.xml.transform.Source;
|
||||
import javax.xml.transform.stream.StreamResult;
|
||||
import javax.xml.ws.spi.Provider;
|
||||
import javax.xml.ws.wsaddressing.W3CEndpointReference;
|
||||
import java.io.StringWriter;
|
||||
|
||||
/**
|
||||
* 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/">
|
||||
* Web Services Addressing 1.0 - Core</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 Web Services 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 create
|
||||
* a vendor specific <code>EndpointReferences</code> that the
|
||||
* vendor can use to flag a different version of
|
||||
* addressing.
|
||||
* <p>
|
||||
* Web service developers that wish to pass or return
|
||||
* <code>EndpointReference</code> in Java methods in an
|
||||
* SEI should use
|
||||
* concrete instances of an <code>EndpointReference</code> such
|
||||
* as the <code>W3CEndpointReference</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 <code>null</code> <code>eprInfoset</code> value is given.
|
||||
*/
|
||||
public static EndpointReference readFrom(Source eprInfoset) {
|
||||
return Provider.provider().readEndpointReference(eprInfoset);
|
||||
}
|
||||
|
||||
/**
|
||||
* write this <code>EndpointReference</code> to the specified infoset format
|
||||
*
|
||||
* @param result for writing infoset
|
||||
* @throws WebServiceException
|
||||
* if there is an error writing the
|
||||
* <code>EndpointReference</code> to the specified <code>result</code>.
|
||||
*
|
||||
* @throws java.lang.IllegalArgumentException
|
||||
* If the <code>null</code> <code>result</code> value is given.
|
||||
*/
|
||||
public abstract void writeTo(Result result);
|
||||
|
||||
|
||||
/**
|
||||
* The <code>getPort</code> 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>. For this method
|
||||
* to successfully return a proxy, WSDL metadata MUST be available and the
|
||||
* <code>EndpointReference</code> instance MUST contain an implementation understood
|
||||
* <code>serviceName</code> metadata.
|
||||
* <p>
|
||||
* Because this port is not created from a <code>Service</code> object, handlers
|
||||
* will not automatically be configured, and the <code>HandlerResolver</code>
|
||||
* and <code>Executor</code> 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 <code>WebServiceFeatures</code> 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 a feature is enabled that is not compatible with
|
||||
* this port or is unsupported.
|
||||
* </UL>
|
||||
*
|
||||
* @see java.lang.reflect.Proxy
|
||||
* @see WebServiceFeature
|
||||
**/
|
||||
public <T> T getPort(Class<T> serviceEndpointInterface,
|
||||
WebServiceFeature... features) {
|
||||
return Provider.provider().getPort(this, serviceEndpointInterface,
|
||||
features);
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays EPR infoset for debugging convenience.
|
||||
*/
|
||||
public String toString() {
|
||||
StringWriter w = new StringWriter();
|
||||
writeTo(new StreamResult(w));
|
||||
return w.toString();
|
||||
}
|
||||
}
|
||||
164
jdkSrc/jdk8/javax/xml/ws/FaultAction.java
Normal file
164
jdkSrc/jdk8/javax/xml/ws/FaultAction.java
Normal file
@@ -0,0 +1,164 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
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 {@link Action}
|
||||
* annotation to allow an explicit association of a WS-Addressing
|
||||
* <code>Action</code> message addressing property with the <code>fault</code>
|
||||
* messages of the WSDL operation mapped from the exception class.
|
||||
* <p>
|
||||
* The <code>wsam:Action</code> attribute value in the <code>fault</code>
|
||||
* message in the generated WSDL operation mapped for <code>className</code>
|
||||
* class is equal to the corresponding value in the <code>FaultAction</code>.
|
||||
* For the exact computation of <code>wsam:Action</code> values for the
|
||||
* fault messages, refer to the algorithm in the JAX-WS specification.
|
||||
*
|
||||
* <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>
|
||||
* @WebService(targetNamespace="http://example.com/numbers")
|
||||
* public class AddNumbersImpl {
|
||||
* @Action(
|
||||
* fault = {
|
||||
* <b>@FaultAction(className=AddNumbersException.class, value="http://example.com/faultAction")</b>
|
||||
* })
|
||||
* public int addNumbers(int number1, int number2)
|
||||
* throws AddNumbersException {
|
||||
* return number1 + number2;
|
||||
* }
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* The generated WSDL looks like:
|
||||
*
|
||||
* <pre>
|
||||
* <definitions targetNamespace="http://example.com/numbers" ...>
|
||||
* ...
|
||||
* <portType name="AddNumbersPortType">
|
||||
* <operation name="AddNumbers">
|
||||
* ...
|
||||
* <fault message="tns:AddNumbersException" name="AddNumbersException"
|
||||
* <b>wsam:Action="http://example.com/faultAction"</b>/>
|
||||
* </operation>
|
||||
* </portType>
|
||||
* ...
|
||||
* </definitions>
|
||||
* </pre>
|
||||
*
|
||||
* <p>
|
||||
* Example 2: Here is an example that shows if the explicit value for <code>Action</code>
|
||||
* message addressing property for the service specific exception is not present.
|
||||
*
|
||||
* <pre>
|
||||
* @WebService(targetNamespace="http://example.com/numbers")
|
||||
* public class AddNumbersImpl {
|
||||
* public int addNumbers(int number1, int number2)
|
||||
* throws AddNumbersException {
|
||||
* return number1 + number2;
|
||||
* }
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* The generated WSDL looks like:
|
||||
*
|
||||
* <pre>
|
||||
* <definitions targetNamespace="http://example.com/numbers" ...>
|
||||
* ...
|
||||
* <portType name="AddNumbersPortType">
|
||||
* <operation name="AddNumbers">
|
||||
* ...
|
||||
* <fault message="tns:addNumbersFault" name="InvalidNumbers"
|
||||
* <b>wsam:Action="http://example.com/numbers/AddNumbersPortType/AddNumbers/Fault/AddNumbersException"</b>/>
|
||||
* </operation>
|
||||
* </portType>
|
||||
* ...
|
||||
* </definitions>
|
||||
* </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>
|
||||
* @WebService(targetNamespace="http://example.com/numbers")
|
||||
* public class AddNumbersImpl {
|
||||
* @Action(
|
||||
* fault = {
|
||||
* <b>@FaultAction(className=AddNumbersException.class, value="http://example.com/addFaultAction"),
|
||||
* @FaultAction(className=TooBigNumbersException.class, value="http://example.com/toobigFaultAction")</b>
|
||||
* })
|
||||
* public int addNumbers(int number1, int number2)
|
||||
* throws AddNumbersException, TooBigNumbersException {
|
||||
* return number1 + number2;
|
||||
* }
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* The generated WSDL looks like:
|
||||
*
|
||||
* <pre>
|
||||
* <definitions targetNamespace="http://example.com/numbers" ...>
|
||||
* ...
|
||||
* <portType name="AddNumbersPortType">
|
||||
* <operation name="AddNumbers">
|
||||
* ...
|
||||
* <fault message="tns:addNumbersFault" name="AddNumbersException"
|
||||
* <b>wsam:Action="http://example.com/addFaultAction"</b>/>
|
||||
* <fault message="tns:tooBigNumbersFault" name="TooBigNumbersException"
|
||||
* <b>wsam:Action="http://example.com/toobigFaultAction"</b>/>
|
||||
* </operation>
|
||||
* </portType>
|
||||
* ...
|
||||
* </definitions>
|
||||
* </pre>
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
*/
|
||||
|
||||
@Documented
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.METHOD)
|
||||
public @interface FaultAction {
|
||||
/**
|
||||
* Name of the exception class
|
||||
*/
|
||||
Class<? extends Exception> className();
|
||||
|
||||
/**
|
||||
* Value of WS-Addressing <code>Action</code> message addressing property for the exception
|
||||
*/
|
||||
String value() default "";
|
||||
}
|
||||
58
jdkSrc/jdk8/javax/xml/ws/Holder.java
Normal file
58
jdkSrc/jdk8/javax/xml/ws/Holder.java
Normal file
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* Holds a value of type <code>T</code>.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
*/
|
||||
public final class Holder<T> implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 2623699057546497185L;
|
||||
|
||||
/**
|
||||
* The value contained in the holder.
|
||||
*/
|
||||
public T value;
|
||||
|
||||
/**
|
||||
* Creates a new holder with a <code>null</code> value.
|
||||
*/
|
||||
public Holder() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new holder with the specified value.
|
||||
*
|
||||
* @param value The value to be stored in the holder.
|
||||
*/
|
||||
public Holder(T value) {
|
||||
this.value = value;
|
||||
}
|
||||
}
|
||||
92
jdkSrc/jdk8/javax/xml/ws/LogicalMessage.java
Normal file
92
jdkSrc/jdk8/javax/xml/ws/LogicalMessage.java
Normal file
@@ -0,0 +1,92 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
import javax.xml.transform.Source;
|
||||
import javax.xml.bind.JAXBContext;
|
||||
|
||||
/** The <code>LogicalMessage</code> interface represents a
|
||||
* protocol agnostic XML message and contains methods that
|
||||
* provide access to the payload of the message.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
**/
|
||||
public interface LogicalMessage {
|
||||
|
||||
/** Gets the message payload as an XML source, may be called
|
||||
* multiple times on the same LogicalMessage instance, always
|
||||
* returns a new <code>Source</code> that may be used to retrieve the entire
|
||||
* message payload.
|
||||
*
|
||||
* <p>If the returned <code>Source</code> is an instance of
|
||||
* <code>DOMSource</code>, then
|
||||
* modifications to the encapsulated DOM tree change the message
|
||||
* payload in-place, there is no need to susequently call
|
||||
* <code>setPayload</code>. Other types of <code>Source</code> provide only
|
||||
* read access to the message payload.
|
||||
*
|
||||
* @return The contained message payload; returns <code>null</code> if no
|
||||
* payload is present in this message.
|
||||
**/
|
||||
public Source getPayload();
|
||||
|
||||
/** Sets the message payload
|
||||
*
|
||||
* @param payload message payload
|
||||
* @throws WebServiceException If any error during the setting
|
||||
* of the payload in this message
|
||||
* @throws java.lang.UnsupportedOperationException If this
|
||||
* operation is not supported
|
||||
**/
|
||||
public void setPayload(Source payload);
|
||||
|
||||
/** Gets the message payload as a JAXB object. Note that there is no
|
||||
* connection between the returned object and the message payload,
|
||||
* changes to the payload require calling <code>setPayload</code>.
|
||||
*
|
||||
* @param context The JAXBContext that should be used to unmarshall
|
||||
* the message payload
|
||||
* @return The contained message payload; returns <code>null</code> if no
|
||||
* payload is present in this message
|
||||
* @throws WebServiceException If an error occurs when using a supplied
|
||||
* JAXBContext to unmarshall the payload. The cause of
|
||||
* the WebServiceException is the original JAXBException.
|
||||
**/
|
||||
public Object getPayload(JAXBContext context);
|
||||
|
||||
/** Sets the message payload
|
||||
*
|
||||
* @param payload message payload
|
||||
* @param context The JAXBContext that should be used to marshall
|
||||
* the payload
|
||||
* @throws java.lang.UnsupportedOperationException If this
|
||||
* operation is not supported
|
||||
* @throws WebServiceException If an error occurs when using the supplied
|
||||
* JAXBContext to marshall the payload. The cause of
|
||||
* the WebServiceException is the original JAXBException.
|
||||
**/
|
||||
public void setPayload(Object payload, JAXBContext context);
|
||||
}
|
||||
88
jdkSrc/jdk8/javax/xml/ws/ProtocolException.java
Normal file
88
jdkSrc/jdk8/javax/xml/ws/ProtocolException.java
Normal file
@@ -0,0 +1,88 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
/** The <code>ProtocolException</code> class is a
|
||||
* base class for exceptions related to a specific protocol binding. Subclasses
|
||||
* are used to communicate protocol level fault information to clients and may
|
||||
* be used on the server to control the protocol specific fault representation.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
**/
|
||||
public class ProtocolException extends WebServiceException {
|
||||
/**
|
||||
* Constructs a new protocol exception with <code>null</code> as its detail message. The
|
||||
* cause is not initialized, and may subsequently be initialized by a call
|
||||
* to <code>Throwable.initCause(java.lang.Throwable)</code>.
|
||||
*/
|
||||
public ProtocolException() {
|
||||
super();
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new protocol exception with the specified detail message.
|
||||
* The cause is not initialized, and may subsequently be initialized by a
|
||||
* call to <code>Throwable.initCause(java.lang.Throwable)</code>.
|
||||
*
|
||||
* @param message the detail message. The detail message is saved for later
|
||||
* retrieval by the Throwable.getMessage() method.
|
||||
*/
|
||||
public ProtocolException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new runtime exception with the specified detail message and
|
||||
* cause.
|
||||
*
|
||||
* Note that the detail message associated with cause is not automatically
|
||||
* incorporated in this runtime exception's detail message.
|
||||
*
|
||||
* @param message the detail message (which is saved for later retrieval by
|
||||
* the Throwable.getMessage() method).
|
||||
* @param cause the cause (which is saved for later retrieval by the
|
||||
* <code>Throwable.getCause()</code> method). (A <code>null</code> value is permitted, and indicates
|
||||
* that the cause is nonexistent or unknown.)
|
||||
*/
|
||||
public ProtocolException(String message, Throwable cause) {
|
||||
super(message, cause);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new runtime exception with the specified cause and a detail
|
||||
* message of <code>(cause==null ? null : cause.toString())</code> (which typically
|
||||
* contains the class and detail message of cause). This constructor is
|
||||
* useful for runtime exceptions that are little more than wrappers for
|
||||
* other throwables.
|
||||
*
|
||||
* @param cause the cause (which is saved for later retrieval by the
|
||||
* <code>Throwable.getCause()</code> method). (A <code>null</code> value is permitted, and indicates
|
||||
* that the cause is nonexistent or unknown.)
|
||||
*/
|
||||
public ProtocolException(Throwable cause) {
|
||||
super(cause);
|
||||
}
|
||||
}
|
||||
63
jdkSrc/jdk8/javax/xml/ws/Provider.java
Normal file
63
jdkSrc/jdk8/javax/xml/ws/Provider.java
Normal file
@@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
/**
|
||||
* <p>Service endpoints may implement the <code>Provider</code>
|
||||
* interface as a dynamic alternative to an SEI.
|
||||
*
|
||||
* <p>Implementations are required to support <code>Provider<Source></code>,
|
||||
* <code>Provider<SOAPMessage></code> and
|
||||
* <code>Provider<DataSource></code>, depending on the binding
|
||||
* in use and the service mode.
|
||||
*
|
||||
* <p>The <code>ServiceMode</code> annotation can be used to control whether
|
||||
* the <code>Provider</code> instance will receive entire protocol messages
|
||||
* or just message payloads.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
*
|
||||
* @see javax.xml.transform.Source
|
||||
* @see javax.xml.soap.SOAPMessage
|
||||
* @see javax.xml.ws.ServiceMode
|
||||
**/
|
||||
public interface Provider<T> {
|
||||
|
||||
/** Invokes an operation occording to the contents of the request
|
||||
* message.
|
||||
*
|
||||
* @param request The request message or message payload.
|
||||
* @return The response message or message payload. May be <code>null</code> if
|
||||
there is no response.
|
||||
* @throws WebServiceException If there is an error processing request.
|
||||
* The cause of the <code>WebServiceException</code> may be set to a subclass
|
||||
* of <code>ProtocolException</code> to control the protocol level
|
||||
* representation of the exception.
|
||||
* @see javax.xml.ws.handler.MessageContext
|
||||
* @see javax.xml.ws.ProtocolException
|
||||
**/
|
||||
public T invoke(T request);
|
||||
}
|
||||
72
jdkSrc/jdk8/javax/xml/ws/RequestWrapper.java
Normal file
72
jdkSrc/jdk8/javax/xml/ws/RequestWrapper.java
Normal file
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.Target;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
|
||||
/**
|
||||
* Used to annotate methods in the Service Endpoint Interface with the request
|
||||
* wrapper bean to be used at runtime. The default value of the <code>localName</code> is
|
||||
* the <code>operationName</code>, as defined in <code>WebMethod</code> annotation and the
|
||||
* <code>targetNamespace</code> is the target namespace of the SEI.
|
||||
* <p> When starting from Java this annotation is used resolve
|
||||
* overloading conflicts in document literal mode. Only the <code>className</code>
|
||||
* is required in this case.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
**/
|
||||
|
||||
@Target(ElementType.METHOD)
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
public @interface RequestWrapper {
|
||||
/**
|
||||
* Element's local name.
|
||||
*/
|
||||
public String localName() default "";
|
||||
|
||||
/**
|
||||
* Element's namespace name.
|
||||
*/
|
||||
public String targetNamespace() default "";
|
||||
|
||||
/**
|
||||
* Request wrapper bean name.
|
||||
*/
|
||||
public String className() default "";
|
||||
|
||||
/**
|
||||
* wsdl:part name for the wrapper part
|
||||
*
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
public String partName() default "";
|
||||
|
||||
}
|
||||
68
jdkSrc/jdk8/javax/xml/ws/RespectBinding.java
Normal file
68
jdkSrc/jdk8/javax/xml/ws/RespectBinding.java
Normal file
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
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 annotation MUST only be used in conjunction the
|
||||
* <code>javax.jws.WebService</code>, {@link WebServiceProvider},
|
||||
* {@link WebServiceRef} annotations.
|
||||
* When used with the <code>javax.jws.WebService</code> annotation this
|
||||
* annotation MUST only be used on the service endpoint implementation
|
||||
* class.
|
||||
* When used with a <code>WebServiceRef</code> annotation, this annotation
|
||||
* MUST only be used when a proxy instance is created. The injected SEI
|
||||
* proxy, and endpoint MUST honor the values of the <code>RespectBinding</code>
|
||||
* annotation.
|
||||
* <p>
|
||||
*
|
||||
* This annotation's behaviour is defined by the corresponding feature
|
||||
* {@link RespectBindingFeature}.
|
||||
*
|
||||
* @see RespectBindingFeature
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
*/
|
||||
@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
@WebServiceFeatureAnnotation(id=RespectBindingFeature.ID,bean=RespectBindingFeature.class)
|
||||
public @interface RespectBinding {
|
||||
/**
|
||||
* Specifies if this feature is enabled or disabled.
|
||||
*/
|
||||
boolean enabled() default true;
|
||||
}
|
||||
117
jdkSrc/jdk8/javax/xml/ws/RespectBindingFeature.java
Normal file
117
jdkSrc/jdk8/javax/xml/ws/RespectBindingFeature.java
Normal file
@@ -0,0 +1,117 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
import javax.xml.ws.soap.AddressingFeature;
|
||||
|
||||
/**
|
||||
* This feature clarifies the use of the <code>wsdl:binding</code>
|
||||
* in a JAX-WS runtime.
|
||||
*
|
||||
* This feature can be used during the creation of SEI proxy, and
|
||||
* {@link Dispatch} instances on the client side and {@link Endpoint}
|
||||
* instances on the server side. This feature cannot be used for {@link Service}
|
||||
* instance creation on the client side.
|
||||
* <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(including policies) are
|
||||
* either understood and used by the runtime, or explicitly disabled by the
|
||||
* web service application. A web service can disable a particular
|
||||
* extension if there is a corresponding {@link WebServiceFeature} or annotation.
|
||||
* Similarly, a web service client can disable
|
||||
* particular extension using the corresponding <code>WebServiceFeature</code> while
|
||||
* creating a proxy or Dispatch instance.
|
||||
* 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:required="true"</code>)
|
||||
* <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
|
||||
* {@link WebServiceException} no sooner than when one of the methods
|
||||
* above is invoked but no later than the first invocation of an endpoint
|
||||
* operation.
|
||||
* <li>Server: throw a {@link WebServiceException} and the endpoint MUST fail to deploy
|
||||
* </ul>
|
||||
*
|
||||
* <li> DISABLED: In this Mode, an implementation may choose whether
|
||||
* to inspect the <code>wsdl:binding</code> or not and to what degree
|
||||
* the <code>wsdl:binding</code> will be inspected. For example,
|
||||
* one implementation may choose to behave as if this feature is enabled,
|
||||
* another implementation may only choose to verify the SEI's
|
||||
* parameter/return type bindings.
|
||||
* </ul>
|
||||
*
|
||||
* @see 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.RespectBindingFeature";
|
||||
|
||||
|
||||
/**
|
||||
* Creates an <code>RespectBindingFeature</code>.
|
||||
* The instance created will be enabled.
|
||||
*/
|
||||
public RespectBindingFeature() {
|
||||
this.enabled = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates 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;
|
||||
}
|
||||
}
|
||||
52
jdkSrc/jdk8/javax/xml/ws/Response.java
Normal file
52
jdkSrc/jdk8/javax/xml/ws/Response.java
Normal file
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.Future;
|
||||
|
||||
/** The <code>Response</code> interface provides methods used to obtain the
|
||||
* payload and context of a message sent in response to an operation
|
||||
* invocation.
|
||||
*
|
||||
* <p>For asynchronous operation invocations it provides additional methods
|
||||
* to check the status of the request. The <code>get(...)</code> methods may
|
||||
* throw the standard
|
||||
* set of exceptions and their cause may be a <code>RemoteException</code> or a
|
||||
* {@link WebServiceException} that represents the error that occured during the
|
||||
* asynchronous method invocation.</p>
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
**/
|
||||
public interface Response<T> extends Future<T> {
|
||||
/** Gets the contained response context.
|
||||
*
|
||||
* @return The contained response context. May be <code>null</code> if a
|
||||
* response is not yet available.
|
||||
*
|
||||
**/
|
||||
Map<String,Object> getContext();
|
||||
}
|
||||
72
jdkSrc/jdk8/javax/xml/ws/ResponseWrapper.java
Normal file
72
jdkSrc/jdk8/javax/xml/ws/ResponseWrapper.java
Normal file
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.Target;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
/**
|
||||
* Used to annotate methods in the Service Endpoint Interface with the response
|
||||
* wrapper bean to be used at runtime. The default value of the <code>localName</code> is
|
||||
* the <code>operationName</code> as defined in <code>WebMethod</code> annotation appended with
|
||||
* <code>Response</code> and the <code>targetNamespace</code> is the target namespace of the SEI.
|
||||
* <p> When starting from Java this annotation is used resolve
|
||||
* overloading conflicts in document literal mode. Only the <code>className</code>
|
||||
* is required in this case.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
**/
|
||||
|
||||
@Target(ElementType.METHOD)
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
public @interface ResponseWrapper {
|
||||
|
||||
/**
|
||||
* Element's local name.
|
||||
*/
|
||||
public String localName() default "";
|
||||
|
||||
/**
|
||||
* Element's namespace name.
|
||||
*/
|
||||
public String targetNamespace() default "";
|
||||
|
||||
/**
|
||||
* Response wrapper bean name.
|
||||
*/
|
||||
public String className() default "";
|
||||
|
||||
/**
|
||||
* wsdl:part name for the wrapper part
|
||||
*
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
public String partName() default "";
|
||||
|
||||
}
|
||||
760
jdkSrc/jdk8/javax/xml/ws/Service.java
Normal file
760
jdkSrc/jdk8/javax/xml/ws/Service.java
Normal file
@@ -0,0 +1,760 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
import javax.xml.namespace.QName;
|
||||
import java.util.Iterator;
|
||||
import javax.xml.ws.handler.HandlerResolver;
|
||||
import javax.xml.bind.JAXBContext;
|
||||
import javax.xml.ws.spi.ServiceDelegate;
|
||||
import javax.xml.ws.spi.Provider;
|
||||
|
||||
/**
|
||||
* <code>Service</code> objects provide the client view of a Web service.
|
||||
* <p><code>Service</code> acts as a factory of the following:
|
||||
* <ul>
|
||||
* <li>Proxies for a target service endpoint.</li>
|
||||
* <li>Instances of {@link javax.xml.ws.Dispatch} for
|
||||
* dynamic message-oriented invocation of a remote
|
||||
* operation.
|
||||
* </li>
|
||||
* </ul>
|
||||
*
|
||||
* <p>The ports available on a service can be enumerated using the
|
||||
* <code>getPorts</code> method. Alternatively, you can pass a
|
||||
* service endpoint interface to the unary <code>getPort</code> method
|
||||
* and let the runtime select a compatible port.
|
||||
*
|
||||
* <p>Handler chains for all the objects created by a <code>Service</code>
|
||||
* can be set by means of a <code>HandlerResolver</code>.
|
||||
*
|
||||
* <p>An <code>Executor</code> may be set on the service in order
|
||||
* to gain better control over the threads used to dispatch asynchronous
|
||||
* callbacks. For instance, thread pooling with certain parameters
|
||||
* can be enabled by creating a <code>ThreadPoolExecutor</code> and
|
||||
* registering it with the service.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
*
|
||||
* @see javax.xml.ws.spi.Provider
|
||||
* @see javax.xml.ws.handler.HandlerResolver
|
||||
* @see java.util.concurrent.Executor
|
||||
**/
|
||||
public class Service {
|
||||
|
||||
private ServiceDelegate delegate;
|
||||
/**
|
||||
* The orientation of a dynamic client or service. <code>MESSAGE</code> provides
|
||||
* access to entire protocol message, <code>PAYLOAD</code> to protocol message
|
||||
* payload only.
|
||||
**/
|
||||
public enum Mode { MESSAGE, PAYLOAD }
|
||||
|
||||
protected Service(java.net.URL wsdlDocumentLocation, QName serviceName) {
|
||||
delegate = Provider.provider().createServiceDelegate(wsdlDocumentLocation,
|
||||
serviceName,
|
||||
this.getClass());
|
||||
}
|
||||
|
||||
protected Service(java.net.URL wsdlDocumentLocation, QName serviceName, WebServiceFeature ... features) {
|
||||
delegate = Provider.provider().createServiceDelegate(wsdlDocumentLocation,
|
||||
serviceName,
|
||||
this.getClass(), features);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* The <code>getPort</code> method returns a proxy. A service client
|
||||
* uses this proxy to invoke operations on the target
|
||||
* service endpoint. The <code>serviceEndpointInterface</code>
|
||||
* specifies the service endpoint interface that is supported by
|
||||
* the created dynamic proxy instance.
|
||||
*
|
||||
* @param portName Qualified name of the service endpoint in
|
||||
* the WSDL service description.
|
||||
* @param serviceEndpointInterface Service endpoint interface
|
||||
* supported by the dynamic proxy instance.
|
||||
* @return Object Proxy instance that
|
||||
* supports the specified service endpoint
|
||||
* interface.
|
||||
* @throws WebServiceException This exception is thrown in the
|
||||
* following cases:
|
||||
* <UL>
|
||||
* <LI>If there is an error in creation of
|
||||
* the proxy.
|
||||
* <LI>If there is any missing WSDL metadata
|
||||
* as required by this method.
|
||||
* <LI>If an illegal
|
||||
* <code>serviceEndpointInterface</code>
|
||||
* or <code>portName</code> is specified.
|
||||
* </UL>
|
||||
* @see java.lang.reflect.Proxy
|
||||
* @see java.lang.reflect.InvocationHandler
|
||||
**/
|
||||
public <T> T getPort(QName portName,
|
||||
Class<T> serviceEndpointInterface) {
|
||||
return delegate.getPort(portName, serviceEndpointInterface);
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>getPort</code> method returns a proxy. A service client
|
||||
* uses this proxy to invoke operations on the target
|
||||
* service endpoint. The <code>serviceEndpointInterface</code>
|
||||
* specifies the service endpoint interface that is supported by
|
||||
* the created dynamic proxy instance.
|
||||
*
|
||||
* @param portName Qualified name of the service endpoint in
|
||||
* the WSDL service description.
|
||||
* @param serviceEndpointInterface Service endpoint interface
|
||||
* supported by the dynamic proxy instance.
|
||||
* @param features A list of WebServiceFeatures to configure on the
|
||||
* proxy. Supported features not in the <code>features
|
||||
* </code> parameter will have their default values.
|
||||
* @return Object Proxy instance that
|
||||
* supports the specified service endpoint
|
||||
* interface.
|
||||
* @throws WebServiceException This exception is thrown in the
|
||||
* following cases:
|
||||
* <UL>
|
||||
* <LI>If there is an error in creation of
|
||||
* the proxy.
|
||||
* <LI>If there is any missing WSDL metadata
|
||||
* as required by this method.
|
||||
* <LI>If an illegal
|
||||
* <code>serviceEndpointInterface</code>
|
||||
* or <code>portName</code> is specified.
|
||||
* <LI>If a feature is enabled that is not compatible
|
||||
* with this port or is unsupported.
|
||||
* </UL>
|
||||
* @see java.lang.reflect.Proxy
|
||||
* @see java.lang.reflect.InvocationHandler
|
||||
* @see WebServiceFeature
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
**/
|
||||
public <T> T getPort(QName portName,
|
||||
Class<T> serviceEndpointInterface, WebServiceFeature... features) {
|
||||
return delegate.getPort(portName, serviceEndpointInterface, features);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* The <code>getPort</code> method returns a proxy. The parameter
|
||||
* <code>serviceEndpointInterface</code> specifies the service
|
||||
* endpoint interface that is supported by the returned proxy.
|
||||
* In the implementation of this method, the JAX-WS
|
||||
* runtime system takes the responsibility of selecting a protocol
|
||||
* binding (and a port) and configuring the proxy accordingly.
|
||||
* The returned proxy should not be reconfigured by the client.
|
||||
*
|
||||
* @param serviceEndpointInterface Service endpoint interface.
|
||||
* @return Object instance that supports the
|
||||
* specified service endpoint interface.
|
||||
* @throws WebServiceException
|
||||
* <UL>
|
||||
* <LI>If there is an error during creation
|
||||
* of the proxy.
|
||||
* <LI>If there is any missing WSDL metadata
|
||||
* as required by this method.
|
||||
* <LI>If an illegal
|
||||
* <code>serviceEndpointInterface</code>
|
||||
* is specified.
|
||||
* </UL>
|
||||
**/
|
||||
public <T> T getPort(Class<T> serviceEndpointInterface) {
|
||||
return delegate.getPort(serviceEndpointInterface);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* The <code>getPort</code> 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 <code>getPort</code> 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 metadata from the <code>endpointReference</code>.
|
||||
* If this <code>Service</code> instance has a WSDL and
|
||||
* the <code>endpointReference</code> metadata
|
||||
* also has a WSDL, then the WSDL from this instance MUST 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> MAY 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>
|
||||
* <code>port = service.getPort(portName, serviceEndpointInterface);</code>
|
||||
* </pre>
|
||||
* where the <code>portName</code> is retrieved from the
|
||||
* metadata of the <code>endpointReference</code> or from the
|
||||
* <code>serviceEndpointInterface</code> and the WSDL
|
||||
* associated with this <code>Service</code> instance.
|
||||
*
|
||||
* @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 <code>WebServiceFeatures</code> 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>endpointReference</code> metadata does
|
||||
* not match the <code>serviceName</code> of this
|
||||
* <code>Service</code> instance.
|
||||
* <LI>If a <code>portName</code> cannot be extracted
|
||||
* from the WSDL or <code>endpointReference</code> metadata.
|
||||
* <LI>If an invalid
|
||||
* <code>endpointReference</code>
|
||||
* is specified.
|
||||
* <LI>If an invalid
|
||||
* <code>serviceEndpointInterface</code>
|
||||
* is specified.
|
||||
* <LI>If a feature is enabled that is not compatible
|
||||
* with this port or is unsupported.
|
||||
* </UL>
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
**/
|
||||
public <T> T getPort(EndpointReference endpointReference,
|
||||
Class<T> serviceEndpointInterface, WebServiceFeature... features) {
|
||||
return delegate.getPort(endpointReference, serviceEndpointInterface, features);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new port for the service. Ports created in this way contain
|
||||
* no WSDL port type information and can only be used for creating
|
||||
* <code>Dispatch</code>instances.
|
||||
*
|
||||
* @param portName Qualified name for the target service endpoint.
|
||||
* @param bindingId A String identifier of a binding.
|
||||
* @param endpointAddress Address of the target service endpoint as a URI.
|
||||
* @throws WebServiceException If any error in the creation of
|
||||
* the port.
|
||||
*
|
||||
* @see javax.xml.ws.soap.SOAPBinding#SOAP11HTTP_BINDING
|
||||
* @see javax.xml.ws.soap.SOAPBinding#SOAP12HTTP_BINDING
|
||||
* @see javax.xml.ws.http.HTTPBinding#HTTP_BINDING
|
||||
**/
|
||||
public void addPort(QName portName, String bindingId, String endpointAddress) {
|
||||
delegate.addPort(portName, bindingId, endpointAddress);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creates a <code>Dispatch</code> instance for use with objects of
|
||||
* the client's choosing.
|
||||
*
|
||||
* @param portName Qualified name for the target service endpoint
|
||||
* @param type The class of object used for messages or message
|
||||
* payloads. Implementations are required to support
|
||||
* <code>javax.xml.transform.Source</code>, <code>javax.xml.soap.SOAPMessage</code>
|
||||
* and <code>javax.activation.DataSource</code>, depending on
|
||||
* the binding in use.
|
||||
* @param mode Controls whether the created dispatch instance is message
|
||||
* or payload oriented, i.e. whether the client will work with complete
|
||||
* protocol messages or message payloads. E.g. when using the SOAP
|
||||
* protocol, this parameter controls whether the client will work with
|
||||
* SOAP messages or the contents of a SOAP body. Mode MUST be MESSAGE
|
||||
* when type is SOAPMessage.
|
||||
*
|
||||
* @return Dispatch instance.
|
||||
* @throws WebServiceException If any error in the creation of
|
||||
* the <code>Dispatch</code> object.
|
||||
*
|
||||
* @see javax.xml.transform.Source
|
||||
* @see javax.xml.soap.SOAPMessage
|
||||
**/
|
||||
public <T> Dispatch<T> createDispatch(QName portName, Class<T> type, Mode mode) {
|
||||
return delegate.createDispatch(portName, type, mode);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creates a <code>Dispatch</code> instance for use with objects of
|
||||
* the client's choosing.
|
||||
*
|
||||
* @param portName Qualified name for the target service endpoint
|
||||
* @param type The class of object used for messages or message
|
||||
* payloads. Implementations are required to support
|
||||
* <code>javax.xml.transform.Source</code> and <code>javax.xml.soap.SOAPMessage</code>.
|
||||
* @param mode Controls whether the created dispatch instance is message
|
||||
* or payload oriented, i.e. whether the client will work with complete
|
||||
* protocol messages or message payloads. E.g. when using the SOAP
|
||||
* protocol, this parameter controls whether the client will work with
|
||||
* SOAP messages or the contents of a SOAP body. Mode MUST be <code>MESSAGE</code>
|
||||
* when type is <code>SOAPMessage</code>.
|
||||
* @param features A list of <code>WebServiceFeatures</code> to configure on the
|
||||
* proxy. Supported features not in the <code>features
|
||||
* </code> parameter will have their default values.
|
||||
*
|
||||
* @return Dispatch instance.
|
||||
* @throws WebServiceException If any error in the creation of
|
||||
* the <code>Dispatch</code> object or if a
|
||||
* feature is enabled that is not compatible with
|
||||
* this port or is unsupported.
|
||||
*
|
||||
* @see javax.xml.transform.Source
|
||||
* @see javax.xml.soap.SOAPMessage
|
||||
* @see WebServiceFeature
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
**/
|
||||
public <T> Dispatch<T> createDispatch(QName portName, Class<T> type,
|
||||
Service.Mode mode, WebServiceFeature... features) {
|
||||
return delegate.createDispatch(portName, type, mode, features);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creates a <code>Dispatch</code> instance for use with objects of
|
||||
* the client's 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 metadata from the <code>endpointReference</code>.
|
||||
* If this <code>Service</code> instance has a WSDL and
|
||||
* the <code>endpointReference</code>
|
||||
* also has a WSDL in its metadata, then the WSDL from this instance MUST 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> MAY be used.
|
||||
* An implementation MUST be able to retrieve the <code>portName</code> from the
|
||||
* <code>endpointReference</code> metadata.
|
||||
* <p>
|
||||
* This method behaves the same as calling
|
||||
* <pre>
|
||||
* <code>dispatch = service.createDispatch(portName, type, mode, features);</code>
|
||||
* </pre>
|
||||
* where the <code>portName</code> is retrieved from the
|
||||
* WSDL or <code>EndpointReference</code> metadata.
|
||||
*
|
||||
* @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
|
||||
* <code>javax.xml.transform.Source</code> and <code>javax.xml.soap.SOAPMessage</code>.
|
||||
* @param mode Controls whether the created dispatch instance is message
|
||||
* or payload oriented, i.e. whether the client will work with complete
|
||||
* protocol messages or message payloads. E.g. when using the SOAP
|
||||
* protocol, this parameter controls whether the client will work with
|
||||
* SOAP messages or the contents of a SOAP body. Mode MUST be <code>MESSAGE</code>
|
||||
* when type is <code>SOAPMessage</code>.
|
||||
* @param features An array of <code>WebServiceFeatures</code> 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>endpointReference</code> metadata does
|
||||
* not match the <code>serviceName</code> or <code>portName</code>
|
||||
* of a WSDL associated
|
||||
* with this <code>Service</code> instance.
|
||||
* <li>If the <code>portName</code> cannot be determined
|
||||
* from the <code>EndpointReference</code> metadata.
|
||||
* <li>If any error in the creation of
|
||||
* the <code>Dispatch</code> object.
|
||||
* <li>If a feature is enabled that is not
|
||||
* compatible with this port or is unsupported.
|
||||
* </UL>
|
||||
*
|
||||
* @see javax.xml.transform.Source
|
||||
* @see javax.xml.soap.SOAPMessage
|
||||
* @see WebServiceFeature
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
**/
|
||||
public <T> Dispatch<T> createDispatch(EndpointReference endpointReference,
|
||||
Class<T> type, Service.Mode mode,
|
||||
WebServiceFeature... features) {
|
||||
return delegate.createDispatch(endpointReference, type, mode, features);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a <code>Dispatch</code> instance for use with JAXB
|
||||
* generated objects.
|
||||
*
|
||||
* @param portName Qualified name for the target service endpoint
|
||||
* @param context The JAXB context used to marshall and unmarshall
|
||||
* messages or message payloads.
|
||||
* @param mode Controls whether the created dispatch instance is message
|
||||
* or payload oriented, i.e. whether the client will work with complete
|
||||
* protocol messages or message payloads. E.g. when using the SOAP
|
||||
* protocol, this parameter controls whether the client will work with
|
||||
* SOAP messages or the contents of a SOAP body.
|
||||
*
|
||||
* @return Dispatch instance.
|
||||
* @throws WebServiceException If any error in the creation of
|
||||
* the <code>Dispatch</code> object.
|
||||
*
|
||||
* @see javax.xml.bind.JAXBContext
|
||||
**/
|
||||
public Dispatch<Object> createDispatch(QName portName, JAXBContext context,
|
||||
Mode mode) {
|
||||
return delegate.createDispatch(portName, context, mode);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creates a <code>Dispatch</code> instance for use with JAXB
|
||||
* generated objects.
|
||||
*
|
||||
* @param portName Qualified name for the target service endpoint
|
||||
* @param context The JAXB context used to marshall and unmarshall
|
||||
* messages or message payloads.
|
||||
* @param mode Controls whether the created dispatch instance is message
|
||||
* or payload oriented, i.e. whether the client will work with complete
|
||||
* protocol messages or message payloads. E.g. when using the SOAP
|
||||
* protocol, this parameter controls whether the client will work with
|
||||
* SOAP messages or the contents of a SOAP body.
|
||||
* @param features A list of <code>WebServiceFeatures</code> to configure on the
|
||||
* proxy. Supported features not in the <code>features
|
||||
* </code> parameter will have their default values.
|
||||
*
|
||||
* @return Dispatch instance.
|
||||
* @throws WebServiceException If any error in the creation of
|
||||
* the <code>Dispatch</code> object or if a
|
||||
* feature is enabled that is not compatible with
|
||||
* this port or is unsupported.
|
||||
*
|
||||
* @see javax.xml.bind.JAXBContext
|
||||
* @see WebServiceFeature
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
**/
|
||||
public Dispatch<Object> createDispatch(QName portName,
|
||||
JAXBContext context, Service.Mode mode, WebServiceFeature... features) {
|
||||
return delegate.createDispatch(portName, context, mode, features);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creates a <code>Dispatch</code> instance for use with JAXB
|
||||
* generated objects. If there
|
||||
* are any reference parameters in the
|
||||
* <code>endpointReference</code>, then those reference
|
||||
* parameters MUST appear as SOAP headers, indicating them to be
|
||||
* reference parameters, on all messages sent to the endpoint.
|
||||
* The <code>endpointReference's</code> address MUST be used
|
||||
* for invocations on the endpoint.
|
||||
* In the implementation of this method, the JAX-WS
|
||||
* runtime system takes the responsibility of selecting a protocol
|
||||
* binding (and a port) and configuring the dispatch accordingly from
|
||||
* the WSDL associated with this <code>Service</code> instance or
|
||||
* from the metadata from the <code>endpointReference</code>.
|
||||
* If this <code>Service</code> instance has a WSDL and
|
||||
* the <code>endpointReference</code>
|
||||
* also has a WSDL in its metadata, then the WSDL from this instance
|
||||
* MUST 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> MAY be used.
|
||||
* An implementation MUST be able to retrieve the <code>portName</code> from the
|
||||
* <code>endpointReference</code> metadata.
|
||||
* <p>
|
||||
* This method behavies the same as calling
|
||||
* <pre>
|
||||
* <code>dispatch = service.createDispatch(portName, context, mode, features);</code>
|
||||
* </pre>
|
||||
* where the <code>portName</code> is retrieved from the
|
||||
* WSDL or <code>endpointReference</code> metadata.
|
||||
*
|
||||
* @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 client will work with complete
|
||||
* protocol messages or message payloads. E.g. when using the SOAP
|
||||
* protocol, this parameter controls whether the client will work with
|
||||
* SOAP messages or the contents of a SOAP body.
|
||||
* @param features An array of <code>WebServiceFeatures</code> 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>endpointReference</code> metadata does
|
||||
* not match the <code>serviceName</code> or <code>portName</code>
|
||||
* of a WSDL associated
|
||||
* with this <code>Service</code> instance.
|
||||
* <li>If the <code>portName</code> cannot be determined
|
||||
* from the <code>EndpointReference</code> metadata.
|
||||
* <li>If any error in the creation of
|
||||
* the <code>Dispatch</code> object.
|
||||
* <li>if a feature is enabled that is not
|
||||
* compatible with this port or is unsupported.
|
||||
* </UL>
|
||||
*
|
||||
* @see javax.xml.bind.JAXBContext
|
||||
* @see WebServiceFeature
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
**/
|
||||
public Dispatch<Object> createDispatch(EndpointReference endpointReference,
|
||||
JAXBContext context, Service.Mode mode,
|
||||
WebServiceFeature... features) {
|
||||
return delegate.createDispatch(endpointReference, context, mode, features);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the name of this service.
|
||||
* @return Qualified name of this service
|
||||
**/
|
||||
public QName getServiceName() {
|
||||
return delegate.getServiceName();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an <code>Iterator</code> for the list of
|
||||
* <code>QName</code>s of service endpoints grouped by this
|
||||
* service
|
||||
*
|
||||
* @return Returns <code>java.util.Iterator</code> with elements
|
||||
* of type <code>javax.xml.namespace.QName</code>.
|
||||
* @throws WebServiceException If this Service class does not
|
||||
* have access to the required WSDL metadata.
|
||||
**/
|
||||
public Iterator<javax.xml.namespace.QName> getPorts() {
|
||||
return delegate.getPorts();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the location of the WSDL document for this Service.
|
||||
*
|
||||
* @return URL for the location of the WSDL document for
|
||||
* this service.
|
||||
**/
|
||||
public java.net.URL getWSDLDocumentLocation() {
|
||||
return delegate.getWSDLDocumentLocation();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the configured handler resolver.
|
||||
*
|
||||
* @return HandlerResolver The <code>HandlerResolver</code> being
|
||||
* used by this <code>Service</code> instance, or <code>null</code>
|
||||
* if there isn't one.
|
||||
**/
|
||||
public HandlerResolver getHandlerResolver() {
|
||||
return delegate.getHandlerResolver();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the <code>HandlerResolver</code> for this <code>Service</code>
|
||||
* instance.
|
||||
* <p>
|
||||
* The handler resolver, if present, will be called once for each
|
||||
* proxy or dispatch instance that is created, and the handler chain
|
||||
* returned by the resolver will be set on the instance.
|
||||
*
|
||||
* @param handlerResolver The <code>HandlerResolver</code> to use
|
||||
* for all subsequently created proxy/dispatch objects.
|
||||
*
|
||||
* @see javax.xml.ws.handler.HandlerResolver
|
||||
**/
|
||||
public void setHandlerResolver(HandlerResolver handlerResolver) {
|
||||
delegate.setHandlerResolver(handlerResolver);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the executor for this <code>Service</code>instance.
|
||||
*
|
||||
* The executor is used for all asynchronous invocations that
|
||||
* require callbacks.
|
||||
*
|
||||
* @return The <code>java.util.concurrent.Executor</code> to be
|
||||
* used to invoke a callback.
|
||||
*
|
||||
* @see java.util.concurrent.Executor
|
||||
**/
|
||||
public java.util.concurrent.Executor getExecutor() {
|
||||
return delegate.getExecutor();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the executor for this <code>Service</code> instance.
|
||||
*
|
||||
* The executor is used for all asynchronous invocations that
|
||||
* require callbacks.
|
||||
*
|
||||
* @param executor The <code>java.util.concurrent.Executor</code>
|
||||
* to be used to invoke a callback.
|
||||
*
|
||||
* @throws SecurityException If the instance does not support
|
||||
* setting an executor for security reasons (e.g. the
|
||||
* necessary permissions are missing).
|
||||
*
|
||||
* @see java.util.concurrent.Executor
|
||||
**/
|
||||
public void setExecutor(java.util.concurrent.Executor executor) {
|
||||
delegate.setExecutor(executor);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a <code>Service</code> instance.
|
||||
*
|
||||
* The specified WSDL document location and service qualified name MUST
|
||||
* uniquely identify a <code>wsdl:service</code> element.
|
||||
*
|
||||
* @param wsdlDocumentLocation <code>URL</code> for the WSDL document location
|
||||
* for the service
|
||||
* @param serviceName <code>QName</code> for the service
|
||||
* @throws WebServiceException If any error in creation of the
|
||||
* specified service.
|
||||
**/
|
||||
public static Service create(
|
||||
java.net.URL wsdlDocumentLocation,
|
||||
QName serviceName) {
|
||||
return new Service(wsdlDocumentLocation, serviceName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a <code>Service</code> instance. The created instance is
|
||||
* configured with the web service features.
|
||||
*
|
||||
* The specified WSDL document location and service qualified name MUST
|
||||
* uniquely identify a <code>wsdl:service</code> element.
|
||||
*
|
||||
* @param wsdlDocumentLocation <code>URL</code> for the WSDL document location
|
||||
* for the service
|
||||
* @param serviceName <code>QName</code> for the service
|
||||
* @param features Web Service features that must be configured on
|
||||
* the service. If the provider doesn't understand a feature,
|
||||
* it must throw a WebServiceException.
|
||||
* @throws WebServiceException If any error in creation of the
|
||||
* specified service.
|
||||
* @since JAX-WS 2.2
|
||||
**/
|
||||
public static Service create(
|
||||
java.net.URL wsdlDocumentLocation,
|
||||
QName serviceName, WebServiceFeature ... features) {
|
||||
return new Service(wsdlDocumentLocation, serviceName, features);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a <code>Service</code> instance.
|
||||
*
|
||||
* @param serviceName <code>QName</code> for the service
|
||||
* @throws WebServiceException If any error in creation of the
|
||||
* specified service
|
||||
*/
|
||||
public static Service create(QName serviceName) {
|
||||
return new Service(null, serviceName);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a <code>Service</code> instance. The created instance is
|
||||
* configured with the web service features.
|
||||
*
|
||||
* @param serviceName <code>QName</code> for the service
|
||||
* @param features Web Service features that must be configured on
|
||||
* the service. If the provider doesn't understand a feature,
|
||||
* it must throw a WebServiceException.
|
||||
* @throws WebServiceException If any error in creation of the
|
||||
* specified service
|
||||
*
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
public static Service create(QName serviceName, WebServiceFeature ... features) {
|
||||
return new Service(null, serviceName, features);
|
||||
}
|
||||
}
|
||||
53
jdkSrc/jdk8/javax/xml/ws/ServiceMode.java
Normal file
53
jdkSrc/jdk8/javax/xml/ws/ServiceMode.java
Normal file
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.Target;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Inherited;
|
||||
|
||||
/**
|
||||
* Used to indicate whether a {@link Provider} implementation wishes to work
|
||||
* with entire protocol messages or just with protocol message payloads.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
**/
|
||||
@Target({ElementType.TYPE})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Inherited
|
||||
@Documented
|
||||
public @interface ServiceMode {
|
||||
/**
|
||||
* Service mode. <code>PAYLOAD</code> indicates that the <code>Provider</code> implementation
|
||||
* wishes to work with protocol message payloads only. <code>MESSAGE</code> indicates
|
||||
* that the <code>Provider</code> implementation wishes to work with entire protocol
|
||||
* messages.
|
||||
**/
|
||||
public Service.Mode value() default Service.Mode.PAYLOAD;
|
||||
}
|
||||
56
jdkSrc/jdk8/javax/xml/ws/WebEndpoint.java
Normal file
56
jdkSrc/jdk8/javax/xml/ws/WebEndpoint.java
Normal file
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.Target;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
|
||||
/**
|
||||
* Used to annotate the <code>get<em>PortName</em>()</code>
|
||||
* methods of a generated service interface.
|
||||
*
|
||||
* <p>The information specified in this annotation is sufficient
|
||||
* to uniquely identify a <code>wsdl:port</code> element
|
||||
* inside a <code>wsdl:service</code>. The latter is
|
||||
* determined based on the value of the <code>WebServiceClient</code>
|
||||
* annotation on the generated service interface itself.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
*
|
||||
* @see javax.xml.ws.WebServiceClient
|
||||
**/
|
||||
@Target({ElementType.METHOD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
public @interface WebEndpoint {
|
||||
/**
|
||||
* The local name of the endpoint.
|
||||
**/
|
||||
String name() default "";
|
||||
}
|
||||
67
jdkSrc/jdk8/javax/xml/ws/WebFault.java
Normal file
67
jdkSrc/jdk8/javax/xml/ws/WebFault.java
Normal file
@@ -0,0 +1,67 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.Target;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
|
||||
/**
|
||||
* Used to annotate service specific exception classes to customize
|
||||
* to the local and namespace name of the fault element and the name
|
||||
* of the fault bean.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
**/
|
||||
@Target({ElementType.TYPE})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
public @interface WebFault {
|
||||
/**
|
||||
* Element's local name.
|
||||
**/
|
||||
public String name() default "";
|
||||
|
||||
/**
|
||||
* Element's namespace name.
|
||||
**/
|
||||
public String targetNamespace() default "";
|
||||
|
||||
/**
|
||||
* Fault bean name.
|
||||
**/
|
||||
public String faultBean() default "";
|
||||
|
||||
|
||||
/**
|
||||
* wsdl:Message's name. Default name is the exception's class name.
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
public String messageName() default "";
|
||||
|
||||
}
|
||||
63
jdkSrc/jdk8/javax/xml/ws/WebServiceClient.java
Normal file
63
jdkSrc/jdk8/javax/xml/ws/WebServiceClient.java
Normal file
@@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.Target;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
|
||||
/**
|
||||
* Used to annotate a generated service interface.
|
||||
*
|
||||
* <p>The information specified in this annotation is sufficient
|
||||
* to uniquely identify a <code>wsdl:service</code>
|
||||
* element inside a WSDL document. This <code>wsdl:service</code>
|
||||
* element represents the Web service for which the generated
|
||||
* service interface provides a client view.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
**/
|
||||
@Target({ElementType.TYPE})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
public @interface WebServiceClient {
|
||||
/**
|
||||
* The local name of the Web service.
|
||||
**/
|
||||
String name() default "";
|
||||
|
||||
/**
|
||||
* The namespace for the Web service.
|
||||
**/
|
||||
String targetNamespace() default "";
|
||||
|
||||
/**
|
||||
* The location of the WSDL document for the service (a URL).
|
||||
**/
|
||||
String wsdlLocation() default "";
|
||||
}
|
||||
151
jdkSrc/jdk8/javax/xml/ws/WebServiceContext.java
Normal file
151
jdkSrc/jdk8/javax/xml/ws/WebServiceContext.java
Normal file
@@ -0,0 +1,151 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
import java.security.Principal;
|
||||
import javax.xml.ws.handler.MessageContext;
|
||||
import javax.xml.ws.wsaddressing.W3CEndpointReference;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
|
||||
/**
|
||||
* A <code>WebServiceContext</code> makes it possible for
|
||||
* a web service endpoint implementation class to access
|
||||
* message context and security information relative to
|
||||
* a request being served.
|
||||
*
|
||||
* Typically a <code>WebServiceContext</code> is injected
|
||||
* into an endpoint implementation class using the
|
||||
* <code>Resource</code> annotation.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
*
|
||||
* @see javax.annotation.Resource
|
||||
**/
|
||||
public interface WebServiceContext {
|
||||
|
||||
/**
|
||||
* Returns the <code>MessageContext</code> for the request being served
|
||||
* at the time this method is called. Only properties with
|
||||
* APPLICATION scope will be visible to the application.
|
||||
*
|
||||
* @return MessageContext The message context.
|
||||
*
|
||||
* @throws IllegalStateException This exception is thrown
|
||||
* if the method is called while no request is
|
||||
* being serviced.
|
||||
*
|
||||
* @see javax.xml.ws.handler.MessageContext
|
||||
* @see javax.xml.ws.handler.MessageContext.Scope
|
||||
* @see java.lang.IllegalStateException
|
||||
**/
|
||||
public MessageContext getMessageContext();
|
||||
|
||||
/**
|
||||
* Returns the Principal that identifies the sender
|
||||
* of the request currently being serviced. If the
|
||||
* sender has not been authenticated, the method
|
||||
* returns <code>null</code>.
|
||||
*
|
||||
* @return Principal The principal object.
|
||||
*
|
||||
* @throws IllegalStateException This exception is thrown
|
||||
* if the method is called while no request is
|
||||
* being serviced.
|
||||
*
|
||||
* @see java.security.Principal
|
||||
* @see java.lang.IllegalStateException
|
||||
**/
|
||||
public Principal getUserPrincipal();
|
||||
|
||||
/**
|
||||
* Returns a boolean indicating whether the
|
||||
* authenticated user is included in the specified
|
||||
* logical role. If the user has not been
|
||||
* authenticated, the method returns <code>false</code>.
|
||||
*
|
||||
* @param role A <code>String</code> specifying the name of the role
|
||||
*
|
||||
* @return a <code>boolean</code> indicating whether
|
||||
* the sender of the request belongs to a given role
|
||||
*
|
||||
* @throws IllegalStateException This exception is thrown
|
||||
* if the method is called while no request is
|
||||
* being serviced.
|
||||
**/
|
||||
public boolean isUserInRole(String role);
|
||||
|
||||
/**
|
||||
* Returns the <code>EndpointReference</code> for this
|
||||
* endpoint.
|
||||
* <p>
|
||||
* If the {@link Binding} for this <code>bindingProvider</code> is
|
||||
* either SOAP1.1/HTTP or SOAP1.2/HTTP, then a
|
||||
* <code>W3CEndpointReference</code> MUST be returned.
|
||||
*
|
||||
* @param referenceParameters Reference parameters to be associated with the
|
||||
* returned <code>EndpointReference</code> instance.
|
||||
* @return EndpointReference of the endpoint associated with this
|
||||
* <code>WebServiceContext</code>.
|
||||
* If the returned <code>EndpointReference</code> is of type
|
||||
* <code>W3CEndpointReference</code> then it MUST contain the
|
||||
* the specified <code>referenceParameters</code>.
|
||||
*
|
||||
* @throws IllegalStateException This exception is thrown
|
||||
* if the method is called while no request is
|
||||
* being serviced.
|
||||
*
|
||||
* @see W3CEndpointReference
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
*/
|
||||
public EndpointReference getEndpointReference(Element... referenceParameters);
|
||||
|
||||
/**
|
||||
* Returns the <code>EndpointReference</code> associated with
|
||||
* this endpoint.
|
||||
*
|
||||
* @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 <T extends EndpointReference> T getEndpointReference(Class<T> clazz,
|
||||
Element... referenceParameters);
|
||||
}
|
||||
79
jdkSrc/jdk8/javax/xml/ws/WebServiceException.java
Normal file
79
jdkSrc/jdk8/javax/xml/ws/WebServiceException.java
Normal file
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
/** The <code>WebServiceException</code> class is the base
|
||||
* exception class for all JAX-WS API runtime exceptions.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
**/
|
||||
|
||||
public class WebServiceException extends java.lang.RuntimeException {
|
||||
|
||||
/** Constructs a new exception with <code>null</code> as its
|
||||
* detail message. The cause is not initialized.
|
||||
**/
|
||||
public WebServiceException() {
|
||||
super();
|
||||
}
|
||||
|
||||
/** Constructs a new exception with the specified detail
|
||||
* message. The cause is not initialized.
|
||||
* @param message The detail message which is later
|
||||
* retrieved using the getMessage method
|
||||
**/
|
||||
public WebServiceException(String message) {
|
||||
super(message);
|
||||
}
|
||||
|
||||
/** Constructs a new exception with the specified detail
|
||||
* message and cause.
|
||||
*
|
||||
* @param message The detail message which is later retrieved
|
||||
* using the getMessage method
|
||||
* @param cause The cause which is saved for the later
|
||||
* retrieval throw by the getCause method
|
||||
**/
|
||||
public WebServiceException(String message, Throwable cause) {
|
||||
super(message,cause);
|
||||
}
|
||||
|
||||
/** Constructs a new WebServiceException with the specified cause
|
||||
* and a detail message of <tt>(cause==null ? null :
|
||||
* cause.toString())</tt> (which typically contains the
|
||||
* class and detail message of <tt>cause</tt>).
|
||||
*
|
||||
* @param cause The cause which is saved for the later
|
||||
* retrieval throw by the getCause method.
|
||||
* (A <tt>null</tt> value is permitted, and
|
||||
* indicates that the cause is nonexistent or
|
||||
* unknown.)
|
||||
**/
|
||||
public WebServiceException(Throwable cause) {
|
||||
super(cause);
|
||||
}
|
||||
|
||||
}
|
||||
81
jdkSrc/jdk8/javax/xml/ws/WebServiceFeature.java
Normal file
81
jdkSrc/jdk8/javax/xml/ws/WebServiceFeature.java
Normal file
@@ -0,0 +1,81 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
|
||||
/**
|
||||
* 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;
|
||||
}
|
||||
}
|
||||
85
jdkSrc/jdk8/javax/xml/ws/WebServicePermission.java
Normal file
85
jdkSrc/jdk8/javax/xml/ws/WebServicePermission.java
Normal file
@@ -0,0 +1,85 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
import java.security.BasicPermission;
|
||||
|
||||
/**
|
||||
* This class defines web service permissions.
|
||||
* <p>
|
||||
* Web service Permissions are identified by name (also referred to as
|
||||
* a "target name") alone. There are no actions associated
|
||||
* with them.
|
||||
* <p>
|
||||
* The following permission target name is defined:
|
||||
* <p>
|
||||
* <dl>
|
||||
* <dt>publishEndpoint
|
||||
* </dl>
|
||||
* <p>
|
||||
* The <code>publishEndpoint</code> permission allows publishing a
|
||||
* web service endpoint using the <code>publish</code> methods
|
||||
* defined by the <code>javax.xml.ws.Endpoint</code> class.
|
||||
* <p>
|
||||
* Granting <code>publishEndpoint</code> allows the application to be
|
||||
* exposed as a network service. Depending on the security of the runtime and
|
||||
* the security of the application, this may introduce a security hole that
|
||||
* is remotely exploitable.
|
||||
*
|
||||
* @see javax.xml.ws.Endpoint
|
||||
* @see java.security.BasicPermission
|
||||
* @see java.security.Permission
|
||||
* @see java.security.Permissions
|
||||
* @see java.lang.SecurityManager
|
||||
* @see java.net.SocketPermission
|
||||
*/
|
||||
public final class WebServicePermission extends BasicPermission {
|
||||
|
||||
private static final long serialVersionUID = -146474640053770988L;
|
||||
|
||||
/**
|
||||
* Creates a new permission with the specified name.
|
||||
*
|
||||
* @param name the name of the <code>WebServicePermission</code>
|
||||
*/
|
||||
public WebServicePermission(String name) {
|
||||
super(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new permission with the specified name and actions.
|
||||
*
|
||||
* The <code>actions</code> parameter is currently unused and
|
||||
* it should be <code>null</code>.
|
||||
*
|
||||
* @param name the name of the <code>WebServicePermission</code>
|
||||
* @param actions should be <code>null</code>
|
||||
*/
|
||||
public WebServicePermission(String name, String actions) {
|
||||
super(name, actions);
|
||||
}
|
||||
|
||||
}
|
||||
62
jdkSrc/jdk8/javax/xml/ws/WebServiceProvider.java
Normal file
62
jdkSrc/jdk8/javax/xml/ws/WebServiceProvider.java
Normal file
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.Target;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
/**
|
||||
* Used to annotate a Provider implementation class.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
* @see javax.xml.ws.Provider
|
||||
*/
|
||||
@Target(ElementType.TYPE)
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
public @interface WebServiceProvider {
|
||||
/**
|
||||
* Location of the WSDL description for the service.
|
||||
*/
|
||||
String wsdlLocation() default "";
|
||||
|
||||
/**
|
||||
* Service name.
|
||||
*/
|
||||
String serviceName() default "";
|
||||
|
||||
/**
|
||||
* Target namespace for the service
|
||||
*/
|
||||
String targetNamespace() default "";
|
||||
|
||||
/**
|
||||
* Port name.
|
||||
*/
|
||||
String portName() default "";
|
||||
}
|
||||
150
jdkSrc/jdk8/javax/xml/ws/WebServiceRef.java
Normal file
150
jdkSrc/jdk8/javax/xml/ws/WebServiceRef.java
Normal file
@@ -0,0 +1,150 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
import javax.xml.ws.soap.Addressing;
|
||||
import javax.xml.ws.spi.WebServiceFeatureAnnotation;
|
||||
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;
|
||||
|
||||
/**
|
||||
* The <code>WebServiceRef</code> annotation is used to
|
||||
* define a reference to a web service and
|
||||
* (optionally) an injection target for it.
|
||||
* It can be used to inject both service and proxy
|
||||
* instances. These injected references are not thread safe.
|
||||
* If the references are accessed by multiple threads,
|
||||
* usual synchronization techinques can be used to
|
||||
* support multiple threads.
|
||||
*
|
||||
* <p>
|
||||
* Web service references are resources in the Java EE 5 sense.
|
||||
* The annotations (for example, {@link Addressing}) annotated with
|
||||
* meta-annotation {@link WebServiceFeatureAnnotation}
|
||||
* can be used in conjunction with <code>WebServiceRef</code>.
|
||||
* The created reference MUST be configured with annotation's web service
|
||||
* feature.
|
||||
*
|
||||
* <p>
|
||||
* For example, in the code below, the injected
|
||||
* <code>StockQuoteProvider</code> proxy MUST
|
||||
* have WS-Addressing enabled as specifed by the
|
||||
* {@link Addressing}
|
||||
* annotation.
|
||||
*
|
||||
* <pre><code>
|
||||
* public class MyClient {
|
||||
* @Addressing
|
||||
* @WebServiceRef(StockQuoteService.class)
|
||||
* private StockQuoteProvider stockQuoteProvider;
|
||||
* ...
|
||||
* }
|
||||
* </code></pre>
|
||||
*
|
||||
* <p>
|
||||
* If a JAX-WS implementation encounters an unsupported or unrecognized
|
||||
* annotation annotated with the <code>WebServiceFeatureAnnotation</code>
|
||||
* that is specified with <code>WebServiceRef</code>, an ERROR MUST be given.
|
||||
*
|
||||
* @see javax.annotation.Resource
|
||||
* @see WebServiceFeatureAnnotation
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
*
|
||||
**/
|
||||
|
||||
@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
public @interface WebServiceRef {
|
||||
/**
|
||||
* The JNDI name of the resource. For field annotations,
|
||||
* the default is the field name. For method annotations,
|
||||
* the default is the JavaBeans property name corresponding
|
||||
* to the method. For class annotations, there is no default
|
||||
* and this MUST be specified.
|
||||
*
|
||||
* The JNDI name can be absolute(with any logical namespace) or relative
|
||||
* to JNDI <code>java:comp/env</code> namespace.
|
||||
*/
|
||||
String name() default "";
|
||||
|
||||
/**
|
||||
* The Java type of the resource. For field annotations,
|
||||
* the default is the type of the field. For method annotations,
|
||||
* the default is the type of the JavaBeans property.
|
||||
* For class annotations, there is no default and this MUST be
|
||||
* specified.
|
||||
*/
|
||||
Class<?> type() default Object.class;
|
||||
|
||||
/**
|
||||
* A product specific name that this resource should be mapped to.
|
||||
* The name of this resource, as defined by the <code>name</code>
|
||||
* element or defaulted, is a name that is local to the application
|
||||
* component using the resource. (When a relative JNDI name
|
||||
* is specified, then it's a name in the JNDI
|
||||
* <code>java:comp/env</code> namespace.) Many application servers
|
||||
* provide a way to map these local names to names of resources
|
||||
* known to the application server. This mapped name is often a
|
||||
* <i>global</i> JNDI name, but may be a name of any form.
|
||||
* <p>
|
||||
* Application servers are not required to support any particular
|
||||
* form or type of mapped name, nor the ability to use mapped names.
|
||||
* The mapped name is product-dependent and often installation-dependent.
|
||||
* No use of a mapped name is portable.
|
||||
*/
|
||||
String mappedName() default "";
|
||||
|
||||
/**
|
||||
* The service class, alwiays a type extending
|
||||
* <code>javax.xml.ws.Service</code>. This element MUST be specified
|
||||
* whenever the type of the reference is a service endpoint interface.
|
||||
*/
|
||||
// 2.1 has Class value() default Object.class;
|
||||
// Fixing this raw Class type correctly in 2.2 API. This shouldn't cause
|
||||
// any compatibility issues for applications.
|
||||
Class<? extends Service> value() default Service.class;
|
||||
|
||||
/**
|
||||
* A URL pointing to the WSDL document for the web service.
|
||||
* If not specified, the WSDL location specified by annotations
|
||||
* on the resource type is used instead.
|
||||
*/
|
||||
String wsdlLocation() default "";
|
||||
|
||||
/**
|
||||
* A portable JNDI lookup name that resolves to the target
|
||||
* web service reference.
|
||||
*
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
String lookup() default "";
|
||||
|
||||
}
|
||||
83
jdkSrc/jdk8/javax/xml/ws/WebServiceRefs.java
Normal file
83
jdkSrc/jdk8/javax/xml/ws/WebServiceRefs.java
Normal file
@@ -0,0 +1,83 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.Target;
|
||||
import java.lang.annotation.Retention;
|
||||
import static java.lang.annotation.ElementType.*;
|
||||
import static java.lang.annotation.RetentionPolicy.*;
|
||||
|
||||
/**
|
||||
* The <code>WebServiceRefs</code> annotation allows
|
||||
* multiple web service references to be declared at the
|
||||
* class level.
|
||||
*
|
||||
* <p>
|
||||
* It can be used to inject both service and proxy
|
||||
* instances. These injected references are not thread safe.
|
||||
* If the references are accessed by multiple threads,
|
||||
* usual synchronization techniques can be used to
|
||||
* support multiple threads.
|
||||
*
|
||||
* <p>
|
||||
* There is no way to associate web service features with
|
||||
* the injected instances. If an instance needs to be
|
||||
* configured with web service features, use @WebServiceRef
|
||||
* to inject the resource along with its features.
|
||||
*
|
||||
* <p>
|
||||
* <b>Example</b>: The <code>StockQuoteProvider</code>
|
||||
* proxy instance, and the <code>StockQuoteService</code> service
|
||||
* instance are injected using @WebServiceRefs.
|
||||
*
|
||||
* <pre><code>
|
||||
* @WebServiceRefs({@WebServiceRef(name="service/stockquoteservice", value=StockQuoteService.class),
|
||||
* @WebServiceRef(name="service/stockquoteprovider", type=StockQuoteProvider.class, value=StockQuoteService.class})
|
||||
* public class MyClient {
|
||||
* void init() {
|
||||
* Context ic = new InitialContext();
|
||||
* StockQuoteService service = (StockQuoteService) ic.lookup("java:comp/env/service/stockquoteservice");
|
||||
* StockQuoteProvider port = (StockQuoteProvider) ic.lookup("java:comp/env/service/stockquoteprovider");
|
||||
* ...
|
||||
* }
|
||||
* ...
|
||||
* }
|
||||
* </code></pre>
|
||||
*
|
||||
* @see WebServiceRef
|
||||
* @since 2.0
|
||||
*/
|
||||
|
||||
@Documented
|
||||
@Retention(RUNTIME)
|
||||
@Target(TYPE)
|
||||
public @interface WebServiceRefs {
|
||||
/**
|
||||
* Array used for multiple web service reference declarations.
|
||||
*/
|
||||
WebServiceRef[] value();
|
||||
}
|
||||
87
jdkSrc/jdk8/javax/xml/ws/handler/Handler.java
Normal file
87
jdkSrc/jdk8/javax/xml/ws/handler/Handler.java
Normal file
@@ -0,0 +1,87 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.handler;
|
||||
|
||||
import javax.xml.ws.ProtocolException;
|
||||
import javax.xml.ws.handler.MessageContext;
|
||||
|
||||
/** The <code>Handler</code> interface
|
||||
* is the base interface for JAX-WS handlers.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
**/
|
||||
public interface Handler<C extends MessageContext> {
|
||||
|
||||
/** The <code>handleMessage</code> method is invoked for normal processing
|
||||
* of inbound and outbound messages. Refer to the description of the handler
|
||||
* framework in the JAX-WS specification for full details.
|
||||
*
|
||||
* @param context the message context.
|
||||
* @return An indication of whether handler processing should continue for
|
||||
* the current message
|
||||
* <ul>
|
||||
* <li>Return <code>true</code> to continue
|
||||
* processing.</li>
|
||||
* <li>Return <code>false</code> to block
|
||||
* processing.</li>
|
||||
* </ul>
|
||||
* @throws RuntimeException Causes the JAX-WS runtime to cease
|
||||
* handler processing and generate a fault.
|
||||
* @throws ProtocolException Causes the JAX-WS runtime to switch to
|
||||
* fault message processing.
|
||||
**/
|
||||
public boolean handleMessage(C context);
|
||||
|
||||
/** The <code>handleFault</code> method is invoked for fault message
|
||||
* processing. Refer to the description of the handler
|
||||
* framework in the JAX-WS specification for full details.
|
||||
*
|
||||
* @param context the message context
|
||||
* @return An indication of whether handler fault processing should continue
|
||||
* for the current message
|
||||
* <ul>
|
||||
* <li>Return <code>true</code> to continue
|
||||
* processing.</li>
|
||||
* <li>Return <code>false</code> to block
|
||||
* processing.</li>
|
||||
* </ul>
|
||||
* @throws RuntimeException Causes the JAX-WS runtime to cease
|
||||
* handler fault processing and dispatch the fault.
|
||||
* @throws ProtocolException Causes the JAX-WS runtime to cease
|
||||
* handler fault processing and dispatch the fault.
|
||||
**/
|
||||
public boolean handleFault(C context);
|
||||
|
||||
/**
|
||||
* Called at the conclusion of a message exchange pattern just prior to
|
||||
* the JAX-WS runtime dispatching a message, fault or exception. Refer to
|
||||
* the description of the handler
|
||||
* framework in the JAX-WS specification for full details.
|
||||
*
|
||||
* @param context the message context
|
||||
**/
|
||||
public void close(MessageContext context);
|
||||
}
|
||||
53
jdkSrc/jdk8/javax/xml/ws/handler/HandlerResolver.java
Normal file
53
jdkSrc/jdk8/javax/xml/ws/handler/HandlerResolver.java
Normal file
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.handler;
|
||||
|
||||
/**
|
||||
* <code>HandlerResolver</code> is an interface implemented
|
||||
* by an application to get control over the handler chain
|
||||
* set on proxy/dispatch objects at the time of their creation.
|
||||
* <p>
|
||||
* A <code>HandlerResolver</code> may be set on a <code>Service</code>
|
||||
* using the <code>setHandlerResolver</code> method.
|
||||
* <p>
|
||||
* When the runtime invokes a <code>HandlerResolver</code>, it will
|
||||
* pass it a <code>PortInfo</code> object containing information
|
||||
* about the port that the proxy/dispatch object will be accessing.
|
||||
*
|
||||
* @see javax.xml.ws.Service#setHandlerResolver
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
**/
|
||||
public interface HandlerResolver {
|
||||
|
||||
/**
|
||||
* Gets the handler chain for the specified port.
|
||||
*
|
||||
* @param portInfo Contains information about the port being accessed.
|
||||
* @return java.util.List<Handler> chain
|
||||
**/
|
||||
public java.util.List<Handler> getHandlerChain(PortInfo portInfo);
|
||||
}
|
||||
34
jdkSrc/jdk8/javax/xml/ws/handler/LogicalHandler.java
Normal file
34
jdkSrc/jdk8/javax/xml/ws/handler/LogicalHandler.java
Normal file
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.handler;
|
||||
|
||||
/** The <code>LogicalHandler</code> extends
|
||||
* Handler to provide typesafety for the message context parameter.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
**/
|
||||
public interface LogicalHandler<C extends LogicalMessageContext> extends Handler<C> {
|
||||
}
|
||||
46
jdkSrc/jdk8/javax/xml/ws/handler/LogicalMessageContext.java
Normal file
46
jdkSrc/jdk8/javax/xml/ws/handler/LogicalMessageContext.java
Normal file
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.handler;
|
||||
|
||||
import javax.xml.ws.LogicalMessage;
|
||||
|
||||
/** The <code>LogicalMessageContext</code> interface extends
|
||||
* <code>MessageContext</code> to
|
||||
* provide access to a the contained message as a protocol neutral
|
||||
* LogicalMessage
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
**/
|
||||
public interface LogicalMessageContext
|
||||
extends MessageContext {
|
||||
|
||||
/** Gets the message from this message context
|
||||
*
|
||||
* @return The contained message; returns <code>null</code> if no
|
||||
* message is present in this message context
|
||||
**/
|
||||
public LogicalMessage getMessage();
|
||||
}
|
||||
205
jdkSrc/jdk8/javax/xml/ws/handler/MessageContext.java
Normal file
205
jdkSrc/jdk8/javax/xml/ws/handler/MessageContext.java
Normal file
@@ -0,0 +1,205 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.handler;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* The interface <code>MessageContext</code> abstracts the message
|
||||
* context that is processed by a handler in the <code>handle</code>
|
||||
* method.
|
||||
*
|
||||
* <p>The <code>MessageContext</code> interface provides methods to
|
||||
* manage a property set. <code>MessageContext</code> properties
|
||||
* enable handlers in a handler chain to share processing related
|
||||
* state.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
*/
|
||||
public interface MessageContext extends Map<String, Object> {
|
||||
|
||||
/**
|
||||
* Standard property: message direction, <code>true</code> for
|
||||
* outbound messages, <code>false</code> for inbound.
|
||||
* <p>Type: boolean
|
||||
*/
|
||||
public static final String MESSAGE_OUTBOUND_PROPERTY =
|
||||
"javax.xml.ws.handler.message.outbound";
|
||||
|
||||
/**
|
||||
* Standard property: Map of attachments to a message for the inbound
|
||||
* message, key is the MIME Content-ID, value is a DataHandler.
|
||||
* <p>Type: java.util.Map<String,DataHandler>
|
||||
*/
|
||||
public static final String INBOUND_MESSAGE_ATTACHMENTS =
|
||||
"javax.xml.ws.binding.attachments.inbound";
|
||||
|
||||
/**
|
||||
* Standard property: Map of attachments to a message for the outbound
|
||||
* message, key is the MIME Content-ID, value is a DataHandler.
|
||||
* <p>Type: java.util.Map<String,DataHandler>
|
||||
*/
|
||||
public static final String OUTBOUND_MESSAGE_ATTACHMENTS =
|
||||
"javax.xml.ws.binding.attachments.outbound";
|
||||
|
||||
/**
|
||||
* Standard property: input source for WSDL document.
|
||||
* <p>Type: org.xml.sax.InputSource
|
||||
*/
|
||||
public static final String WSDL_DESCRIPTION =
|
||||
"javax.xml.ws.wsdl.description";
|
||||
|
||||
/**
|
||||
* Standard property: name of WSDL service.
|
||||
* <p>Type: javax.xml.namespace.QName
|
||||
*/
|
||||
public static final String WSDL_SERVICE =
|
||||
"javax.xml.ws.wsdl.service";
|
||||
|
||||
/**
|
||||
* Standard property: name of WSDL port.
|
||||
* <p>Type: javax.xml.namespace.QName
|
||||
*/
|
||||
public static final String WSDL_PORT =
|
||||
"javax.xml.ws.wsdl.port";
|
||||
|
||||
/**
|
||||
* Standard property: name of wsdl interface (2.0) or port type (1.1).
|
||||
* <p>Type: javax.xml.namespace.QName
|
||||
*/
|
||||
public static final String WSDL_INTERFACE =
|
||||
"javax.xml.ws.wsdl.interface";
|
||||
|
||||
/**
|
||||
* Standard property: name of WSDL operation.
|
||||
* <p>Type: javax.xml.namespace.QName
|
||||
*/
|
||||
public static final String WSDL_OPERATION =
|
||||
"javax.xml.ws.wsdl.operation";
|
||||
|
||||
/**
|
||||
* Standard property: HTTP response status code.
|
||||
* <p>Type: java.lang.Integer
|
||||
*/
|
||||
public static final String HTTP_RESPONSE_CODE =
|
||||
"javax.xml.ws.http.response.code";
|
||||
|
||||
/**
|
||||
* Standard property: HTTP request headers.
|
||||
* <p>Type: java.util.Map<java.lang.String, java.util.List<java.lang.String>>
|
||||
*/
|
||||
public static final String HTTP_REQUEST_HEADERS =
|
||||
"javax.xml.ws.http.request.headers";
|
||||
|
||||
/**
|
||||
* Standard property: HTTP response headers.
|
||||
* <p>Type: java.util.Map<java.lang.String, java.util.List<java.lang.String>>
|
||||
*/
|
||||
public static final String HTTP_RESPONSE_HEADERS =
|
||||
"javax.xml.ws.http.response.headers";
|
||||
|
||||
/**
|
||||
* Standard property: HTTP request method.
|
||||
* <p>Type: java.lang.String
|
||||
*/
|
||||
public static final String HTTP_REQUEST_METHOD =
|
||||
"javax.xml.ws.http.request.method";
|
||||
|
||||
/**
|
||||
* Standard property: servlet request object.
|
||||
* <p>Type: javax.servlet.http.HttpServletRequest
|
||||
*/
|
||||
public static final String SERVLET_REQUEST =
|
||||
"javax.xml.ws.servlet.request";
|
||||
|
||||
/**
|
||||
* Standard property: servlet response object.
|
||||
* <p>Type: javax.servlet.http.HttpServletResponse
|
||||
*/
|
||||
public static final String SERVLET_RESPONSE =
|
||||
"javax.xml.ws.servlet.response";
|
||||
|
||||
/**
|
||||
* Standard property: servlet context object.
|
||||
* <p>Type: javax.servlet.ServletContext
|
||||
*/
|
||||
public static final String SERVLET_CONTEXT =
|
||||
"javax.xml.ws.servlet.context";
|
||||
|
||||
/**
|
||||
* Standard property: Query string for request.
|
||||
* <p>Type: String
|
||||
**/
|
||||
public static final String QUERY_STRING =
|
||||
"javax.xml.ws.http.request.querystring";
|
||||
|
||||
/**
|
||||
* Standard property: Request Path Info
|
||||
* <p>Type: String
|
||||
*/
|
||||
public static final String PATH_INFO =
|
||||
"javax.xml.ws.http.request.pathinfo";
|
||||
|
||||
/**
|
||||
* Standard property: WS Addressing Reference Parameters.
|
||||
* The list MUST include all SOAP headers marked with the
|
||||
* wsa:IsReferenceParameter="true" attribute.
|
||||
* <p>Type: List<Element>
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
*/
|
||||
public static final String REFERENCE_PARAMETERS =
|
||||
"javax.xml.ws.reference.parameters";
|
||||
|
||||
/**
|
||||
* Property scope. Properties scoped as <code>APPLICATION</code> are
|
||||
* visible to handlers,
|
||||
* client applications and service endpoints; properties scoped as
|
||||
* <code>HANDLER</code>
|
||||
* are only normally visible to handlers.
|
||||
*/
|
||||
public enum Scope {APPLICATION, HANDLER};
|
||||
|
||||
/**
|
||||
* Sets the scope of a property.
|
||||
*
|
||||
* @param name Name of the property associated with the
|
||||
* <code>MessageContext</code>
|
||||
* @param scope Desired scope of the property
|
||||
* @throws java.lang.IllegalArgumentException if an illegal
|
||||
* property name is specified
|
||||
*/
|
||||
public void setScope(String name, Scope scope);
|
||||
|
||||
/**
|
||||
* Gets the scope of a property.
|
||||
*
|
||||
* @param name Name of the property
|
||||
* @return Scope of the property
|
||||
* @throws java.lang.IllegalArgumentException if a non-existant
|
||||
* property name is specified
|
||||
*/
|
||||
public Scope getScope(String name);
|
||||
}
|
||||
66
jdkSrc/jdk8/javax/xml/ws/handler/PortInfo.java
Normal file
66
jdkSrc/jdk8/javax/xml/ws/handler/PortInfo.java
Normal file
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.handler;
|
||||
|
||||
import javax.xml.namespace.QName;
|
||||
|
||||
/**
|
||||
* The <code>PortInfo</code> interface is used by a
|
||||
* <code>HandlerResolver</code> to query information about
|
||||
* the port it is being asked to create a handler chain for.
|
||||
* <p>
|
||||
* This interface is never implemented by an application,
|
||||
* only by a JAX-WS implementation.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
**/
|
||||
public interface PortInfo {
|
||||
|
||||
/**
|
||||
* Gets the qualified name of the WSDL service name containing
|
||||
* the port being accessed.
|
||||
*
|
||||
* @return javax.xml.namespace.QName The qualified name of the WSDL service.
|
||||
**/
|
||||
public QName getServiceName();
|
||||
|
||||
/**
|
||||
* Gets the qualified name of the WSDL port being accessed.
|
||||
*
|
||||
* @return javax.xml.namespace.QName The qualified name of the WSDL port.
|
||||
**/
|
||||
public QName getPortName();
|
||||
|
||||
/**
|
||||
* Gets the URI identifying the binding used by the port being accessed.
|
||||
*
|
||||
* @return String The binding identifier for the port.
|
||||
*
|
||||
* @see javax.xml.ws.Binding
|
||||
**/
|
||||
public String getBindingID();
|
||||
|
||||
}
|
||||
49
jdkSrc/jdk8/javax/xml/ws/handler/soap/SOAPHandler.java
Normal file
49
jdkSrc/jdk8/javax/xml/ws/handler/soap/SOAPHandler.java
Normal file
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.handler.soap;
|
||||
|
||||
import javax.xml.namespace.QName;
|
||||
import javax.xml.ws.handler.Handler;
|
||||
import java.util.Set;
|
||||
|
||||
/** The <code>SOAPHandler</code> class extends <code>Handler</code>
|
||||
* to provide typesafety for the message context parameter and add a method
|
||||
* to obtain access to the headers that may be processed by the handler.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
**/
|
||||
public interface SOAPHandler<T extends SOAPMessageContext>
|
||||
extends Handler<T> {
|
||||
|
||||
/** Gets the header blocks that can be processed by this Handler
|
||||
* instance.
|
||||
*
|
||||
* @return Set of <code>QNames</code> of header blocks processed by this
|
||||
* handler instance. <code>QName</code> is the qualified
|
||||
* name of the outermost element of the Header block.
|
||||
**/
|
||||
Set<QName> getHeaders();
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.handler.soap;
|
||||
|
||||
import javax.xml.soap.SOAPMessage;
|
||||
import javax.xml.bind.JAXBContext;
|
||||
import javax.xml.namespace.QName;
|
||||
import java.util.Set;
|
||||
|
||||
/** The interface <code>SOAPMessageContext</code>
|
||||
* provides access to the SOAP message for either RPC request or
|
||||
* response. The <code>javax.xml.soap.SOAPMessage</code> specifies
|
||||
* the standard Java API for the representation of a SOAP 1.1 message
|
||||
* with attachments.
|
||||
*
|
||||
* @see javax.xml.soap.SOAPMessage
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
**/
|
||||
public interface SOAPMessageContext
|
||||
extends javax.xml.ws.handler.MessageContext {
|
||||
|
||||
/** Gets the <code>SOAPMessage</code> from this message context. Modifications
|
||||
* to the returned <code>SOAPMessage</code> change the message in-place, there
|
||||
* is no need to subsequently call <code>setMessage</code>.
|
||||
*
|
||||
* @return Returns the <code>SOAPMessage</code>; returns <code>null</code> if no
|
||||
* <code>SOAPMessage</code> is present in this message context
|
||||
**/
|
||||
public SOAPMessage getMessage();
|
||||
|
||||
/** Sets the SOAPMessage in this message context
|
||||
*
|
||||
* @param message SOAP message
|
||||
* @throws WebServiceException If any error during the setting
|
||||
* of the <code>SOAPMessage</code> in this message context
|
||||
* @throws java.lang.UnsupportedOperationException If this
|
||||
* operation is not supported
|
||||
**/
|
||||
public void setMessage(SOAPMessage message);
|
||||
|
||||
/** Gets headers that have a particular qualified name from the message in the
|
||||
* message context. Note that a SOAP message can contain multiple headers
|
||||
* with the same qualified name.
|
||||
*
|
||||
* @param header The XML qualified name of the SOAP header(s).
|
||||
* @param context The JAXBContext that should be used to unmarshall the
|
||||
* header
|
||||
* @param allRoles If <code>true</code> then returns headers for all SOAP
|
||||
* roles, if <code>false</code> then only returns headers targetted
|
||||
* at the roles currently being played by this SOAP node, see
|
||||
* <code>getRoles</code>.
|
||||
* @return An array of unmarshalled headers; returns an empty array if no
|
||||
* message is present in this message context or no headers match
|
||||
* the supplied qualified name.
|
||||
* @throws WebServiceException If an error occurs when using the supplied
|
||||
* <code>JAXBContext</code> to unmarshall. The cause of
|
||||
* the <code>WebServiceException</code> is the original <code>JAXBException</code>.
|
||||
**/
|
||||
public Object[] getHeaders(QName header, JAXBContext context,
|
||||
boolean allRoles);
|
||||
|
||||
/** Gets the SOAP actor roles associated with an execution
|
||||
* of the handler chain.
|
||||
* Note that SOAP actor roles apply to the SOAP node and
|
||||
* are managed using {@link javax.xml.ws.soap.SOAPBinding#setRoles} and
|
||||
* {@link javax.xml.ws.soap.SOAPBinding#getRoles}. <code>Handler</code> instances in
|
||||
* the handler chain use this information about the SOAP actor
|
||||
* roles to process the SOAP header blocks. Note that the
|
||||
* SOAP actor roles are invariant during the processing of
|
||||
* SOAP message through the handler chain.
|
||||
*
|
||||
* @return Array of <code>String</code> for SOAP actor roles
|
||||
**/
|
||||
public Set<String> getRoles();
|
||||
}
|
||||
42
jdkSrc/jdk8/javax/xml/ws/http/HTTPBinding.java
Normal file
42
jdkSrc/jdk8/javax/xml/ws/http/HTTPBinding.java
Normal file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.http;
|
||||
|
||||
|
||||
import javax.xml.ws.Binding;
|
||||
|
||||
/** The <code>HTTPBinding</code> interface is an
|
||||
* abstraction for the XML/HTTP binding.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
**/
|
||||
public interface HTTPBinding extends Binding {
|
||||
|
||||
/**
|
||||
* A constant representing the identity of the XML/HTTP binding.
|
||||
*/
|
||||
public static final String HTTP_BINDING = "http://www.w3.org/2004/08/wsdl/http";
|
||||
}
|
||||
56
jdkSrc/jdk8/javax/xml/ws/http/HTTPException.java
Normal file
56
jdkSrc/jdk8/javax/xml/ws/http/HTTPException.java
Normal file
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.http;
|
||||
|
||||
|
||||
/** The <code>HTTPException</code> exception represents a
|
||||
* XML/HTTP fault.
|
||||
*
|
||||
* <p>Since there is no standard format for faults or exceptions
|
||||
* in XML/HTTP messaging, only the HTTP status code is captured.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
**/
|
||||
public class HTTPException extends javax.xml.ws.ProtocolException {
|
||||
|
||||
private int statusCode;
|
||||
|
||||
/** Constructor for the HTTPException
|
||||
* @param statusCode <code>int</code> for the HTTP status code
|
||||
**/
|
||||
public HTTPException(int statusCode) {
|
||||
super();
|
||||
this.statusCode = statusCode;
|
||||
}
|
||||
|
||||
/** Gets the HTTP status code.
|
||||
*
|
||||
* @return HTTP status code
|
||||
**/
|
||||
public int getStatusCode() {
|
||||
return statusCode;
|
||||
}
|
||||
}
|
||||
113
jdkSrc/jdk8/javax/xml/ws/soap/Addressing.java
Normal file
113
jdkSrc/jdk8/javax/xml/ws/soap/Addressing.java
Normal file
@@ -0,0 +1,113 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.soap;
|
||||
|
||||
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.BindingProvider;
|
||||
import javax.xml.ws.WebServiceRef;
|
||||
import javax.xml.ws.WebServiceRefs;
|
||||
import javax.xml.ws.WebServiceProvider;
|
||||
import javax.xml.ws.soap.AddressingFeature.Responses;
|
||||
import javax.xml.ws.spi.WebServiceFeatureAnnotation;
|
||||
|
||||
/**
|
||||
* This annotation represents the use of WS-Addressing with either
|
||||
* the SOAP 1.1/HTTP or SOAP 1.2/HTTP binding. Using this annotation
|
||||
* with any other binding is undefined.
|
||||
* <p>
|
||||
* This annotation MUST only be used in conjunction with the
|
||||
* {@link javax.jws.WebService}, {@link WebServiceProvider},
|
||||
* and {@link WebServiceRef} annotations.
|
||||
* When used with a <code>javax.jws.WebService</code> annotation, this
|
||||
* annotation MUST only be used on the service endpoint implementation
|
||||
* class.
|
||||
* When used with a <code>WebServiceRef</code> annotation, this annotation
|
||||
* MUST only be used when a proxy instance is created. The injected SEI
|
||||
* proxy, and endpoint MUST honor the values of the <code>Addressing</code>
|
||||
* annotation.
|
||||
* <p>
|
||||
* This annotation's behaviour is defined by the corresponding feature
|
||||
* {@link AddressingFeature}.
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
*/
|
||||
@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
@WebServiceFeatureAnnotation(id=AddressingFeature.ID,bean=AddressingFeature.class)
|
||||
public @interface Addressing {
|
||||
/**
|
||||
* Specifies if this feature is enabled or disabled. If enabled, it means
|
||||
* the endpoint supports WS-Addressing but does not require its use.
|
||||
* Corresponding
|
||||
* <a href="http://www.w3.org/TR/ws-addr-metadata/#wspolicyaddressing">
|
||||
* 3.1.1 Addressing Assertion</a> must be generated in the generated WSDL.
|
||||
*/
|
||||
boolean enabled() default true;
|
||||
|
||||
/**
|
||||
* If addressing is enabled, this property determines whether the endpoint
|
||||
* requires WS-Addressing. If required is true, the endpoint requires
|
||||
* WS-Addressing and WS-Addressing headers MUST
|
||||
* be present on incoming messages. A corresponding
|
||||
* <a href="http://www.w3.org/TR/ws-addr-metadata/#wspolicyaddressing">
|
||||
* 3.1.1 Addressing Assertion</a> must be generated in the WSDL.
|
||||
*/
|
||||
boolean required() default false;
|
||||
|
||||
/**
|
||||
* If addressing is enabled, this property determines whether endpoint
|
||||
* requires the use of anonymous responses, or non-anonymous responses,
|
||||
* or all.
|
||||
*
|
||||
* <p>
|
||||
* {@link Responses#ALL} supports all response types and this is the
|
||||
* default value.
|
||||
*
|
||||
* <p>
|
||||
* {@link Responses#ANONYMOUS} requires the use of only anonymous
|
||||
* responses. It will result into wsam:AnonymousResponses nested assertion
|
||||
* as specified in
|
||||
* <a href="http://www.w3.org/TR/ws-addr-metadata/#wspolicyanonresponses">
|
||||
* 3.1.2 AnonymousResponses Assertion</a> in the generated WSDL.
|
||||
*
|
||||
* <p>
|
||||
* {@link Responses#NON_ANONYMOUS} requires the use of only non-anonymous
|
||||
* responses. It will result into
|
||||
* wsam:NonAnonymousResponses nested assertion as specified in
|
||||
* <a href="http://www.w3.org/TR/ws-addr-metadata/#wspolicynonanonresponses">
|
||||
* 3.1.3 NonAnonymousResponses Assertion</a> in the generated WSDL.
|
||||
*
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
Responses responses() default Responses.ALL;
|
||||
|
||||
}
|
||||
277
jdkSrc/jdk8/javax/xml/ws/soap/AddressingFeature.java
Normal file
277
jdkSrc/jdk8/javax/xml/ws/soap/AddressingFeature.java
Normal file
@@ -0,0 +1,277 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.soap;
|
||||
|
||||
import javax.xml.ws.WebServiceFeature;
|
||||
import javax.xml.ws.Endpoint;
|
||||
import javax.xml.ws.Service;
|
||||
|
||||
/**
|
||||
* AddressingFeature 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 undefined.
|
||||
* <p>
|
||||
* This feature can be used during the creation of SEI proxy, and
|
||||
* {@link javax.xml.ws.Dispatch} instances on the client side and {@link Endpoint}
|
||||
* instances on the server side. This feature cannot be used for {@link Service}
|
||||
* instance creation on the client side.
|
||||
* <p>
|
||||
* The following describes the effects of this feature with respect
|
||||
* to be enabled or disabled:
|
||||
* <ul>
|
||||
* <li> ENABLED: In this Mode, WS-Addressing will be enabled. It means
|
||||
* the endpoint supports WS-Addressing but does not require its use.
|
||||
* A sender could send messages with WS-Addressing headers or without
|
||||
* WS-Addressing headers. But a receiver MUST consume both types of
|
||||
* messages.
|
||||
* <li> DISABLED: In this Mode, WS-Addressing will be disabled.
|
||||
* At runtime, WS-Addressing headers MUST NOT be used by a sender or
|
||||
* receiver.
|
||||
* </ul>
|
||||
* <p>
|
||||
* If the feature is enabled, the <code>required</code> property determines
|
||||
* whether the endpoint requires WS-Addressing. If it is set true,
|
||||
* WS-Addressing headers MUST be present on incoming and outgoing messages.
|
||||
* By default the <code>required</code> property is <code>false</code>.
|
||||
*
|
||||
* <p>
|
||||
* If the web service developer has not explicitly enabled this feature,
|
||||
* WSDL's wsam:Addressing policy assertion is used to find
|
||||
* the use of WS-Addressing. By using the feature explicitly, an application
|
||||
* overrides WSDL's indication of the use of WS-Addressing. In some cases,
|
||||
* this is really required. For example, if an application has implemented
|
||||
* WS-Addressing itself, it can use this feature to disable addressing. That
|
||||
* means a JAX-WS implementation doesn't consume or produce WS-Addressing
|
||||
* headers.
|
||||
*
|
||||
* <p>
|
||||
* If addressing is enabled, a corresponding wsam:Addressing policy assertion
|
||||
* must be generated in the WSDL as per
|
||||
* <a href="http://www.w3.org/TR/ws-addr-metadata/#wspolicyassertions">
|
||||
* 3.1 WS-Policy Assertions</a>
|
||||
*
|
||||
* <p>
|
||||
* <b>Example 1: </b>Possible Policy Assertion in the generated WSDL for
|
||||
* <code>@Addressing</code>
|
||||
* <pre>
|
||||
* <wsam:Addressing wsp:Optional="true">
|
||||
* <wsp:Policy/>
|
||||
* </wsam:Addressing>
|
||||
* </pre>
|
||||
*
|
||||
* <p>
|
||||
* <b>Example 2: </b>Possible Policy Assertion in the generated WSDL for
|
||||
* <code>@Addressing(required=true)</code>
|
||||
* <pre>
|
||||
* <wsam:Addressing>
|
||||
* <wsp:Policy/>
|
||||
* </wsam:Addressing>
|
||||
* </pre>
|
||||
*
|
||||
* <p>
|
||||
* <b>Example 3: </b>Possible Policy Assertion in the generated WSDL for
|
||||
* <code>@Addressing(required=true, responses=Responses.ANONYMOUS)</code>
|
||||
* <pre>
|
||||
* <wsam:Addressing>
|
||||
* <wsp:Policy>
|
||||
* <wsam:AnonymousResponses/>
|
||||
* </wsp:Policy>
|
||||
* </wsam:Addressing>
|
||||
* </pre>
|
||||
*
|
||||
* <p>
|
||||
* See <a href="http://www.w3.org/TR/2006/REC-ws-addr-core-20060509/">
|
||||
* Web Services Addressing - Core</a>,
|
||||
* <a href="http://www.w3.org/TR/2006/REC-ws-addr-soap-20060509/">
|
||||
* Web Services Addressing 1.0 - SOAP Binding</a>,
|
||||
* and <a href="http://www.w3.org/TR/ws-addr-metadata/">
|
||||
* Web Services Addressing 1.0 - Metadata</a>
|
||||
* for more information on WS-Addressing.
|
||||
*
|
||||
* @see Addressing
|
||||
* @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";
|
||||
|
||||
/**
|
||||
* If addressing is enabled, this property determines whether the endpoint
|
||||
* requires WS-Addressing. If required is true, WS-Addressing headers MUST
|
||||
* be present on incoming and outgoing messages.
|
||||
*/
|
||||
// should be private final, keeping original modifier due to backwards compatibility
|
||||
protected boolean required;
|
||||
|
||||
/**
|
||||
* If addressing is enabled, this property determines if endpoint requires
|
||||
* the use of only anonymous responses, or only non-anonymous responses, or all.
|
||||
*
|
||||
* <p>
|
||||
* {@link Responses#ALL} supports all response types and this is the default
|
||||
* value.
|
||||
*
|
||||
* <p>
|
||||
* {@link Responses#ANONYMOUS} requires the use of only anonymous
|
||||
* responses. It will result into wsam:AnonymousResponses nested assertion
|
||||
* as specified in
|
||||
* <a href="http://www.w3.org/TR/ws-addr-metadata/#wspolicyanonresponses">
|
||||
* 3.1.2 AnonymousResponses Assertion</a> in the generated WSDL.
|
||||
*
|
||||
* <p>
|
||||
* {@link Responses#NON_ANONYMOUS} requires the use of only non-anonymous
|
||||
* responses. It will result into
|
||||
* wsam:NonAnonymousResponses nested assertion as specified in
|
||||
* <a href="http://www.w3.org/TR/ws-addr-metadata/#wspolicynonanonresponses">
|
||||
* 3.1.3 NonAnonymousResponses Assertion</a> in the generated WSDL.
|
||||
*
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
public enum Responses {
|
||||
/**
|
||||
* Specifies the use of only anonymous
|
||||
* responses. It will result into wsam:AnonymousResponses nested assertion
|
||||
* as specified in
|
||||
* <a href="http://www.w3.org/TR/ws-addr-metadata/#wspolicyanonresponses">
|
||||
* 3.1.2 AnonymousResponses Assertion</a> in the generated WSDL.
|
||||
*/
|
||||
ANONYMOUS,
|
||||
|
||||
/**
|
||||
* Specifies the use of only non-anonymous
|
||||
* responses. It will result into
|
||||
* wsam:NonAnonymousResponses nested assertion as specified in
|
||||
* <a href="http://www.w3.org/TR/ws-addr-metadata/#wspolicynonanonresponses">
|
||||
* 3.1.3 NonAnonymousResponses Assertion</a> in the generated WSDL.
|
||||
*/
|
||||
NON_ANONYMOUS,
|
||||
|
||||
/**
|
||||
* Supports all response types and this is the default
|
||||
*/
|
||||
ALL
|
||||
}
|
||||
|
||||
private final Responses responses;
|
||||
|
||||
/**
|
||||
* Creates and configures an <code>AddressingFeature</code> with the
|
||||
* use of addressing requirements. The created feature enables
|
||||
* ws-addressing i.e. supports ws-addressing but doesn't require
|
||||
* its use. It is also configured to accept all the response types.
|
||||
*/
|
||||
public AddressingFeature() {
|
||||
this(true, false, Responses.ALL);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates and configures an <code>AddressingFeature</code> with the
|
||||
* use of addressing requirements. If <code>enabled</code> is true,
|
||||
* it enables ws-addressing i.e. supports ws-addressing but doesn't
|
||||
* require its use. It also configures to accept all the response types.
|
||||
*
|
||||
* @param enabled true enables ws-addressing i.e.ws-addressing
|
||||
* is supported but doesn't require its use
|
||||
*/
|
||||
public AddressingFeature(boolean enabled) {
|
||||
this(enabled, false, Responses.ALL);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates and configures an <code>AddressingFeature</code> with the
|
||||
* use of addressing requirements. If <code>enabled</code> and
|
||||
* <code>required</code> are true, it enables ws-addressing and
|
||||
* requires its use. It also configures to accept all the response types.
|
||||
*
|
||||
* @param enabled true enables ws-addressing i.e.ws-addressing
|
||||
* is supported but doesn't require its use
|
||||
* @param required true means requires the use of ws-addressing .
|
||||
*/
|
||||
public AddressingFeature(boolean enabled, boolean required) {
|
||||
this(enabled, required, Responses.ALL);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates and configures an <code>AddressingFeature</code> with the
|
||||
* use of addressing requirements. If <code>enabled</code> and
|
||||
* <code>required</code> are true, it enables ws-addressing and
|
||||
* requires its use. Also, the response types can be configured using
|
||||
* <code>responses</code> parameter.
|
||||
*
|
||||
* @param enabled true enables ws-addressing i.e.ws-addressing
|
||||
* is supported but doesn't require its use
|
||||
* @param required true means requires the use of ws-addressing .
|
||||
* @param responses specifies what type of responses are required
|
||||
*
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
public AddressingFeature(boolean enabled, boolean required, Responses responses) {
|
||||
this.enabled = enabled;
|
||||
this.required = required;
|
||||
this.responses = responses;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public String getID() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
/**
|
||||
* If addressing is enabled, this property determines whether the endpoint
|
||||
* requires WS-Addressing. If required is true, WS-Addressing headers MUST
|
||||
* be present on incoming and outgoing messages.
|
||||
*
|
||||
* @return the current required value
|
||||
*/
|
||||
public boolean isRequired() {
|
||||
return required;
|
||||
}
|
||||
|
||||
/**
|
||||
* If addressing is enabled, this property determines whether endpoint
|
||||
* requires the use of anonymous responses, or non-anonymous responses,
|
||||
* or all responses.
|
||||
*
|
||||
* <p>
|
||||
* @return {@link Responses#ALL} when endpoint supports all types of
|
||||
* responses,
|
||||
* {@link Responses#ANONYMOUS} when endpoint requires the use of
|
||||
* only anonymous responses,
|
||||
* {@link Responses#NON_ANONYMOUS} when endpoint requires the use
|
||||
* of only non-anonymous responses
|
||||
*
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
public Responses getResponses() {
|
||||
return responses;
|
||||
}
|
||||
|
||||
}
|
||||
75
jdkSrc/jdk8/javax/xml/ws/soap/MTOM.java
Normal file
75
jdkSrc/jdk8/javax/xml/ws/soap/MTOM.java
Normal file
@@ -0,0 +1,75 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.soap;
|
||||
|
||||
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;
|
||||
import javax.xml.ws.WebServiceRef;
|
||||
import javax.xml.ws.WebServiceProvider;
|
||||
|
||||
/**
|
||||
* This feature represents the use of MTOM with a
|
||||
* web service.
|
||||
* <p>
|
||||
* This annotation MUST only be used in conjunction the
|
||||
* <code>javax.jws.WebService</code>, {@link WebServiceProvider},
|
||||
* {@link WebServiceRef} annotations.
|
||||
* When used with the <code>javax.jws.WebService</code> annotation this
|
||||
* annotation MUST only be used on the service endpoint implementation
|
||||
* class.
|
||||
* When used with a <code>WebServiceRef</code> annotation, this annotation
|
||||
* MUST only be used when a proxy instance is created. The injected SEI
|
||||
* proxy, and endpoint MUST honor the values of the <code>MTOM</code>
|
||||
* annotation.
|
||||
* <p>
|
||||
*
|
||||
* This annotation's behaviour is defined by the corresponding feature
|
||||
* {@link MTOMFeature}.
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
*/
|
||||
@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD})
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
@WebServiceFeatureAnnotation(id=MTOMFeature.ID,bean=MTOMFeature.class)
|
||||
public @interface MTOM {
|
||||
/**
|
||||
* Specifies if this feature is enabled or disabled.
|
||||
*/
|
||||
boolean enabled() default true;
|
||||
|
||||
/**
|
||||
* Property for MTOM threshold value. When MTOM is enabled, binary data above this
|
||||
* size in bytes will be XOP encoded or sent as attachment. The value of this property
|
||||
* MUST always be >= 0. Default value is 0.
|
||||
*/
|
||||
int threshold() default 0;
|
||||
}
|
||||
144
jdkSrc/jdk8/javax/xml/ws/soap/MTOMFeature.java
Normal file
144
jdkSrc/jdk8/javax/xml/ws/soap/MTOMFeature.java
Normal file
@@ -0,0 +1,144 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.soap;
|
||||
|
||||
import javax.xml.ws.WebServiceFeature;
|
||||
import javax.xml.ws.WebServiceException;
|
||||
import javax.xml.ws.Endpoint;
|
||||
import javax.xml.ws.Service;
|
||||
|
||||
/**
|
||||
* This feature represents the use of MTOM with a
|
||||
* web service.
|
||||
*
|
||||
* This feature can be used during the creation of SEI proxy, and
|
||||
* {@link javax.xml.ws.Dispatch} instances on the client side and {@link Endpoint}
|
||||
* instances on the server side. This feature cannot be used for {@link Service}
|
||||
* instance creation on the client side.
|
||||
*
|
||||
* <p>
|
||||
* The following describes the affects of this feature with respect
|
||||
* to being enabled or disabled:
|
||||
* <ul>
|
||||
* <li> ENABLED: In this Mode, MTOM will be enabled. A receiver MUST accept
|
||||
* both a non-optimized and an optimized message, and a sender MAY send an
|
||||
* optimized message, or a non-optimized message. The heuristics used by a
|
||||
* sender to determine whether to use optimization or not are
|
||||
* implementation-specific.
|
||||
* <li> DISABLED: In this Mode, MTOM will be disabled
|
||||
* </ul>
|
||||
* <p>
|
||||
* The {@link #threshold} property can be used to set the threshold
|
||||
* value used to determine when binary data should be XOP encoded.
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
*/
|
||||
public final class MTOMFeature extends WebServiceFeature {
|
||||
/**
|
||||
* Constant value identifying the MTOMFeature
|
||||
*/
|
||||
public static final String ID = "http://www.w3.org/2004/08/soap/features/http-optimization";
|
||||
|
||||
|
||||
/**
|
||||
* Property for MTOM threshold value. This property serves as a hint when
|
||||
* MTOM is enabled, binary data above this size in bytes SHOULD be sent
|
||||
* as attachment.
|
||||
* The value of this property MUST always be >= 0. Default value is 0.
|
||||
*/
|
||||
// should be changed to private final, keeping original modifier to keep backwards compatibility
|
||||
protected int threshold;
|
||||
|
||||
|
||||
/**
|
||||
* Create an <code>MTOMFeature</code>.
|
||||
* The instance created will be enabled.
|
||||
*/
|
||||
public MTOMFeature() {
|
||||
this.enabled = true;
|
||||
this.threshold = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an <code>MTOMFeature</code>.
|
||||
*
|
||||
* @param enabled specifies if this feature should be enabled or not
|
||||
*/
|
||||
public MTOMFeature(boolean enabled) {
|
||||
this.enabled = enabled;
|
||||
this.threshold = 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creates an <code>MTOMFeature</code>.
|
||||
* The instance created will be enabled.
|
||||
*
|
||||
* @param threshold the size in bytes that binary data SHOULD be before
|
||||
* being sent as an attachment.
|
||||
*
|
||||
* @throws WebServiceException if threshold is < 0
|
||||
*/
|
||||
public MTOMFeature(int threshold) {
|
||||
if (threshold < 0)
|
||||
throw new WebServiceException("MTOMFeature.threshold must be >= 0, actual value: "+threshold);
|
||||
this.enabled = true;
|
||||
this.threshold = threshold;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an <code>MTOMFeature</code>.
|
||||
*
|
||||
* @param enabled specifies if this feature should be enabled or not
|
||||
* @param threshold the size in bytes that binary data SHOULD be before
|
||||
* being sent as an attachment.
|
||||
*
|
||||
* @throws WebServiceException if threshold is < 0
|
||||
*/
|
||||
public MTOMFeature(boolean enabled, int threshold) {
|
||||
if (threshold < 0)
|
||||
throw new WebServiceException("MTOMFeature.threshold must be >= 0, actual value: "+threshold);
|
||||
this.enabled = enabled;
|
||||
this.threshold = threshold;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public String getID() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the threshold value used to determine when binary data
|
||||
* should be sent as an attachment.
|
||||
*
|
||||
* @return the current threshold size in bytes
|
||||
*/
|
||||
public int getThreshold() {
|
||||
return threshold;
|
||||
}
|
||||
}
|
||||
110
jdkSrc/jdk8/javax/xml/ws/soap/SOAPBinding.java
Normal file
110
jdkSrc/jdk8/javax/xml/ws/soap/SOAPBinding.java
Normal file
@@ -0,0 +1,110 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.soap;
|
||||
|
||||
|
||||
import java.util.Set;
|
||||
import javax.xml.ws.Binding;
|
||||
import javax.xml.soap.SOAPFactory;
|
||||
import javax.xml.soap.MessageFactory;
|
||||
|
||||
/** The <code>SOAPBinding</code> interface is an abstraction for
|
||||
* the SOAP binding.
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
**/
|
||||
public interface SOAPBinding extends Binding {
|
||||
|
||||
/**
|
||||
* A constant representing the identity of the SOAP 1.1 over HTTP binding.
|
||||
*/
|
||||
public static final String SOAP11HTTP_BINDING = "http://schemas.xmlsoap.org/wsdl/soap/http";
|
||||
|
||||
/**
|
||||
* A constant representing the identity of the SOAP 1.2 over HTTP binding.
|
||||
*/
|
||||
public static final String SOAP12HTTP_BINDING = "http://www.w3.org/2003/05/soap/bindings/HTTP/";
|
||||
|
||||
/**
|
||||
* A constant representing the identity of the SOAP 1.1 over HTTP binding
|
||||
* with MTOM enabled by default.
|
||||
*/
|
||||
public static final String SOAP11HTTP_MTOM_BINDING = "http://schemas.xmlsoap.org/wsdl/soap/http?mtom=true";
|
||||
|
||||
/**
|
||||
* A constant representing the identity of the SOAP 1.2 over HTTP binding
|
||||
* with MTOM enabled by default.
|
||||
*/
|
||||
public static final String SOAP12HTTP_MTOM_BINDING = "http://www.w3.org/2003/05/soap/bindings/HTTP/?mtom=true";
|
||||
|
||||
|
||||
/** Gets the roles played by the SOAP binding instance.
|
||||
*
|
||||
* @return Set<String> The set of roles played by the binding instance.
|
||||
**/
|
||||
public Set<String> getRoles();
|
||||
|
||||
/** Sets the roles played by the SOAP binding instance.
|
||||
*
|
||||
* @param roles The set of roles played by the binding instance.
|
||||
* @throws WebServiceException On an error in the configuration of
|
||||
* the list of roles.
|
||||
**/
|
||||
public void setRoles(Set<String> roles);
|
||||
|
||||
/**
|
||||
* Returns <code>true</code> if the use of MTOM is enabled.
|
||||
*
|
||||
* @return <code>true</code> if and only if the use of MTOM is enabled.
|
||||
**/
|
||||
|
||||
public boolean isMTOMEnabled();
|
||||
|
||||
/**
|
||||
* Enables or disables use of MTOM.
|
||||
*
|
||||
* @param flag A <code>boolean</code> specifying whether the use of MTOM should
|
||||
* be enabled or disabled.
|
||||
* @throws WebServiceException If the specified setting is not supported
|
||||
* by this binding instance.
|
||||
*
|
||||
**/
|
||||
public void setMTOMEnabled(boolean flag);
|
||||
|
||||
/**
|
||||
* Gets the SAAJ <code>SOAPFactory</code> instance used by this SOAP binding.
|
||||
*
|
||||
* @return SOAPFactory instance used by this SOAP binding.
|
||||
**/
|
||||
public SOAPFactory getSOAPFactory();
|
||||
|
||||
/**
|
||||
* Gets the SAAJ <code>MessageFactory</code> instance used by this SOAP binding.
|
||||
*
|
||||
* @return MessageFactory instance used by this SOAP binding.
|
||||
**/
|
||||
public MessageFactory getMessageFactory();
|
||||
}
|
||||
75
jdkSrc/jdk8/javax/xml/ws/soap/SOAPFaultException.java
Normal file
75
jdkSrc/jdk8/javax/xml/ws/soap/SOAPFaultException.java
Normal file
@@ -0,0 +1,75 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.soap;
|
||||
|
||||
import javax.xml.soap.SOAPFault;
|
||||
|
||||
/** The <code>SOAPFaultException</code> exception represents a
|
||||
* SOAP 1.1 or 1.2 fault.
|
||||
*
|
||||
* <p>A <code>SOAPFaultException</code> wraps a SAAJ <code>SOAPFault</code>
|
||||
* that manages the SOAP-specific representation of faults.
|
||||
* The <code>createFault</code> method of
|
||||
* <code>javax.xml.soap.SOAPFactory</code> may be used to create an instance
|
||||
* of <code>javax.xml.soap.SOAPFault</code> for use with the
|
||||
* constructor. <code>SOAPBinding</code> contains an accessor for the
|
||||
* <code>SOAPFactory</code> used by the binding instance.
|
||||
*
|
||||
* <p>Note that the value of <code>getFault</code> is the only part of the
|
||||
* exception used when searializing a SOAP fault.
|
||||
*
|
||||
* <p>Refer to the SOAP specification for a complete
|
||||
* description of SOAP faults.
|
||||
*
|
||||
* @see javax.xml.soap.SOAPFault
|
||||
* @see javax.xml.ws.soap.SOAPBinding#getSOAPFactory
|
||||
* @see javax.xml.ws.ProtocolException
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
**/
|
||||
public class SOAPFaultException extends javax.xml.ws.ProtocolException {
|
||||
|
||||
private SOAPFault fault;
|
||||
|
||||
/** Constructor for SOAPFaultException
|
||||
* @param fault <code>SOAPFault</code> representing the fault
|
||||
*
|
||||
* @see javax.xml.soap.SOAPFactory#createFault
|
||||
**/
|
||||
public SOAPFaultException(SOAPFault fault) {
|
||||
super(fault.getFaultString());
|
||||
this.fault = fault;
|
||||
}
|
||||
|
||||
/** Gets the embedded <code>SOAPFault</code> instance.
|
||||
*
|
||||
* @return <code>javax.xml.soap.SOAPFault</code> SOAP
|
||||
* fault element
|
||||
**/
|
||||
public javax.xml.soap.SOAPFault getFault() {
|
||||
return this.fault;
|
||||
}
|
||||
}
|
||||
216
jdkSrc/jdk8/javax/xml/ws/spi/FactoryFinder.java
Normal file
216
jdkSrc/jdk8/javax/xml/ws/spi/FactoryFinder.java
Normal file
@@ -0,0 +1,216 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.spi;
|
||||
|
||||
import java.io.*;
|
||||
|
||||
import java.util.Properties;
|
||||
import javax.xml.ws.WebServiceException;
|
||||
|
||||
class FactoryFinder {
|
||||
|
||||
/**
|
||||
* Creates an instance of the specified class using the specified
|
||||
* <code>ClassLoader</code> object.
|
||||
*
|
||||
* @exception WebServiceException if the given class could not be found
|
||||
* or could not be instantiated
|
||||
*/
|
||||
private static Object newInstance(String className,
|
||||
ClassLoader classLoader)
|
||||
{
|
||||
try {
|
||||
Class spiClass = safeLoadClass(className, classLoader);
|
||||
return spiClass.newInstance();
|
||||
} catch (ClassNotFoundException x) {
|
||||
throw new WebServiceException(
|
||||
"Provider " + className + " not found", x);
|
||||
} catch (Exception x) {
|
||||
throw new WebServiceException(
|
||||
"Provider " + className + " could not be instantiated: " + x,
|
||||
x);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds the implementation <code>Class</code> object for the given
|
||||
* factory name, or if that fails, finds the <code>Class</code> object
|
||||
* for the given fallback class name. The arguments supplied MUST be
|
||||
* used in order. If using the first argument is successful, the second
|
||||
* one will not be used.
|
||||
* <P>
|
||||
* This method is package private so that this code can be shared.
|
||||
*
|
||||
* @return the <code>Class</code> object of the specified message factory;
|
||||
* may not be <code>null</code>
|
||||
*
|
||||
* @param factoryId the name of the factory to find, which is
|
||||
* a system property
|
||||
* @param fallbackClassName the implementation class name, which is
|
||||
* to be used only if nothing else
|
||||
* is found; <code>null</code> to indicate that
|
||||
* there is no fallback class name
|
||||
* @exception WebServiceException if there is an error
|
||||
*/
|
||||
static Object find(String factoryId, String fallbackClassName)
|
||||
{
|
||||
if (isOsgi()) {
|
||||
return lookupUsingOSGiServiceLoader(factoryId);
|
||||
}
|
||||
ClassLoader classLoader;
|
||||
try {
|
||||
classLoader = Thread.currentThread().getContextClassLoader();
|
||||
} catch (Exception x) {
|
||||
throw new WebServiceException(x.toString(), x);
|
||||
}
|
||||
|
||||
String serviceId = "META-INF/services/" + factoryId;
|
||||
// try to find services in CLASSPATH
|
||||
BufferedReader rd = null;
|
||||
try {
|
||||
InputStream is;
|
||||
if (classLoader == null) {
|
||||
is=ClassLoader.getSystemResourceAsStream(serviceId);
|
||||
} else {
|
||||
is=classLoader.getResourceAsStream(serviceId);
|
||||
}
|
||||
|
||||
if( is!=null ) {
|
||||
rd = new BufferedReader(new InputStreamReader(is, "UTF-8"));
|
||||
|
||||
String factoryClassName = rd.readLine();
|
||||
|
||||
if (factoryClassName != null &&
|
||||
! "".equals(factoryClassName)) {
|
||||
return newInstance(factoryClassName, classLoader);
|
||||
}
|
||||
}
|
||||
} catch( Exception ignored) {
|
||||
} finally {
|
||||
close(rd);
|
||||
}
|
||||
|
||||
|
||||
// try to read from $java.home/lib/jaxws.properties
|
||||
FileInputStream inStream = null;
|
||||
try {
|
||||
String javah=System.getProperty( "java.home" );
|
||||
String configFile = javah + File.separator +
|
||||
"lib" + File.separator + "jaxws.properties";
|
||||
File f=new File( configFile );
|
||||
if( f.exists()) {
|
||||
Properties props=new Properties();
|
||||
inStream = new FileInputStream(f);
|
||||
props.load(inStream);
|
||||
String factoryClassName = props.getProperty(factoryId);
|
||||
return newInstance(factoryClassName, classLoader);
|
||||
}
|
||||
} catch(Exception ignored) {
|
||||
} finally {
|
||||
close(inStream);
|
||||
}
|
||||
|
||||
// Use the system property
|
||||
try {
|
||||
String systemProp =
|
||||
System.getProperty( factoryId );
|
||||
if( systemProp!=null) {
|
||||
return newInstance(systemProp, classLoader);
|
||||
}
|
||||
} catch (SecurityException ignored) {
|
||||
}
|
||||
|
||||
if (fallbackClassName == null) {
|
||||
throw new WebServiceException(
|
||||
"Provider for " + factoryId + " cannot be found", null);
|
||||
}
|
||||
|
||||
return newInstance(fallbackClassName, classLoader);
|
||||
}
|
||||
|
||||
private static void close(Closeable closeable) {
|
||||
if (closeable != null) {
|
||||
try {
|
||||
closeable.close();
|
||||
} catch (IOException ignored) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Loads the class, provided that the calling thread has an access to the class being loaded.
|
||||
*/
|
||||
private static Class safeLoadClass(String className, ClassLoader classLoader) throws ClassNotFoundException {
|
||||
try {
|
||||
// make sure that the current thread has an access to the package of the given name.
|
||||
SecurityManager s = System.getSecurityManager();
|
||||
if (s != null) {
|
||||
int i = className.lastIndexOf('.');
|
||||
if (i != -1) {
|
||||
s.checkPackageAccess(className.substring(0, i));
|
||||
}
|
||||
}
|
||||
|
||||
if (classLoader == null)
|
||||
return Class.forName(className);
|
||||
else
|
||||
return classLoader.loadClass(className);
|
||||
} catch (SecurityException se) {
|
||||
// anyone can access the platform default factory class without permission
|
||||
if (Provider.DEFAULT_JAXWSPROVIDER.equals(className))
|
||||
return Class.forName(className);
|
||||
throw se;
|
||||
}
|
||||
}
|
||||
|
||||
private static final String OSGI_SERVICE_LOADER_CLASS_NAME = "com.sun.org.glassfish.hk2.osgiresourcelocator.ServiceLoader";
|
||||
|
||||
private static boolean isOsgi() {
|
||||
try {
|
||||
Class.forName(OSGI_SERVICE_LOADER_CLASS_NAME);
|
||||
return true;
|
||||
} catch (ClassNotFoundException ignored) {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private static Object lookupUsingOSGiServiceLoader(String factoryId) {
|
||||
try {
|
||||
// Use reflection to avoid having any dependendcy on ServiceLoader class
|
||||
Class serviceClass = Class.forName(factoryId);
|
||||
Class[] args = new Class[]{serviceClass};
|
||||
Class target = Class.forName(OSGI_SERVICE_LOADER_CLASS_NAME);
|
||||
java.lang.reflect.Method m = target.getMethod("lookupProviderInstances", Class.class);
|
||||
java.util.Iterator iter = ((Iterable) m.invoke(null, (Object[]) args)).iterator();
|
||||
return iter.hasNext() ? iter.next() : null;
|
||||
} catch (Exception ignored) {
|
||||
// log and continue
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
91
jdkSrc/jdk8/javax/xml/ws/spi/Invoker.java
Normal file
91
jdkSrc/jdk8/javax/xml/ws/spi/Invoker.java
Normal file
@@ -0,0 +1,91 @@
|
||||
/*
|
||||
* Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.spi;
|
||||
|
||||
import javax.xml.ws.WebServiceContext;
|
||||
import javax.xml.ws.WebServiceFeature;
|
||||
import java.lang.reflect.Method;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
|
||||
/**
|
||||
* Invoker hides the detail of calling into application endpoint
|
||||
* implementation. Container hands over an implementation of Invoker
|
||||
* to JAX-WS runtime, and jax-ws runtime calls {@link #invoke}
|
||||
* for a web service invocation. Finally, Invoker does the actual
|
||||
* invocation of web service on endpoint instance.
|
||||
*
|
||||
* Container also injects the provided <code>WebServiceContext</code> and takes
|
||||
* care of invoking <code>javax.annotation.PostConstruct</code> methods,
|
||||
* if present, on the endpoint implementation.
|
||||
*
|
||||
* @see Provider#createEndpoint(String, Class, Invoker, WebServiceFeature...)
|
||||
* @author Jitendra Kotamraju
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
|
||||
public abstract class Invoker {
|
||||
|
||||
/**
|
||||
* JAX-WS runtimes calls this method to ask container to inject
|
||||
* WebServiceContext on the endpoint instance. The
|
||||
* <code>WebServiceContext</code> object uses thread-local information
|
||||
* to return the correct information during the actual endpoint invocation
|
||||
* regardless of how many threads are concurrently being used to serve
|
||||
* requests.
|
||||
*
|
||||
* @param webServiceContext a holder for MessageContext
|
||||
* @throws IllegalAccessException if the injection done
|
||||
* by reflection API throws this exception
|
||||
* @throws IllegalArgumentException if the injection done
|
||||
* by reflection API throws this exception
|
||||
* @throws InvocationTargetException if the injection done
|
||||
* by reflection API throws this exception
|
||||
*/
|
||||
public abstract void inject(WebServiceContext webServiceContext)
|
||||
throws IllegalAccessException, IllegalArgumentException, InvocationTargetException;
|
||||
|
||||
/**
|
||||
* JAX-WS runtime calls this method to do the actual web service
|
||||
* invocation on endpoint instance. The injected
|
||||
* <code>WebServiceContext.getMessageContext()</code> gives the correct
|
||||
* information for this invocation.
|
||||
*
|
||||
* @param m Method to be invoked on the service
|
||||
* @param args Method arguments
|
||||
* @return return value of the method
|
||||
* @throws IllegalAccessException if the invocation done
|
||||
* by reflection API throws this exception
|
||||
* @throws IllegalArgumentException if the invocation done
|
||||
* by reflection API throws this exception
|
||||
* @throws InvocationTargetException if the invocation done
|
||||
* by reflection API throws this exception
|
||||
|
||||
* @see Method#invoke
|
||||
*/
|
||||
public abstract Object invoke(Method m, Object... args)
|
||||
throws IllegalAccessException, IllegalArgumentException, InvocationTargetException;
|
||||
|
||||
}
|
||||
521
jdkSrc/jdk8/javax/xml/ws/spi/Provider.java
Normal file
521
jdkSrc/jdk8/javax/xml/ws/spi/Provider.java
Normal file
@@ -0,0 +1,521 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.spi;
|
||||
|
||||
import java.net.URL;
|
||||
import java.util.List;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.lang.reflect.Method;
|
||||
import javax.xml.namespace.QName;
|
||||
import javax.xml.ws.*;
|
||||
import javax.xml.ws.wsaddressing.W3CEndpointReference;
|
||||
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
/**
|
||||
* Service provider for <code>ServiceDelegate</code> and
|
||||
* <code>Endpoint</code> objects.
|
||||
* <p>
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
*/
|
||||
public abstract class Provider {
|
||||
|
||||
/**
|
||||
* A constant representing the property used to lookup the
|
||||
* name of a <code>Provider</code> implementation
|
||||
* class.
|
||||
*/
|
||||
static public final String JAXWSPROVIDER_PROPERTY
|
||||
= "javax.xml.ws.spi.Provider";
|
||||
|
||||
/**
|
||||
* A constant representing the name of the default
|
||||
* <code>Provider</code> implementation class.
|
||||
**/
|
||||
// Using two strings so that package renaming doesn't change it
|
||||
static final String DEFAULT_JAXWSPROVIDER
|
||||
= "com.sun"+".xml.internal.ws.spi.ProviderImpl";
|
||||
|
||||
/**
|
||||
* Take advantage of Java SE 6's java.util.ServiceLoader API.
|
||||
* Using reflection so that there is no compile-time dependency on SE 6.
|
||||
*/
|
||||
static private final Method loadMethod;
|
||||
static private final Method iteratorMethod;
|
||||
static {
|
||||
Method tLoadMethod = null;
|
||||
Method tIteratorMethod = null;
|
||||
try {
|
||||
Class<?> clazz = Class.forName("java.util.ServiceLoader");
|
||||
tLoadMethod = clazz.getMethod("load", Class.class);
|
||||
tIteratorMethod = clazz.getMethod("iterator");
|
||||
} catch(ClassNotFoundException ce) {
|
||||
// Running on Java SE 5
|
||||
} catch(NoSuchMethodException ne) {
|
||||
// Shouldn't happen
|
||||
}
|
||||
loadMethod = tLoadMethod;
|
||||
iteratorMethod = tIteratorMethod;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creates a new instance of Provider
|
||||
*/
|
||||
protected Provider() {
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* Creates a new provider object.
|
||||
* <p>
|
||||
* The algorithm used to locate the provider subclass to use consists
|
||||
* of the following steps:
|
||||
* <p>
|
||||
* <ul>
|
||||
* <li>
|
||||
* If a resource with the name of
|
||||
* <code>META-INF/services/javax.xml.ws.spi.Provider</code>
|
||||
* exists, then its first line, if present, is used as the UTF-8 encoded
|
||||
* name of the implementation class.
|
||||
* </li>
|
||||
* <li>
|
||||
* If the $java.home/lib/jaxws.properties file exists and it is readable by
|
||||
* the <code>java.util.Properties.load(InputStream)</code> method and it contains
|
||||
* an entry whose key is <code>javax.xml.ws.spi.Provider</code>, then the value of
|
||||
* that entry is used as the name of the implementation class.
|
||||
* </li>
|
||||
* <li>
|
||||
* If a system property with the name <code>javax.xml.ws.spi.Provider</code>
|
||||
* is defined, then its value is used as the name of the implementation class.
|
||||
* </li>
|
||||
* <li>
|
||||
* Finally, a default implementation class name is used.
|
||||
* </li>
|
||||
* </ul>
|
||||
*
|
||||
*/
|
||||
public static Provider provider() {
|
||||
try {
|
||||
Object provider = getProviderUsingServiceLoader();
|
||||
if (provider == null) {
|
||||
provider = FactoryFinder.find(JAXWSPROVIDER_PROPERTY, DEFAULT_JAXWSPROVIDER);
|
||||
}
|
||||
if (!(provider instanceof Provider)) {
|
||||
Class pClass = Provider.class;
|
||||
String classnameAsResource = pClass.getName().replace('.', '/') + ".class";
|
||||
ClassLoader loader = pClass.getClassLoader();
|
||||
if(loader == null) {
|
||||
loader = ClassLoader.getSystemClassLoader();
|
||||
}
|
||||
URL targetTypeURL = loader.getResource(classnameAsResource);
|
||||
throw new LinkageError("ClassCastException: attempting to cast" +
|
||||
provider.getClass().getClassLoader().getResource(classnameAsResource) +
|
||||
"to" + targetTypeURL.toString() );
|
||||
}
|
||||
return (Provider) provider;
|
||||
} catch (WebServiceException ex) {
|
||||
throw ex;
|
||||
} catch (Exception ex) {
|
||||
throw new WebServiceException("Unable to createEndpointReference Provider", ex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static Provider getProviderUsingServiceLoader() {
|
||||
if (loadMethod != null) {
|
||||
Object loader;
|
||||
try {
|
||||
loader = loadMethod.invoke(null, Provider.class);
|
||||
} catch (Exception e) {
|
||||
throw new WebServiceException("Cannot invoke java.util.ServiceLoader#load()", e);
|
||||
}
|
||||
|
||||
Iterator<Provider> it;
|
||||
try {
|
||||
it = (Iterator<Provider>)iteratorMethod.invoke(loader);
|
||||
} catch(Exception e) {
|
||||
throw new WebServiceException("Cannot invoke java.util.ServiceLoader#iterator()", e);
|
||||
}
|
||||
return it.hasNext() ? it.next() : null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a service delegate object.
|
||||
* <p>
|
||||
* @param wsdlDocumentLocation A URL pointing to the WSDL document
|
||||
* for the service, or <code>null</code> if there isn't one.
|
||||
* @param serviceName The qualified name of the service.
|
||||
* @param serviceClass The service class, which MUST be either
|
||||
* <code>javax.xml.ws.Service</code> or a subclass thereof.
|
||||
* @return The newly created service delegate.
|
||||
*/
|
||||
public abstract ServiceDelegate createServiceDelegate(
|
||||
java.net.URL wsdlDocumentLocation,
|
||||
QName serviceName, Class<? extends Service> serviceClass);
|
||||
|
||||
/**
|
||||
* Creates a service delegate object.
|
||||
* <p>
|
||||
* @param wsdlDocumentLocation A URL pointing to the WSDL document
|
||||
* for the service, or <code>null</code> if there isn't one.
|
||||
* @param serviceName The qualified name of the service.
|
||||
* @param serviceClass The service class, which MUST be either
|
||||
* <code>javax.xml.ws.Service</code> or a subclass thereof.
|
||||
* @param features Web Service features that must be configured on
|
||||
* the service. If the provider doesn't understand a feature,
|
||||
* it must throw a WebServiceException.
|
||||
* @return The newly created service delegate.
|
||||
*
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
public ServiceDelegate createServiceDelegate(
|
||||
java.net.URL wsdlDocumentLocation,
|
||||
QName serviceName, Class<? extends Service> serviceClass, WebServiceFeature ... features) {
|
||||
throw new UnsupportedOperationException("JAX-WS 2.2 implementation must override this default behaviour.");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Creates an endpoint object with the provided binding and implementation
|
||||
* object.
|
||||
*
|
||||
* @param bindingId A URI specifying the desired binding (e.g. SOAP/HTTP)
|
||||
* @param implementor A service implementation object to which
|
||||
* incoming requests will be dispatched. The corresponding
|
||||
* class MUST be annotated with all the necessary Web service
|
||||
* annotations.
|
||||
* @return The newly created endpoint.
|
||||
*/
|
||||
public abstract Endpoint createEndpoint(String bindingId,
|
||||
Object implementor);
|
||||
|
||||
|
||||
/**
|
||||
* Creates and publishes an endpoint object with the specified
|
||||
* address and implementation object.
|
||||
*
|
||||
* @param address A URI specifying the address and transport/protocol
|
||||
* to use. A http: URI MUST result in the SOAP 1.1/HTTP
|
||||
* binding being used. Implementations may support other
|
||||
* URI schemes.
|
||||
* @param implementor A service implementation object to which
|
||||
* incoming requests will be dispatched. The corresponding
|
||||
* class MUST be annotated with all the necessary Web service
|
||||
* annotations.
|
||||
* @return The newly created endpoint.
|
||||
*/
|
||||
public abstract Endpoint createAndPublishEndpoint(String address,
|
||||
Object implementor);
|
||||
|
||||
/**
|
||||
* read an EndpointReference from the infoset contained in
|
||||
* <code>eprInfoset</code>.
|
||||
*
|
||||
* @param eprInfoset infoset for EndpointReference
|
||||
*
|
||||
* @return the <code>EndpointReference</code> unmarshalled from
|
||||
* <code>eprInfoset</code>. This method never returns <code>null</code>.
|
||||
*
|
||||
* @throws WebServiceException If there is an error creating the
|
||||
* <code>EndpointReference</code> from the specified <code>eprInfoset</code>.
|
||||
*
|
||||
* @throws NullPointerException If the <code>null</code>
|
||||
* <code>eprInfoset</code> value is given.
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
**/
|
||||
public abstract EndpointReference readEndpointReference(javax.xml.transform.Source eprInfoset);
|
||||
|
||||
|
||||
/**
|
||||
* 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 of the
|
||||
* <code>serviceEndpointInterface</code> and the <code>EndpointReference</code>.
|
||||
* For this method
|
||||
* to successfully return a proxy, WSDL metadata MUST be available and the
|
||||
* <code>endpointReference</code> MUST contain an implementation understood
|
||||
* <code>serviceName</code> metadata.
|
||||
*
|
||||
*
|
||||
* @param endpointReference the EndpointReference that will
|
||||
* be invoked by the returned proxy.
|
||||
* @param serviceEndpointInterface Service endpoint interface
|
||||
* @param features A list of WebServiceFeatures to configure on the
|
||||
* proxy. Supported features not in the <code>features
|
||||
* </code> parameter will have their default values.
|
||||
* @return Object Proxy instance that supports the
|
||||
* specified service endpoint interface
|
||||
* @throws WebServiceException
|
||||
* <UL>
|
||||
* <LI>If there is an error during creation
|
||||
* of the proxy
|
||||
* <LI>If there is any missing WSDL metadata
|
||||
* as required by this method}
|
||||
* <LI>If this
|
||||
* <code>endpointReference</code>
|
||||
* is illegal
|
||||
* <LI>If an illegal
|
||||
* <code>serviceEndpointInterface</code>
|
||||
* is specified
|
||||
* <LI>If 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(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.IllegalStateException</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 java.lang.IllegalStateException
|
||||
* <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</code> is NOT <code>null</code>.
|
||||
* <li>If the <code>address</code> property is <code>null</code> and
|
||||
* the <code>serviceName</code> and <code>portName</code> do not
|
||||
* specify a valid endpoint published by the same Java EE
|
||||
* application.
|
||||
* <li>If the <code>serviceName</code>is NOT <code>null</code>
|
||||
* and is not present in the specified WSDL.
|
||||
* <li>If the <code>portName</code> port is not <code>null</code> and it
|
||||
* is not present in <code>serviceName</code> service in the WSDL.
|
||||
* <li>If the <code>wsdlDocumentLocation</code> is NOT <code>null</code>
|
||||
* and does not represent a valid WSDL.
|
||||
* </ul>
|
||||
* @throws WebServiceException If an error occurs while creating the
|
||||
* <code>W3CEndpointReference</code>.
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
*/
|
||||
public abstract W3CEndpointReference createW3CEndpointReference(String address, QName serviceName, QName portName,
|
||||
List<Element> metadata, String wsdlDocumentLocation, List<Element> referenceParameters);
|
||||
|
||||
|
||||
/**
|
||||
* Factory method to create a <code>W3CEndpointReference</code>.
|
||||
* Using this method, a <code>W3CEndpointReference</code> instance
|
||||
* can be created with extension elements, and attributes.
|
||||
* <code>Provider</code> implementations must override the default
|
||||
* implementation.
|
||||
*
|
||||
* <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.IllegalStateException</code> MUST be thrown.
|
||||
*
|
||||
* @param address Specifies the address of the target endpoint
|
||||
* @param interfaceName the <code>wsam:InterfaceName</code> element in the
|
||||
* <code>wsa:Metadata</code> element.
|
||||
* @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.
|
||||
* @param elements extension elements to be associated
|
||||
* with the returned <code>EndpointReference</code> instance.
|
||||
* @param attributes extension attributes 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 java.lang.IllegalStateException
|
||||
* <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</code> 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.
|
||||
* <li>If the <code>wsdlDocumentLocation</code> is NOT <code>null</code> but
|
||||
* wsdli:wsdlLocation's namespace name cannot be got from the available
|
||||
* metadata.
|
||||
* </ul>
|
||||
* @throws WebServiceException If an error occurs while creating the
|
||||
* <code>W3CEndpointReference</code>.
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
public W3CEndpointReference createW3CEndpointReference(String address,
|
||||
QName interfaceName, QName serviceName, QName portName,
|
||||
List<Element> metadata, String wsdlDocumentLocation, List<Element> referenceParameters,
|
||||
List<Element> elements, Map<QName, String> attributes) {
|
||||
throw new UnsupportedOperationException("JAX-WS 2.2 implementation must override this default behaviour.");
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates and publishes an endpoint object with the specified
|
||||
* address, implementation object and web service features.
|
||||
* <code>Provider</code> implementations must override the
|
||||
* default implementation.
|
||||
*
|
||||
* @param address A URI specifying the address and transport/protocol
|
||||
* to use. A http: URI MUST result in the SOAP 1.1/HTTP
|
||||
* binding being used. Implementations may support other
|
||||
* URI schemes.
|
||||
* @param implementor A service implementation object to which
|
||||
* incoming requests will be dispatched. The corresponding
|
||||
* class MUST be annotated with all the necessary Web service
|
||||
* annotations.
|
||||
* @param features A list of WebServiceFeatures to configure on the
|
||||
* endpoint. Supported features not in the <code>features
|
||||
* </code> parameter will have their default values.
|
||||
* @return The newly created endpoint.
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
public Endpoint createAndPublishEndpoint(String address,
|
||||
Object implementor, WebServiceFeature ... features) {
|
||||
throw new UnsupportedOperationException("JAX-WS 2.2 implementation must override this default behaviour.");
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an endpoint object with the provided binding, implementation
|
||||
* object and web service features. <code>Provider</code> implementations
|
||||
* must override the default implementation.
|
||||
*
|
||||
* @param bindingId A URI specifying the desired binding (e.g. SOAP/HTTP)
|
||||
* @param implementor A service implementation object to which
|
||||
* incoming requests will be dispatched. The corresponding
|
||||
* class MUST be annotated with all the necessary Web service
|
||||
* annotations.
|
||||
* @param features A list of WebServiceFeatures to configure on the
|
||||
* endpoint. Supported features not in the <code>features
|
||||
* </code> parameter will have their default values.
|
||||
* @return The newly created endpoint.
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
public Endpoint createEndpoint(String bindingId, Object implementor,
|
||||
WebServiceFeature ... features) {
|
||||
throw new UnsupportedOperationException("JAX-WS 2.2 implementation must override this default behaviour.");
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an endpoint object with the provided binding, implementation
|
||||
* class, invoker and web service features. Containers typically use
|
||||
* this to create Endpoint objects. <code>Provider</code>
|
||||
* implementations must override the default implementation.
|
||||
*
|
||||
* @param bindingId A URI specifying the desired binding (e.g. SOAP/HTTP).
|
||||
* Can be null.
|
||||
* @param implementorClass A service implementation class that
|
||||
* MUST be annotated with all the necessary Web service
|
||||
* annotations.
|
||||
* @param invoker that does the actual invocation on the service instance.
|
||||
* @param features A list of WebServiceFeatures to configure on the
|
||||
* endpoint. Supported features not in the <code>features
|
||||
* </code> parameter will have their default values.
|
||||
* @return The newly created endpoint.
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
public Endpoint createEndpoint(String bindingId, Class<?> implementorClass,
|
||||
Invoker invoker, WebServiceFeature ... features) {
|
||||
throw new UnsupportedOperationException("JAX-WS 2.2 implementation must override this default behaviour.");
|
||||
}
|
||||
|
||||
}
|
||||
622
jdkSrc/jdk8/javax/xml/ws/spi/ServiceDelegate.java
Normal file
622
jdkSrc/jdk8/javax/xml/ws/spi/ServiceDelegate.java
Normal file
@@ -0,0 +1,622 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.spi;
|
||||
|
||||
import java.util.Iterator;
|
||||
import javax.xml.namespace.QName;
|
||||
import javax.xml.ws.Dispatch;
|
||||
import javax.xml.ws.Service;
|
||||
import javax.xml.ws.handler.HandlerResolver;
|
||||
import javax.xml.ws.WebServiceFeature;
|
||||
import javax.xml.bind.JAXBContext;
|
||||
import javax.xml.ws.EndpointReference;
|
||||
import javax.xml.ws.WebServiceException;
|
||||
|
||||
|
||||
/**
|
||||
* Service delegates are used internally by <code>Service</code> objects
|
||||
* to allow pluggability of JAX-WS implementations.
|
||||
* <p>
|
||||
* Every <code>Service</code> object has its own delegate, created using
|
||||
* the {@link javax.xml.ws.spi.Provider#createServiceDelegate} method. A <code>Service</code>
|
||||
* object delegates all of its instance methods to its delegate.
|
||||
*
|
||||
* @see javax.xml.ws.Service
|
||||
* @see javax.xml.ws.spi.Provider
|
||||
*
|
||||
* @since JAX-WS 2.0
|
||||
*/
|
||||
public abstract class ServiceDelegate {
|
||||
|
||||
protected ServiceDelegate() {
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>getPort</code> method returns a proxy. A service client
|
||||
* uses this proxy to invoke operations on the target
|
||||
* service endpoint. The <code>serviceEndpointInterface</code>
|
||||
* specifies the service endpoint interface that is supported by
|
||||
* the created dynamic proxy instance.
|
||||
*
|
||||
* @param portName Qualified name of the service endpoint in
|
||||
* the WSDL service description
|
||||
* @param serviceEndpointInterface Service endpoint interface
|
||||
* supported by the dynamic proxy
|
||||
* @return Object Proxy instance that
|
||||
* supports the specified service endpoint
|
||||
* interface
|
||||
* @throws WebServiceException This exception is thrown in the
|
||||
* following cases:
|
||||
* <UL>
|
||||
* <LI>If there is an error in creation of
|
||||
* the proxy
|
||||
* <LI>If there is any missing WSDL metadata
|
||||
* as required by this method
|
||||
* <LI>If an illegal
|
||||
* <code>serviceEndpointInterface</code>
|
||||
* or <code>portName</code> is specified
|
||||
* </UL>
|
||||
* @see java.lang.reflect.Proxy
|
||||
* @see java.lang.reflect.InvocationHandler
|
||||
**/
|
||||
public abstract <T> T getPort(QName portName,
|
||||
Class<T> serviceEndpointInterface);
|
||||
|
||||
/**
|
||||
* The <code>getPort</code> method returns a proxy. A service client
|
||||
* uses this proxy to invoke operations on the target
|
||||
* service endpoint. The <code>serviceEndpointInterface</code>
|
||||
* specifies the service endpoint interface that is supported by
|
||||
* the created dynamic proxy instance.
|
||||
*
|
||||
* @param portName Qualified name of the service endpoint in
|
||||
* the WSDL service description
|
||||
* @param serviceEndpointInterface Service endpoint interface
|
||||
* supported by the dynamic proxy or instance
|
||||
* @param features A list of WebServiceFeatures to configure on the
|
||||
* proxy. Supported features not in the <code>features
|
||||
* </code> parameter will have their default values.
|
||||
* @return Object Proxy instance that
|
||||
* supports the specified service endpoint
|
||||
* interface
|
||||
* @throws WebServiceException This exception is thrown in the
|
||||
* following cases:
|
||||
* <UL>
|
||||
* <LI>If there is an error in creation of
|
||||
* the proxy
|
||||
* <LI>If there is any missing WSDL metadata
|
||||
* as required by this method
|
||||
* <LI>If an illegal
|
||||
* <code>serviceEndpointInterface</code>
|
||||
* or <code>portName</code> is specified
|
||||
* <LI>If a feature is enabled that is not compatible
|
||||
* with this port or is unsupported.
|
||||
* </UL>
|
||||
* @see java.lang.reflect.Proxy
|
||||
* @see java.lang.reflect.InvocationHandler
|
||||
* @see WebServiceFeature
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
**/
|
||||
public abstract <T> T getPort(QName portName,
|
||||
Class<T> serviceEndpointInterface, WebServiceFeature... features);
|
||||
|
||||
/**
|
||||
* The <code>getPort</code> 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 metadata from the <code>endpointReference</code>.
|
||||
* If this <code>Service</code> instance has a WSDL and
|
||||
* the <code>endpointReference</code> metadata
|
||||
* also has a WSDL, then the WSDL from this instance MUST 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> MAY 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>
|
||||
* <code>port = service.getPort(portName, serviceEndpointInterface);</code>
|
||||
* </pre>
|
||||
* where the <code>portName</code> is retrieved from the
|
||||
* metadata of the <code>endpointReference</code> or from the
|
||||
* <code>serviceEndpointInterface</code> and the WSDL
|
||||
* associated with this <code>Service</code> instance.
|
||||
*
|
||||
* @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 <code>WebServiceFeatures</code> 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>endpointReference</code> metadata does
|
||||
* not match the <code>serviceName</code> of this
|
||||
* <code>Service</code> instance.
|
||||
* <LI>If a <code>portName</code> cannot be extracted
|
||||
* from the WSDL or <code>endpointReference</code> metadata.
|
||||
* <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 <code>getPort</code> method returns a proxy. The parameter
|
||||
* <code>serviceEndpointInterface</code> specifies the service
|
||||
* endpoint interface that is supported by the returned proxy.
|
||||
* In the implementation of this method, the JAX-WS
|
||||
* runtime system takes the responsibility of selecting a protocol
|
||||
* binding (and a port) and configuring the proxy accordingly.
|
||||
* The returned proxy should not be reconfigured by the client.
|
||||
*
|
||||
* @param serviceEndpointInterface Service endpoint interface
|
||||
* @return Object instance that supports the
|
||||
* specified service endpoint interface
|
||||
* @throws WebServiceException
|
||||
* <UL>
|
||||
* <LI>If there is an error during creation
|
||||
* of the proxy
|
||||
* <LI>If there is any missing WSDL metadata
|
||||
* as required by this method
|
||||
* <LI>If an illegal
|
||||
* <code>serviceEndpointInterface</code>
|
||||
* is specified
|
||||
* </UL>
|
||||
**/
|
||||
public abstract <T> T getPort(Class<T> serviceEndpointInterface);
|
||||
|
||||
|
||||
/**
|
||||
* The <code>getPort</code> 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 <code>WebServiceFeatures</code> to configure on the
|
||||
* proxy. Supported features not in the <code>features
|
||||
* </code> parameter will have their default values.
|
||||
* @return Object instance that supports the
|
||||
* specified service endpoint interface
|
||||
* @throws WebServiceException
|
||||
* <UL>
|
||||
* <LI>If there is an error during creation
|
||||
* of the proxy
|
||||
* <LI>If there is any missing WSDL metadata
|
||||
* as required by this method
|
||||
* <LI>If an illegal
|
||||
* <code>serviceEndpointInterface</code>
|
||||
* is specified
|
||||
* <LI>If a feature is enabled that is not compatible
|
||||
* with this port or is unsupported.
|
||||
* </UL>
|
||||
*
|
||||
* @see WebServiceFeature
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
**/
|
||||
public abstract <T> T getPort(Class<T> serviceEndpointInterface,
|
||||
WebServiceFeature... features);
|
||||
|
||||
|
||||
/**
|
||||
* Creates a new port for the service. Ports created in this way contain
|
||||
* no WSDL port type information and can only be used for creating
|
||||
* <code>Dispatch</code>instances.
|
||||
*
|
||||
* @param portName Qualified name for the target service endpoint
|
||||
* @param bindingId A URI identifier of a binding.
|
||||
* @param endpointAddress Address of the target service endpoint as a URI
|
||||
* @throws WebServiceException If any error in the creation of
|
||||
* the port
|
||||
*
|
||||
* @see javax.xml.ws.soap.SOAPBinding#SOAP11HTTP_BINDING
|
||||
* @see javax.xml.ws.soap.SOAPBinding#SOAP12HTTP_BINDING
|
||||
* @see javax.xml.ws.http.HTTPBinding#HTTP_BINDING
|
||||
**/
|
||||
public abstract void addPort(QName portName, String bindingId,
|
||||
String endpointAddress);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Creates a <code>Dispatch</code> instance for use with objects of
|
||||
* the user's choosing.
|
||||
*
|
||||
* @param portName Qualified name for the target service endpoint
|
||||
* @param type The class of object used for messages or message
|
||||
* payloads. Implementations are required to support
|
||||
* <code>javax.xml.transform.Source</code> and <code>javax.xml.soap.SOAPMessage</code>.
|
||||
* @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 <code>MESSAGE</code>
|
||||
* when type is <code>SOAPMessage</code>.
|
||||
*
|
||||
* @return Dispatch instance
|
||||
* @throws WebServiceException If any error in the creation of
|
||||
* the <code>Dispatch</code> object
|
||||
* @see javax.xml.transform.Source
|
||||
* @see javax.xml.soap.SOAPMessage
|
||||
**/
|
||||
public abstract <T> Dispatch<T> createDispatch(QName portName, Class<T> type,
|
||||
Service.Mode mode);
|
||||
|
||||
/**
|
||||
* Creates a <code>Dispatch</code> instance for use with objects of
|
||||
* the user's choosing.
|
||||
*
|
||||
* @param portName Qualified name for the target service endpoint
|
||||
* @param type The class of object used for messages or message
|
||||
* payloads. Implementations are required to support
|
||||
* <code>javax.xml.transform.Source</code> and <code>javax.xml.soap.SOAPMessage</code>.
|
||||
* @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 <code>MESSAGE</code>
|
||||
* when type is <code>SOAPMessage</code>.
|
||||
* @param features A list of <code>WebServiceFeatures</code> to configure on the
|
||||
* proxy. Supported features not in the <code>features
|
||||
* </code> parameter will have their default values.
|
||||
*
|
||||
* @return Dispatch instance
|
||||
* @throws WebServiceException If any error in the creation of
|
||||
* the <code>Dispatch</code> object or if a
|
||||
* feature is enabled that is not compatible with
|
||||
* this port or is unsupported.
|
||||
*
|
||||
* @see javax.xml.transform.Source
|
||||
* @see javax.xml.soap.SOAPMessage
|
||||
* @see WebServiceFeature
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
**/
|
||||
public abstract <T> Dispatch<T> createDispatch(QName portName, Class<T> type,
|
||||
Service.Mode mode, WebServiceFeature... features);
|
||||
|
||||
/**
|
||||
* Creates a <code>Dispatch</code> instance for use with objects of
|
||||
* the user's 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 metadata from the <code>endpointReference</code>.
|
||||
* If this <code>Service</code> instance has a WSDL and
|
||||
* the <code>endpointReference</code>
|
||||
* also has a WSDL in its metadata, then the WSDL from this instance MUST 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> MAY be used.
|
||||
* An implementation MUST be able to retrieve the <code>portName</code> from the
|
||||
* <code>endpointReference</code> metadata.
|
||||
* <p>
|
||||
* This method behaves the same as calling
|
||||
* <pre>
|
||||
* <code>dispatch = service.createDispatch(portName, type, mode, features);</code>
|
||||
* </pre>
|
||||
* where the <code>portName</code> is retrieved from the
|
||||
* WSDL or <code>EndpointReference</code> metadata.
|
||||
*
|
||||
* @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
|
||||
* <code>javax.xml.transform.Source</code> and <code>javax.xml.soap.SOAPMessage</code>.
|
||||
* @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 <code>MESSAGE</code>
|
||||
* when type is <code>SOAPMessage</code>.
|
||||
* @param features An array of <code>WebServiceFeatures</code> 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>endpointReference</code> metadata does
|
||||
* not match the <code>serviceName</code> or <code>portName</code>
|
||||
* of a WSDL associated
|
||||
* with this <code>Service</code> instance.
|
||||
* <li>If the <code>portName</code> cannot be determined
|
||||
* from the <code>EndpointReference</code> metadata.
|
||||
* <li>If any error in the creation of
|
||||
* the <code>Dispatch</code> object.
|
||||
* <li>If a feature is enabled that is not
|
||||
* compatible with this port or is unsupported.
|
||||
* </UL>
|
||||
*
|
||||
* @see javax.xml.transform.Source
|
||||
* @see javax.xml.soap.SOAPMessage
|
||||
* @see WebServiceFeature
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
**/
|
||||
public abstract <T> Dispatch<T> createDispatch(EndpointReference endpointReference,
|
||||
Class<T> type, Service.Mode mode,
|
||||
WebServiceFeature... features);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Creates a <code>Dispatch</code> instance for use with JAXB
|
||||
* generated objects.
|
||||
*
|
||||
* @param portName Qualified name for the target service endpoint
|
||||
* @param context The JAXB context used to marshall and unmarshall
|
||||
* messages or message payloads.
|
||||
* @param mode Controls whether the created dispatch instance is message
|
||||
* or payload oriented, i.e. whether the user will work with complete
|
||||
* protocol messages or message payloads. E.g. when using the SOAP
|
||||
* protocol, this parameter controls whether the user will work with
|
||||
* SOAP messages or the contents of a SOAP body.
|
||||
*
|
||||
* @return Dispatch instance
|
||||
* @throws WebServiceException If any error in the creation of
|
||||
* the <code>Dispatch</code> object
|
||||
*
|
||||
* @see javax.xml.bind.JAXBContext
|
||||
**/
|
||||
public abstract Dispatch<Object> createDispatch(QName portName,
|
||||
JAXBContext context, Service.Mode mode);
|
||||
|
||||
|
||||
/**
|
||||
* Creates a <code>Dispatch</code> instance for use with JAXB
|
||||
* generated objects.
|
||||
*
|
||||
* @param portName Qualified name for the target service endpoint
|
||||
* @param context The JAXB context used to marshall and unmarshall
|
||||
* messages or message payloads.
|
||||
* @param mode Controls whether the created dispatch instance is message
|
||||
* or payload oriented, i.e. whether the user will work with complete
|
||||
* protocol messages or message payloads. E.g. when using the SOAP
|
||||
* protocol, this parameter controls whether the user will work with
|
||||
* SOAP messages or the contents of a SOAP body.
|
||||
* @param features A list of <code>WebServiceFeatures</code> to configure on the
|
||||
* proxy. Supported features not in the <code>features
|
||||
* </code> parameter will have their default values.
|
||||
*
|
||||
* @return Dispatch instance
|
||||
* @throws WebServiceException If any error in the creation of
|
||||
* the <code>Dispatch</code> object or if a
|
||||
* feature is enabled that is not compatible with
|
||||
* this port or is unsupported.
|
||||
*
|
||||
* @see javax.xml.bind.JAXBContext
|
||||
* @see WebServiceFeature
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
**/
|
||||
public abstract Dispatch<Object> createDispatch(QName portName,
|
||||
JAXBContext context, Service.Mode mode, WebServiceFeature... features);
|
||||
|
||||
/**
|
||||
* Creates a <code>Dispatch</code> instance for use with JAXB
|
||||
* generated objects. If there
|
||||
* are any reference parameters in the
|
||||
* <code>endpointReference</code>, then those reference
|
||||
* parameters MUST appear as SOAP headers, indicating them to be
|
||||
* reference parameters, on all messages sent to the endpoint.
|
||||
* The <code>endpointReference's</code> address MUST be used
|
||||
* for invocations on the endpoint.
|
||||
* In the implementation of this method, the JAX-WS
|
||||
* runtime system takes the responsibility of selecting a protocol
|
||||
* binding (and a port) and configuring the dispatch accordingly from
|
||||
* the WSDL associated with this <code>Service</code> instance or
|
||||
* from the metadata from the <code>endpointReference</code>.
|
||||
* If this <code>Service</code> instance has a WSDL and
|
||||
* the <code>endpointReference</code>
|
||||
* also has a WSDL in its metadata, then the WSDL from this instance
|
||||
* MUST 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> MAY be used.
|
||||
* An implementation MUST be able to retrieve the <code>portName</code> from the
|
||||
* <code>endpointReference</code> metadata.
|
||||
* <p>
|
||||
* This method behavies the same as calling
|
||||
* <pre>
|
||||
* <code>dispatch = service.createDispatch(portName, context, mode, features);</code>
|
||||
* </pre>
|
||||
* where the <code>portName</code> is retrieved from the
|
||||
* WSDL or <code>endpointReference</code> metadata.
|
||||
*
|
||||
* @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 <code>WebServiceFeatures</code> 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>endpointReference</code> metadata does
|
||||
* not match the <code>serviceName</code> or <code>portName</code>
|
||||
* of a WSDL associated
|
||||
* with this <code>Service</code> instance.
|
||||
* <li>If the <code>portName</code> cannot be determined
|
||||
* from the <code>EndpointReference</code> metadata.
|
||||
* <li>If any error in the creation of
|
||||
* the <code>Dispatch</code> object.
|
||||
* <li>if a feature is enabled that is not
|
||||
* compatible with this port or is unsupported.
|
||||
* </UL>
|
||||
*
|
||||
* @see javax.xml.bind.JAXBContext
|
||||
* @see WebServiceFeature
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
**/
|
||||
public abstract Dispatch<Object> createDispatch(EndpointReference endpointReference,
|
||||
JAXBContext context, Service.Mode mode,
|
||||
WebServiceFeature... features);
|
||||
|
||||
|
||||
/**
|
||||
* Gets the name of this service.
|
||||
* @return Qualified name of this service
|
||||
**/
|
||||
public abstract QName getServiceName();
|
||||
|
||||
/**
|
||||
* Returns an <code>Iterator</code> for the list of
|
||||
* <code>QName</code>s of service endpoints grouped by this
|
||||
* service
|
||||
*
|
||||
* @return Returns <code>java.util.Iterator</code> with elements
|
||||
* of type <code>javax.xml.namespace.QName</code>
|
||||
* @throws WebServiceException If this Service class does not
|
||||
* have access to the required WSDL metadata
|
||||
**/
|
||||
public abstract Iterator<javax.xml.namespace.QName> getPorts();
|
||||
|
||||
/**
|
||||
* Gets the location of the WSDL document for this Service.
|
||||
*
|
||||
* @return URL for the location of the WSDL document for
|
||||
* this service
|
||||
**/
|
||||
public abstract java.net.URL getWSDLDocumentLocation();
|
||||
|
||||
/**
|
||||
* Returns the configured handler resolver.
|
||||
*
|
||||
* @return HandlerResolver The <code>HandlerResolver</code> being
|
||||
* used by this <code>Service</code> instance, or <code>null</code>
|
||||
* if there isn't one.
|
||||
**/
|
||||
public abstract HandlerResolver getHandlerResolver();
|
||||
|
||||
/**
|
||||
* Sets the <code>HandlerResolver</code> for this <code>Service</code>
|
||||
* instance.
|
||||
* <p>
|
||||
* The handler resolver, if present, will be called once for each
|
||||
* proxy or dispatch instance that is created, and the handler chain
|
||||
* returned by the resolver will be set on the instance.
|
||||
*
|
||||
* @param handlerResolver The <code>HandlerResolver</code> to use
|
||||
* for all subsequently created proxy/dispatch objects.
|
||||
*
|
||||
* @see javax.xml.ws.handler.HandlerResolver
|
||||
**/
|
||||
public abstract void setHandlerResolver(HandlerResolver handlerResolver);
|
||||
|
||||
/**
|
||||
* Returns the executor for this <code>Service</code>instance.
|
||||
*
|
||||
* The executor is used for all asynchronous invocations that
|
||||
* require callbacks.
|
||||
*
|
||||
* @return The <code>java.util.concurrent.Executor</code> to be
|
||||
* used to invoke a callback.
|
||||
*
|
||||
* @see java.util.concurrent.Executor
|
||||
**/
|
||||
public abstract java.util.concurrent.Executor getExecutor();
|
||||
|
||||
/**
|
||||
* Sets the executor for this <code>Service</code> instance.
|
||||
*
|
||||
* The executor is used for all asynchronous invocations that
|
||||
* require callbacks.
|
||||
*
|
||||
* @param executor The <code>java.util.concurrent.Executor</code>
|
||||
* to be used to invoke a callback.
|
||||
*
|
||||
* @throws SecurityException If the instance does not support
|
||||
* setting an executor for security reasons (e.g. the
|
||||
* necessary permissions are missing).
|
||||
*
|
||||
* @see java.util.concurrent.Executor
|
||||
**/
|
||||
public abstract void setExecutor(java.util.concurrent.Executor executor);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.spi;
|
||||
|
||||
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.WebServiceFeature;
|
||||
import javax.xml.ws.WebServiceRef;
|
||||
import javax.xml.ws.WebServiceRefs;
|
||||
import javax.xml.ws.RespectBinding;
|
||||
import javax.xml.ws.soap.Addressing;
|
||||
import javax.xml.ws.soap.MTOM;
|
||||
|
||||
/**
|
||||
* Annotation used to identify other annotations
|
||||
* as a <code>WebServiceFeature</code>.
|
||||
* <p>
|
||||
* 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>.
|
||||
* <p>
|
||||
* JAX-WS defines the following
|
||||
* <code>WebServiceFeature</code> annotations (<code>Addressing</code>,
|
||||
* <code>MTOM</code>, <code>RespectBinding</code>), however, an implementation
|
||||
* may define vendors specific annotations for other features.
|
||||
* <p>
|
||||
* Annotations annotated with <code>WebServiceFeatureAnnotation</code> MUST
|
||||
* have the same @Target of {@link WebServiceRef} annotation, so that the resulting
|
||||
* feature annotation can be used in conjunction with the {@link WebServiceRef}
|
||||
* annotation if necessary.
|
||||
* <p>
|
||||
* If a JAX-WS implementation encounters an annotation annotated
|
||||
* with the <code>WebServiceFeatureAnnotation</code> that it does not
|
||||
* recognize/support an error MUST be given.
|
||||
* <p>
|
||||
*
|
||||
* @see Addressing
|
||||
* @see MTOM
|
||||
* @see RespectBinding
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
*/
|
||||
@Target(ElementType.ANNOTATION_TYPE)
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@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();
|
||||
}
|
||||
99
jdkSrc/jdk8/javax/xml/ws/spi/http/HttpContext.java
Normal file
99
jdkSrc/jdk8/javax/xml/ws/spi/http/HttpContext.java
Normal file
@@ -0,0 +1,99 @@
|
||||
/*
|
||||
* Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.spi.http;
|
||||
|
||||
import javax.xml.ws.Endpoint;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* HttpContext represents a mapping between the root URI path of a web
|
||||
* service to a {@link HttpHandler} which is invoked to handle requests
|
||||
* destined for that path on the associated container.
|
||||
* <p>
|
||||
* Container provides the implementation for this and it matches
|
||||
* web service requests to corresponding HttpContext objects.
|
||||
*
|
||||
* @author Jitendra Kotamraju
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
public abstract class HttpContext {
|
||||
|
||||
protected HttpHandler handler;
|
||||
|
||||
/**
|
||||
* JAX-WS runtime sets its handler during
|
||||
* {@link Endpoint#publish(HttpContext)} to handle
|
||||
* HTTP requests for this context. Container or its extensions
|
||||
* use this handler to process the requests.
|
||||
*
|
||||
* @param handler the handler to set for this context
|
||||
*/
|
||||
public void setHandler(HttpHandler handler) {
|
||||
this.handler = handler;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the path for this context. This path uniquely identifies
|
||||
* an endpoint inside an application and the path is relative to
|
||||
* application's context path. Container should give this
|
||||
* path based on how it matches request URIs to this HttpContext object.
|
||||
*
|
||||
* <p>
|
||||
* For servlet container, this is typically a url-pattern for an endpoint.
|
||||
*
|
||||
* <p>
|
||||
* Endpoint's address for this context can be computed as follows:
|
||||
* <pre>
|
||||
* HttpExchange exch = ...;
|
||||
* String endpointAddress =
|
||||
* exch.getScheme() + "://"
|
||||
* + exch.getLocalAddress().getHostName()
|
||||
* + ":" + exch.getLocalAddress().getPort()
|
||||
* + exch.getContextPath() + getPath();
|
||||
* </pre>
|
||||
*
|
||||
* @return this context's path
|
||||
*/
|
||||
public abstract String getPath();
|
||||
|
||||
/**
|
||||
* Returns an attribute value for container's configuration
|
||||
* and other data that can be used by jax-ws runtime.
|
||||
*
|
||||
* @param name attribute name
|
||||
* @return attribute value
|
||||
*/
|
||||
public abstract Object getAttribute(String name);
|
||||
|
||||
/**
|
||||
* Returns all attribute names for container's configuration
|
||||
* and other data that can be used by jax-ws runtime.
|
||||
*
|
||||
* @return set of all attribute names
|
||||
*/
|
||||
public abstract Set<String> getAttributeNames();
|
||||
|
||||
}
|
||||
328
jdkSrc/jdk8/javax/xml/ws/spi/http/HttpExchange.java
Normal file
328
jdkSrc/jdk8/javax/xml/ws/spi/http/HttpExchange.java
Normal file
@@ -0,0 +1,328 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.spi.http;
|
||||
|
||||
import javax.xml.ws.handler.MessageContext;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.io.IOException;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.security.Principal;
|
||||
|
||||
/**
|
||||
* This class encapsulates a HTTP request received and a
|
||||
* response to be generated in one exchange. It provides methods
|
||||
* for examining the request from the client, and for building and
|
||||
* sending the response.
|
||||
* <p>
|
||||
* A <code>HttpExchange</code> must be closed to free or reuse
|
||||
* underlying resources. The effect of failing to close an exchange
|
||||
* is undefined.
|
||||
*
|
||||
* @author Jitendra Kotamraju
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
public abstract class HttpExchange {
|
||||
|
||||
/**
|
||||
* Standard property: cipher suite value when the request is received
|
||||
* over HTTPS
|
||||
* <p>Type: String
|
||||
*/
|
||||
public static final String REQUEST_CIPHER_SUITE =
|
||||
"javax.xml.ws.spi.http.request.cipher.suite";
|
||||
|
||||
/**
|
||||
* Standard property: bit size of the algorithm when the request is
|
||||
* received over HTTPS
|
||||
* <p>Type: Integer
|
||||
*/
|
||||
public static final String REQUEST_KEY_SIZE =
|
||||
"javax.xml.ws.spi.http.request.key.size";
|
||||
|
||||
/**
|
||||
* Standard property: A SSL certificate, if any, associated with the request
|
||||
*
|
||||
* <p>Type: java.security.cert.X509Certificate[]
|
||||
* The order of this array is defined as being in ascending order of trust.
|
||||
* The first certificate in the chain is the one set by the client, the next
|
||||
* is the one used to authenticate the first, and so on.
|
||||
*/
|
||||
public static final String REQUEST_X509CERTIFICATE =
|
||||
"javax.xml.ws.spi.http.request.cert.X509Certificate";
|
||||
|
||||
/**
|
||||
* Returns an immutable Map containing the HTTP headers that were
|
||||
* included with this request. The keys in this Map will be the header
|
||||
* names, while the values will be a List of Strings containing each value
|
||||
* that was included (either for a header that was listed several times,
|
||||
* or one that accepts a comma-delimited list of values on a single line).
|
||||
* In either of these cases, the values for the header name will be
|
||||
* presented in the order that they were included in the request.
|
||||
* <p>
|
||||
* The keys in Map are case-insensitive.
|
||||
*
|
||||
* @return an immutable Map which can be used to access request headers
|
||||
*/
|
||||
public abstract Map<String, List<String>> getRequestHeaders();
|
||||
|
||||
/**
|
||||
* Returns the value of the specified request header. If the request
|
||||
* did not include a header of the specified name, this method returns
|
||||
* null. If there are multiple headers with the same name, this method
|
||||
* returns the first header in the request. The header name is
|
||||
* case-insensitive. This is a convienence method to get a header
|
||||
* (instead of using the {@link #getRequestHeaders}).
|
||||
*
|
||||
* @param name the name of the request header
|
||||
* @return returns the value of the requested header,
|
||||
* or null if the request does not have a header of that name
|
||||
*/
|
||||
public abstract String getRequestHeader(String name);
|
||||
|
||||
/**
|
||||
* Returns a mutable Map into which the HTTP response headers can be stored
|
||||
* and which will be transmitted as part of this response. The keys in the
|
||||
* Map will be the header names, while the values must be a List of Strings
|
||||
* containing each value that should be included multiple times
|
||||
* (in the order that they should be included).
|
||||
* <p>
|
||||
* The keys in Map are case-insensitive.
|
||||
*
|
||||
* @return a mutable Map which can be used to set response headers.
|
||||
*/
|
||||
public abstract Map<String, List<String>> getResponseHeaders();
|
||||
|
||||
/**
|
||||
* Adds a response header with the given name and value. This method
|
||||
* allows a response header to have multiple values. This is a
|
||||
* convenience method to add a response header(instead of using the
|
||||
* {@link #getResponseHeaders()}).
|
||||
*
|
||||
* @param name the name of the header
|
||||
* @param value the additional header value. If it contains octet string,
|
||||
* it should be encoded according to
|
||||
* RFC 2047 (http://www.ietf.org/rfc/rfc2047.txt)
|
||||
*
|
||||
* @see #getResponseHeaders
|
||||
*/
|
||||
public abstract void addResponseHeader(String name, String value);
|
||||
|
||||
/**
|
||||
* Returns the part of the request's URI from the protocol
|
||||
* name up to the query string in the first line of the HTTP request.
|
||||
* Container doesn't decode this string.
|
||||
*
|
||||
* @return the request URI
|
||||
*/
|
||||
public abstract String getRequestURI();
|
||||
|
||||
/**
|
||||
* Returns the context path of all the endpoints in an application.
|
||||
* This path is the portion of the request URI that indicates the
|
||||
* context of the request. The context path always comes first in a
|
||||
* request URI. The path starts with a "/" character but does not
|
||||
* end with a "/" character. If this method returns "", the request
|
||||
* is for default context. The container does not decode this string.
|
||||
*
|
||||
* <p>
|
||||
* Context path is used in computing the endpoint address. See
|
||||
* {@link HttpContext#getPath}
|
||||
*
|
||||
* @return context path of all the endpoints in an application
|
||||
* @see HttpContext#getPath
|
||||
*/
|
||||
public abstract String getContextPath();
|
||||
|
||||
/**
|
||||
* Get the HTTP request method
|
||||
*
|
||||
* @return the request method
|
||||
*/
|
||||
public abstract String getRequestMethod();
|
||||
|
||||
/**
|
||||
* Returns a {@link HttpContext} for this exchange.
|
||||
* Container matches the request with the associated Endpoint's HttpContext
|
||||
*
|
||||
* @return the HttpContext for this exchange
|
||||
*/
|
||||
public abstract HttpContext getHttpContext();
|
||||
|
||||
/**
|
||||
* This must be called to end an exchange. Container takes care of
|
||||
* closing request and response streams. This must be called so that
|
||||
* the container can free or reuse underlying resources.
|
||||
*
|
||||
* @throws IOException if any i/o error
|
||||
*/
|
||||
public abstract void close() throws IOException;
|
||||
|
||||
/**
|
||||
* Returns a stream from which the request body can be read.
|
||||
* Multiple calls to this method will return the same stream.
|
||||
*
|
||||
* @return the stream from which the request body can be read.
|
||||
* @throws IOException if any i/o error during request processing
|
||||
*/
|
||||
public abstract InputStream getRequestBody() throws IOException;
|
||||
|
||||
/**
|
||||
* Returns a stream to which the response body must be
|
||||
* written. {@link #setStatus}) must be called prior to calling
|
||||
* this method. Multiple calls to this method (for the same exchange)
|
||||
* will return the same stream.
|
||||
*
|
||||
* @return the stream to which the response body is written
|
||||
* @throws IOException if any i/o error during response processing
|
||||
*/
|
||||
public abstract OutputStream getResponseBody() throws IOException;
|
||||
|
||||
/**
|
||||
* Sets the HTTP status code for the response.
|
||||
*
|
||||
* <p>
|
||||
* This method must be called prior to calling {@link #getResponseBody}.
|
||||
*
|
||||
* @param status the response code to send
|
||||
* @see #getResponseBody
|
||||
*/
|
||||
public abstract void setStatus(int status);
|
||||
|
||||
/**
|
||||
* Returns the unresolved address of the remote entity invoking
|
||||
* this request.
|
||||
*
|
||||
* @return the InetSocketAddress of the caller
|
||||
*/
|
||||
public abstract InetSocketAddress getRemoteAddress();
|
||||
|
||||
/**
|
||||
* Returns the unresolved local address on which the request was received.
|
||||
*
|
||||
* @return the InetSocketAddress of the local interface
|
||||
*/
|
||||
public abstract InetSocketAddress getLocalAddress();
|
||||
|
||||
/**
|
||||
* Returns the protocol string from the request in the form
|
||||
* <i>protocol/majorVersion.minorVersion</i>. For example,
|
||||
* "HTTP/1.1"
|
||||
*
|
||||
* @return the protocol string from the request
|
||||
*/
|
||||
public abstract String getProtocol();
|
||||
|
||||
/**
|
||||
* Returns the name of the scheme used to make this request,
|
||||
* for example: http, or https.
|
||||
*
|
||||
* @return name of the scheme used to make this request
|
||||
*/
|
||||
public abstract String getScheme();
|
||||
|
||||
/**
|
||||
* Returns the extra path information that follows the web service
|
||||
* path but precedes the query string in the request URI and will start
|
||||
* with a "/" character.
|
||||
*
|
||||
* <p>
|
||||
* This can be used for {@link MessageContext#PATH_INFO}
|
||||
*
|
||||
* @return decoded extra path information of web service.
|
||||
* It is the path that comes
|
||||
* after the web service path but before the query string in the
|
||||
* request URI
|
||||
* <tt>null</tt> if there is no extra path in the request URI
|
||||
*/
|
||||
public abstract String getPathInfo();
|
||||
|
||||
/**
|
||||
* Returns the query string that is contained in the request URI
|
||||
* after the path.
|
||||
*
|
||||
* <p>
|
||||
* This can be used for {@link MessageContext#QUERY_STRING}
|
||||
*
|
||||
* @return undecoded query string of request URI, or
|
||||
* <tt>null</tt> if the request URI doesn't have one
|
||||
*/
|
||||
public abstract String getQueryString();
|
||||
|
||||
/**
|
||||
* Returns an attribute that is associated with this
|
||||
* <code>HttpExchange</code>. JAX-WS handlers and endpoints may then
|
||||
* access the attribute via {@link MessageContext}.
|
||||
* <p>
|
||||
* Servlet containers must expose {@link MessageContext#SERVLET_CONTEXT},
|
||||
* {@link MessageContext#SERVLET_REQUEST}, and
|
||||
* {@link MessageContext#SERVLET_RESPONSE}
|
||||
* as attributes.
|
||||
*
|
||||
* <p>If the request has been received by the container using HTTPS, the
|
||||
* following information must be exposed as attributes. These attributes
|
||||
* are {@link #REQUEST_CIPHER_SUITE}, and {@link #REQUEST_KEY_SIZE}.
|
||||
* If there is a SSL certificate associated with the request, it must
|
||||
* be exposed using {@link #REQUEST_X509CERTIFICATE}
|
||||
*
|
||||
* @param name attribute name
|
||||
* @return the attribute value, or <tt>null</tt> if the attribute doesn't
|
||||
* exist
|
||||
*/
|
||||
public abstract Object getAttribute(String name);
|
||||
|
||||
/**
|
||||
* Gives all the attribute names that are associated with
|
||||
* this <code>HttpExchange</code>.
|
||||
*
|
||||
* @return set of all attribute names
|
||||
* @see #getAttribute(String)
|
||||
*/
|
||||
public abstract Set<String> getAttributeNames();
|
||||
|
||||
/**
|
||||
* Returns the {@link Principal} that represents the authenticated
|
||||
* user for this <code>HttpExchange</code>.
|
||||
*
|
||||
* @return Principal for an authenticated user, or
|
||||
* <tt>null</tt> if not authenticated
|
||||
*/
|
||||
public abstract Principal getUserPrincipal();
|
||||
|
||||
/**
|
||||
* Indicates whether an authenticated user is included in the specified
|
||||
* logical "role".
|
||||
*
|
||||
* @param role specifies the name of the role
|
||||
* @return <tt>true</tt> if the user making this request belongs to a
|
||||
* given role
|
||||
*/
|
||||
public abstract boolean isUserInRole(String role);
|
||||
|
||||
}
|
||||
54
jdkSrc/jdk8/javax/xml/ws/spi/http/HttpHandler.java
Normal file
54
jdkSrc/jdk8/javax/xml/ws/spi/http/HttpHandler.java
Normal file
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.spi.http;
|
||||
|
||||
import javax.xml.ws.Endpoint;
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* A handler which is invoked to process HTTP requests.
|
||||
* <p>
|
||||
* JAX-WS runtime provides the implementation for this and sets
|
||||
* it using {@link HttpContext#setHandler(HttpHandler)} during
|
||||
* {@link Endpoint#publish(HttpContext) }
|
||||
*
|
||||
* @author Jitendra Kotamraju
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
public abstract class HttpHandler {
|
||||
/**
|
||||
* Handles a given request and generates an appropriate response.
|
||||
* See {@link HttpExchange} for a description of the steps
|
||||
* involved in handling an exchange. Container invokes this method
|
||||
* when it receives an incoming request.
|
||||
*
|
||||
* @param exchange the exchange containing the request from the
|
||||
* client and used to send the response
|
||||
* @throws IOException when an I/O error happens during request
|
||||
* handling
|
||||
*/
|
||||
public abstract void handle(HttpExchange exchange) throws IOException;
|
||||
}
|
||||
95
jdkSrc/jdk8/javax/xml/ws/spi/http/package-info.java
Normal file
95
jdkSrc/jdk8/javax/xml/ws/spi/http/package-info.java
Normal file
@@ -0,0 +1,95 @@
|
||||
/*
|
||||
* Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
/**
|
||||
Provides HTTP SPI that is used for portable deployment of JAX-WS
|
||||
web services in containers(for e.g. servlet containers). This SPI
|
||||
is not for end developers but provides a way for the container
|
||||
developers to deploy JAX-WS services portably.
|
||||
|
||||
<p>
|
||||
The portable deployment is done as below:
|
||||
<ol>
|
||||
<li>Container creates {@link javax.xml.ws.Endpoint} objects for an
|
||||
application. The necessary information to create Endpoint objects
|
||||
may be got from web service deployment descriptor files.</li>
|
||||
<li>Container needs to create {@link javax.xml.ws.spi.http.HttpContext}
|
||||
objects for the deployment. For example, a HttpContext could be
|
||||
created using servlet configuration(for e.g url-pattern) for the
|
||||
web service in servlet container case.</li>
|
||||
<li>Then publishes all the endpoints using
|
||||
{@link javax.xml.ws.Endpoint#publish(HttpContext)}. During publish(),
|
||||
JAX-WS runtime registers a {@link javax.xml.ws.spi.http.HttpHandler}
|
||||
callback to handle incoming requests or
|
||||
{@link javax.xml.ws.spi.http.HttpExchange} objects. The HttpExchange
|
||||
object encapsulates a HTTP request and a response.
|
||||
</ol>
|
||||
|
||||
<pre>
|
||||
Container JAX-WS runtime
|
||||
--------- --------------
|
||||
1. Creates Invoker1, ... InvokerN
|
||||
2. Provider.createEndpoint(...) --> 3. creates Endpoint1
|
||||
configures Endpoint1
|
||||
...
|
||||
4. Provider.createEndpoint(...) --> 5. creates EndpointN
|
||||
configures EndpointN
|
||||
6. Creates ApplicationContext
|
||||
7. creates HttpContext1, ... HttpContextN
|
||||
8. Endpoint1.publish(HttpContext1) --> 9. creates HttpHandler1
|
||||
HttpContext1.setHandler(HttpHandler1)
|
||||
...
|
||||
10. EndpointN.publish(HttpContextN) --> 11. creates HttpHandlerN
|
||||
HttpContextN.setHandler(HttpHandlerN)
|
||||
|
||||
</pre>
|
||||
|
||||
The request processing is done as below(for every request):
|
||||
<pre>
|
||||
Container JAX-WS runtime
|
||||
--------- --------------
|
||||
1. Creates a HttpExchange
|
||||
2. Gets handler from HttpContext
|
||||
3. HttpHandler.handle(HttpExchange) --> 4. reads request from HttpExchange
|
||||
<-- 5. Calls Invoker
|
||||
6. Invokes the actual instance
|
||||
7. Writes the response to HttpExchange
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
The portable undeployment is done as below:
|
||||
<pre>
|
||||
Container
|
||||
---------
|
||||
1. @preDestroy on instances
|
||||
2. Endpoint1.stop()
|
||||
...
|
||||
3. EndpointN.stop()
|
||||
</pre>
|
||||
|
||||
@author Jitendra Kotamraju
|
||||
@since JAX-WS 2.2
|
||||
*/
|
||||
package javax.xml.ws.spi.http;
|
||||
164
jdkSrc/jdk8/javax/xml/ws/wsaddressing/W3CEndpointReference.java
Normal file
164
jdkSrc/jdk8/javax/xml/ws/wsaddressing/W3CEndpointReference.java
Normal file
@@ -0,0 +1,164 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.wsaddressing;
|
||||
|
||||
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
import javax.xml.bind.JAXBContext;
|
||||
import javax.xml.bind.JAXBException;
|
||||
import javax.xml.bind.Marshaller;
|
||||
import javax.xml.bind.annotation.XmlAnyAttribute;
|
||||
import javax.xml.bind.annotation.XmlAnyElement;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
import javax.xml.bind.annotation.XmlValue;
|
||||
import javax.xml.namespace.QName;
|
||||
import javax.xml.transform.Result;
|
||||
import javax.xml.transform.Source;
|
||||
import javax.xml.ws.EndpointReference;
|
||||
import javax.xml.ws.WebServiceException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
* This class represents a W3C Addressing EndpointReferece which is
|
||||
* a remote reference to a web service endpoint that supports the
|
||||
* W3C WS-Addressing 1.0 - Core Recommendation.
|
||||
* <p>
|
||||
* Developers should use this class in their SEIs if they want to
|
||||
* pass/return endpoint references that represent the W3C WS-Addressing
|
||||
* recommendation.
|
||||
* <p>
|
||||
* JAXB will use the JAXB annotations and bind this class to XML infoset
|
||||
* that is consistent with that defined by WS-Addressing. See
|
||||
* <a href="http://www.w3.org/TR/2006/REC-ws-addr-core-20060509/">
|
||||
* WS-Addressing</a>
|
||||
* for more information on WS-Addressing EndpointReferences.
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
*/
|
||||
|
||||
// XmlRootElement allows this class to be marshalled on its own
|
||||
@XmlRootElement(name="EndpointReference",namespace=W3CEndpointReference.NS)
|
||||
@XmlType(name="EndpointReferenceType",namespace=W3CEndpointReference.NS)
|
||||
public final class W3CEndpointReference extends EndpointReference {
|
||||
|
||||
private final JAXBContext w3cjc = getW3CJaxbContext();
|
||||
|
||||
// should be changed to package private, keeping original modifier to keep backwards compatibility
|
||||
protected static final String NS = "http://www.w3.org/2005/08/addressing";
|
||||
|
||||
// default constructor forbidden ...
|
||||
// should be private, keeping original modifier to keep backwards compatibility
|
||||
protected W3CEndpointReference() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an EPR from infoset representation
|
||||
*
|
||||
* @param source A source object containing valid XmlInfoset
|
||||
* instance consistent with the W3C WS-Addressing Core
|
||||
* recommendation.
|
||||
*
|
||||
* @throws WebServiceException
|
||||
* If the source does NOT contain a valid W3C WS-Addressing
|
||||
* EndpointReference.
|
||||
* @throws NullPointerException
|
||||
* If the <code>null</code> <code>source</code> value is given
|
||||
*/
|
||||
public W3CEndpointReference(Source source) {
|
||||
try {
|
||||
W3CEndpointReference epr = w3cjc.createUnmarshaller().unmarshal(source,W3CEndpointReference.class).getValue();
|
||||
this.address = epr.address;
|
||||
this.metadata = epr.metadata;
|
||||
this.referenceParameters = epr.referenceParameters;
|
||||
this.elements = epr.elements;
|
||||
this.attributes = epr.attributes;
|
||||
} catch (JAXBException e) {
|
||||
throw new WebServiceException("Error unmarshalling W3CEndpointReference " ,e);
|
||||
} catch (ClassCastException e) {
|
||||
throw new WebServiceException("Source did not contain W3CEndpointReference", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public void writeTo(Result result){
|
||||
try {
|
||||
Marshaller marshaller = w3cjc.createMarshaller();
|
||||
marshaller.marshal(this, result);
|
||||
} catch (JAXBException e) {
|
||||
throw new WebServiceException("Error marshalling W3CEndpointReference. ", e);
|
||||
}
|
||||
}
|
||||
|
||||
private static JAXBContext getW3CJaxbContext() {
|
||||
try {
|
||||
return JAXBContext.newInstance(W3CEndpointReference.class);
|
||||
} catch (JAXBException e) {
|
||||
throw new WebServiceException("Error creating JAXBContext for W3CEndpointReference. ", e);
|
||||
}
|
||||
}
|
||||
|
||||
// private but necessary properties for databinding
|
||||
@XmlElement(name="Address",namespace=NS)
|
||||
private Address address;
|
||||
@XmlElement(name="ReferenceParameters",namespace=NS)
|
||||
private Elements referenceParameters;
|
||||
@XmlElement(name="Metadata",namespace=NS)
|
||||
private Elements metadata;
|
||||
// attributes and elements are not private for performance reasons
|
||||
// (JAXB can bypass reflection)
|
||||
@XmlAnyAttribute
|
||||
Map<QName,String> attributes;
|
||||
@XmlAnyElement
|
||||
List<Element> elements;
|
||||
|
||||
|
||||
@XmlType(name="address", namespace=W3CEndpointReference.NS)
|
||||
private static class Address {
|
||||
protected Address() {}
|
||||
@XmlValue
|
||||
String uri;
|
||||
@XmlAnyAttribute
|
||||
Map<QName,String> attributes;
|
||||
}
|
||||
|
||||
|
||||
@XmlType(name="elements", namespace=W3CEndpointReference.NS)
|
||||
private static class Elements {
|
||||
protected Elements() {}
|
||||
@XmlAnyElement
|
||||
List<Element> elements;
|
||||
@XmlAnyAttribute
|
||||
Map<QName,String> attributes;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,356 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package javax.xml.ws.wsaddressing;
|
||||
|
||||
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
import javax.xml.namespace.QName;
|
||||
import javax.xml.ws.WebServiceException;
|
||||
import javax.xml.ws.spi.Provider;
|
||||
|
||||
|
||||
/**
|
||||
* This class is used to build <code>W3CEndpointReference</code>
|
||||
* instances. The intended use of this clsss is for
|
||||
* an application component, for example a factory component,
|
||||
* to create an <code>W3CEndpointReference</code> for a
|
||||
* web service endpoint published by the same
|
||||
* Java EE application. It can also be used to create
|
||||
* <code>W3CEndpointReferences</code> for an Java SE based
|
||||
* endpoint by providing the <code>address</code> property.
|
||||
* <p>
|
||||
* When creating a <code>W3CEndpointReference</code> for an
|
||||
* endpoint that is not published by the same Java EE application,
|
||||
* the <code>address</code> property MUST be specified.
|
||||
* <p>
|
||||
* When creating a <code>W3CEndpointReference</code> for an endpoint
|
||||
* published by the same Java EE application, the <code>address</code>
|
||||
* property MAY be <code>null</code> but then the <code>serviceName</code>
|
||||
* and <code>endpointName</code> MUST specify an endpoint published by
|
||||
* the same Java EE application.
|
||||
* <p>
|
||||
* When the <code>wsdlDocumentLocation</code> is specified it MUST refer
|
||||
* to a valid WSDL document and the <code>serviceName</code> and
|
||||
* <code>endpointName</code> (if specified) MUST match a service and port
|
||||
* in the WSDL document.
|
||||
*
|
||||
* @since JAX-WS 2.1
|
||||
*/
|
||||
public final class W3CEndpointReferenceBuilder {
|
||||
/**
|
||||
* Creates a new <code>W3CEndpointReferenceBuilder</code> instance.
|
||||
*/
|
||||
public W3CEndpointReferenceBuilder() {
|
||||
referenceParameters = new ArrayList<Element>();
|
||||
metadata = new ArrayList<Element>();
|
||||
attributes = new HashMap<QName, String>();
|
||||
elements = new ArrayList<Element>();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the <code>address</code> to the
|
||||
* <code>W3CEndpointReference</code> instance's
|
||||
* <code>wsa:Address</code>.
|
||||
* <p>
|
||||
* The <code>address</code> MUST be set to a non-<code>null</code>
|
||||
* value when building a <code>W3CEndpointReference</code> for a
|
||||
* web service endpoint that is not published by the same
|
||||
* Java EE application or when running on Java SE.
|
||||
*
|
||||
* @param address The address of the endpoint to be targeted
|
||||
* by the returned <code>W3CEndpointReference</code>.
|
||||
*
|
||||
* @return A <code>W3CEndpointReferenceBuilder</code> instance with
|
||||
* the <code>address</code> set to the <code>wsa:Address</code>.
|
||||
*/
|
||||
public W3CEndpointReferenceBuilder address(String address) {
|
||||
this.address = address;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the <code>interfaceName</code> as the
|
||||
* <code>wsam:InterfaceName</code> element in the
|
||||
* <code>wsa:Metadata</code> element.
|
||||
*
|
||||
* See <a href="http://www.w3.org/TR/2007/REC-ws-addr-metadata-20070904/#refmetadatfromepr">
|
||||
* 2.1 Referencing WSDL Metadata from an EPR</a> for more details.
|
||||
*
|
||||
* @param interfaceName The port type name of the endpoint to be targeted
|
||||
* by the returned <code>W3CEndpointReference</code>.
|
||||
*
|
||||
* @return A <code>W3CEndpointReferenceBuilder</code> instance with
|
||||
* the <code>interfaceName</code> as <code>wsam:InterfaceName</code>
|
||||
* element added to the <code>wsa:Metadata</code> element
|
||||
*/
|
||||
public W3CEndpointReferenceBuilder interfaceName(QName interfaceName) {
|
||||
this.interfaceName = interfaceName;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the <code>serviceName</code> as the
|
||||
* <code>wsam:ServiceName</code> element in the
|
||||
* <code>wsa:Metadata</code> element.
|
||||
*
|
||||
* See <a href="http://www.w3.org/TR/2007/REC-ws-addr-metadata-20070904/#refmetadatfromepr">
|
||||
* 2.1 Referencing WSDL Metadata from an EPR</a> for more details.
|
||||
*
|
||||
* @param serviceName The service name of the endpoint to be targeted
|
||||
* by the returned <code>W3CEndpointReference</code>. This property
|
||||
* may also be used with the <code>endpointName</code> (portName)
|
||||
* property to lookup the <code>address</code> of a web service
|
||||
* endpoint that is published by the same Java EE application.
|
||||
*
|
||||
* @return A <code>W3CEndpointReferenceBuilder</code> instance with
|
||||
* the <code>serviceName</code> as <code>wsam:ServiceName</code>
|
||||
* element added to the <code>wsa:Metadata</code> element
|
||||
*
|
||||
*/
|
||||
public W3CEndpointReferenceBuilder serviceName(QName serviceName) {
|
||||
this.serviceName = serviceName;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the <code>endpointName</code> as
|
||||
* <code>wsam:ServiceName/@EndpointName</code> in the
|
||||
* <code>wsa:Metadata</code> element. This method can only be called
|
||||
* after the {@link #serviceName} method has been called.
|
||||
* <p>
|
||||
* See <a href="http://www.w3.org/TR/2007/REC-ws-addr-metadata-20070904/#refmetadatfromepr">
|
||||
* 2.1 Referencing WSDL Metadata from an EPR</a> for more details.
|
||||
*
|
||||
* @param endpointName The name of the endpoint to be targeted
|
||||
* by the returned <code>W3CEndpointReference</code>. The
|
||||
* <code>endpointName</code> (portName) property may also be
|
||||
* used with the <code>serviceName</code> property to lookup
|
||||
* the <code>address</code> of a web service
|
||||
* endpoint published by the same Java EE application.
|
||||
*
|
||||
* @return A <code>W3CEndpointReferenceBuilder</code> instance with
|
||||
* the <code>endpointName</code> as
|
||||
* <code>wsam:ServiceName/@EndpointName</code> in the
|
||||
* <code>wsa:Metadata</code> element.
|
||||
*
|
||||
* @throws IllegalStateException, if the <code>serviceName</code>
|
||||
* has not been set.
|
||||
* @throws IllegalArgumentException, if the <code>endpointName</code>'s
|
||||
* Namespace URI doesn't match <code>serviceName</code>'s Namespace URI
|
||||
*
|
||||
*/
|
||||
public W3CEndpointReferenceBuilder endpointName(QName endpointName) {
|
||||
if (serviceName == null) {
|
||||
throw new IllegalStateException("The W3CEndpointReferenceBuilder's serviceName must be set before setting the endpointName: "+endpointName);
|
||||
}
|
||||
|
||||
this.endpointName = endpointName;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the <code>wsdlDocumentLocation</code> that will be referenced
|
||||
* as <code>wsa:Metadata/@wsdli:wsdlLocation</code>. The namespace name
|
||||
* for the wsdli:wsdlLocation's value can be taken from the WSDL itself.
|
||||
*
|
||||
* <p>
|
||||
* See <a href="http://www.w3.org/TR/2007/REC-ws-addr-metadata-20070904/#refmetadatfromepr">
|
||||
* 2.1 Referencing WSDL Metadata from an EPR</a> for more details.
|
||||
*
|
||||
* @param wsdlDocumentLocation The location of the WSDL document to
|
||||
* be referenced in the <code>wsa:Metadata</code> of the
|
||||
* <code>W3CEndpointReference</code>.
|
||||
* @return A <code>W3CEndpointReferenceBuilder</code> instance with
|
||||
* the <code>wsdlDocumentLocation</code> that is to be referenced.
|
||||
*/
|
||||
public W3CEndpointReferenceBuilder wsdlDocumentLocation(String wsdlDocumentLocation) {
|
||||
this.wsdlDocumentLocation = wsdlDocumentLocation;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the <code>referenceParameter</code> to the
|
||||
* <code>W3CEndpointReference</code> instance
|
||||
* <code>wsa:ReferenceParameters</code> element.
|
||||
*
|
||||
* @param referenceParameter The element to be added to the
|
||||
* <code>wsa:ReferenceParameters</code> element.
|
||||
*
|
||||
* @return A <code>W3CEndpointReferenceBuilder</code> instance with
|
||||
* the <code>referenceParameter</code> added to the
|
||||
* <code>wsa:ReferenceParameters</code> element.
|
||||
*
|
||||
* @throws java.lang.IllegalArgumentException if <code>referenceParameter</code>
|
||||
* is <code>null</code>.
|
||||
*/
|
||||
public W3CEndpointReferenceBuilder referenceParameter(Element referenceParameter) {
|
||||
if (referenceParameter == null)
|
||||
throw new java.lang.IllegalArgumentException("The referenceParameter cannot be null.");
|
||||
referenceParameters.add(referenceParameter);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the <code>metadataElement</code> to the
|
||||
* <code>W3CEndpointReference</code> instance's
|
||||
* <code>wsa:Metadata</code> element.
|
||||
*
|
||||
* @param metadataElement The element to be added to the
|
||||
* <code>wsa:Metadata</code> element.
|
||||
*
|
||||
* @return A <code>W3CEndpointReferenceBuilder</code> instance with
|
||||
* the <code>metadataElement</code> added to the
|
||||
* <code>wsa:Metadata</code> element.
|
||||
*
|
||||
* @throws java.lang.IllegalArgumentException if <code>metadataElement</code>
|
||||
* is <code>null</code>.
|
||||
*/
|
||||
public W3CEndpointReferenceBuilder metadata(Element metadataElement) {
|
||||
if (metadataElement == null)
|
||||
throw new java.lang.IllegalArgumentException("The metadataElement cannot be null.");
|
||||
metadata.add(metadataElement);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds an extension element to the
|
||||
* <code>W3CEndpointReference</code> instance's
|
||||
* <code>wsa:EndpointReference</code> element.
|
||||
*
|
||||
* @param element The extension element to be added to the
|
||||
* <code>W3CEndpointReference</code>
|
||||
* @return A <code>W3CEndpointReferenceBuilder</code> instance with
|
||||
* the extension <code>element</code> added to the
|
||||
* <code>W3CEndpointReference</code> instance.
|
||||
* @throws java.lang.IllegalArgumentException if <code>element</code>
|
||||
* is <code>null</code>.
|
||||
*
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
public W3CEndpointReferenceBuilder element(Element element) {
|
||||
if (element == null) {
|
||||
throw new IllegalArgumentException("The extension element cannot be null.");
|
||||
}
|
||||
elements.add(element);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds an extension attribute to the
|
||||
* <code>W3CEndpointReference</code> instance's
|
||||
* <code>wsa:EndpointReference</code> element.
|
||||
*
|
||||
* @param name The name of the extension attribute to be added to the
|
||||
* <code>W3CEndpointReference</code>
|
||||
* @param value extension attribute value
|
||||
* @return A <code>W3CEndpointReferenceBuilder</code> instance with
|
||||
* the extension attribute added to the <code>W3CEndpointReference</code>
|
||||
* instance.
|
||||
* @throws java.lang.IllegalArgumentException if <code>name</code>
|
||||
* or <code>value</code> is <code>null</code>.
|
||||
*
|
||||
* @since JAX-WS 2.2
|
||||
*/
|
||||
public W3CEndpointReferenceBuilder attribute(QName name, String value) {
|
||||
if (name == null || value == null) {
|
||||
throw new IllegalArgumentException("The extension attribute name or value cannot be null.");
|
||||
}
|
||||
attributes.put(name, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Builds a <code>W3CEndpointReference</code> from the accumulated
|
||||
* properties set on this <code>W3CEndpointReferenceBuilder</code>
|
||||
* instance.
|
||||
* <p>
|
||||
* This method can be used to create a <code>W3CEndpointReference</code>
|
||||
* for any endpoint by specifying the <code>address</code> property along
|
||||
* with any other desired properties. This method
|
||||
* can also be used to create a <code>W3CEndpointReference</code> for
|
||||
* an endpoint that is published by the same Java EE application.
|
||||
* This method can automatically determine the <code>address</code> of
|
||||
* an endpoint published by the same Java EE application that is identified by the
|
||||
* <code>serviceName</code> and
|
||||
* <code>endpointName</code> properties. If the <code>address</code> is
|
||||
* <code>null</code> and the <code>serviceName</code> and
|
||||
* <code>endpointName</code>
|
||||
* do not identify an endpoint published by the same Java EE application, a
|
||||
* <code>java.lang.IllegalStateException</code> MUST be thrown.
|
||||
*
|
||||
*
|
||||
* @return <code>W3CEndpointReference</code> from the accumulated
|
||||
* properties set on this <code>W3CEndpointReferenceBuilder</code>
|
||||
* instance. This method never returns <code>null</code>.
|
||||
*
|
||||
* @throws IllegalStateException
|
||||
* <ul>
|
||||
* <li>If the <code>address</code>, <code>serviceName</code> and
|
||||
* <code>endpointName</code> are all <code>null</code>.
|
||||
* <li>If the <code>serviceName</code> service is <code>null</code> and the
|
||||
* <code>endpointName</code> is NOT <code>null</code>.
|
||||
* <li>If the <code>address</code> property is <code>null</code> and
|
||||
* the <code>serviceName</code> and <code>endpointName</code> do not
|
||||
* specify a valid endpoint published by the same Java EE
|
||||
* application.
|
||||
* <li>If the <code>serviceName</code> is NOT <code>null</code>
|
||||
* and is not present in the specified WSDL.
|
||||
* <li>If the <code>endpointName</code> port is not <code>null</code> and it
|
||||
* is not present in <code>serviceName</code> service in the WSDL.
|
||||
* <li>If the <code>wsdlDocumentLocation</code> is NOT <code>null</code>
|
||||
* and does not represent a valid WSDL.
|
||||
* </ul>
|
||||
* @throws WebServiceException If an error occurs while creating the
|
||||
* <code>W3CEndpointReference</code>.
|
||||
*
|
||||
*/
|
||||
public W3CEndpointReference build() {
|
||||
if (elements.isEmpty() && attributes.isEmpty() && interfaceName == null) {
|
||||
// 2.1 API
|
||||
return Provider.provider().createW3CEndpointReference(address,
|
||||
serviceName, endpointName, metadata, wsdlDocumentLocation,
|
||||
referenceParameters);
|
||||
}
|
||||
return Provider.provider().createW3CEndpointReference(address,
|
||||
interfaceName, serviceName, endpointName, metadata, wsdlDocumentLocation,
|
||||
referenceParameters, elements, attributes);
|
||||
}
|
||||
|
||||
private String address;
|
||||
private List<Element> referenceParameters;
|
||||
private List<Element> metadata;
|
||||
private QName interfaceName;
|
||||
private QName serviceName;
|
||||
private QName endpointName;
|
||||
private String wsdlDocumentLocation;
|
||||
private Map<QName,String> attributes;
|
||||
private List<Element> elements;
|
||||
}
|
||||
28
jdkSrc/jdk8/javax/xml/ws/wsaddressing/package-info.java
Normal file
28
jdkSrc/jdk8/javax/xml/ws/wsaddressing/package-info.java
Normal file
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code 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 General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
@javax.xml.bind.annotation.XmlSchema(namespace=W3CEndpointReference.NS,
|
||||
location="http://www.w3.org/2006/03/addressing/ws-addr.xsd")
|
||||
package javax.xml.ws.wsaddressing;
|
||||
Reference in New Issue
Block a user