@@ -0,0 +1,2236 @@
+/*%0A * Copyright 2013 Google Inc.%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22); you may not%0A * use this file except in compliance with the License. You may obtain a copy of%0A * the License at%0A *%0A * http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS, WITHOUT%0A * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the%0A * License for the specific language governing permissions and limitations under%0A * the License.%0A */%0Apackage org.gwtproject.core.shared;%0Aimport java.lang.annotation.Documented;%0Aimport java.lang.annotation.ElementType;%0Aimport java.lang.annotation.Retention;%0Aimport java.lang.annotation.RetentionPolicy;%0Aimport java.lang.annotation.Target;%0A%0A/**%0A * A simple of a GwtIncompatible annotation.%0A *%0A * Any class, method or field with an annotation @GwtIncompatible (with any package prefix) is%0A * ignored by the GWT compiler.%0A *%0A * Since only the name of the annotation matters, Java libraries may use their own copy of this%0A * annotation class to avoid adding a compile-time dependency on GWT.%0A *%0A * For example:%0A *%0A * %7B@code%0A * class A %7B%0A *%0A *   int field;%0A *%0A *   @GwtIncompatible(%22incompatible class%22)%0A *   class Inner %7B%0A *     ....%0A *   %7D%0A *%0A *   @GwtIncompatible(%22incompatible field%22)%0A *   int field2 = methodThatisNotSupportedbyGwt();%0A *%0A *   void method1() %7B %7D%0A *%0A *   @GwtIncompatible(%22incompatbile method%22)%0A *   void method2() %7B%7D%0A * %7D%0A * %7D%0A *%0A * is seen by the Gwt compiler as%0A *%0A * %7B@code%0A * class A %7B%0A *%0A *   int field;%0A *%0A *   void method1() %7B %7D%0A *%0A * %7D%0A * %7D%0A *%0A * Warning: this may have surprising effects when combined with method overloading or inheritance.%0A */%0A@Retention(RetentionPolicy.CLASS)%0A@Target(%7B%0A        ElementType.TYPE, ElementType.METHOD,%0A        ElementType.CONSTRUCTOR, ElementType.FIELD %7D)%0A@Documented%0Apublic @interface GwtIncompatible %7B%0A    /**%0A     * An attribute that can be used to explain why the code is incompatible.%0A     * A GwtIncompatible annotation can have any number of attributes; attributes%0A     * are for documentation purposes and are ignored by the GWT compiler.%0A     */%0A    String value() default %22%22;%0A%7D%0A

Add @GwtIncompatible to a common location so other libs can use it