src/share/jaxws_classes/javax/xml/ws/soap/MTOMFeature.java

Tue, 09 Apr 2013 14:51:13 +0100

author
alanb
date
Tue, 09 Apr 2013 14:51:13 +0100
changeset 368
0989ad8c0860
parent 286
f50545b5e2f1
child 637
9c07ef4934dd
permissions
-rw-r--r--

8010393: Update JAX-WS RI to 2.2.9-b12941
Reviewed-by: alanb, erikj
Contributed-by: miroslav.kos@oracle.com, martin.grebac@oracle.com

ohair@286 1 /*
alanb@368 2 * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
ohair@286 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
ohair@286 4 *
ohair@286 5 * This code is free software; you can redistribute it and/or modify it
ohair@286 6 * under the terms of the GNU General Public License version 2 only, as
ohair@286 7 * published by the Free Software Foundation. Oracle designates this
ohair@286 8 * particular file as subject to the "Classpath" exception as provided
ohair@286 9 * by Oracle in the LICENSE file that accompanied this code.
ohair@286 10 *
ohair@286 11 * This code is distributed in the hope that it will be useful, but WITHOUT
ohair@286 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
ohair@286 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
ohair@286 14 * version 2 for more details (a copy is included in the LICENSE file that
ohair@286 15 * accompanied this code).
ohair@286 16 *
ohair@286 17 * You should have received a copy of the GNU General Public License version
ohair@286 18 * 2 along with this work; if not, write to the Free Software Foundation,
ohair@286 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
ohair@286 20 *
ohair@286 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
ohair@286 22 * or visit www.oracle.com if you need additional information or have any
ohair@286 23 * questions.
ohair@286 24 */
ohair@286 25
ohair@286 26 package javax.xml.ws.soap;
ohair@286 27
ohair@286 28 import javax.xml.ws.WebServiceFeature;
ohair@286 29 import javax.xml.ws.WebServiceException;
ohair@286 30 import javax.xml.ws.Endpoint;
ohair@286 31 import javax.xml.ws.Service;
ohair@286 32
ohair@286 33 /**
ohair@286 34 * This feature represents the use of MTOM with a
ohair@286 35 * web service.
ohair@286 36 *
ohair@286 37 * This feature can be used during the creation of SEI proxy, and
alanb@368 38 * {@link javax.xml.ws.Dispatch} instances on the client side and {@link Endpoint}
ohair@286 39 * instances on the server side. This feature cannot be used for {@link Service}
ohair@286 40 * instance creation on the client side.
ohair@286 41 *
ohair@286 42 * <p>
ohair@286 43 * The following describes the affects of this feature with respect
ohair@286 44 * to being enabled or disabled:
ohair@286 45 * <ul>
ohair@286 46 * <li> ENABLED: In this Mode, MTOM will be enabled. A receiver MUST accept
ohair@286 47 * both a non-optimized and an optimized message, and a sender MAY send an
ohair@286 48 * optimized message, or a non-optimized message. The heuristics used by a
ohair@286 49 * sender to determine whether to use optimization or not are
ohair@286 50 * implementation-specific.
ohair@286 51 * <li> DISABLED: In this Mode, MTOM will be disabled
ohair@286 52 * </ul>
ohair@286 53 * <p>
ohair@286 54 * The {@link #threshold} property can be used to set the threshold
ohair@286 55 * value used to determine when binary data should be XOP encoded.
ohair@286 56 *
ohair@286 57 * @since JAX-WS 2.1
ohair@286 58 */
ohair@286 59 public final class MTOMFeature extends WebServiceFeature {
ohair@286 60 /**
ohair@286 61 * Constant value identifying the MTOMFeature
ohair@286 62 */
ohair@286 63 public static final String ID = "http://www.w3.org/2004/08/soap/features/http-optimization";
ohair@286 64
ohair@286 65
ohair@286 66 /**
ohair@286 67 * Property for MTOM threshold value. This property serves as a hint when
ohair@286 68 * MTOM is enabled, binary data above this size in bytes SHOULD be sent
ohair@286 69 * as attachment.
ohair@286 70 * The value of this property MUST always be >= 0. Default value is 0.
ohair@286 71 */
alanb@368 72 // should be changed to private final, keeping original modifier to keep backwards compatibility
alanb@368 73 protected int threshold;
ohair@286 74
ohair@286 75
ohair@286 76 /**
ohair@286 77 * Create an <code>MTOMFeature</code>.
ohair@286 78 * The instance created will be enabled.
ohair@286 79 */
ohair@286 80 public MTOMFeature() {
ohair@286 81 this.enabled = true;
alanb@368 82 this.threshold = 0;
ohair@286 83 }
ohair@286 84
ohair@286 85 /**
ohair@286 86 * Creates an <code>MTOMFeature</code>.
ohair@286 87 *
ohair@286 88 * @param enabled specifies if this feature should be enabled or not
ohair@286 89 */
ohair@286 90 public MTOMFeature(boolean enabled) {
ohair@286 91 this.enabled = enabled;
alanb@368 92 this.threshold = 0;
ohair@286 93 }
ohair@286 94
ohair@286 95
ohair@286 96 /**
ohair@286 97 * Creates an <code>MTOMFeature</code>.
ohair@286 98 * The instance created will be enabled.
ohair@286 99 *
ohair@286 100 * @param threshold the size in bytes that binary data SHOULD be before
ohair@286 101 * being sent as an attachment.
ohair@286 102 *
ohair@286 103 * @throws WebServiceException if threshold is < 0
ohair@286 104 */
ohair@286 105 public MTOMFeature(int threshold) {
ohair@286 106 if (threshold < 0)
ohair@286 107 throw new WebServiceException("MTOMFeature.threshold must be >= 0, actual value: "+threshold);
ohair@286 108 this.enabled = true;
ohair@286 109 this.threshold = threshold;
ohair@286 110 }
ohair@286 111
ohair@286 112 /**
ohair@286 113 * Creates an <code>MTOMFeature</code>.
ohair@286 114 *
ohair@286 115 * @param enabled specifies if this feature should be enabled or not
ohair@286 116 * @param threshold the size in bytes that binary data SHOULD be before
ohair@286 117 * being sent as an attachment.
ohair@286 118 *
ohair@286 119 * @throws WebServiceException if threshold is < 0
ohair@286 120 */
ohair@286 121 public MTOMFeature(boolean enabled, int threshold) {
ohair@286 122 if (threshold < 0)
ohair@286 123 throw new WebServiceException("MTOMFeature.threshold must be >= 0, actual value: "+threshold);
ohair@286 124 this.enabled = enabled;
ohair@286 125 this.threshold = threshold;
ohair@286 126 }
ohair@286 127
ohair@286 128 /**
ohair@286 129 * {@inheritDoc}
ohair@286 130 */
ohair@286 131 public String getID() {
ohair@286 132 return ID;
ohair@286 133 }
ohair@286 134
ohair@286 135 /**
ohair@286 136 * Gets the threshold value used to determine when binary data
ohair@286 137 * should be sent as an attachment.
ohair@286 138 *
ohair@286 139 * @return the current threshold size in bytes
ohair@286 140 */
ohair@286 141 public int getThreshold() {
ohair@286 142 return threshold;
ohair@286 143 }
ohair@286 144 }

mercurial