You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by zr...@apache.org on 2018/07/16 20:27:31 UTC

[camel] 03/05: CAMEL-12618: Support APT on Java 11

This is an automated email from the ASF dual-hosted git repository.

zregvart pushed a commit to branch java-10-test
in repository https://gitbox.apache.org/repos/asf/camel.git

commit b6b02d29981a3d2bb66b0aa0ea5e89baab73a5d3
Author: Zoran Regvart <zr...@apache.org>
AuthorDate: Mon Jul 16 10:46:23 2018 +0200

    CAMEL-12618: Support APT on Java 11
    
    With this the annotation processors support the latest Java source
    version thus enabling them to work on Java >8.
    
    Also renames two classes that are not annotation processors so the
    distinction can be seen from the class name.
---
 ...ationProcessor.java => CoreEipAnnotationProcessorHelper.java} | 2 +-
 .../org/apache/camel/tools/apt/EndpointAnnotationProcessor.java  | 6 +++++-
 .../org/apache/camel/tools/apt/ModelAnnotationProcessor.java     | 9 ++++++---
 ...tationProcessor.java => SpringAnnotationProcessorHelper.java} | 7 +------
 4 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessor.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java
similarity index 99%
rename from tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessor.java
rename to tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java
index 4b66859..1849903 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessor.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/CoreEipAnnotationProcessorHelper.java
@@ -59,7 +59,7 @@ import static org.apache.camel.tools.apt.helper.Strings.safeNull;
 /**
  * Process all camel-core's model classes (EIPs and DSL) and generate json schema documentation
  */
-public class CoreEipAnnotationProcessor {
+public class CoreEipAnnotationProcessorHelper {
 
     // special when using expression/predicates in the model
     private static final String ONE_OF_TYPE_NAME = "org.apache.camel.model.ExpressionSubElementDefinition";
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
index bd603a7..76e2225 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
@@ -70,7 +70,6 @@ import static org.apache.camel.tools.apt.helper.Strings.isNullOrEmpty;
  * Processes all Camel {@link UriEndpoint}s and generate json schema documentation for the endpoint/component.
  */
 @SupportedAnnotationTypes({"org.apache.camel.spi.*"})
-@SupportedSourceVersion(SourceVersion.RELEASE_8)
 public class EndpointAnnotationProcessor extends AbstractProcessor {
 
     // CHECKSTYLE:OFF
@@ -94,6 +93,11 @@ public class EndpointAnnotationProcessor extends AbstractProcessor {
         return true;
     }
 
+    @Override
+    public SourceVersion getSupportedSourceVersion() {
+        return SourceVersion.latest();
+    }
+
     private void processEndpointClass(final RoundEnvironment roundEnv, final TypeElement classElement) {
         final UriEndpoint uriEndpoint = classElement.getAnnotation(UriEndpoint.class);
         if (uriEndpoint != null) {
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/ModelAnnotationProcessor.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/ModelAnnotationProcessor.java
index c226b2e..ee14fe7 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/ModelAnnotationProcessor.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/ModelAnnotationProcessor.java
@@ -33,11 +33,10 @@ import static org.apache.camel.tools.apt.helper.Strings.canonicalClassName;
  * APT compiler plugin to generate JSon Schema for all EIP models and camel-spring's <camelContext> types.
  */
 @SupportedAnnotationTypes({"javax.xml.bind.annotation.*", "org.apache.camel.spi.Label"})
-@SupportedSourceVersion(SourceVersion.RELEASE_8)
 public class ModelAnnotationProcessor extends AbstractProcessor {
 
-    private CoreEipAnnotationProcessor coreProcessor = new CoreEipAnnotationProcessor();
-    private SpringAnnotationProcessor springProcessor = new SpringAnnotationProcessor();
+    private CoreEipAnnotationProcessorHelper coreProcessor = new CoreEipAnnotationProcessorHelper();
+    private SpringAnnotationProcessorHelper springProcessor = new SpringAnnotationProcessorHelper();
 
     @Override
     public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
@@ -68,4 +67,8 @@ public class ModelAnnotationProcessor extends AbstractProcessor {
         return true;
     }
 
+    @Override
+    public SourceVersion getSupportedSourceVersion() {
+        return SourceVersion.latest();
+    }
 }
\ No newline at end of file
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/SpringAnnotationProcessor.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/SpringAnnotationProcessorHelper.java
similarity index 98%
rename from tooling/apt/src/main/java/org/apache/camel/tools/apt/SpringAnnotationProcessor.java
rename to tooling/apt/src/main/java/org/apache/camel/tools/apt/SpringAnnotationProcessorHelper.java
index d7357cd..01ca8f8 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/SpringAnnotationProcessor.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/SpringAnnotationProcessorHelper.java
@@ -24,9 +24,6 @@ import java.util.Set;
 import java.util.TreeSet;
 import javax.annotation.processing.ProcessingEnvironment;
 import javax.annotation.processing.RoundEnvironment;
-import javax.annotation.processing.SupportedAnnotationTypes;
-import javax.annotation.processing.SupportedSourceVersion;
-import javax.lang.model.SourceVersion;
 import javax.lang.model.element.ElementKind;
 import javax.lang.model.element.Modifier;
 import javax.lang.model.element.TypeElement;
@@ -56,9 +53,7 @@ import static org.apache.camel.tools.apt.helper.Strings.safeNull;
 /**
  * Process camel-spring's <camelContext> and generate json schema documentation
  */
-@SupportedAnnotationTypes({"javax.xml.bind.annotation.*", "org.apache.camel.spi.Label"})
-@SupportedSourceVersion(SourceVersion.RELEASE_8)
-public class SpringAnnotationProcessor {
+public class SpringAnnotationProcessorHelper {
 
     protected void processModelClass(final ProcessingEnvironment processingEnv, final RoundEnvironment roundEnv, final TypeElement classElement) {
         final String javaTypeName = canonicalClassName(classElement.getQualifiedName().toString());