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@@@");