Skip to content

Commit f21e5cc

Browse files
authored
Merge pull request #208 from domaframework/generated-annotation
Use `javax.annotation.processing.Generated` on JDK 9
2 parents aaaf0e7 + d330971 commit f21e5cc

File tree

1 file changed

+26
-4
lines changed

1 file changed

+26
-4
lines changed

src/main/java/org/seasar/doma/internal/apt/AbstractGenerator.java

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,11 @@
2121
import java.io.IOException;
2222
import java.util.Formatter;
2323

24-
import javax.annotation.Generated;
2524
import javax.annotation.processing.Filer;
2625
import javax.annotation.processing.ProcessingEnvironment;
2726
import javax.lang.model.element.TypeElement;
27+
import javax.lang.model.type.TypeMirror;
28+
import javax.lang.model.util.Elements;
2829
import javax.tools.JavaFileObject;
2930

3031
import org.seasar.doma.internal.Artifact;
@@ -111,9 +112,15 @@ protected String getQualifiedNamePrefix(ProcessingEnvironment env,
111112
}
112113

113114
protected void printGenerated() {
114-
iprint("@%s(value = { \"%s\", \"%s\" }, date = \"%tFT%<tT.%<tL%<tz\")%n",
115-
Generated.class.getName(), Artifact.getName(),
116-
Options.getVersion(env), Options.getDate(env));
115+
String annotationElements = String.format(
116+
"value = { \"%s\", \"%s\" }, date = \"%tFT%<tT.%<tL%<tz\"",
117+
Artifact.getName(), Options.getVersion(env),
118+
Options.getDate(env));
119+
TypeMirror generatedTypeMirror = getGeneratedTypeMirror();
120+
if (generatedTypeMirror == null) {
121+
iprint("// %s%n", annotationElements);
122+
}
123+
iprint("@%s(%s)%n", generatedTypeMirror, annotationElements);
117124
}
118125

119126
protected void printValidateVersionStaticInitializer() {
@@ -165,4 +172,19 @@ public void close() {
165172
}
166173
}
167174

175+
private TypeMirror getGeneratedTypeMirror() {
176+
Elements elements = env.getElementUtils();
177+
TypeElement java8 = elements
178+
.getTypeElement("javax.annotation.Generated");
179+
if (java8 != null) {
180+
return java8.asType();
181+
}
182+
TypeElement java9 = elements
183+
.getTypeElement("javax.annotation.processing.Generated");
184+
if (java9 != null) {
185+
return java9.asType();
186+
}
187+
return null;
188+
}
189+
168190
}

0 commit comments

Comments
 (0)