http://git-wip-us.apache.org/repos/asf/camel/blob/9de5089a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/util/ArquillianPackager.java
----------------------------------------------------------------------
diff --git 
a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/util/ArquillianPackager.java
 
b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/util/ArquillianPackager.java
index 131254f..8127999 100644
--- 
a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/util/ArquillianPackager.java
+++ 
b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/util/ArquillianPackager.java
@@ -18,7 +18,6 @@ package org.apache.camel.itest.springboot.util;
 
 import java.io.File;
 import java.io.FileWriter;
-import java.io.FilenameFilter;
 import java.io.IOException;
 import java.io.InputStream;
 import java.security.AccessController;
@@ -34,13 +33,13 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeMap;
+import java.util.TreeSet;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import org.apache.camel.itest.springboot.ITestConfig;
 import org.apache.camel.itest.springboot.ITestConfigBuilder;
 import org.apache.camel.itest.springboot.arquillian.SpringBootZipExporterImpl;
-import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
 import org.jboss.arquillian.container.se.api.ClassPath;
 import org.jboss.shrinkwrap.api.Archive;
@@ -68,7 +67,6 @@ import 
org.jboss.shrinkwrap.resolver.api.maven.coordinate.MavenCoordinates;
 import org.jboss.shrinkwrap.resolver.api.maven.coordinate.MavenDependencies;
 import org.jboss.shrinkwrap.resolver.api.maven.coordinate.MavenDependency;
 import 
