You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2019/01/16 08:48:30 UTC

[camel] 01/02: CAMEL-13067: apt compiler plugin fixed to include component level metadata again

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

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 7f0b35a1e0dbbb088c0ce32b6094e470b5013549
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Jan 16 09:27:35 2019 +0100

    CAMEL-13067: apt compiler plugin fixed to include component level metadata again
---
 .../camel/tools/apt/EndpointAnnotationProcessor.java | 20 ++++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

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 5d41446..6f1714c 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
@@ -44,6 +44,7 @@ import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
+import org.apache.camel.spi.annotations.Component;
 import org.apache.camel.tools.apt.helper.CollectionStringBuffer;
 import org.apache.camel.tools.apt.helper.EndpointHelper;
 import org.apache.camel.tools.apt.helper.JsonSchemaHelper;
@@ -57,7 +58,6 @@ import static org.apache.camel.tools.apt.AnnotationProcessorHelper.findFieldElem
 import static org.apache.camel.tools.apt.AnnotationProcessorHelper.findJavaDoc;
 import static org.apache.camel.tools.apt.AnnotationProcessorHelper.findTypeElement;
 import static org.apache.camel.tools.apt.AnnotationProcessorHelper.implementsInterface;
-import static org.apache.camel.tools.apt.AnnotationProcessorHelper.loadResource;
 import static org.apache.camel.tools.apt.AnnotationProcessorHelper.processFile;
 import static org.apache.camel.tools.apt.helper.JsonSchemaHelper.sanitizeDescription;
 import static org.apache.camel.tools.apt.helper.Strings.canonicalClassName;
@@ -352,6 +352,20 @@ public class EndpointAnnotationProcessor extends AbstractCamelAnnotationProcesso
             model.setFirstVersion(firstVersion);
         }
 
+        // get the java type class name via the @Component annotation from its component class
+        Set<? extends Element> elements = roundEnv.getElementsAnnotatedWith(Component.class);
+        if (elements != null) {
+            for (Element e : elements) {
+                Component comp = e.getAnnotation(Component.class);
+                if (scheme.equals(comp.value()) && e.getKind() == ElementKind.CLASS) {
+                    TypeElement te = (TypeElement) e;
+                    String name = te.getQualifiedName().toString();
+                    model.setJavaType(name);
+                    break;
+                }
+            }
+        }
+
         // we can mark a component as deprecated by using the annotation
         boolean deprecated = endpointClassElement.getAnnotation(Deprecated.class) != null;
         model.setDeprecated(deprecated);
@@ -362,7 +376,9 @@ public class EndpointAnnotationProcessor extends AbstractCamelAnnotationProcesso
         model.setDeprecationNote(deprecationNote);
 
         // these information is not available at compile time and we enrich these later during the camel-package-maven-plugin
-        model.setJavaType("@@@JAVATYPE@@@");
+        if (model.getJavaType() == null) {
+            model.setJavaType("@@@JAVATYPE@@@");
+        }
         model.setDescription("@@@DESCRIPTION@@@");
         model.setGroupId("@@@GROUPID@@@");
         model.setArtifactId("@@@ARTIFACTID@@@");