http://git-wip-us.apache.org/repos/asf/camel/blob/046156ce/spring-boot-dm/camel-spring-boot-generator-bom/pom.xml
----------------------------------------------------------------------
diff --git a/spring-boot-dm/camel-spring-boot-generator-bom/pom.xml 
b/spring-boot-dm/camel-spring-boot-generator-bom/pom.xml
index 8da39f3..06f0df7 100644
--- a/spring-boot-dm/camel-spring-boot-generator-bom/pom.xml
+++ b/spring-boot-dm/camel-spring-boot-generator-bom/pom.xml
@@ -74,6 +74,18 @@
                 <version>${caffeine-version}</version>
             </dependency>
 
+            <!-- Use the camel version of Cassandra 3 vs 2 -->
+            <dependency>
+                <groupId>com.datastax.cassandra</groupId>
+                <artifactId>cassandra-driver-core</artifactId>
+                <version>${cassandra-driver-version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.datastax.cassandra</groupId>
+                <artifactId>cassandra-driver-mapping</artifactId>
+                <version>${cassandra-driver-version}</version>
+            </dependency>
+
             <!-- Added to match the version of related libraries provided by 
spring-boot -->
             <dependency>
                 <groupId>org.hibernate</groupId>
@@ -471,9 +483,7 @@
                 <scope>import</scope>
             </dependency>
 
-
         </dependencies>
-
     </dependencyManagement>
 
     <build>
@@ -498,12 +508,17 @@
 
                             <!-- These artifacts should not be included in the 
final (generated) BOM -->
 
+                            <!-- Different versions required by some modules 
-->
                             <exclude>com.google.inject:*</exclude>
                             <exclude>com.google.guava:*</exclude>
                             <exclude>com.google.code.gson:*</exclude>
-
                             <exclude>org.scala-lang:*</exclude>
+                            <exclude>org.apache.lucene:*</exclude>
+
+                            <!-- Changed name to dse-driver in version 3 -->
+                            
<exclude>com.datastax.cassandra:cassandra-driver-dse</exclude>
 
+                            <!-- Unrelated -->
                             <exclude>org.apache.servicemix.bundles:*</exclude>
                             <exclude>org.ops4j.pax*:*</exclude>
                             <exclude>org.codehaus.mojo:*</exclude>
@@ -513,6 +528,7 @@
                             <exclude>org.apache.maven.archetype:*</exclude>
                             <exclude>org.osgi:*</exclude>
 
+                            <!-- Unuseful -->
                             <exclude>org.springframework:springloaded</exclude>
                             <exclude>com.zaxxer:HikariCP-java6</exclude>
                         </excludes>

http://git-wip-us.apache.org/repos/asf/camel/blob/046156ce/spring-boot-dm/camel-spring-boot-generator-bom/target-template-pom.xml
----------------------------------------------------------------------
diff --git 
a/spring-boot-dm/camel-spring-boot-generator-bom/target-template-pom.xml 
b/spring-boot-dm/camel-spring-boot-generator-bom/target-template-pom.xml
index 276f09d..bb9a4a3 100644
--- a/spring-boot-dm/camel-spring-boot-generator-bom/target-template-pom.xml
+++ b/spring-boot-dm/camel-spring-boot-generator-bom/target-template-pom.xml
@@ -15,6 +15,8 @@
   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";>
@@ -36,5 +38,24 @@
         </dependencies>
     </dependencyManagement>
 
+    <build>
+        <pluginManagement>
+            <plugins>
+                <!-- Useful when using the BOM as parent -->
+                <plugin>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-maven-plugin</artifactId>
+                    <version>${spring-boot-version}</version>
+                    <executions>
+                        <execution>
+                            <goals>
+                                <goal>repackage</goal>
+                            </goals>
+                        </execution>
+                    </executions>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+    </build>
 
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/046156ce/spring-boot-dm/pom.xml
----------------------------------------------------------------------
diff --git a/spring-boot-dm/pom.xml b/spring-boot-dm/pom.xml
index e7739fc..179e5d0 100644
--- a/spring-boot-dm/pom.xml
+++ b/spring-boot-dm/pom.xml
@@ -42,17 +42,20 @@
         <spring-boot-version>1.4.0.RELEASE</spring-boot-version>
 
         <!-- The following dependencies should be aligned with the ones in 
standard camel parent -->
+        <activemq-version>5.14.0</activemq-version>
         <avro-version>1.8.1</avro-version>
         <caffeine-version>2.3.3</caffeine-version>
+        <cassandra-driver-version>3.1.0</cassandra-driver-version>
+        <cassandra-driver-guava-version>18.0</cassandra-driver-guava-version>
         <jackson-version>1.9.12</jackson-version>
-        <activemq-version>5.14.0</activemq-version>
         <htmlunit-version>2.22</htmlunit-version>
+        <log4j2-version>2.6.2</log4j2-version>
 
-        <ahc-netty-version>4.0.40.Final</ahc-netty-version>
         <egit-github-core-version>2.1.5</egit-github-core-version>
         <google-guava-version>19.0</google-guava-version>
         <geronimo-jms-spec-version>1.1.1</geronimo-jms-spec-version>
         <geronimo-jpa2-spec-version>1.1</geronimo-jpa2-spec-version>
+        <lucene3-version>3.6.0</lucene3-version>
 
         <maven-checkstyle-plugin-version>2.17</maven-checkstyle-plugin-version>
         <maven-checkstyle-version>6.17</maven-checkstyle-version>
@@ -60,13 +63,17 @@
         <arquillian-version>1.1.11.Final</arquillian-version>
         <hadoop2-version>2.7.2</hadoop2-version>
 
+        <!-- Custom dependency required by some modules -->
+        <ahc-netty-version>4.0.40.Final</ahc-netty-version>
+        
<cassandra-netty-version-testing>4.0.37.Final</cassandra-netty-version-testing>
+
         <!-- 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) -->
         <commons-beanutils-version>1.9.2</commons-beanutils-version>
         <hibernate-version>5.0.9.Final</hibernate-version>
