src/share/jaxws_classes/com/sun/xml/internal/ws/developer/JAXWSProperties.java

Fri, 14 Feb 2014 11:13:45 +0100

author
mkos
date
Fri, 14 Feb 2014 11:13:45 +0100
changeset 515
6cd506508147
parent 368
0989ad8c0860
child 637
9c07ef4934dd
permissions
-rw-r--r--

8026188: Enhance envelope factory
Summary: Avoiding caching data initialized via TCCL in static context; fix also reviewed by Alexander Fomin
Reviewed-by: ahgross, mgrebac, skoivu

     1 /*
     2  * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     8  * particular file as subject to the "Classpath" exception as provided
     9  * by Oracle in the LICENSE file that accompanied this code.
    10  *
    11  * This code is distributed in the hope that it will be useful, but WITHOUT
    12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    14  * version 2 for more details (a copy is included in the LICENSE file that
    15  * accompanied this code).
    16  *
    17  * You should have received a copy of the GNU General Public License version
    18  * 2 along with this work; if not, write to the Free Software Foundation,
    19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    20  *
    21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    22  * or visit www.oracle.com if you need additional information or have any
    23  * questions.
    24  */
    26 package com.sun.xml.internal.ws.developer;
    28 import com.sun.xml.internal.ws.api.message.HeaderList;
    29 import com.sun.xml.internal.ws.api.server.WSEndpoint;
    30 import com.sun.xml.internal.ws.api.addressing.WSEndpointReference;
    32 import javax.net.ssl.HostnameVerifier;
    33 import javax.net.ssl.HttpsURLConnection;
    34 import javax.net.ssl.SSLSocketFactory;
    35 import javax.xml.ws.BindingProvider;
    36 import javax.xml.ws.WebServiceContext;
    37 import javax.xml.ws.BindingType;
    38 import javax.xml.ws.http.HTTPBinding;
    39 import java.net.HttpURLConnection;
    41 public interface JAXWSProperties {
    42     // Content negotiation property: values "none", "pessimistic" and "optimistic"
    43     // It is split into two strings so that package renaming for
    44     // Java SE 6 doesn't alter the value. So do not combine them
    45     @Deprecated
    46     public static final String CONTENT_NEGOTIATION_PROPERTY = "com.sun."+"xml.ws.client.ContentNegotiation";
    47     public static final String MTOM_THRESHOLOD_VALUE =  "com.sun.xml.internal.ws.common.MtomThresholdValue";
    48     public static final String HTTP_EXCHANGE = "com.sun.xml.internal.ws.http.exchange";
    50     /**
    51      * Set this property on the {@link BindingProvider#getRequestContext()} to
    52      * enable {@link HttpURLConnection#setConnectTimeout(int)}
    53      *
    54      *<p>
    55      * int timeout = ...;
    56      * Map<String, Object> ctxt = ((BindingProvider)proxy).getRequestContext();
    57      * ctxt.put(CONNECT_TIMEOUT, timeout);
    58      */
    59     public static final String CONNECT_TIMEOUT =
    60         "com.sun.xml.internal.ws.connect.timeout";
    62     /**
    63      * Set this property on the {@link BindingProvider#getRequestContext()} to
    64      * enable {@link HttpURLConnection#setReadTimeout(int)}
    65      *
    66      *<p>
    67      * int timeout = ...;
    68      * Map<String, Object> ctxt = ((BindingProvider)proxy).getRequestContext();
    69      * ctxt.put(REQUEST_TIMEOUT, timeout);
    70      */
    71      public static final String REQUEST_TIMEOUT =
    72         "com.sun.xml.internal.ws.request.timeout";
    74     /**
    75      * Set this property on the {@link BindingProvider#getRequestContext()} to
    76      * enable {@link HttpURLConnection#setChunkedStreamingMode(int)}
    77      *
    78      *<p>
    79      * int chunkSize = ...;
    80      * Map<String, Object> ctxt = ((BindingProvider)proxy).getRequestContext();
    81      * ctxt.put(HTTP_CLIENT_STREAMING_CHUNK_SIZE, chunkSize);
    82      */
    83     public static final String HTTP_CLIENT_STREAMING_CHUNK_SIZE = "com.sun.xml.internal.ws.transport.http.client.streaming.chunk.size";
    86     /**
    87      * Set this property on the {@link BindingProvider#getRequestContext()} to
    88      * enable {@link HttpsURLConnection#setHostnameVerifier(HostnameVerifier)}}. The property
    89      * is set as follows:
    90      *
    91      * <p>
    92      * HostNameVerifier hostNameVerifier = ...;
    93      * Map<String, Object> ctxt = ((BindingProvider)proxy).getRequestContext();
    94      * ctxt.put(HOSTNAME_VERIFIER, hostNameVerifier);
    95      *
    96      * <p>
    97      * <b>THIS PROPERTY IS EXPERIMENTAL AND IS SUBJECT TO CHANGE WITHOUT NOTICE IN FUTURE.</b>
    98      */
    99     public static final String HOSTNAME_VERIFIER = "com.sun.xml.internal.ws.transport.https.client.hostname.verifier";
   101     /**
   102      * Set this property on the {@link BindingProvider#getRequestContext()} to
   103      * enable {@link HttpsURLConnection#setSSLSocketFactory(SSLSocketFactory)}. The property is set
   104      * as follows:
   105      *
   106      * <p>
   107      * SSLSocketFactory sslFactory = ...;
   108      * Map<String, Object> ctxt = ((BindingProvider)proxy).getRequestContext();
   109      * ctxt.put(SSL_SOCKET_FACTORY, sslFactory);
   110      *
   111      * <p>
   112      * <b>THIS PROPERTY IS EXPERIMENTAL AND IS SUBJECT TO CHANGE WITHOUT NOTICE IN FUTURE.</b>
   113      */
   114     public static final String SSL_SOCKET_FACTORY = "com.sun.xml.internal.ws.transport.https.client.SSLSocketFactory";
   116     /**
   117      * Acccess the list of SOAP headers in the SOAP message.
   118      *
   119      * <p>
   120      * On {@link WebServiceContext}, this property returns a {@link HeaderList} object
   121      * that represents SOAP headers in the request message that was received.
   122      * On {@link BindingProvider#getResponseContext()}, this property returns a
   123      * {@link HeaderList} object that represents SOAP headers in the response message from the server.
   124      *
   125      * <p>
   126      * The property is read-only, and please do not modify the returned {@link HeaderList}
   127      * as that may break the JAX-WS RI in some unexpected way.
   128      *
   129      * <p>
   130      * <b>THIS PROPERTY IS EXPERIMENTAL AND IS SUBJECT TO CHANGE WITHOUT NOTICE IN FUTURE.</b>
   131      */
   132     public static final String INBOUND_HEADER_LIST_PROPERTY = "com.sun.xml.internal.ws.api.message.HeaderList";
   134     /**
   135      * Access the {@link WSEndpoint} object that delivered the request.
   136      *
   137      * <p>
   138      * {@link WSEndpoint} is the root of the objects that are together
   139      * responsible for delivering requests to the application SEI object.
   140      * One can look up this {@link WSEndpoint} from {@link WebServiceContext},
   141      * and from there access many parts of the JAX-WS RI runtime.
   142      *
   143      * <p>
   144      * <b>THIS PROPERTY IS EXPERIMENTAL AND IS SUBJECT TO CHANGE WITHOUT NOTICE IN FUTURE.</b>
   145      *
   146      * @since 2.1.2
   147      */
   148     public static final String WSENDPOINT = "com.sun.xml.internal.ws.api.server.WSEndpoint";
   150     /**
   151      * Gets the <tt>wsa:To</tt> header.
   152      *
   153      * The propery value is available on incoming SOAP message. The type of the value
   154      * is {@link WSEndpointReference}.
   155      *
   156      * Null if the incoming SOAP message didn't have the header.
   157      *
   158      * @since 2.1.3
   159      */
   160     public static final String ADDRESSING_TO = "com.sun.xml.internal.ws.api.addressing.to";
   162     /**
   163      * Gets the <tt>wsa:From</tt> header.
   164      *
   165      * The propery value is available on incoming SOAP message. The type of the value
   166      * is {@link WSEndpointReference}.
   167      *
   168      * Null if the incoming SOAP message didn't have the header.
   169      *
   170      * @since 2.1.3
   171      */
   172     public static final String ADDRESSING_FROM = "com.sun.xml.internal.ws.api.addressing.from";
   174     /**
   175      * Gets the <tt>wsa:Action</tt> header value.
   176      *
   177      * The propery value is available on incoming SOAP message. The type of the value
   178      * is {@link String}.
   179      *
   180      * Null if the incoming SOAP message didn't have the header.
   181      *
   182      * @since 2.1.3
   183      */
   184     public static final String ADDRESSING_ACTION = "com.sun.xml.internal.ws.api.addressing.action";
   186     /**
   187      * Gets the <tt>wsa:MessageID</tt> header value.
   188      *
   189      * The propery value is available on incoming SOAP message. The type of the value
   190      * is {@link String}.
   191      *
   192      * Null if the incoming SOAP message didn't have the header.
   193      *
   194      * @since 2.1.3
   195      */
   196     public static final String ADDRESSING_MESSAGEID = "com.sun.xml.internal.ws.api.addressing.messageId";
   198     /**
   199      * Reconstructs the URL the client used to make the request. The returned URL
   200      * contains a protocol, server name, port number, and server path, but it does
   201      * not include query string parameters.
   202      * <p>
   203      * The property value is available on incoming SOAP message on servlet transport.
   204      *
   205      * @since 2.1.3
   206      */
   207     public static final String HTTP_REQUEST_URL = "com.sun.xml.internal.ws.transport.http.servlet.requestURL";
   209     /**
   210      * Binding to represent RESTful services. {@link HTTPBinding#HTTP_BINDING} works
   211      * only for Dispatch/Provider services, but this binding works with even SEI based
   212      * services. It would be XML, NOT SOAP on the wire. Hence, the SEI parameters
   213      * shouldn't be mapped to headers.
   214      *
   215      * <p>
   216      * Note that, this only solves limited RESTful usecases.
   217      *
   218      * <p>To enable restful binding on the service, specify the binding id via
   219      * {@link BindingType} or DD
   220      * <pre>
   221      * &#64;WebService
   222      * &#64;BindingType(JAXWSProperties.REST_BINDING)
   223      * </pre>
   224      *
   225      * <p>To enable restful binding on the client side, specify the binding id via
   226      * {@link BindingTypeFeature}
   227      * <pre>
   228      * proxy = echoImplService.getEchoImplPort(new BindingTypeFeature(JAXWSProperties.REST_BINDING));
   229      * </pre>
   230      *
   231      * @since 2.1.4
   232      */
   233     public static final String REST_BINDING = "http://jax-ws.dev.java.net/rest";
   235 }

mercurial