Repository: camel Updated Branches: refs/heads/camel-2.18.x 38e8d2208 -> 8cc8e3f9d refs/heads/master 36b402592 -> 2f54bbb2d
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/2f54bbb2 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/2f54bbb2 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/2f54bbb2 Branch: refs/heads/master Commit: 2f54bbb2d9141a5b6f6b1bd61ce6cc72028d1abd Parents: 36b4025 Author: Claus Ibsen <davscl...@apache.org> Authored: Fri Dec 2 22:07:23 2016 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Fri Dec 2 22:10:05 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/2f54bbb2/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/2f54bbb2/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>"); }