http://git-wip-us.apache.org/repos/asf/camel/blob/2c8e289b/spring-boot-dm/pom.xml
----------------------------------------------------------------------
diff --git a/spring-boot-dm/pom.xml b/spring-boot-dm/pom.xml
new file mode 100644
index 0000000..3fea333
--- /dev/null
+++ b/spring-boot-dm/pom.xml
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0";
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+    <parent>
+        <artifactId>camel</artifactId>
+        <groupId>org.apache.camel</groupId>
+        <version>2.18.0-SNAPSHOT</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>camel-spring-boot-dm</artifactId>
+    <packaging>pom</packaging>
+
+    <name>Camel :: Spring-Boot :: Dependency Management</name>
+    <description>Camel Spring-Boot Dependency Management POM</description>
+    <modules>
+        <module>camel-starter-parent</module>
+        <module>camel-spring-boot-bom</module>
+    </modules>
+
+    <properties>
+        <!-- Spring-Boot target version -->
+        <spring-boot-version>1.4.0.RELEASE</spring-boot-version>
+
+        <!-- The following dependencies should be aligned with the ones in 
standard camel parent -->
+        <egit-github-core-version>2.1.5</egit-github-core-version>
+        <geronimo-jms-spec-version>1.1.1</geronimo-jms-spec-version>
+        <geronimo-jpa2-spec-version>1.1</geronimo-jpa2-spec-version>
+        <google-guava-version>19.0</google-guava-version>
+        <hadoop2-version>2.7.2</hadoop2-version>
+        <junit-version>4.12</junit-version>
+        <log4j2-version>2.6.2</log4j2-version>
+        <maven-checkstyle-plugin-version>2.17</maven-checkstyle-plugin-version>
+        <maven-checkstyle-version>6.17</maven-checkstyle-version>
+        <netty-version>4.1.5.Final</netty-version>
+        <!--<netty-version>4.0.36.Final</netty-version>-->
+
+        <!-- The following versions should be aligned with the ones in 
spring-boot-repo/spring-boot-dependencies/pom.xml (for the targeted version of 
spring-boot) -->
+        <hibernate-version>5.0.9.Final</hibernate-version>
+        <jetty-version>9.3.11.v20160721</jetty-version>
+    </properties>
+
+    <build>
+        <plugins>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-checkstyle-plugin</artifactId>
+                <version>${maven-checkstyle-plugin-version}</version>
+                <dependencies>
+                    <dependency>
+                        <groupId>org.apache.camel</groupId>
+                        <artifactId>camel-buildtools</artifactId>
+                        <version>${project.version}</version>
+                    </dependency>
+                    <dependency>
+                        <groupId>com.puppycrawl.tools</groupId>
+                        <artifactId>checkstyle</artifactId>
+                        <version>${maven-checkstyle-version}</version>
+                    </dependency>
+                </dependencies>
+                <executions>
+                    <execution>
+                        <id>validate</id>
+                        <phase>validate</phase>
+                        <configuration>
+                            <includeResources>false</includeResources>
+                            
<configLocation>camel-checkstyle.xml</configLocation>
+                            <consoleOutput>true</consoleOutput>
+                            <failsOnError>true</failsOnError>
+                            <linkXRef>false</linkXRef>
+                            
<suppressionsLocation>camel-checkstyle-suppressions.xml</suppressionsLocation>
+                            <encoding>UTF-8</encoding>
+                            <sourceDirectory>${basedir}/src</sourceDirectory>
+                            
<excludes>**/archetype-resources/**/*.java</excludes>
+                        </configuration>
+                        <goals>
+                            <goal>checkstyle</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>${maven-compiler-plugin-version}</version>
+                <configuration>
+                    <source>${jdk.version}</source>
+                    <target>${jdk.version}</target>
+                    <maxmem>512M</maxmem>
+                    <fork>${compiler.fork}</fork>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-javadoc-plugin</artifactId>
+                <configuration>
+                    <attach>true</attach>
+                    <source>${jdk.version}</source>
+                    <quiet>true</quiet>
+                    <bottom>Apache Camel</bottom>
+                    <detectOfflineLinks>false</detectOfflineLinks>
+                    <javadocVersion>${jdk.version}</javadocVersion>
+                    <encoding>UTF-8</encoding>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-resources-plugin</artifactId>
+                <configuration>
+                    <encoding>UTF-8</encoding>
+                </configuration>
+            </plugin>
+
+        </plugins>
+    </build>
+
+</project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/2c8e289b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHbaseTest.java
----------------------------------------------------------------------
diff --git 
a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHbaseTest.java
 
