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

Print this page
rev 507 : 8047724: @since tag cleanup in jaxws
Reviewed-by:


  95  * <b>Example 3: </b>Possible Policy Assertion in the generated WSDL for
  96  * <code>@Addressing(required=true, responses=Responses.ANONYMOUS)</code>
  97  * <pre>
  98  *   &lt;wsam:Addressing>
  99  *      &lt;wsp:Policy>
 100  *        &lt;wsam:AnonymousResponses/>
 101  *      &lt;/wsp:Policy>
 102  *   &lt;/wsam:Addressing>
 103  * </pre>
 104  *
 105  * <p>
 106  * See <a href="http://www.w3.org/TR/2006/REC-ws-addr-core-20060509/">
 107  * Web Services Addressing - Core</a>,
 108  * <a href="http://www.w3.org/TR/2006/REC-ws-addr-soap-20060509/">
 109  * Web Services Addressing 1.0 - SOAP Binding</a>,
 110  * and <a href="http://www.w3.org/TR/ws-addr-metadata/">
 111  * Web Services Addressing 1.0 - Metadata</a>
 112  * for more information on WS-Addressing.
 113  *
 114  * @see Addressing
 115  * @since JAX-WS 2.1
 116  */
 117 
 118 public final class AddressingFeature extends WebServiceFeature {
 119     /**
 120      * Constant value identifying the AddressingFeature
 121      */
 122     public static final String ID = "http://www.w3.org/2005/08/addressing/module";
 123 
 124     /**
 125      * If addressing is enabled, this property determines whether the endpoint
 126      * requires WS-Addressing. If required is true, WS-Addressing headers MUST
 127      * be present on incoming and outgoing messages.
 128      */
 129     // should be private final, keeping original modifier due to backwards compatibility
 130     protected boolean required;
 131 
 132     /**
 133      * If addressing is enabled, this property determines if endpoint requires
 134      * the use of only anonymous responses, or only non-anonymous responses, or all.
 135      *
 136      * <p>
 137      * {@link Responses#ALL} supports all response types and this is the default
 138      * value.
 139      *
 140      * <p>
 141      * {@link Responses#ANONYMOUS} requires the use of only anonymous
 142      * responses. It will result into wsam:AnonymousResponses nested assertion
 143      * as specified in
 144      * <a href="http://www.w3.org/TR/ws-addr-metadata/#wspolicyanonresponses">
 145      * 3.1.2 AnonymousResponses Assertion</a> in the generated WSDL.
 146      *
 147      * <p>
 148      * {@link Responses#NON_ANONYMOUS} requires the use of only non-anonymous
 149      * responses. It will result into
 150      * wsam:NonAnonymousResponses nested assertion as specified in
 151      * <a href="http://www.w3.org/TR/ws-addr-metadata/#wspolicynonanonresponses">
 152      * 3.1.3 NonAnonymousResponses Assertion</a> in the generated WSDL.
 153      *
 154      * @since JAX-WS 2.2
 155      */
 156     public enum Responses {
 157         /**
 158          * Specifies the use of only anonymous
 159          * responses. It will result into wsam:AnonymousResponses nested assertion
 160          * as specified in
 161          * <a href="http://www.w3.org/TR/ws-addr-metadata/#wspolicyanonresponses">
 162          * 3.1.2 AnonymousResponses Assertion</a> in the generated WSDL.
 163          */
 164         ANONYMOUS,
 165 
 166         /**
 167          * Specifies the use of only non-anonymous
 168          * responses. It will result into
 169          * wsam:NonAnonymousResponses nested assertion as specified in
 170          * <a href="http://www.w3.org/TR/ws-addr-metadata/#wspolicynonanonresponses">
 171          * 3.1.3 NonAnonymousResponses Assertion</a> in the generated WSDL.
 172          */
 173         NON_ANONYMOUS,
 174 


 212      * @param enabled true enables ws-addressing i.e.ws-addressing
 213      * is supported but doesn't require its use
 214      * @param required true means requires the use of ws-addressing .
 215      */
 216     public AddressingFeature(boolean enabled, boolean required) {
 217         this(enabled, required, Responses.ALL);
 218     }
 219 
 220     /**
 221      * Creates and configures an <code>AddressingFeature</code> with the
 222      * use of addressing requirements. If <code>enabled</code> and
 223      * <code>required</code> are true, it enables ws-addressing and
 224      * requires its use. Also, the response types can be configured using
 225      * <code>responses</code> parameter.
 226      *
 227      * @param enabled true enables ws-addressing i.e.ws-addressing
 228      * is supported but doesn't require its use
 229      * @param required true means requires the use of ws-addressing .
 230      * @param responses specifies what type of responses are required
 231      *
 232      * @since JAX-WS 2.2
 233      */
 234     public AddressingFeature(boolean enabled, boolean required, Responses responses) {
 235         this.enabled = enabled;
 236         this.required = required;
 237         this.responses = responses;
 238     }
 239 
 240     /**
 241      * {@inheritDoc}
 242      */
 243     public String getID() {
 244         return ID;
 245     }
 246 
 247     /**
 248      * If addressing is enabled, this property determines whether the endpoint
 249      * requires WS-Addressing. If required is true, WS-Addressing headers MUST
 250      * be present on incoming and outgoing messages.
 251      *
 252      * @return the current required value
 253      */
 254     public boolean isRequired() {
 255         return required;
 256     }
 257 
 258     /**
 259      * If addressing is enabled, this property determines whether endpoint
 260      * requires the use of anonymous responses, or non-anonymous responses,
 261      * or all responses.
 262      *
 263      * <p>
 264      * @return {@link Responses#ALL} when endpoint supports all types of
 265      * responses,
 266      *         {@link Responses#ANONYMOUS} when endpoint requires the use of
 267      * only anonymous responses,
 268      *         {@link Responses#NON_ANONYMOUS} when endpoint requires the use
 269      * of only non-anonymous responses
 270      *
 271      * @since JAX-WS 2.2
 272      */
 273     public Responses getResponses() {
 274         return responses;
 275     }
 276 
 277 }


  95  * <b>Example 3: </b>Possible Policy Assertion in the generated WSDL for
  96  * <code>@Addressing(required=true, responses=Responses.ANONYMOUS)</code>
  97  * <pre>
  98  *   &lt;wsam:Addressing>
  99  *      &lt;wsp:Policy>
 100  *        &lt;wsam:AnonymousResponses/>
 101  *      &lt;/wsp:Policy>
 102  *   &lt;/wsam:Addressing>
 103  * </pre>
 104  *
 105  * <p>
 106  * See <a href="http://www.w3.org/TR/2006/REC-ws-addr-core-20060509/">
 107  * Web Services Addressing - Core</a>,
 108  * <a href="http://www.w3.org/TR/2006/REC-ws-addr-soap-20060509/">
 109  * Web Services Addressing 1.0 - SOAP Binding</a>,
 110  * and <a href="http://www.w3.org/TR/ws-addr-metadata/">
 111  * Web Services Addressing 1.0 - Metadata</a>
 112  * for more information on WS-Addressing.
 113  *
 114  * @see Addressing
 115  * @since 1.6, JAX-WS 2.1
 116  */
 117 
 118 public final class AddressingFeature extends WebServiceFeature {
 119     /**
 120      * Constant value identifying the AddressingFeature
 121      */
 122     public static final String ID = "http://www.w3.org/2005/08/addressing/module";
 123 
 124     /**
 125      * If addressing is enabled, this property determines whether the endpoint
 126      * requires WS-Addressing. If required is true, WS-Addressing headers MUST
 127      * be present on incoming and outgoing messages.
 128      */
 129     // should be private final, keeping original modifier due to backwards compatibility
 130     protected boolean required;
 131 
 132     /**
 133      * If addressing is enabled, this property determines if endpoint requires
 134      * the use of only anonymous responses, or only non-anonymous responses, or all.
 135      *
 136      * <p>
 137      * {@link Responses#ALL} supports all response types and this is the default
 138      * value.
 139      *
 140      * <p>
 141      * {@link Responses#ANONYMOUS} requires the use of only anonymous
 142      * responses. It will result into wsam:AnonymousResponses nested assertion
 143      * as specified in
 144      * <a href="http://www.w3.org/TR/ws-addr-metadata/#wspolicyanonresponses">
 145      * 3.1.2 AnonymousResponses Assertion</a> in the generated WSDL.
 146      *
 147      * <p>
 148      * {@link Responses#NON_ANONYMOUS} requires the use of only non-anonymous
 149      * responses. It will result into
 150      * wsam:NonAnonymousResponses nested assertion as specified in
 151      * <a href="http://www.w3.org/TR/ws-addr-metadata/#wspolicynonanonresponses">
 152      * 3.1.3 NonAnonymousResponses Assertion</a> in the generated WSDL.
 153      *
 154      * @since 1.7, JAX-WS 2.2
 155      */
 156     public enum Responses {
 157         /**
 158          * Specifies the use of only anonymous
 159          * responses. It will result into wsam:AnonymousResponses nested assertion
 160          * as specified in
 161          * <a href="http://www.w3.org/TR/ws-addr-metadata/#wspolicyanonresponses">
 162          * 3.1.2 AnonymousResponses Assertion</a> in the generated WSDL.
 163          */
 164         ANONYMOUS,
 165 
 166         /**
 167          * Specifies the use of only non-anonymous
 168          * responses. It will result into
 169          * wsam:NonAnonymousResponses nested assertion as specified in
 170          * <a href="http://www.w3.org/TR/ws-addr-metadata/#wspolicynonanonresponses">
 171          * 3.1.3 NonAnonymousResponses Assertion</a> in the generated WSDL.
 172          */
 173         NON_ANONYMOUS,
 174 


 212      * @param enabled true enables ws-addressing i.e.ws-addressing
 213      * is supported but doesn't require its use
 214      * @param required true means requires the use of ws-addressing .
 215      */
 216     public AddressingFeature(boolean enabled, boolean required) {
 217         this(enabled, required, Responses.ALL);
 218     }
 219 
 220     /**
 221      * Creates and configures an <code>AddressingFeature</code> with the
 222      * use of addressing requirements. If <code>enabled</code> and
 223      * <code>required</code> are true, it enables ws-addressing and
 224      * requires its use. Also, the response types can be configured using
 225      * <code>responses</code> parameter.
 226      *
 227      * @param enabled true enables ws-addressing i.e.ws-addressing
 228      * is supported but doesn't require its use
 229      * @param required true means requires the use of ws-addressing .
 230      * @param responses specifies what type of responses are required
 231      *
 232      * @since 1.7, JAX-WS 2.2
 233      */
 234     public AddressingFeature(boolean enabled, boolean required, Responses responses) {
 235         this.enabled = enabled;
 236         this.required = required;
 237         this.responses = responses;
 238     }
 239 
 240     /**
 241      * {@inheritDoc}
 242      */
 243     public String getID() {
 244         return ID;
 245     }
 246 
 247     /**
 248      * If addressing is enabled, this property determines whether the endpoint
 249      * requires WS-Addressing. If required is true, WS-Addressing headers MUST
 250      * be present on incoming and outgoing messages.
 251      *
 252      * @return the current required value
 253      */
 254     public boolean isRequired() {
 255         return required;
 256     }
 257 
 258     /**
 259      * If addressing is enabled, this property determines whether endpoint
 260      * requires the use of anonymous responses, or non-anonymous responses,
 261      * or all responses.
 262      *
 263      * <p>
 264      * @return {@link Responses#ALL} when endpoint supports all types of
 265      * responses,
 266      *         {@link Responses#ANONYMOUS} when endpoint requires the use of
 267      * only anonymous responses,
 268      *         {@link Responses#NON_ANONYMOUS} when endpoint requires the use
 269      * of only non-anonymous responses
 270      *
 271      * @since 1.7, JAX-WS 2.2
 272      */
 273     public Responses getResponses() {
 274         return responses;
 275     }
 276 
 277 }