1/* 2 * Copyright (c) 1997, 2013, 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 */ 25 26package com.sun.xml.internal.ws.developer; 27 28import java.lang.annotation.Documented; 29import java.lang.annotation.Target; 30import java.lang.annotation.ElementType; 31import java.lang.annotation.Retention; 32import java.lang.annotation.RetentionPolicy; 33 34import javax.xml.ws.spi.WebServiceFeatureAnnotation; 35 36/** 37 * This feature represents the use of WS-Addressing with either 38 * the SOAP 1.1/HTTP or SOAP 1.2/HTTP binding. Using this feature 39 * with any other binding is NOT required. 40 * <p> 41 * Enabling this feature will result in the 42 * <code>wsaw:UsingAddressing</code> element being added to the 43 * <code>wsdl:Binding</code> for 44 * the endpoint and in the runtime being capable of responding to 45 * WS-Addressing headers. 46 * <p> 47 * The following describes the affects of this feature with respect 48 * to be enabled or disabled: 49 * <ul> 50 * <li> ENABLED: In this Mode, Addressing will be enabled. 51 * If there is not a WSDL associated with the Endpoint and 52 * a WSDL is to be generated, it MUST be generated with the 53 * wsaw:UsingAddressing element. At runtime, Addressing headers 54 * MUST be consumed by the receiver and generated by the 55 * sender even if the WSDL declares otherwise. The 56 * mustUnderstand="0" attribute MUST be used on the Addressing 57 * headers. 58 * <li> DISABLED: In this Mode, Addressing will be disabled 59 * even if an associated WSDL specifies otherwise. At runtime, 60 * Addressing headers MUST NOT be used. 61 * </ul> 62 * <p> 63 * The {@link #required} property can be used to 64 * specify if the <code>required</code> attribute on the 65 * <code>wsaw:UsingAddressing</code> element should 66 * be <code>true</code> or <code>false</code>. By default the 67 * <code>wsdl:required</code> parameter is <code>false</code>. 68 * 69 * See <a href="http://www.w3.org/TR/2006/REC-ws-addr-core-20060509/">WS-Addressing</a> 70 * for more information on WS-Addressing. 71 * See <a href="http://www.w3.org/TR/2006/CR-ws-addr-wsdl-20060529/">WS-Addressing - WSDL 1.0 72 * </a> for more information on <code>wsaw:UsingAddressing</code>. 73 * 74 * @since JAX-WS 2.1 75 */ 76@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD}) 77@Retention(RetentionPolicy.RUNTIME) 78@Documented 79@WebServiceFeatureAnnotation(id= MemberSubmissionAddressingFeature.ID,bean=MemberSubmissionAddressingFeature.class) 80public @interface MemberSubmissionAddressing { 81 /** 82 * Specifies if this feature is enabled or disabled. 83 */ 84 boolean enabled() default true; 85 86 /** 87 * Property to determine the value of the 88 * <code>wsdl:required</code> attribute on 89 * <code>wsaw:UsingAddressing</code> element in the WSDL. 90 */ 91 boolean required() default false; 92 93 /** 94 * Property to determine if the incoming messsages should be checked for conformance 95 * with MemberSubmission version of WS-Addressing. 96 * 97 * If Validation.LAX, then some WS-Adressing headers are not strictly checked. 98 */ 99 public enum Validation { LAX, STRICT } 100 101 Validation validation() default Validation.LAX; 102 103} 104