b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHbaseTest.java
index 2060a3c..20cd0d7 100644
--- 
a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHbaseTest.java
+++ 
b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHbaseTest.java
@@ -36,7 +36,11 @@ public class CamelHbaseTest extends 
AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelHbaseTest.class))
-                
//.dependency(DependencyResolver.withVersion("org.apache.hadoop:hadoop-hdfs"))
+                // Because HBase uses Hadoop 2.5.1 in test scope
+                .dependency("org.apache.hadoop:hadoop-common:" + 
DependencyResolver.resolveParentProperty("${hadoop2-version}"))
+                .dependency("org.apache.hadoop:hadoop-auth:" + 
DependencyResolver.resolveParentProperty("${hadoop2-version}"))
+                .dependency("org.apache.hadoop:hadoop-mapreduce-client-core:" 
+ DependencyResolver.resolveParentProperty("${hadoop2-version}"))
+                .dependency("org.apache.hadoop:hadoop-yarn-common:" + 
DependencyResolver.resolveParentProperty("${hadoop2-version}"))
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/2c8e289b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelInfluxdbTest.java
----------------------------------------------------------------------
diff --git 
a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelInfluxdbTest.java
 
b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelInfluxdbTest.java
index 6687a8c..5351987 100644
--- 
a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelInfluxdbTest.java
+++ 
b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelInfluxdbTest.java
@@ -35,6 +35,7 @@ public class CamelInfluxdbTest extends 
AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelInfluxdbTest.class))
+                
.unitTestExclusionPattern(".*(\\.integration\\..*|IntegrationTest$|AbstractInfluxDbTest$)")
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/2c8e289b/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 67e89a4..392ffa3 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
@@ -134,6 +134,7 @@ public final class ArquillianPackager {
         }
 
         List<MavenDependencyExclusion> commonExclusions = new LinkedList<>();
+        
commonExclusions.add(MavenDependencies.createExclusion("commons-logging", 
"commons-logging"));
         commonExclusions.add(MavenDependencies.createExclusion("org.slf4j", 
"slf4j-log4j12"));
         commonExclusions.add(MavenDependencies.createExclusion("log4j", 
"log4j"));
         commonExclusions.add(MavenDependencies.createExclusion("log4j", 
"log4j-slf4j-impl"));
@@ -150,11 +151,14 @@ public final class ArquillianPackager {
             commonExclusions.add(MavenDependencies.createExclusion(ex));
         }
 
-        MavenDependencyExclusion[] commonExclutionArray = 
commonExclusions.toArray(new MavenDependencyExclusion[]{});
-
 
         // Module dependencies
-        List<MavenDependency> moduleDependencies = new LinkedList<>();
+        List<MavenDependency> additionalDependencies = new LinkedList<>();
+        for (String canonicalForm : config.getAdditionalDependencies()) {
+            MavenCoordinate coord = 
MavenCoordinates.createCoordinate(canonicalForm);
+            MavenDependency dep = MavenDependencies.createDependency(coord, 
ScopeType.RUNTIME, false);
+            additionalDependencies.add(dep);
+        }
 
 //        String mainArtifactId = config.getModuleName() + "-starter";
 //        MavenCoordinate mainJar = 