+        <jackson2-version>2.7.6</jackson2-version>
         <jetty9-version>9.3.11.v20160721</jetty9-version>
         <jetty-version>${jetty9-version}</jetty-version>
         <jetty-jsp-version>2.2.0.v201112011158</jetty-jsp-version>
-        <jackson2-version>2.7.6</jackson2-version>
         <jna-version>4.2.2</jna-version>
         <slf4j-version>1.7.21</slf4j-version>
     </properties>

http://git-wip-us.apache.org/repos/asf/camel/blob/046156ce/tests/camel-itest-spring-boot/pom.xml
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/pom.xml 
b/tests/camel-itest-spring-boot/pom.xml
index fa02338..7b074ac 100644
--- a/tests/camel-itest-spring-boot/pom.xml
+++ b/tests/camel-itest-spring-boot/pom.xml
@@ -150,95 +150,11 @@
           <rerunFailingTestsCount>1</rerunFailingTestsCount>
           <includes>
             <include>**/*Test.java</include>
-
-            
<!--<include>org.apache.camel.itest.springboot.CamelNetty4Test</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelNettyHttpTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelNettyTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelOgnlTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelOlingo2Test</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelOpenshiftTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelOptaplannerTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelPahoTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelPdfTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelPgeventTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelPrinterTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelProtobufTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelQuartz2Test</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelQuartzTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelQuickfixTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelRabbitmqTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelRestletTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelRibbonTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelRmiTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelRouteboxTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelRssTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelRubyTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelRxTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSalesforceTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSapNetweaverTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSaxonTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelScalaTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSchematronTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelScriptTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelScrTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelServicenowTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelServletlistenerTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelServletTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelShiroTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSipTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSjmsTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSlackTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSmppTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSnakeyamlTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSnmpTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSoapTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSolrTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSparkRestTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSparkTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSplunkTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSpringBatchTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSpringBootTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSpringDmTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSpringIntegrationTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSpringJavaconfigTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSpringLdapTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSpringRedisTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSpringSecurityTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSpringTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSpringWsTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSqlTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSshTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelStaxTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelStompTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelStreamTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelStringtemplateTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSwaggerJavaTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelSyslogTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelTagsoupTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelTarfileTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelTelegramTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelTestngTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelTestTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelTwitterTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelUndertowTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelUnivocityParsersTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelUrlrewriteTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelVelocityTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelVertxTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelWeatherTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelWebsocketTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelXmlbeansTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelXmljsonTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelXmlrpcTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelXmlsecurityTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelXmppTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelXstreamTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelYammerTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelZipfileTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelZipkinTest</include>-->
-            
<!--<include>org.apache.camel.itest.springboot.CamelZookeeperTest</include>-->
-
           </includes>
+          <excludes>
+            <!--<exclude>**/*CamelMongodbTest.java</exclude>-->
+               <!--<exclude>**/*CamelMongodbGridfsTest.java</exclude>-->
+          </excludes>
           <systemProperties>
             <!-- Test configuration -->
             <!--

http://git-wip-us.apache.org/repos/asf/camel/blob/046156ce/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/ITestApplication.java
----------------------------------------------------------------------
diff --git 
a/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/ITestApplication.java
 
b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/ITestApplication.java
index 943899e..c9b2453 100644
--- 
a/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/ITestApplication.java
+++ 
b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/ITestApplication.java
@@ -39,13 +39,10 @@ import 
org.springframework.scheduling.annotation.EnableAsync;
 @Import(ITestXmlConfiguration.class)
 public class ITestApplication {
 
-    private static final long TEST_TIMEOUT = 1000L * 60 * 7;
-
     public static void main(String[] args) throws Exception {
 
         try {
             overrideLoggingConfig();
-            startKillerThread();
 
             SpringApplication.run(ITestApplication.class, args);
         } catch (Throwable t) {
@@ -54,20 +51,6 @@ public class ITestApplication {
         }
     }
 
-    private static void startKillerThread() {
-        Thread thread = new Thread(() -> {
-            try {
-                Thread.sleep(TEST_TIMEOUT);
-            } catch (Exception e) {
-            }
-
-            LoggerFactory.getLogger(ITestApplication.class).warn("Timeout. 
Killing the test.");
-            System.exit(1);
-        });
-        thread.setDaemon(true);
-        thread.start();
-    }
-
     @Override
     public String toString() {
         // to tell source-check this is not a utility-class

http://git-wip-us.apache.org/repos/asf/camel/blob/046156ce/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/ITestConfigBuilder.java
----------------------------------------------------------------------
diff --git 
a/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/ITestConfigBuilder.java
 
b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/ITestConfigBuilder.java
index 04b32c6..960af66 100644
--- 
a/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/ITestConfigBuilder.java
+++ 
b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/ITestConfigBuilder.java
@@ -228,7 +228,7 @@ public class ITestConfigBuilder {
             config.setUseCustomLog(booleanPropertyOr("useCustomLog", true));
         }
 
-        if(config.getIgnoreLibraryMismatch() == null) {
+        if (config.getIgnoreLibraryMismatch() == null) {
             config.setIgnoreLibraryMismatch(new HashSet<>());
         }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/046156ce/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/UnitTestCommand.java
----------------------------------------------------------------------
diff --git 
a/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/UnitTestCommand.java
 
b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/UnitTestCommand.java
index 9d917b6..82ccfc2 100644
--- 
a/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/UnitTestCommand.java
+++ 
b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/UnitTestCommand.java
@@ -88,10 +88,15 @@ public class UnitTestCommand extends AbstractTestCommand 
implements Command {
 
         final List<Class<?>> classes = new ArrayList<>();
         for (String cn : testClasses) {
-            Class<?> clazz = Class.forName(cn);
-            if (isAdmissible(clazz)) {
-                logger.info("Found admissible test class: {}", cn);
-                classes.add(clazz);
+            try {
+                Class<?> clazz = Class.forName(cn);
+                if (isAdmissible(clazz)) {
+                    logger.info("Found admissible test class: {}", cn);
+                    classes.add(clazz);
+                }
+            } catch(Throwable t) {
+                logger.warn("Test class {} has thrown an exception during 
initialization", cn);
+                logger.debug("Exception for test cass " + cn + " is:", t);
             }
         }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/046156ce/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/converter/myconverter/StaticDummyFallbackConverter.java
----------------------------------------------------------------------
diff --git 
a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/converter/myconverter/StaticDummyFallbackConverter.java
 
b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/converter/myconverter/StaticDummyFallbackConverter.java
index 6bbef26..e6c368b 100644
--- 
a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/converter/myconverter/StaticDummyFallbackConverter.java
+++ 
b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/converter/myconverter/StaticDummyFallbackConverter.java
@@ -16,13 +16,13 @@
  */
 package org.apache.camel.converter.myconverter;
 
