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 ea4b7334d9adaaf7bb7e9320439f938742502424 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Tue Jun 18 12:07:25 2019 +0200 CAMEL-13647: Allow to do autowrire by classpath. --- .../main/java/org/apache/camel/maven/AutowireMojo.java | 15 +++++++++------ examples/camel-example-main-artemis/pom.xml | 5 +++-- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/catalog/camel-main-maven-plugin/src/main/java/org/apache/camel/maven/AutowireMojo.java b/catalog/camel-main-maven-plugin/src/main/java/org/apache/camel/maven/AutowireMojo.java index 6950bb6..7b66a5c 100644 --- a/catalog/camel-main-maven-plugin/src/main/java/org/apache/camel/maven/AutowireMojo.java +++ b/catalog/camel-main-maven-plugin/src/main/java/org/apache/camel/maven/AutowireMojo.java @@ -44,7 +44,6 @@ import org.apache.camel.catalog.JSonSchemaHelper; import org.apache.camel.catalog.maven.MavenVersionManager; import org.apache.camel.support.PatternHelper; import org.apache.camel.util.IOHelper; -import org.apache.camel.util.ObjectHelper; import org.apache.camel.util.OrderedProperties; import org.apache.camel.util.StringHelper; import org.apache.maven.artifact.Artifact; @@ -290,9 +289,13 @@ public class AutowireMojo extends AbstractExecMojo { Class clazz = classLoader.loadClass(javaType); if (clazz.isInterface() && isComplexUserType(clazz)) { Set<Class<?>> classes = reflections.getSubTypesOf(clazz); - // filter classes (must not be interfaces, must not be abstract, must be top level) and also a valid autowire class + // filter classes (must not be interfaces, must be public, must not be abstract, must be top level) and also a valid autowire class classes = classes.stream().filter( - c -> !c.isInterface() && !Modifier.isAbstract(c.getModifiers()) && c.getEnclosingClass() == null && isValidAutowireClass(c)) + c -> !c.isInterface() + && Modifier.isPublic(c.getModifiers()) + && !Modifier.isAbstract(c.getModifiers()) + && c.getEnclosingClass() == null + && isValidAutowireClass(c)) .collect(Collectors.toSet()); Class best = chooseBestKnownType(componentName, name, clazz, classes, mappingProperties); if (best != null) { @@ -336,7 +339,7 @@ public class AutowireMojo extends AbstractExecMojo { getLog().info("Cannot autowire option camel.component." + componentName + "." + optionName + " as the interface: " + type.getName() + " has " + candidates.size() + " implementations in the classpath:"); for (Class c : candidates) { - getLog().info(" Class: " + c.getName()); + getLog().info("\t\t" + c.getName()); } } } @@ -348,7 +351,7 @@ public class AutowireMojo extends AbstractExecMojo { String prefix = "camel.component." + componentName + "."; name = StringHelper.dashToCamelCase(name); - if (ObjectHelper.isNotEmpty(exclude)) { + if (exclude != null && exclude.length > 0) { // works on components too for (String pattern : exclude) { pattern = pattern.trim(); @@ -362,7 +365,7 @@ public class AutowireMojo extends AbstractExecMojo { } } - if (ObjectHelper.isNotEmpty(include)) { + if (include != null && include.length > 0) { for (String pattern : include) { pattern = pattern.trim(); pattern = StringHelper.dashToCamelCase(pattern); diff --git a/examples/camel-example-main-artemis/pom.xml b/examples/camel-example-main-artemis/pom.xml index d4bf15e..b0132bb 100644 --- a/examples/camel-example-main-artemis/pom.xml +++ b/examples/camel-example-main-artemis/pom.xml @@ -105,9 +105,10 @@ <version>${project.version}</version> <configuration> <logClasspath>false</logClasspath> - <logUnmapped>true</logUnmapped> + <!-- lets show which options are unmapped --> + <!-- <logUnmapped>true</logUnmapped> --> <!-- just include only the jms component --> - <include>jms</include> + <!-- <include>jms</include> --> </configuration> <executions> <execution>