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 2016/12/02 21:10:36 UTC

[2/2] camel git commit: Fixed APT to not attempt load consumer class on components without consumer

Fixed APT to not attempt load consumer class on components without consumer


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/8cc8e3f9
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/8cc8e3f9
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/8cc8e3f9

Branch: refs/heads/camel-2.18.x
Commit: 8cc8e3f9d46469c3ea1757d122a2fdd8eafa9d72
Parents: 38e8d22
Author: Claus Ibsen <da...@apache.org>
Authored: Fri Dec 2 22:07:23 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Fri Dec 2 22:10:26 2016 +0100

----------------------------------------------------------------------
 .../tools/apt/AnnotationProcessorHelper.java    |  2 +-
 .../tools/apt/EndpointAnnotationProcessor.java  | 46 +++++++++++---------
 2 files changed, 26 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/8cc8e3f9/tooling/apt/src/main/java/org/apache/camel/tools/apt/AnnotationProcessorHelper.java
----------------------------------------------------------------------
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/AnnotationProcessorHelper.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/AnnotationProcessorHelper.java
index ccbe807..6fff754 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/AnnotationProcessorHelper.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/AnnotationProcessorHelper.java
@@ -395,7 +395,7 @@ public final class AnnotationProcessorHelper {
             InputStream is = resource.openInputStream();
             return loadText(is, true);
         } catch (Exception e) {
-            warning(processingEnv, "Cannot load file");
+            warning(processingEnv, "APT cannot load file: " + packageName + "/" + fileName);
         }
 
         return null;

http://git-wip-us.apache.org/repos/asf/camel/blob/8cc8e3f9/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
----------------------------------------------------------------------
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 990c2aa..0b60421 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
@@ -182,29 +182,33 @@ public class EndpointAnnotationProcessor extends AbstractProcessor {
 
         writeHtmlDocumentationAndFieldInjections(writer, roundEnv, componentModel, classElement, "", uriEndpoint.excludeProperties());
 
-        // This code is not my fault, it seems to honestly be the hacky way to find a class name in APT :)
-        TypeMirror consumerType = null;
-        try {
-            uriEndpoint.consumerClass();
-        } catch (MirroredTypeException mte) {
-            consumerType = mte.getTypeMirror();
-        }
-
-        boolean found = false;
-        String consumerClassName = null;
-        String consumerPrefix = getOrElse(uriEndpoint.consumerPrefix(), "");
-        if (consumerType != null) {
-            consumerClassName = consumerType.toString();
-            TypeElement consumerElement = findTypeElement(processingEnv, roundEnv, consumerClassName);
-            if (consumerElement != null) {
-                writer.println("<h2>" + scheme + " consumer" + "</h2>");
-                writeHtmlDocumentationAndFieldInjections(writer, roundEnv, componentModel, consumerElement, consumerPrefix, uriEndpoint.excludeProperties());
-                found = true;
+        // only if its a consuemr capable component
+        if (uriEndpoint.consumerOnly() || !uriEndpoint.producerOnly()) {
+            // This code is not my fault, it seems to honestly be the hacky way to find a class name in APT :)
+            TypeMirror consumerType = null;
+            try {
+                uriEndpoint.consumerClass();
+            } catch (MirroredTypeException mte) {
+                consumerType = mte.getTypeMirror();
+            }
+
+            boolean found = false;
+            String consumerClassName = null;
+            String consumerPrefix = getOrElse(uriEndpoint.consumerPrefix(), "");
+            if (consumerType != null) {
+                consumerClassName = consumerType.toString();
+                TypeElement consumerElement = findTypeElement(processingEnv, roundEnv, consumerClassName);
+                if (consumerElement != null) {
+                    writer.println("<h2>" + scheme + " consumer" + "</h2>");
+                    writeHtmlDocumentationAndFieldInjections(writer, roundEnv, componentModel, consumerElement, consumerPrefix, uriEndpoint.excludeProperties());
+                    found = true;
+                }
+            }
+            if (!found && consumerClassName != null) {
+                warning(processingEnv, "APT cannot find consumer class " + consumerClassName);
             }
         }
-        if (!found && consumerClassName != null) {
-            warning(processingEnv, "APT could not find consumer class " + consumerClassName);
-        }
+
         writer.println("</body>");
         writer.println("</html>");
     }