+import java.util.TimeZone;
+
 import org.apache.camel.Converter;
 import org.apache.camel.Exchange;
 import org.apache.camel.FallbackConverter;
 import org.apache.camel.spi.TypeConverterRegistry;
 
-import java.util.TimeZone;
-
 
 /**
  * Converter added here to overcome issue CAMEL-10060 in integration tests 
(Needed because some unit tests create new camel contexts from scratch).

http://git-wip-us.apache.org/repos/asf/camel/blob/046156ce/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelCassandraqlTest.java
----------------------------------------------------------------------
diff --git 
a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelCassandraqlTest.java
 
b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelCassandraqlTest.java
index 2140194..17c45c7 100644
--- 
a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelCassandraqlTest.java
+++ 
b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelCassandraqlTest.java
@@ -36,6 +36,7 @@ public class CamelCassandraqlTest extends 
AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelCassandraqlTest.class))
+                .dependency("io.netty:netty-all:" + 
DependencyResolver.resolveParentProperty("${cassandra-netty-version-testing}"))
                 
//.dependency(DependencyResolver.withVersion("io.netty:netty-all"))
 //                
.dependency(DependencyResolver.withVersion("io.dropwizard.metrics:metrics-core"))
 //                .exclusion("com.codahale.metrics:*")

http://git-wip-us.apache.org/repos/asf/camel/blob/046156ce/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHystrixTest.java
----------------------------------------------------------------------
diff --git 
a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHystrixTest.java
 
b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHystrixTest.java
index 611c0c2..dd9a2c3 100644
--- 
a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHystrixTest.java
+++ 
b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHystrixTest.java
@@ -35,6 +35,7 @@ public class CamelHystrixTest extends 
AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelHystrixTest.class))
+                
.unitTestExclusionPattern(".*(\\.integration\\..*|IntegrationTest$|BlueprintHystrixRouteOkTest$|BlueprintHystrixRouteFallbackTest$)")
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/046156ce/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJetty9Test.java
----------------------------------------------------------------------
diff --git 
a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJetty9Test.java
 
b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJetty9Test.java
index 15e64a3..8bbc8ec 100644
--- 
a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJetty9Test.java
+++ 
b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJetty9Test.java
@@ -36,7 +36,8 @@ public class CamelJetty9Test extends 
AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelJetty9Test.class))
-                
//.dependency(DependencyResolver.withVersion("org.hibernate:hibernate-validator"))
+                
.unitTestExclusionPattern(".*(\\.integration\\..*|IntegrationTest$|JettyHttpContentTypeTest$)")
+                // in JettyHttpContentTypeTest the case of the encoding string 
is different in Jetty 9.3
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/046156ce/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 b97faf3..2bde543 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.IOException;
 import java.io.InputStream;
 import java.security.AccessController;
 import java.security.PrivilegedAction;
@@ -309,6 +308,7 @@ public final class ArquillianPackager {
         ignore.add("org.springframework.data");
         ignore.add("org.apache.velocity");
         ignore.add("org.apache.cxf:cxf-api");
+        ignore.add("com.atlassian.jira:jira-rest-java-client-api");
 
         Map<String, Map<String, String>> status = new TreeMap<>();
         Set<String> mismatches = new TreeSet<>();
@@ -480,14 +480,6 @@ public final class ArquillianPackager {
             pom = IOUtils.toString(pomTemplate);
         }
 
-//        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("(\\$\\{[^}]*\\})");
         Matcher m = propPattern.matcher(pom);
@@ -585,27 +577,6 @@ public final class ArquillianPackager {
         return dependencyXml;
     }
 
-    private static String setResolvedVersion(ITestConfig config, String 
dependencyXml, Map<String, String> resolvedVersions) throws Exception {
-
-        String groupId = textBetween(dependencyXml, "<groupId>", "</groupId>");
-        String artifactId = textBetween(dependencyXml, "<artifactId>", 
"</artifactId>");
-
-        String resolvedVersion = resolvedVersions.get(groupId + ":" + 
artifactId);
-
-        if (!dependencyXml.contains("<version>")) {
-            String after = "</artifactId>";
-            int split = dependencyXml.indexOf(after) + after.length();
-            dependencyXml = dependencyXml.substring(0, split) + "<version>" + 
resolvedVersion + "</version>" + dependencyXml.substring(split);
-        } else {
-            String versionTag = "<version>";
-            int split = dependencyXml.indexOf(versionTag) + 
versionTag.length();
-            int end = dependencyXml.indexOf("</version>");
-            dependencyXml = dependencyXml.substring(0, split) + 
resolvedVersion + dependencyXml.substring(end);
-        }
-
-        return dependencyXml;
-    }
-
     private static String textBetween(String text, String start, String end) {
         int sp = text.indexOf(start);
         int rsp = sp + start.length();
@@ -621,7 +592,7 @@ public final class ArquillianPackager {
     private static boolean excludeDependencyRegex(List<File> dependencies, 
String regex) {
         Pattern pattern = Pattern.compile(regex);
         int count = 0;
-        for (Iterator<File> it = dependencies.iterator(); it.hasNext(); ) {
+        for (Iterator<File> it = dependencies.iterator(); it.hasNext();) {
             File f = it.next();
             if (pattern.matcher(f.getName()).matches()) {
                 it.remove();
@@ -642,34 +613,6 @@ public final class ArquillianPackager {
         return ark;
     }
 
-    private static JavaArchive addTestClasses(JavaArchive mainArk, Domain 
domain, ITestConfig config) throws IOException {
-
-        File test = new File(config.getModuleBasePath() + 
"/target/test-classes/");
-        File[] fs = test.listFiles();
-        if (fs == null) {
-            fs = new File[]{};
-        }
-        LinkedList<File> testFiles = new LinkedList<>(Arrays.asList(fs));
-        while (!testFiles.isEmpty()) {
-            File f = testFiles.pop();
-            String relative = 
test.getCanonicalFile().toURI().relativize(f.getCanonicalFile().toURI()).getPath();
-            if (f.isFile()) {
-                if (f.getName().endsWith(".class")) {
-                    mainArk = mainArk.addAsResource(f, CLASSES_FOLDER + "/" + 
relative);
-                }
-            } else {
-                mainArk = mainArk.addAsDirectory(CLASSES_FOLDER + "/" + 
relative);
-                File[] files = f.listFiles();
-                if (files == null) {
-                    files = new File[]{};
-                }
-                testFiles.addAll(Arrays.asList(files));
-            }
-        }
-
-        return mainArk;
-    }
-
     private static JavaArchive addSpringbootPackage(JavaArchive ark, String... 
packageNames) throws Exception {
 
         Iterable<ClassLoader> classLoaders = 
Collections.singleton(Thread.currentThread().getContextClassLoader());

http://git-wip-us.apache.org/repos/asf/camel/blob/046156ce/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 fe54d80..ae31c66 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,11 +19,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;
 import java.util.LinkedList;
 import java.util.List;
-import java.util.Set;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.transform.OutputKeys;
@@ -37,7 +34,6 @@ import javax.xml.xpath.XPathExpression;
 import javax.xml.xpath.XPathFactory;
 
 import org.w3c.dom.Document;
-import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
@@ -47,8 +43,6 @@ import org.w3c.dom.NodeList;
  */
 public final class DependencyResolver {
 
-    private static final String DEFAULT_PREFIX = "version_";
-
     private static DocumentBuilderFactory factory = 
DocumentBuilderFactory.newInstance();
     private static XPathFactory xPathfactory = XPathFactory.newInstance();
 
@@ -82,98 +76,6 @@ public final class DependencyResolver {
         return dependencies;
     }
 
-    /**
-     * Retrieves a list of transitive exclusions included in the pom, given 
the coordinate of a maven dependency.
-     * Useful to overcome limitations of Arquillian maven resolver.
-     *
-     * @param pom the pom where dependencies should be looked up
-     * @param groupId the group id of the dependency
-     * @param artifactId the artifact id of the dependency
-     * @return the set of exclusions in the form groupId:artifactId
-     * @throws Exception if anything goes wrong
-     */
-    public static Set<String> getExclusions(String pom, String groupId, String 
artifactId) throws Exception {
-        String expression = "/project/dependencies/dependency[groupId='" + 
groupId + "' and artifactId='" + artifactId + "']/exclusions";
-
-        DocumentBuilder builder = factory.newDocumentBuilder();
-        Document doc = builder.parse(pom);
-        XPath xpath = xPathfactory.newXPath();
-        XPathExpression expr = xpath.compile(expression);
-
-        NodeList nodes = (NodeList) expr.evaluate(doc, XPathConstants.NODESET);
-        if (nodes == null || nodes.getLength() < 1) {
-            return Collections.emptySet();
-        }
-
-        Set<String> exclusionSet = new HashSet<>();
-
-        NodeList exclusions = nodes.item(0).getChildNodes();
-        for (int i = 0; i < exclusions.getLength(); i++) {
-            Node exclusionNode = exclusions.item(i);
-            if (exclusionNode instanceof Element) {
-                Element exclusion = (Element) exclusionNode;
-                NodeList exclGroupIds = 
exclusion.getElementsByTagName("groupId");
-                String exclGroupIdVal = exclGroupIds.getLength() == 0 ? null : 
exclGroupIds.item(0).getTextContent();
-                NodeList exclArtifactIds = 
exclusion.getElementsByTagName("artifactId");
-                String exclArtifactIdVal = exclGroupIds.getLength() == 0 ? 
null : exclArtifactIds.item(0).getTextContent();
-                if (exclGroupIdVal != null && exclArtifactIdVal != null) {
-                    exclusionSet.add(exclGroupIdVal + ":" + exclArtifactIdVal);
-                }
-            }
-        }
-
-        return exclusionSet;
-    }
-
-    /**
-     * Gets a groupId and artifactId in the form "groupId:artifactId" and 
returns the current version from the pom.
-     * Uses {@link DependencyResolver#withVersion(String, String)} using a 
default prefix.
-     *
-     * @param groupArtifact the groupId and artifactId in the form 
"groupId:artifactId"
-     * @return the maven canonical form of the artifact 
"groupId:artifactId:version"
-     */
-    public static String withVersion(String groupArtifact) {
-        return withVersion(DEFAULT_PREFIX, groupArtifact);
-    }
-
-    /**
-     * Gets a groupId and artifactId in the form "groupId:artifactId" and 
returns the current version from the pom.
-     * Versions are resolved from system properties when using surefire, and 
by looking at the poms when running from IDE.
-     *
-     * @param prefix the prefix to use to lookup the property from surefire
-     * @param groupArtifact the groupId and artifactId in the form 
"groupId:artifactId"
-     * @return the maven canonical form of the artifact 
"groupId:artifactId:version"
-     */
-    public static String withVersion(String prefix, String groupArtifact) {
-        String version = System.getProperty(prefix + groupArtifact);
-
-        try {
-            if (version == null) {
-                // Usually, when running from IDE
-                version = resolveSurefireProperty(prefix + groupArtifact);
-            }
-        } catch (Exception e) {
-            // cannot use logging libs
-            System.out.println("RESOLVER ERROR>> Error while retrieving 
version for artifact: " + groupArtifact);
-            e.printStackTrace();
-            return groupArtifact;
-        }
-
-        if (version == null) {
-            System.out.println("RESOLVER ERROR>> Cannot determine version for 
maven artifact: " + groupArtifact);
-            return groupArtifact;
-        } else if (!isResolved(version)) {
-            System.out.println("RESOLVER ERROR>> Cannot resolve version for 
maven artifact: " + groupArtifact + ". Missing property value: " + version);
-            return groupArtifact;
-        }
-
-        return groupArtifact + ":" + version;
-    }
-
-    public static String resolveCamelParentBOMVersion(String groupId, String 
artifactId) throws Exception {
-        return xpath(camelRoot("parent/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)) {
@@ -191,20 +93,6 @@ public final class DependencyResolver {
         return resolveProperty(camelRoot("parent/pom.xml"), property, 0);
     }
 
-    private static String resolveSurefireProperty(String property) throws 
Exception {
-        property = getSurefirePropertyFromPom(new File("pom.xml"), property);
-        if (property != null && !isResolved(property)) {
-            property = resolveProperty(new File("pom.xml"), property, 0);
-        }
-        if (property != null && !isResolved(property)) {
-            property = resolveProperty(new File("../pom.xml"), property, 0);
-        }
-        if (property != null && !isResolved(property)) {
-            property = resolveProperty(camelRoot("spring-boot-dm/pom.xml"), 
property, 0);
-        }
-
-        return property;
-    }
 
     private static String resolveProperty(File pom, String property, int 
depth) {
         try {
@@ -234,10 +122,6 @@ public final class DependencyResolver {
         }
     }
 
-    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(File pom, String property) throws 
Exception {
         return xpath(pom, "/project/properties/" + property + "/text()");
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/046156ce/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 84dde29..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-ahc")
+                .module("camel-jetty9")
                 .build());
 
         new ZipExporterImpl(archive).exportTo(new File("target/export.zip"), 
true);

http://git-wip-us.apache.org/repos/asf/camel/blob/046156ce/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/util/LibraryVersionMismatchChecker.java
----------------------------------------------------------------------
diff --git 
a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/util/LibraryVersionMismatchChecker.java
 
b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/util/LibraryVersionMismatchChecker.java
deleted file mode 100644
index 2827410..0000000
--- 
a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/util/LibraryVersionMismatchChecker.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/**
- * 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.
- */
-package org.apache.camel.itest.springboot.util;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.InputStream;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import java.util.stream.Collectors;
-
-import org.apache.commons.io.IOUtils;
-import org.jboss.shrinkwrap.resolver.api.maven.Maven;
-import org.jboss.shrinkwrap.resolver.api.maven.MavenResolvedArtifact;
-import org.jboss.shrinkwrap.resolver.api.maven.MavenResolverSystem;
-import org.junit.Test;
-
-/**
- * Prints information about the libraries required by the module and what it 
gets at runtime in a spring-boot deployment.
- */
-public class LibraryVersionMismatchChecker {
-
-    @Test
-    public void testAllComponents() throws Exception {
-
-        List<String> components = Arrays.asList(new 
File("../../components-starter")
-                .list((d, f) -> f.startsWith("camel-") && (new File(d, 
f).isDirectory())))
-                .stream()
-                .map(name -> name.replace("-starter", ""))
-                .sorted().collect(Collectors.toList());
-
-        boolean fail = false;
-        for(String moduleName : components) {
-            System.out.println("------------- " + moduleName + " 
-------------");
-            boolean compFail = testLibrary(moduleName);
-            fail = fail || compFail;
-        }
-
-        //Assert.assertFalse("Dependencies changed between original and user 
version", fail);
-    }
-
-
-    public boolean testLibrary(String moduleName) throws Exception {
-
-        MavenResolverSystem resolver = Maven.resolver();
-
-        MavenResolvedArtifact[] original = 
resolver.resolve("org.apache.camel:" + moduleName + 
":2.18.0-SNAPSHOT").withTransitivity().asResolvedArtifact();
-        Map<String, String> originalMap = versionMap(original);
-
-        File userPom = createUserPom(moduleName);
-
-        MavenResolvedArtifact[] user = 
resolver.loadPomFromFile(userPom).importRuntimeDependencies().resolve().withTransitivity().asResolvedArtifact();
-        Map<String, String> userMap = versionMap(user);
-
-        boolean changed = false;
-        for (String dep : originalMap.keySet()) {
-            String originalVersion = originalMap.get(dep);
-            String userVersion = userMap.get(dep);
-
-            if (userVersion == null) {
-                System.out.println("WARNING - " + moduleName + " - Library not 
present in user version: " + dep);
-            } else if (!originalVersion.equals(userVersion)) {
-                System.out.println("ERROR - " + moduleName + " - Version 
mismatch for " + dep + ": original=" + originalVersion + ", user=" + 
userVersion);
-                changed = true;
-            }
-        }
-
-        return !changed;
-    }
-
-    private Map<String, String> versionMap(MavenResolvedArtifact[] artifacts) {
-        Map<String, String> versions = new TreeMap<>();
-        for (MavenResolvedArtifact art : artifacts) {
-            versions.put(art.getCoordinate().getGroupId() + ":" + 
art.getCoordinate().getArtifactId(), art.getCoordinate().getVersion());
-        }
-        return versions;
-    }
-
-    private static File createUserPom(String moduleName) 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));
-        }
-
-        pom = pom.replace("#{module}", moduleName);
-
-        File pomFile = new 
File("target/library-version-mismatch-spring-boot-pom.xml");
-        try (FileWriter fw = new FileWriter(pomFile)) {
-            IOUtils.write(pom, fw);
-        }
-
-        return pomFile;
-    }
-}

http://git-wip-us.apache.org/repos/asf/camel/blob/046156ce/tooling/maven/bom-generator-maven-plugin/pom.xml
----------------------------------------------------------------------
diff --git a/tooling/maven/bom-generator-maven-plugin/pom.xml 
b/tooling/maven/bom-generator-maven-plugin/pom.xml
index b44815e..c9908b4 100644
--- a/tooling/maven/bom-generator-maven-plugin/pom.xml
+++ b/tooling/maven/bom-generator-maven-plugin/pom.xml
@@ -1,4 +1,20 @@
 <?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";>

http://git-wip-us.apache.org/repos/asf/camel/blob/046156ce/tooling/maven/bom-generator-maven-plugin/src/main/java/org/apache/camel/maven/bom/generator/BomGeneratorMojo.java
----------------------------------------------------------------------
diff --git 
a/tooling/maven/bom-generator-maven-plugin/src/main/java/org/apache/camel/maven/bom/generator/BomGeneratorMojo.java
 
b/tooling/maven/bom-generator-maven-plugin/src/main/java/org/apache/camel/maven/bom/generator/BomGeneratorMojo.java
index b3f8660..49f0de8 100644
--- 
a/tooling/maven/bom-generator-maven-plugin/src/main/java/org/apache/camel/maven/bom/generator/BomGeneratorMojo.java
+++ 
b/tooling/maven/bom-generator-maven-plugin/src/main/java/org/apache/camel/maven/bom/generator/BomGeneratorMojo.java
@@ -1,7 +1,26 @@
+/**
+ * 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.
+ */
 package org.apache.camel.maven.bom.generator;
 
 import java.io.File;
+import java.io.FileReader;
 import java.io.FileWriter;
+import java.io.IOException;
+import java.io.StringWriter;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -22,6 +41,7 @@ import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
+import org.apache.commons.io.IOUtils;
 import org.apache.maven.model.Dependency;
 import org.apache.maven.model.DependencyManagement;
 import org.apache.maven.model.Exclusion;
@@ -76,7 +96,7 @@ public class BomGeneratorMojo extends AbstractMojo {
         try {
             DependencyManagement mng = project.getDependencyManagement();
 
-            List<Dependency> filteredDependencies = 
filter(mng.getDependencies());
+            List<Dependency> filteredDependencies = 
enhance(filter(mng.getDependencies()));
 
             Document pom = loadBasePom();
 
@@ -90,6 +110,17 @@ public class BomGeneratorMojo extends AbstractMojo {
         }
     }
 
+    private List<Dependency> enhance(List<Dependency> dependencyList) {
+
+        for (Dependency dep : dependencyList) {
+            if(dep.getGroupId().startsWith(project.getGroupId()) && 
project.getVersion().equals(dep.getVersion())) {
+                dep.setVersion("${project.version}");
+            }
+        }
+
+        return dependencyList;
+    }
+
     private List<Dependency> filter(List<Dependency> dependencyList) {
         List<Dependency> outDependencies = new ArrayList<>();
 
@@ -117,33 +148,63 @@ public class BomGeneratorMojo extends AbstractMojo {
     }
 
     private void writePom(Document pom) throws Exception {
+        XPathExpression xpath = 
XPathFactory.newInstance().newXPath().compile("//text()[normalize-space(.) = 
'']");
+        NodeList emptyNodes = (NodeList) xpath.evaluate(pom, 
XPathConstants.NODESET);
 
-        XPathFactory xpathFactory = XPathFactory.newInstance();
-        // XPath to find empty text nodes.
-        XPathExpression xpathExp = 
xpathFactory.newXPath().compile("//text()[normalize-space(.) = '']");
-        NodeList emptyTextNodes = (NodeList) xpathExp.evaluate(pom, 
XPathConstants.NODESET);
-
-        // Remove each empty text node from document.
-        for (int i = 0; i < emptyTextNodes.getLength(); i++) {
-            Node emptyTextNode = emptyTextNodes.item(i);
-            emptyTextNode.getParentNode().removeChild(emptyTextNode);
+        // Remove empty text nodes
+        for (int i = 0; i < emptyNodes.getLength(); i++) {
+            Node emptyNode = emptyNodes.item(i);
+            emptyNode.getParentNode().removeChild(emptyNode);
         }
 
         Transformer transformer = 
TransformerFactory.newInstance().newTransformer();
         transformer.setOutputProperty(OutputKeys.INDENT, "yes");
-        
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount";, "2");
         transformer.setOutputProperty(OutputKeys.METHOD, "xml");
+        
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount";, "2");
 
         DOMSource source = new DOMSource(pom);
 
         targetPom.getParentFile().mkdirs();
 
-        try (FileWriter out = new FileWriter(targetPom)) {
+        String content;
+        try (StringWriter out = new StringWriter()) {
             StreamResult result = new StreamResult(out);
             transformer.transform(source, result);
+            content = out.toString();
+        }
+
+        // Fix header formatting problem
+        content = content.replaceFirst("-->", "-->\n");
+        writeFileIfChanged(content, targetPom);
+    }
+
+    private void writeFileIfChanged(String content, File file) throws 
IOException {
+        boolean write = true;
+
+        if (file.exists()) {
+            try (FileReader fr = new FileReader(file)) {
+                String oldContent = IOUtils.toString(fr);
+                if (!content.equals(oldContent)) {
+                    getLog().debug("Writing new file " + 
file.getAbsolutePath());
+                    fr.close();
+                } else {
+                    getLog().debug("File " + file.getAbsolutePath() + " left 
unchanged");
+                    write = false;
+                }
+            }
+        } else {
+            File parent = file.getParentFile();
+            parent.mkdirs();
+        }
+
+        if (write) {
+            try (FileWriter fw = new FileWriter(file)) {
+                IOUtils.write(content, fw);
+            }
         }
     }
 
+
     private void overwriteDependencyManagement(Document pom, List<Dependency> 
dependencies) throws Exception {
 
         XPath xpath = XPathFactory.newInstance().newXPath();

http://git-wip-us.apache.org/repos/asf/camel/blob/046156ce/tooling/maven/bom-generator-maven-plugin/src/main/java/org/apache/camel/maven/bom/generator/DependencyMatcher.java
----------------------------------------------------------------------
diff --git 
a/tooling/maven/bom-generator-maven-plugin/src/main/java/org/apache/camel/maven/bom/generator/DependencyMatcher.java
 
b/tooling/maven/bom-generator-maven-plugin/src/main/java/org/apache/camel/maven/bom/generator/DependencyMatcher.java
index 8bb5651..d75b5c1 100644
--- 
a/tooling/maven/bom-generator-maven-plugin/src/main/java/org/apache/camel/maven/bom/generator/DependencyMatcher.java
+++ 
b/tooling/maven/bom-generator-maven-plugin/src/main/java/org/apache/camel/maven/bom/generator/DependencyMatcher.java
@@ -1,3 +1,19 @@
+/**
+ * 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.
+ */
 package org.apache.camel.maven.bom.generator;
 
 import java.util.Collection;

http://git-wip-us.apache.org/repos/asf/camel/blob/046156ce/tooling/maven/bom-generator-maven-plugin/src/main/java/org/apache/camel/maven/bom/generator/DependencySet.java
----------------------------------------------------------------------
diff --git 
a/tooling/maven/bom-generator-maven-plugin/src/main/java/org/apache/camel/maven/bom/generator/DependencySet.java
 
b/tooling/maven/bom-generator-maven-plugin/src/main/java/org/apache/camel/maven/bom/generator/DependencySet.java
index 9e0fe80..2f6a807 100644
--- 
a/tooling/maven/bom-generator-maven-plugin/src/main/java/org/apache/camel/maven/bom/generator/DependencySet.java
+++ 
b/tooling/maven/bom-generator-maven-plugin/src/main/java/org/apache/camel/maven/bom/generator/DependencySet.java
@@ -1,3 +1,19 @@
+/**
+ * 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.
+ */
 package org.apache.camel.maven.bom.generator;
 
 import java.util.HashSet;

http://git-wip-us.apache.org/repos/asf/camel/blob/046156ce/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 48542a9..7412564 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
@@ -30,6 +30,8 @@ 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-cassandraql=com.google.guava:guava:${cassandra-driver-guava-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}
 
@@ -39,6 +41,8 @@ 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-jcr=org.apache.lucene:lucene-core:${lucene3-version}
+camel-jira=com.atlassian.jira:jira-rest-java-client
 
 
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}

Reply via email to