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 dfbb53a693a853992c83b560e513e069062c620e Author: Claus Ibsen <[email protected]> AuthorDate: Tue Mar 24 17:38:26 2020 +0100 CAMEL-14776: came:run with osgi blueprint updated after osgi moved to camel-karaf repo --- tooling/maven/camel-maven-plugin/pom.xml | 5 ----- .../main/java/org/apache/camel/maven/RunMojo.java | 26 +++++++++++++++++----- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/tooling/maven/camel-maven-plugin/pom.xml b/tooling/maven/camel-maven-plugin/pom.xml index dac5ab7..75b7758 100644 --- a/tooling/maven/camel-maven-plugin/pom.xml +++ b/tooling/maven/camel-maven-plugin/pom.xml @@ -86,11 +86,6 @@ <groupId>org.apache.camel</groupId> <artifactId>camel-spring-javaconfig</artifactId> </dependency> - <!-- camel-test-blueprint has Main class for running blueprint out of container --> - <dependency> - <groupId>org.apache.camel</groupId> - <artifactId>camel-test-blueprint</artifactId> - </dependency> <!-- camel-cdi has Main class for running CDI --> <dependency> <groupId>org.apache.camel</groupId> diff --git a/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/RunMojo.java b/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/RunMojo.java index 41fe6ab..93e364f 100644 --- a/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/RunMojo.java +++ b/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/RunMojo.java @@ -314,7 +314,7 @@ public class RunMojo extends AbstractExecMojo { private Properties originalSystemProperties; private String extraPluginDependencyArtifactId; - + /** * Execute goal. @@ -405,9 +405,7 @@ public class RunMojo extends AbstractExecMojo { extraPluginDependencyArtifactId = "camel-cdi"; getLog().info("Using " + mainClass + " to initiate a CamelContext"); } else if (usingBlueprintMain) { - mainClass = "org.apache.camel.test.blueprint.Main"; - // must include plugin dependencies for blueprint - extraPluginDependencyArtifactId = "camel-test-blueprint"; + mainClass = "org.apache.camel.blueprint.Main"; // set the configAdmin pid if (configAdminPid != null) { args.add("-pid"); @@ -418,7 +416,7 @@ public class RunMojo extends AbstractExecMojo { args.add("-pf"); args.add(configAdminFileName); } - getLog().info("Using org.apache.camel.test.blueprint.Main to initiate a CamelContext"); + getLog().info("Using org.apache.camel.blueprint.Main to initiate a CamelContext"); } else if (mainClass != null) { getLog().info("Using custom " + mainClass + " to initiate a CamelContext"); } else { @@ -446,6 +444,11 @@ public class RunMojo extends AbstractExecMojo { final ClassLoader loader = getClassLoader(); IsolatedThreadGroup threadGroup = new IsolatedThreadGroup(mainClass /* name */); + + if (!detectBlueprintMainOnClassPath()) { + throw new MojoFailureException("Cannot run OSGi Blueprint Main because camel-blueprint-main JAR is not available on classpath"); + } + final Thread bootstrapThread = new Thread(threadGroup, new Runnable() { public void run() { try { @@ -702,6 +705,18 @@ public class RunMojo extends AbstractExecMojo { return false; } + @SuppressWarnings("unchecked") + private boolean detectBlueprintMainOnClassPath() { + List<Dependency> deps = project.getCompileDependencies(); + for (Dependency dep : deps) { + if ("org.apache.camel.karaf".equals(dep.getGroupId()) && "camel-blueprint-main".equals(dep.getArtifactId())) { + return true; + } + } + + return false; + } + /** * Set up a classloader for the execution of the main class. * @@ -777,7 +792,6 @@ public class RunMojo extends AbstractExecMojo { try { Set<Artifact> artifacts = new HashSet<>(this.pluginDependencies); for (Artifact artifact : artifacts) { - // must if (artifact.getArtifactId().equals(extraPluginDependencyArtifactId) || artifact.getArtifactId().equals(extendedPluginDependencyArtifactId)) { getLog().debug("Adding extra plugin dependency artifact: " + artifact.getArtifactId()
