test/tools/javac/annotations/repeatingAnnotations/SelfRepeatingAnnotations.java

Wed, 13 Mar 2013 22:03:09 +0100

author
jfranck
date
Wed, 13 Mar 2013 22:03:09 +0100
changeset 1634
eb0198033c5c
parent 1492
df694c775e8a
child 2525
2eb010b6cb22
permissions
-rw-r--r--

8006547: Repeating annotations: No Target on container annotation with all targets on base annotation gives compiler error
Reviewed-by: jjg

jfranck@1313 1 /*
jjg@1492 2 * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
jfranck@1313 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
jfranck@1313 4 *
jfranck@1313 5 * This code is free software; you can redistribute it and/or modify it
jfranck@1313 6 * under the terms of the GNU General Public License version 2 only, as
jfranck@1313 7 * published by the Free Software Foundation.
jfranck@1313 8 *
jfranck@1313 9 * This code is distributed in the hope that it will be useful, but WITHOUT
jfranck@1313 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
jfranck@1313 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
jfranck@1313 12 * version 2 for more details (a copy is included in the LICENSE file that
jfranck@1313 13 * accompanied this code).
jfranck@1313 14 *
jfranck@1313 15 * You should have received a copy of the GNU General Public License version
jfranck@1313 16 * 2 along with this work; if not, write to the Free Software Foundation,
jfranck@1313 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
jfranck@1313 18 *
jfranck@1313 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
jfranck@1313 20 * or visit www.oracle.com if you need additional information or have any
jfranck@1313 21 * questions.
jfranck@1313 22 */
jfranck@1313 23
jfranck@1313 24 /**
jfranck@1313 25 * @test
jfranck@1313 26 * @summary Smoke test for repeating annotations
jfranck@1313 27 * @bug 7151010
jfranck@1313 28 *
jfranck@1313 29 * @run clean SelfRepeatingAnnotations Foos SelfRepeatingAnno
jfranck@1313 30 * @run compile SelfRepeatingAnnotations.java
jfranck@1313 31 * @run main SelfRepeatingAnnotations
jfranck@1313 32 */
jfranck@1313 33
jfranck@1313 34 import java.lang.annotation.*;
jfranck@1313 35
jfranck@1313 36 @Retention(RetentionPolicy.RUNTIME)
jfranck@1313 37 @interface Foos {
jfranck@1313 38 SelfRepeatingAnno[] value();
jfranck@1313 39 }
jfranck@1313 40
jfranck@1313 41 @SelfRepeatingAnno
jfranck@1313 42 @Retention(RetentionPolicy.RUNTIME)
jfranck@1313 43 @SelfRepeatingAnno
jjg@1492 44 @Repeatable(Foos.class)
jfranck@1313 45 @interface SelfRepeatingAnno {}
jfranck@1313 46
jfranck@1313 47 public class SelfRepeatingAnnotations {
jfranck@1313 48 public static void main(String[] args) throws Exception {
jfranck@1313 49 Annotation a = SelfRepeatingAnno.class.getAnnotation(Foos.class);
jfranck@1313 50 if (a == null) {
jfranck@1313 51 throw new RuntimeException("Container annotation missing");
jfranck@1313 52 }
jfranck@1313 53 }
jfranck@1313 54 }

mercurial