org.jboss.shrinkwrap.resolver.api.maven.coordinate.MavenDependencyExclusion;
-import org.junit.Assert;
 
 /**
  * Packages a module in a spring-boot compatible nested-jar structure.
@@ -84,10 +82,17 @@ public final class ArquillianPackager {
     private static final String LIB_FOLDER = "/BOOT-INF/lib";
     private static final String CLASSES_FOLDER = "BOOT-INF/classes";
 
+    private static final boolean FAIL_ON_TEST_LIBRARY_MISMATCH = false;
+    private static final boolean FAIL_ON_RELATED_LIBRARY_MISMATCH = true;
+    private static final boolean VERSION_EQUALITY_MINOR_VERSION = true;
+
     private ArquillianPackager() {
     }
 
     public static Archive<?> springBootPackage(ITestConfig config) throws 
Exception {
+        if (!new 
File(".").getCanonicalFile().getName().equals("camel-itest-spring-boot")) {
+            throw new IllegalStateException("In order to run the integration 
tests, 'camel-itest-spring-boot' must be the working directory. Check your 
configuration.");
+        }
 
         ExtensionLoader extensionLoader = new 
ServiceExtensionLoader(Collections.singleton(getExtensionClassloader()));
         extensionLoader.addOverride(ZipExporter.class, 
SpringBootZipExporterImpl.class);
@@ -187,53 +192,48 @@ public final class ArquillianPackager {
         for (String depXml : testProvidedDependenciesXml) {
             if (validTestDependency(config, depXml, commonExclusions)) {
                 depXml = enforceExclusions(config, depXml, commonExclusions);
-                //depXml = addBOMVersionWhereMissing(config, depXml);
+                depXml = switchToStarterIfPresent(config, depXml);
                 cleanTestProvidedDependenciesXml.add(depXml);
             }
         }
 
-        List<String> versionedTestProvidedDependenciesXml = new LinkedList<>();
-        if(!cleanTestProvidedDependenciesXml.isEmpty()) {
+        List<MavenResolvedArtifact> testDependencies = new LinkedList<>();
+        if (!cleanTestProvidedDependenciesXml.isEmpty()) {
 
             File testProvidedResolverPom = createResolverPom(config, 
cleanTestProvidedDependenciesXml);
 
-            List<MavenResolvedArtifact> artifacts = 
Arrays.asList(resolver(config)
+            testDependencies.addAll(Arrays.asList(resolver(config)
                     .loadPomFromFile(testProvidedResolverPom)
                     .importDependencies(scopes.toArray(new ScopeType[0]))
                     .resolve()
-                    .withoutTransitivity()
-                    .asResolvedArtifact());
-
-            Map<String, String> resolvedVersions = new HashMap<>();
-            for(MavenResolvedArtifact art : artifacts) {
-                String key = art.getCoordinate().getGroupId() + ":" + 
art.getCoordinate().getArtifactId();
-                String val = art.getCoordinate().getVersion();
-                resolvedVersions.put(key, val);
-            }
-
-            for(String dep : cleanTestProvidedDependenciesXml) {
-                dep = setResolvedVersion(config, dep, resolvedVersions);
-                versionedTestProvidedDependenciesXml.add(dep);
-            }
-
+                    .withTransitivity()
+                    .asResolvedArtifact()));
         }
 
-        File moduleSpringBootPom = createUserPom(config, 
versionedTestProvidedDependenciesXml);
+        File moduleSpringBootPom = createUserPom(config);
 
-        List<ScopeType> resolvedScopes = new LinkedList<>();
-        resolvedScopes.add(ScopeType.COMPILE);
-        resolvedScopes.add(ScopeType.RUNTIME);
-        resolvedScopes.addAll(scopes);
+//        List<ScopeType> resolvedScopes = new LinkedList<>();
+//        resolvedScopes.add(ScopeType.COMPILE);
+//        resolvedScopes.add(ScopeType.RUNTIME);
+//        resolvedScopes.addAll(scopes);
 
-        List<File> dependencies = new LinkedList<>();
-        dependencies.addAll(Arrays.asList(resolver(config)
+        List<MavenResolvedArtifact> runtimeDependencies = new LinkedList<>();
+        runtimeDependencies.addAll(Arrays.asList(resolver(config)
                 .loadPomFromFile(moduleSpringBootPom)
-                .importDependencies(resolvedScopes.toArray(new ScopeType[0]))
+                .importRuntimeDependencies()
                 .addDependencies(additionalDependencies)
                 .resolve()
                 .withTransitivity()
-                .asFile()));
+                .asResolvedArtifact()));
+
+
+        List<MavenResolvedArtifact> dependencyArtifacts = merge(config, 
runtimeDependencies, testDependencies);
+        lookForVersionMismatch(config, dependencyArtifacts);
 
+        List<File> dependencies = new LinkedList<>();
+        for (MavenResolvedArtifact a : dependencyArtifacts) {
+            dependencies.add(a.asFile());
+        }
 
         // The spring boot-loader dependency will be added to the main jar, so 
it should be excluded from the embedded ones
         excludeDependencyRegex(dependencies, "^spring-boot-loader-[0-9].*");
@@ -281,6 +281,159 @@ public final class ArquillianPackager {
         return external.build();
     }
 
+    private static void lookForVersionMismatch(ITestConfig config, 
List<MavenResolvedArtifact> dependencyArtifacts) {
+
+        Set<String> ignore = new HashSet<>();
+        ignore.addAll(config.getIgnoreLibraryMismatch());
+
+        ignore.add("org.apache.commons");
+        ignore.add("commons-beanutils:commons-beanutils");
+        ignore.add("io.netty:netty:jar"); // an old version
+        ignore.add("xml-apis:xml-apis-ext");
+        ignore.add("org.scala-lang:scala-compiler");
+        ignore.add("org.mortbay.jetty:servlet-api-2.5");
+        ignore.add("org.apache.geronimo.specs");
+        ignore.add("org.apache.qpid:qpid-jms-client");
+        ignore.add("com.github.jnr");
+        ignore.add("stax:stax-api");
+        ignore.add("net.openhft");
+        ignore.add("org.easytesting");
+        ignore.add("com.sun.xml.bind:jaxb-xjc");
+        ignore.add("io.swagger:swagger-parser");
+        ignore.add("io.fabric8:kubernetes-");
+        ignore.add("org.apache.maven");
+        ignore.add("org.codehaus.plexus");
+        ignore.add("org.jboss.arquillian.container");
+        ignore.add("org.apache.curator");
+        ignore.add("org.apache.parquet");
+        ignore.add("org.springframework.data");
+        ignore.add("org.apache.velocity");
+
+        Map<String, Map<String, String>> status = new TreeMap<>();
+        Set<String> mismatches = new TreeSet<>();
+        for (MavenResolvedArtifact a : dependencyArtifacts) {
+            boolean ignoreCheck = false;
+            for (String i : ignore) {
+                if (getIdentifier(a).startsWith(i)) {
+                    ignoreCheck = true;
+                    break;
+                }
+            }
+            if (ignoreCheck) {
+                continue;
+            }
+
+            String group = a.getCoordinate().getGroupId();
+            String artifact = a.getCoordinate().getArtifactId();
+            String version = a.getCoordinate().getVersion();
+
+            String artifactPrefix = artifact;
+            if (artifactPrefix.contains("-")) {
+                artifactPrefix = artifactPrefix.substring(0, 
artifactPrefix.indexOf("-"));
+            }
+            String prefixId = group + ":" + artifactPrefix;
+
+            if (!status.containsKey(prefixId)) {
+                status.put(prefixId, new TreeMap<>());
+            }
+
+            for (String anotherVersion : status.get(prefixId).values()) {
+                if (!sameVersion(anotherVersion, version)) {
+                    mismatches.add(prefixId);
+                }
+            }
+
+            status.get(prefixId).put(getIdentifier(a), version);
+        }
+
+        StringBuilder message = new StringBuilder();
+        for (String mismatch : mismatches) {
+            message.append("Found mismatch for dependency " + mismatch + 
":\n");
+            for (String art : status.get(mismatch).keySet()) {
+                String ver = status.get(mismatch).get(art);
+                message.append(" - " + art + " --> " + ver + "\n");
+            }
+        }
+
+        if (message.length() > 0) {
+            String alert = "Library version mismatch found.\n" + message;
+            if (FAIL_ON_RELATED_LIBRARY_MISMATCH) {
+                throw new RuntimeException(alert);
+            } else {
+                debug(alert);
+            }
+        }
+    }
+
+    private static boolean sameVersion(String v1, String v2) {
+        if (VERSION_EQUALITY_MINOR_VERSION) {
+            if (v1.indexOf(".") != v1.lastIndexOf(".") && v2.indexOf(".") != 
v2.lastIndexOf(".")) {
+                // truncate up to minor version
+                int v1MinSplit = v1.indexOf(".", v1.indexOf(".") + 1);
+                v1 = v1.substring(0, v1MinSplit);
+
+                int v2MinSplit = v2.indexOf(".", v2.indexOf(".") + 1);
+                v2 = v2.substring(0, v2MinSplit);
+            }
+        }
+
+        return v1.equals(v2);
+    }
+
+    private static List<MavenResolvedArtifact> merge(ITestConfig config, 
List<MavenResolvedArtifact> runtimeDependencies, List<MavenResolvedArtifact> 
testDependencies) {
+
+
+        Set<String> runtimeArtifacts = new HashSet<>();
+        for (MavenResolvedArtifact a : runtimeDependencies) {
+            runtimeArtifacts.add(getIdentifier(a));
+        }
+
+        Map<String, String> testVersions = new HashMap<>();
+        for (MavenResolvedArtifact a : testDependencies) {
+            testVersions.put(getIdentifier(a), a.getCoordinate().getVersion());
+        }
+
+        List<MavenResolvedArtifact> result = new LinkedList<>();
+        List<String> problems = new LinkedList<>();
+
+        for (MavenResolvedArtifact a : runtimeDependencies) {
+            String version = a.getCoordinate().getVersion();
+            String testVersion = testVersions.get(getIdentifier(a));
+
+            if (testVersion != null && !sameVersion(testVersion, version)) {
+                problems.add("Versions for artifact " + getIdentifier(a) + " 
are different between runtime (" + version + ") and test (" + testVersion + ") 
scopes");
+            }
+
+            result.add(a);
+        }
+
+        for (MavenResolvedArtifact a : testDependencies) {
+            if (!runtimeArtifacts.contains(getIdentifier(a))) {
+                result.add(a);
+            }
+        }
+
+        if (!problems.isEmpty()) {
+            StringBuilder message = new StringBuilder();
+            message.append("Some problems found while merging test 
dependencies:\n");
+            for (String problem : problems) {
+                message.append(" - " + problem + "\n");
+            }
+
+            if (FAIL_ON_TEST_LIBRARY_MISMATCH) {
+                throw new RuntimeException(message.toString());
+            } else {
+                debug(message.toString());
+            }
+        }
+
+        return result;
+    }
+
+    private static String getIdentifier(MavenResolvedArtifact a) {
+        return a.getCoordinate().getGroupId() + ":" + 
a.getCoordinate().getArtifactId() + ":" + a.getCoordinate().getType() + ":" + 
a.getCoordinate().getClassifier();
+    }
+
     private static File createResolverPom(ITestConfig config, List<String> 
cleanTestProvidedDependencies) throws Exception {
 
         String pom;
@@ -309,6 +462,8 @@ public final class ArquillianPackager {
             pom = pom.replace(property, resolvedProperties.get(property));
         }
 
+        pom = pom.replace("#{module}", config.getModuleName());
+
         File pomFile = new File(config.getModuleBasePath() + 
"/target/itest-spring-boot-dependency-resolver-pom.xml");
         try (FileWriter fw = new FileWriter(pomFile)) {
             IOUtils.write(pom, fw);
@@ -317,20 +472,20 @@ public final class ArquillianPackager {
         return pomFile;
     }
 
-    private static File createUserPom(ITestConfig config, List<String> 
cleanTestProvidedDependencies) throws Exception {
+    private static File createUserPom(ITestConfig config) throws Exception {
 
         String pom;
         try (InputStream pomTemplate = 
ArquillianPackager.class.getResourceAsStream("/application-pom.xml")) {
             pom = IOUtils.toString(pomTemplate);
         }
 
-        StringBuilder dependencies = new StringBuilder();
-        for (String dep : cleanTestProvidedDependencies) {
-            dependencies.append(dep);
-            dependencies.append("\n");
-        }
-
-        pom = pom.replace("<!-- DEPENDENCIES -->", dependencies.toString());
+//        StringBuilder dependencies = new StringBuilder();
+//        for (String dep : cleanTestProvidedDependencies) {
+//            dependencies.append(dep);
+//            dependencies.append("\n");
+//        }
+//
+//        pom = pom.replace("<!-- DEPENDENCIES -->", dependencies.toString());
 
         Map<String, String> resolvedProperties = new TreeMap<>();
         Pattern propPattern = Pattern.compile("(\\$\\{[^}]*\\})");
@@ -412,6 +567,23 @@ public final class ArquillianPackager {
         return dependencyXml;
     }
 
+    private static String switchToStarterIfPresent(ITestConfig config, String 
dependencyXml) {
+
+        String groupId = textBetween(dependencyXml, "<groupId>", "</groupId>");
+        String artifactId = textBetween(dependencyXml, "<artifactId>", 
"</artifactId>");
+        String type = textBetween(dependencyXml, "<type>", "</type>");
+
+        if ("org.apache.camel".equals(groupId) && 
artifactId.startsWith("camel-") && !"test-jar".equals(type)) {
+            String starterArtifact = artifactId + "-starter";
+            File starterFile = new File("../../components-starter/" + 
starterArtifact);
+            if (starterFile.exists()) {
+                dependencyXml = dependencyXml.replace(artifactId, 
starterArtifact);
+            }
+        }
+
+        return dependencyXml;
+    }
+
     private static String setResolvedVersion(ITestConfig config, String 
dependencyXml, Map<String, String> resolvedVersions) throws Exception {
 
         String groupId = textBetween(dependencyXml, "<groupId>", "</groupId>");

http://git-wip-us.apache.org/repos/asf/camel/blob/9de5089a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/util/DependencyResolver.java
----------------------------------------------------------------------
diff --git 
a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/util/DependencyResolver.java
 
b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/util/DependencyResolver.java
index e7ff4cd..fe54d80 100644
--- 
a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/util/DependencyResolver.java
+++ 
b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/util/DependencyResolver.java
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.itest.springboot.util;
 
+import java.io.File;
+import java.io.IOException;
 import java.io.StringWriter;
 import java.util.Collections;
 import java.util.HashSet;
@@ -169,7 +171,7 @@ public final class DependencyResolver {
     }
 
     public static String resolveCamelParentBOMVersion(String groupId, String 
artifactId) throws Exception {
-        return xpath("../../parent/pom.xml", 
"/project/dependencyManagement/dependencies/dependency[groupId='" + groupId + 
"' and artifactId='" + artifactId + "']/version/text()");
+        return xpath(camelRoot("parent/parent/pom.xml"), 
"/project/dependencyManagement/dependencies/dependency[groupId='" + groupId + 
"' and artifactId='" + artifactId + "']/version/text()");
     }
 
     public static String resolveParentProperty(String property) {
@@ -182,29 +184,29 @@ public final class DependencyResolver {
     }
 
     public static String resolveSpringBootParentProperty(String property) {
-        return 
resolveProperty("../../spring-boot-dm/camel-starter-parent/pom.xml", property, 
0);
+        return resolveProperty(camelRoot("spring-boot-dm/pom.xml"), property, 
0);
     }
 
     public static String resolveCamelParentProperty(String property) {
-        return resolveProperty("../../parent/pom.xml", property, 0);
+        return resolveProperty(camelRoot("parent/pom.xml"), property, 0);
     }
 
     private static String resolveSurefireProperty(String property) throws 
Exception {
-        property = getSurefirePropertyFromPom("pom.xml", property);
+        property = getSurefirePropertyFromPom(new File("pom.xml"), property);
         if (property != null && !isResolved(property)) {
-            property = resolveProperty("pom.xml", property, 0);
+            property = resolveProperty(new File("pom.xml"), property, 0);
         }
         if (property != null && !isResolved(property)) {
-            property = resolveProperty("../pom.xml", property, 0);
+            property = resolveProperty(new File("../pom.xml"), property, 0);
         }
         if (property != null && !isResolved(property)) {
-            property = 
resolveProperty("../../spring-boot-dm/camel-starter-parent/pom.xml", property, 
0);
+            property = resolveProperty(camelRoot("spring-boot-dm/pom.xml"), 
property, 0);
         }
 
         return property;
     }
 
-    private static String resolveProperty(String pom, String property, int 
depth) {
+    private static String resolveProperty(File pom, String property, int 
depth) {
         try {
             property = property.trim();
             if (!property.startsWith("${") || !property.endsWith("}")) {
@@ -232,19 +234,19 @@ public final class DependencyResolver {
         }
     }
 
-    private static String getSurefirePropertyFromPom(String pom, String 
property) throws Exception {
+    private static String getSurefirePropertyFromPom(File pom, String 
property) throws Exception {
         return xpath(pom, 
"//plugin[artifactId='maven-surefire-plugin']//systemProperties/property[name='"
 + property + "']/value/text()");
     }
 
-    private static String getPropertyFromPom(String pom, String property) 
throws Exception {
+    private static String getPropertyFromPom(File pom, String property) throws 
Exception {
         return xpath(pom, "/project/properties/" + property + "/text()");
     }
 
-    private static String getParentVersion(String pom) throws Exception {
+    private static String getParentVersion(File pom) throws Exception {
         return xpath(pom, "/project/parent/version/text()");
     }
 
-    private static String xpath(String pom, String expression) throws 
Exception {
+    private static String xpath(File pom, String expression) throws Exception {
         DocumentBuilder builder = factory.newDocumentBuilder();
         Document doc = builder.parse(pom);
         XPath xpath = xPathfactory.newXPath();
@@ -260,4 +262,28 @@ public final class DependencyResolver {
         return value != null && !value.startsWith("$");
     }
 
+    private static File camelRoot(String path) {
+        return new File(camelRoot(), path);
+    }
+
+    private static File camelRoot() {
+        try {
+            File root = new File(".").getCanonicalFile();
+            while (root != null) {
+                File[] names = root.listFiles(pathname -> 
pathname.getName().equals("components-starter"));
+                if (names != null && names.length == 1) {
+                    break;
+                }
+                root = root.getParentFile();
+            }
+
+            if (root == null) {
+                throw new IllegalStateException("Cannot find Apache Camel 
project root directory");
+            }
+            return root;
+        } catch (IOException e) {
+            throw new IllegalStateException("Error while getting directory", 
e);
+        }
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/9de5089a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/util/JarExporter.java
----------------------------------------------------------------------
diff --git 
a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/util/JarExporter.java
 
b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/util/JarExporter.java
index 16bcc90..84dde29 100644
--- 
a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/util/JarExporter.java
+++ 
b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/util/JarExporter.java
@@ -32,7 +32,7 @@ public class JarExporter {
     public void exportJar() throws Exception {
 
         Archive<?> archive = ArquillianPackager.springBootPackage(new 
ITestConfigBuilder()
-                .module("camel-hbase")
+                .module("camel-ahc")
                 .build());
 
         new ZipExporterImpl(archive).exportTo(new File("target/export.zip"), 
true);

http://git-wip-us.apache.org/repos/asf/camel/blob/9de5089a/tests/camel-itest-spring-boot/src/test/resources/application-pom.xml
----------------------------------------------------------------------
diff --git 
a/tests/camel-itest-spring-boot/src/test/resources/application-pom.xml 
b/tests/camel-itest-spring-boot/src/test/resources/application-pom.xml
index 8e0b3c2..1e86bc2 100644
--- a/tests/camel-itest-spring-boot/src/test/resources/application-pom.xml
+++ b/tests/camel-itest-spring-boot/src/test/resources/application-pom.xml
@@ -25,13 +25,13 @@
     <version>1.0</version>
 
     <name>Spring-Boot Application</name>
-    <description>This is a the base pom of spring-boot applications launched 
by the users</description>
+    <description>This a the base pom of spring-boot applications launched by 
the users</description>
 
     <dependencyManagement>
         <dependencies>
 
             <dependency>
-                <!-- Then use camel dependency management -->
+                <!-- Only the BOM -->
                 <groupId>org.apache.camel</groupId>
                 <artifactId>camel-spring-boot-bom</artifactId>
                 <version>${project.version}</version>

http://git-wip-us.apache.org/repos/asf/camel/blob/9de5089a/tests/camel-itest-spring-boot/src/test/resources/dependency-resolver-pom.xml
----------------------------------------------------------------------
diff --git 
a/tests/camel-itest-spring-boot/src/test/resources/dependency-resolver-pom.xml 
b/tests/camel-itest-spring-boot/src/test/resources/dependency-resolver-pom.xml
index f0e60e2..4e04e0b 100644
--- 
a/tests/camel-itest-spring-boot/src/test/resources/dependency-resolver-pom.xml
+++ 
b/tests/camel-itest-spring-boot/src/test/resources/dependency-resolver-pom.xml
@@ -22,7 +22,7 @@
 
     <groupId>com.company</groupId>
     <artifactId>spring-boot-dependency-resolver</artifactId>
-    <version>1.0</version>
+    <version>${project.version}</version>
 
     <name>Spring-Boot Dependency Resolver</name>
     <description>This POM is used to resolve test and provided dependencies 
required in integration tests</description>
@@ -31,7 +31,15 @@
         <dependencies>
 
             <dependency>
-                <!-- Then use camel dependency management -->
+                <!-- BOM first -->
+                <groupId>org.apache.camel</groupId>
+                <artifactId>camel-spring-boot-bom</artifactId>
+                <version>${project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+
+            <dependency>
                 <groupId>org.apache.camel</groupId>
                 <artifactId>camel-starter-parent</artifactId>
                 <version>${project.version}</version>
@@ -40,7 +48,7 @@
             </dependency>
 
             <dependency>
-                <!-- Added as fallback for test and optional dependencies -->
+                <!-- Added as fallback for test and provided dependencies -->
                 <groupId>org.apache.camel</groupId>
                 <artifactId>camel-parent</artifactId>
                 <version>${project.version}</version>
@@ -53,6 +61,13 @@
 
     <dependencies>
 
+        <!-- Adding the starter as provided dependency -->
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>#{module}-starter</artifactId>
+            <scope>provided</scope>
+        </dependency>
+
         <!-- DEPENDENCIES -->
 
     </dependencies>

http://git-wip-us.apache.org/repos/asf/camel/blob/9de5089a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootStarterMojo.java
----------------------------------------------------------------------
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootStarterMojo.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootStarterMojo.java
index e154bb9..3cc0ce8 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootStarterMojo.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/SpringBootStarterMojo.java
@@ -457,7 +457,7 @@ public class SpringBootStarterMojo extends AbstractMojo {
             }
         }
 
-        if (IGNORE_TEST_MODULES && 
project.getArtifactId().startsWith("camel-test-")) {
+        if (IGNORE_TEST_MODULES && 
(project.getArtifactId().startsWith("camel-test") || 
project.getArtifactId().startsWith("camel-testng"))) {
             getLog().debug("Test components are ignored");
             return false;
         }

http://git-wip-us.apache.org/repos/asf/camel/blob/9de5089a/tooling/maven/camel-package-maven-plugin/src/main/resources/spring-boot-fix-dependencies.properties
----------------------------------------------------------------------
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/resources/spring-boot-fix-dependencies.properties
 
b/tooling/maven/camel-package-maven-plugin/src/main/resources/spring-boot-fix-dependencies.properties
index 1fac224..48542a9 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/resources/spring-boot-fix-dependencies.properties
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/resources/spring-boot-fix-dependencies.properties
@@ -27,6 +27,9 @@ 
global=org.apache.camel:camel-core-starter,org.apache.camel:camel-spring-boot-st
 # Cassandra (and others) fail without this dependency
 camel-core=com.github.ben-manes.caffeine:caffeine
 
+camel-ahc=io.netty:netty-all:${ahc-netty-version}
+camel-ahc-ws=io.netty:netty-all:${ahc-netty-version}
+
 
camel-github=org.eclipse.mylyn.github:org.eclipse.egit.github.core:${egit-github-core-version}
 camel-guava-eventbus=com.google.guava:guava:${google-guava-version}
 
@@ -47,6 +50,10 @@ camel-spark-rest=org.hibernate:hibernate-validator
 camel-spring-boot=org.apache.camel:camel-core-starter
 
camel-spring-ws=org.springframework.boot:spring-boot-starter-web:${spring-boot-version}
 camel-restlet=org.hibernate:hibernate-validator
+
+# Force the spring-boot version of jetty
+camel-salesforce=org.eclipse.jetty:jetty-client,org.eclipse.jetty:jetty-util,org.eclipse.jetty:jetty-util-ajax,org.eclipse.jetty:jetty-io
+
 camel-swagger-java=org.hibernate:hibernate-validator
 camel-undertow=org.hibernate:hibernate-validator
 

Reply via email to