MavenCoordinates.createCoordinate(config.getMavenGroup(), mainArtifactId, 
version, PackagingType.JAR, null);
@@ -162,94 +166,43 @@ public final class ArquillianPackager {
 //        MavenDependency mainDep = 
MavenDependencies.createDependency(mainJar, ScopeType.COMPILE, false);
 //        moduleDependencies.add(mainDep);
 
-        for (String canonicalForm : config.getAdditionalDependencies()) {
-            MavenCoordinate coord = 
MavenCoordinates.createCoordinate(canonicalForm);
-            MavenDependency dep = MavenDependencies.createDependency(coord, 
ScopeType.RUNTIME, false);
-            moduleDependencies.add(dep);
-        }
 
+        List<String> testProvidedDependencies = new LinkedList<>();
+        List<ScopeType> scopes = new LinkedList<>();
         if (config.getIncludeProvidedDependencies() || 
config.getIncludeTestDependencies() || config.getUnitTestEnabled()) {
 
-            StringBuilder dependencies = new StringBuilder();
-            List<ScopeType> scopes = new LinkedList<>();
             if (config.getIncludeTestDependencies() || 
config.getUnitTestEnabled()) {
-                
dependencies.append(DependencyResolver.getDependencies(config.getModuleBasePath()
 + "/pom.xml", ScopeType.TEST.toString()));
+                
testProvidedDependencies.addAll(DependencyResolver.getDependencies(config.getModuleBasePath()
 + "/pom.xml", ScopeType.TEST.toString()));
                 scopes.add(ScopeType.TEST);
             }
             if (config.getIncludeProvidedDependencies()) {
-                
dependencies.append(DependencyResolver.getDependencies(config.getModuleBasePath()
 + "/pom.xml", ScopeType.PROVIDED.toString()));
+                
testProvidedDependencies.addAll(DependencyResolver.getDependencies(config.getModuleBasePath()
 + "/pom.xml", ScopeType.PROVIDED.toString()));
                 scopes.add(ScopeType.PROVIDED);
             }
 
-            File resolverFile = createResolverPom(config, 
dependencies.toString());
-
-            boolean failIfNoDependencies = false;
-            List<MavenResolvedArtifact> moduleArtifacts;
-            try {
-                moduleArtifacts = Arrays.asList(resolver(config)
-                        .loadPomFromFile(resolverFile)
-                        .importDependencies(scopes.toArray(new ScopeType[0]))
-                        .resolve().withoutTransitivity().asResolvedArtifact());
-            } catch (IllegalArgumentException e) {
-                if (failIfNoDependencies) {
-                    throw e;
-                }
-
-                debug("Error while getting dependencies for test or optional 
scopes. Message=" + e.getMessage());
-                moduleArtifacts = new LinkedList<>();
-            }
-
-            List<MavenCoordinate> coordinates = new LinkedList<>();
-
-            // fill coordinates
-            for (MavenResolvedArtifact art : moduleArtifacts) {
-                MavenCoordinate coord = art.getCoordinate();
-
-//                Set<String> nonStarterModules = new HashSet<>();
-//                nonStarterModules.add("camel-test");
-//
-//                // redirect reference from camel modules to camel starters 
in test scope
-//                if (art.getScope() == ScopeType.TEST && 
art.getCoordinate().getGroupId().equals("org.apache.camel") && 
art.getCoordinate().getArtifactId().startsWith("camel-") && !nonStarterModules
-//                        .contains(art.getCoordinate().getArtifactId())) {
-//                    coord = 
MavenCoordinates.createCoordinate(art.getCoordinate().getGroupId(), 
art.getCoordinate().getArtifactId() + "-starter", 
art.getCoordinate().getVersion(), art.getCoordinate
-//                            ().getPackaging(), 
art.getCoordinate().getClassifier());
-//                }
-
-                if (!validTestDependency(config, coord)) {
-                    continue;
-                }
-
-                coordinates.add(coord);
-            }
-
-            for (MavenCoordinate c : coordinates) {
-
-                // Re-adding exclusions, as Arquillian resolver ignores them
-                Set<String> pomExclusions = 
DependencyResolver.getExclusions(config.getModuleBasePath() + "/pom.xml", 
c.getGroupId(), c.getArtifactId());
-                MavenDependencyExclusion[] artExclusions;
-                if (pomExclusions.isEmpty()) {
-                    artExclusions = commonExclutionArray;
-                } else {
-                    List<MavenDependencyExclusion> specificExclusions = new 
LinkedList<>(Arrays.asList(commonExclutionArray));
-                    for (String spEx : pomExclusions) {
-                        
specificExclusions.add(MavenDependencies.createExclusion(spEx));
-                    }
-                    artExclusions = specificExclusions.toArray(new 
MavenDependencyExclusion[]{});
-                }
-
+        }
 
-                MavenDependency dep = MavenDependencies.createDependency(c, 
ScopeType.RUNTIME, false, artExclusions);
-                moduleDependencies.add(dep);
+        List<String> cleanTestProvidedDependencies = new LinkedList<>();
+        for (String depXml : testProvidedDependencies) {
+            if (validTestDependency(config, depXml, commonExclusions)) {
+                depXml = enforceExclusions(config, depXml, commonExclusions);
+                depXml = addBOMVersionWhereMissing(config, depXml);
+                cleanTestProvidedDependencies.add(depXml);
             }
         }
 
-        File moduleSpringBootPom = createUserPom(config);
+        File moduleSpringBootPom = createUserPom(config, 
cleanTestProvidedDependencies);
+
+        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)
                 .loadPomFromFile(moduleSpringBootPom)
-                .importRuntimeDependencies()
-                .addDependencies(moduleDependencies)
+                .importDependencies(resolvedScopes.toArray(new ScopeType[0]))
+                .addDependencies(additionalDependencies)
                 .resolve()
                 .withTransitivity()
                 .asFile()));
