001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common Development
008: * and Distribution License("CDDL") (collectively, the "License"). You
009: * may not use this file except in compliance with the License. You can obtain
010: * a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
011: * or glassfish/bootstrap/legal/LICENSE.txt. See the License for the specific
012: * language governing permissions and limitations under the License.
013: *
014: * When distributing the software, include this License Header Notice in each
015: * file and include the License file at glassfish/bootstrap/legal/LICENSE.txt.
016: * Sun designates this particular file as subject to the "Classpath" exception
017: * as provided by Sun in the GPL Version 2 section of the License file that
018: * accompanied this code. If applicable, add the following below the License
019: * Header, with the fields enclosed by brackets [] replaced by your own
020: * identifying information: "Portions Copyrighted [year]
021: * [name of copyright owner]"
022: *
023: * Contributor(s):
024: *
025: * If you wish your version of this file to be governed by only the CDDL or
026: * only the GPL Version 2, indicate your decision by adding "[Contributor]
027: * elects to include this software in this distribution under the [CDDL or GPL
028: * Version 2] license." If you don't indicate a single choice of license, a
029: * recipient has the option to distribute your version of this file under
030: * either the CDDL, the GPL Version 2 or to extend the choice of license to
031: * its licensees as provided above. However, if you add GPL Version 2 code
032: * and therefore, elected the GPL Version 2 license, then the option applies
033: * only if the new code is made subject to such option by the copyright
034: * holder.
035: */
036: package com.sun.xml.ws.developer;
037:
038: import com.sun.xml.ws.api.message.HeaderList;
039: import com.sun.xml.ws.api.server.WSEndpoint;
040: import com.sun.xml.ws.api.addressing.WSEndpointReference;
041:
042: import javax.net.ssl.HostnameVerifier;
043: import javax.net.ssl.HttpsURLConnection;
044: import javax.net.ssl.SSLSocketFactory;
045: import javax.xml.ws.BindingProvider;
046: import javax.xml.ws.WebServiceContext;
047: import java.net.HttpURLConnection;
048:
049: public interface JAXWSProperties {
050: // Content negotiation property: values "none", "pessimistic" and "optimistic"
051: // It is split into two strings so that package renaming for
052: // Java SE 6 doesn't alter the value. So do not combine them
053: @Deprecated
054: public static final String CONTENT_NEGOTIATION_PROPERTY = "com.sun."
055: + "xml.ws.client.ContentNegotiation";
056: public static final String MTOM_THRESHOLOD_VALUE = "com.sun.xml.ws.common.MtomThresholdValue";
057: public static final String HTTP_EXCHANGE = "com.sun.xml.ws.http.exchange";
058:
059: /**
060: * Set this property on the {@link BindingProvider#getRequestContext()} to
061: * enable {@link HttpURLConnection#setConnectTimeout(int)}
062: *
063: *<p>
064: * int timeout = ...;
065: * Map<String, Object> ctxt = ((BindingProvider)proxy).getRequestContext();
066: * ctxt.put(CONNECT_TIMEOUT, timeout);
067: */
068: public static final String CONNECT_TIMEOUT = "com.sun.xml.ws.connect.timeout";
069:
070: /**
071: * Set this property on the {@link BindingProvider#getRequestContext()} to
072: * enable {@link HttpURLConnection#setChunkedStreamingMode(int)}
073: *
074: *<p>
075: * int chunkSize = ...;
076: * Map<String, Object> ctxt = ((BindingProvider)proxy).getRequestContext();
077: * ctxt.put(HTTP_CLIENT_STREAMING_CHUNK_SIZE, chunkSize);
078: */
079: public static final String HTTP_CLIENT_STREAMING_CHUNK_SIZE = "com.sun.xml.ws.transport.http.client.streaming.chunk.size";
080:
081: /**
082: * Set this property on the {@link BindingProvider#getRequestContext()} to
083: * enable {@link HttpsURLConnection#setHostnameVerifier(HostnameVerifier)}}. The property
084: * is set as follows:
085: *
086: * <p>
087: * HostNameVerifier hostNameVerifier = ...;
088: * Map<String, Object> ctxt = ((BindingProvider)proxy).getRequestContext();
089: * ctxt.put(HOSTNAME_VERIFIER, hostNameVerifier);
090: *
091: * <p>
092: * <b>THIS PROPERTY IS EXPERIMENTAL AND IS SUBJECT TO CHANGE WITHOUT NOTICE IN FUTURE.</b>
093: */
094: public static final String HOSTNAME_VERIFIER = "com.sun.xml.ws.transport.https.client.hostname.verifier";
095:
096: /**
097: * Set this property on the {@link BindingProvider#getRequestContext()} to
098: * enable {@link HttpsURLConnection#setSSLSocketFactory(SSLSocketFactory)}. The property is set
099: * as follows:
100: *
101: * <p>
102: * SSLSocketFactory sslFactory = ...;
103: * Map<String, Object> ctxt = ((BindingProvider)proxy).getRequestContext();
104: * ctxt.put(SSL_SOCKET_FACTORY, sslFactory);
105: *
106: * <p>
107: * <b>THIS PROPERTY IS EXPERIMENTAL AND IS SUBJECT TO CHANGE WITHOUT NOTICE IN FUTURE.</b>
108: */
109: public static final String SSL_SOCKET_FACTORY = "com.sun.xml.ws.transport.https.client.SSLSocketFactory";
110:
111: /**
112: * Acccess the list of SOAP headers in the SOAP message.
113: *
114: * <p>
115: * On {@link WebServiceContext}, this property returns a {@link HeaderList} object
116: * that represents SOAP headers in the request message that was received.
117: * On {@link BindingProvider#getResponseContext()}, this property returns a
118: * {@link HeaderList} object that represents SOAP headers in the response message from the server.
119: *
120: * <p>
121: * The property is read-only, and please do not modify the returned {@link HeaderList}
122: * as that may break the JAX-WS RI in some unexpected way.
123: *
124: * <p>
125: * <b>THIS PROPERTY IS EXPERIMENTAL AND IS SUBJECT TO CHANGE WITHOUT NOTICE IN FUTURE.</b>
126: */
127: public static final String INBOUND_HEADER_LIST_PROPERTY = "com.sun.xml.ws.api.message.HeaderList";
128:
129: /**
130: * Access the {@link WSEndpoint} object that delivered the request.
131: *
132: * <p>
133: * {@link WSEndpoint} is the root of the objects that are together
134: * responsible for delivering requests to the application SEI object.
135: * One can look up this {@link WSEndpoint} from {@link WebServiceContext},
136: * and from there access many parts of the JAX-WS RI runtime.
137: *
138: * <p>
139: * <b>THIS PROPERTY IS EXPERIMENTAL AND IS SUBJECT TO CHANGE WITHOUT NOTICE IN FUTURE.</b>
140: *
141: * @since 2.1.2
142: */
143: public static final String WSENDPOINT = "com.sun.xml.ws.api.server.WSEndpoint";
144:
145: /**
146: * Gets the <tt>wsa:To</tt> header.
147: *
148: * The propery value is available on incoming SOAP message. The type of the value
149: * is {@link WSEndpointReference}.
150: *
151: * Null if the incoming SOAP message didn't have the header.
152: *
153: * @since 2.1.3
154: */
155: public static final String ADDRESSING_TO = "com.sun.xml.ws.api.addressing.to";
156:
157: /**
158: * Gets the <tt>wsa:From</tt> header.
159: *
160: * The propery value is available on incoming SOAP message. The type of the value
161: * is {@link WSEndpointReference}.
162: *
163: * Null if the incoming SOAP message didn't have the header.
164: *
165: * @since 2.1.3
166: */
167: public static final String ADDRESSING_FROM = "com.sun.xml.ws.api.addressing.from";
168:
169: /**
170: * Gets the <tt>wsa:Action</tt> header value.
171: *
172: * The propery value is available on incoming SOAP message. The type of the value
173: * is {@link String}.
174: *
175: * Null if the incoming SOAP message didn't have the header.
176: *
177: * @since 2.1.3
178: */
179: public static final String ADDRESSING_ACTION = "com.sun.xml.ws.api.addressing.action";
180:
181: /**
182: * Gets the <tt>wsa:MessageID</tt> header value.
183: *
184: * The propery value is available on incoming SOAP message. The type of the value
185: * is {@link String}.
186: *
187: * Null if the incoming SOAP message didn't have the header.
188: *
189: * @since 2.1.3
190: */
191: public static final String ADDRESSING_MESSAGEID = "com.sun.xml.ws.api.addressing.messageId";
192:
193: /**
194: * Reconstructs the URL the client used to make the request. The returned URL
195: * contains a protocol, server name, port number, and server path, but it does
196: * not include query string parameters.
197: * <p>
198: * The property value is available on incoming SOAP message on servlet transport.
199: *
200: * @since 2.1.3
201: */
202: public static final String HTTP_REQUEST_URL = "com.sun.xml.ws.transport.http.servlet.requestURL";
203: }
|