You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Eric Milles (Jira)" <ji...@apache.org> on 2022/07/06 18:48:00 UTC
[jira] [Updated] (GROOVY-6019) Cross compilation of Groovy annotation on Java class does not work
[ https://issues.apache.org/jira/browse/GROOVY-6019?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Milles updated GROOVY-6019:
--------------------------------
Labels: annotations (was: )
> Cross compilation of Groovy annotation on Java class does not work
> ------------------------------------------------------------------
>
> Key: GROOVY-6019
> URL: https://issues.apache.org/jira/browse/GROOVY-6019
> Project: Groovy
> Issue Type: Bug
> Components: Compiler
> Affects Versions: 2.1.0, 2.1.1
> Environment: originally: Linux jato-rafal 3.0.0-31-generic #49-Ubuntu SMP Tue Feb 19 20:02:57 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
> reproduced on Windows 7 x64
> Reporter: wujek srujek
> Assignee: Paul King
> Priority: Major
> Labels: annotations
> Fix For: 2.1.2, 2.2.0-beta-1
>
>
> This annotation:
> {code}
> @Retention(RetentionPolicy.RUNTIME)
> @Target([ElementType.TYPE, ElementType.METHOD])
> @interface Tx {
> String value() default 'def'
> }
> {code}
> on this class:
> {code}
> @Tx
> public class PersonServiceJava {
> }
> {code}
> results in the following failure:
> {quote}
> $ groovyc -j PersonServiceJava.java Tx.groovy
> org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
> Compile error during compilation with javac.
> /home/wujek/Playground/annotation_test/src/main/groovy/test/PersonServiceJava.java:4: error: annotation Tx is missing value for the attribute value
> @Tx
> ^
> 1 error
> {quote}
> I originally submitted it to Gradle (http://issues.gradle.org/browse/GRADLE-2682), but it seems to be a core groovy issue. The generated stub for the Groovy annotation look like the following:
> {code}
> @java.lang.annotation.Retention(value=java.lang.annotation.RetentionPolicy.RUNTIME) @java.lang.annotation.Target(value={java.lang.annotation.ElementType.TYPE,java.lang.annotation.ElementType.METHOD}) public @interface Tx
> {
> java.lang.String value();
> }
> {code}
> The default value is missing. A sample project can be downloaded in the Gradle issue, so I won't attach it here, unless you want me to.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)