@@ -301,44 +254,20 @@ public final class ArquillianPackager {
         return external.build();
     }
 
-    private static File createUserPom(ITestConfig config) throws Exception {
+    private static File createUserPom(ITestConfig config, List<String> 
cleanTestProvidedDependencies) throws Exception {
 
         String pom;
         try (InputStream pomTemplate = 
ArquillianPackager.class.getResourceAsStream("/application-pom.xml")) {
             pom = IOUtils.toString(pomTemplate);
         }
 
-        Map<String, String> resolvedProperties = new TreeMap<>();
-        Pattern propPattern = Pattern.compile("(\\$\\{[^}]*\\})");
-        Matcher m = propPattern.matcher(pom);
-        while (m.find()) {
-            String property = m.group();
-            String resolved = 
DependencyResolver.resolveSpringBootParentProperty(property);
-            resolvedProperties.put(property, resolved);
-        }
-
-        for (String property : resolvedProperties.keySet()) {
-            pom = pom.replace(property, resolvedProperties.get(property));
+        StringBuilder dependencies = new StringBuilder();
+        for (String dep : cleanTestProvidedDependencies) {
+            dependencies.append(dep);
+            dependencies.append("\n");
         }
 
-        pom = pom.replace("#{module}", config.getModuleName());
-
-        File pomFile = new File(config.getModuleBasePath() + 
"/target/itest-spring-boot-pom.xml");
-        try (FileWriter fw = new FileWriter(pomFile)) {
-            IOUtils.write(pom, fw);
-        }
-
-        return pomFile;
-    }
-
-    private static File createResolverPom(ITestConfig config, String 
dependencies) throws Exception {
-
-        String pom;
-        try (InputStream pomTemplate = 
ArquillianPackager.class.getResourceAsStream("/dependency-resolver-pom.xml")) {
-            pom = IOUtils.toString(pomTemplate);
-        }
-
-        pom = pom.replace("<!-- DEPENDENCIES -->", dependencies);
+        pom = pom.replace("<!-- DEPENDENCIES -->", dependencies.toString());
 
         Map<String, String> resolvedProperties = new TreeMap<>();
         Pattern propPattern = Pattern.compile("(\\$\\{[^}]*\\})");
@@ -353,7 +282,9 @@ public final class ArquillianPackager {
             pom = pom.replace(property, resolvedProperties.get(property));
         }
 
-        File pomFile = new File(config.getModuleBasePath() + 
"/target/itest-spring-boot-dependency-resolver-pom.xml");
+        pom = pom.replace("#{module}", config.getModuleName());
+
+        File pomFile = new File(config.getModuleBasePath() + 
"/target/itest-spring-boot-pom.xml");
         try (FileWriter fw = new FileWriter(pomFile)) {
             IOUtils.write(pom, fw);
         }
@@ -361,6 +292,7 @@ public final class ArquillianPackager {
         return pomFile;
     }
 
+
     private static ConfigurableMavenResolverSystem resolver(ITestConfig 
config) {
         return 
Maven.configureResolver().workOffline(config.getMavenOfflineResolution());
     }
@@ -398,38 +330,75 @@ public final class ArquillianPackager {
         return cl;
     }
 
-    private static boolean validTestDependency(ITestConfig config, 
MavenCoordinate coordinate) {
-
-        Pattern[] patterns = new Pattern[]{
-                Pattern.compile("^log4j$"),
-                Pattern.compile("^log4j-slf4j-impl$"),
-                Pattern.compile("^log4j-core$"),
-                Pattern.compile("^slf4j-log4j12$"),
-                Pattern.compile("^slf4j-simple$"),
-                Pattern.compile("^slf4j-jdk14$"),
-                Pattern.compile("^logback-classic$"),
-                Pattern.compile("^logback-core$")
-        };
+    private static boolean validTestDependency(ITestConfig config, String 
dependencyXml, List<MavenDependencyExclusion> exclusions) {
 
         boolean valid = true;
-        for (Pattern p : patterns) {
-            if (p.matcher(coordinate.getArtifactId()).matches()) {
+        for (MavenDependencyExclusion excl : exclusions) {
+            String groupId = excl.getGroupId();
+            String artifactId = excl.getArtifactId();
+
+            boolean notExclusion = dependencyXml.indexOf("<exclusions>") < 0 
|| dependencyXml.indexOf(groupId) < dependencyXml.indexOf("<exclusions>");
+
+            if (dependencyXml.contains(groupId) && 
dependencyXml.contains(artifactId) && notExclusion) {
                 valid = false;
                 break;
             }
         }
 
-        if (valid && 
config.getMavenExclusions().contains(coordinate.getGroupId() + ":" + 
coordinate.getArtifactId())) {
-            valid = false;
-        }
-
         if (!valid) {
-            debug("Discarded test dependency " + coordinate.toCanonicalForm());
+            debug("Discarded test dependency: " + dependencyXml.replace("\n", 
"").replace("\r", "").replace("\t", ""));
         }
 
         return valid;
     }
 
+    private static String enforceExclusions(ITestConfig config, String 
dependencyXml, List<MavenDependencyExclusion> exclusions) {
+
+        if (!dependencyXml.contains("<exclusions>")) {
+            dependencyXml = dependencyXml.replace("</dependency>", 
"<exclusions></exclusions></dependency>");
+        }
+
+        for (MavenDependencyExclusion excl : exclusions) {
+            String groupId = excl.getGroupId();
+            String artifactId = excl.getArtifactId();
+
+            dependencyXml = dependencyXml.replace("</exclusions>", 
"<exclusion><groupId>" + groupId + "</groupId><artifactId>" + artifactId + 
"</artifactId></exclusion></exclusions>");
+        }
+
+        return dependencyXml;
+    }
+
+    private static String addBOMVersionWhereMissing(ITestConfig config, String 
dependencyXml) throws Exception {
+
+        if (dependencyXml.contains("<version>")) {
+            return dependencyXml;
+        }
+
+        String groupId = textBetween(dependencyXml, "<groupId>", "</groupId>");
+        String artifactId = textBetween(dependencyXml, "<artifactId>", 
"</artifactId>");
+
+        String version = 
DependencyResolver.resolveCamelParentBOMVersion(groupId, artifactId);
+        if (version != null) {
+            String after = "</artifactId>";
+            int split = dependencyXml.indexOf(after) + after.length();
+            dependencyXml = dependencyXml.substring(0, split) + "<version>" + 
version + "</version>" + dependencyXml.substring(split);
+        }
+
+        return dependencyXml;
+    }
+
+    private static String textBetween(String text, String start, String end) {
+        int sp = text.indexOf(start);
+        int rsp = sp + start.length();
+        int ep = text.indexOf(end);
+        if (sp < 0 || ep < 0 || ep <= rsp) {
+            return null;
+        }
+
+        String res = text.substring(rsp, ep);
+        return res;
+    }
+
     private static boolean excludeDependencyRegex(List<File> dependencies, 
String regex) {
         Pattern pattern = Pattern.compile(regex);
         int count = 0;

http://git-wip-us.apache.org/repos/asf/camel/blob/2c8e289b/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 fa2adef..e7ff4cd 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
@@ -19,6 +19,8 @@ package org.apache.camel.itest.springboot.util;
 import java.io.StringWriter;
 import java.util.Collections;
 import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
 import java.util.Set;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
@@ -54,7 +56,7 @@ public final class DependencyResolver {
     /**
      * Retrieves a list of dependencies of the given scope
      */
-    public static String getDependencies(String pom, String scope) throws 
Exception {
+    public static List<String> getDependencies(String pom, String scope) 
throws Exception {
         String expression = "/project/dependencies/dependency[scope='" + scope 
+ "']";
 
         DocumentBuilder builder = factory.newDocumentBuilder();
@@ -62,20 +64,20 @@ public final class DependencyResolver {
         XPath xpath = xPathfactory.newXPath();
         XPathExpression expr = xpath.compile(expression);
 
-        StringBuilder res =  new StringBuilder();
+        List<String> dependencies = new LinkedList<>();
         NodeList nodes = (NodeList) expr.evaluate(doc, XPathConstants.NODESET);
-        for(int i=0; i<nodes.getLength(); i++) {
+        for (int i = 0; i < nodes.getLength(); i++) {
             Node node = nodes.item(i);
-            try(StringWriter writer = new StringWriter()) {
+            try (StringWriter writer = new StringWriter()) {
                 Transformer transformer = 
TransformerFactory.newInstance().newTransformer();
                 transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, 
"yes");
                 transformer.transform(new DOMSource(node), new 
StreamResult(writer));
                 String xml = writer.toString();
-                res.append(xml + "\n");
+                dependencies.add(xml);
             }
         }
 
-        return res.toString();
+        return dependencies;
     }
 
     /**
@@ -166,6 +168,10 @@ public final class DependencyResolver {
         return groupArtifact + ":" + version;
     }
 
+    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()");
+    }
+
     public static String resolveParentProperty(String property) {
         property = resolveSpringBootParentProperty(property);
         if (property != null && !isResolved(property)) {
@@ -176,7 +182,7 @@ public final class DependencyResolver {
     }
 
     public static String resolveSpringBootParentProperty(String property) {
-        return resolveProperty("../../parent-spring-boot/pom.xml", property, 
0);
+        return 
resolveProperty("../../spring-boot-dm/camel-starter-parent/pom.xml", property, 
0);
     }
 
     public static String resolveCamelParentProperty(String property) {
@@ -192,7 +198,7 @@ public final class DependencyResolver {
             property = resolveProperty("../pom.xml", property, 0);
         }
         if (property != null && !isResolved(property)) {
-            property = resolveProperty("../../parent-spring-boot/pom.xml", 
property, 0);
+            property = 
resolveProperty("../../spring-boot-dm/camel-starter-parent/pom.xml", property, 
0);
         }
 
         return property;

http://git-wip-us.apache.org/repos/asf/camel/blob/2c8e289b/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..b68ac46 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-jetty9")
                 .build());
 
         new ZipExporterImpl(archive).exportTo(new File("target/export.zip"), 
true);

http://git-wip-us.apache.org/repos/asf/camel/blob/2c8e289b/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 8fbb685..a651f21 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
@@ -33,7 +33,7 @@
             <dependency>
                 <!-- Then use camel dependency management -->
                 <groupId>org.apache.camel</groupId>
-                <artifactId>camel-parent-spring-boot</artifactId>
+                <artifactId>camel-spring-boot-bom</artifactId>
                 <version>${project.version}</version>
                 <type>pom</type>
                 <scope>import</scope>
@@ -55,6 +55,8 @@
             <artifactId>junit</artifactId>
         </dependency>
 
+        <!-- DEPENDENCIES -->
+
     </dependencies>
 
 </project>

http://git-wip-us.apache.org/repos/asf/camel/blob/2c8e289b/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
deleted file mode 100644
index d8d94ab..0000000
--- 
a/tests/camel-itest-spring-boot/src/test/resources/dependency-resolver-pom.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-  http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-
-    <modelVersion>4.0.0</modelVersion>
-
-    <groupId>com.company</groupId>
-    <artifactId>spring-boot-dependency-resolver</artifactId>
-    <version>1.0</version>
-
-    <name>Spring-Boot Dependency Resolver</name>
-    <description>This POM is used to resolve test and optional dependencies 
required in integration tests</description>
-
-    <dependencyManagement>
-        <dependencies>
-
-            <dependency>
-                <!-- Then use camel dependency management -->
-                <groupId>org.apache.camel</groupId>
-                <artifactId>camel-parent-spring-boot</artifactId>
-                <version>${project.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-
-            <dependency>
-                <!-- Added as fallback for test and optional dependencies -->
-                <groupId>org.apache.camel</groupId>
-                <artifactId>camel-parent</artifactId>
-                <version>${project.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-
-        </dependencies>
-    </dependencyManagement>
-
-    <dependencies>
-
-        <!-- DEPENDENCIES -->
-
-    </dependencies>
-
-</project>

http://git-wip-us.apache.org/repos/asf/camel/blob/2c8e289b/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 6eaa9b2..1fac224 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
@@ -29,7 +29,14 @@ camel-core=com.github.ben-manes.caffeine:caffeine
 
 
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}
-camel-jetty9=org.hibernate:hibernate-validator
+
+# Defaulting to netty4 in the starter
+camel-hl7=org.apache.camel:camel-netty4:${project.version}
+
+# Camel Core requires on APT for the usage of CollectionStringBuffer.
+# Remove this dependency if it was a mistake
+camel-jetty9=org.hibernate:hibernate-validator,org.apache.camel:apt:${project.version}
+
 
camel-jms=org.apache.geronimo.specs:geronimo-jms_1.1_spec:${geronimo-jms-spec-version}
 
camel-jpa=org.apache.geronimo.specs:geronimo-jpa_2.0_spec:${geronimo-jpa2-spec-version}
 camel-kubernetes=org.hibernate:hibernate-validator

Reply via email to