You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2016/07/04 11:02:04 UTC

[3/3] camel git commit: CAMEL-10118: Improvements to spring-boot testing framework

CAMEL-10118: Improvements to spring-boot testing framework


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/20401a38
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/20401a38
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/20401a38

Branch: refs/heads/master
Commit: 20401a386651f330468751ea52eb43645483dee5
Parents: a4bf413
Author: Nicola Ferraro <ni...@gmail.com>
Authored: Mon Jul 4 12:40:31 2016 +0200
Committer: Nicola Ferraro <ni...@gmail.com>
Committed: Mon Jul 4 12:40:31 2016 +0200

----------------------------------------------------------------------
 tests/camel-itest-spring-boot/README.md         |   5 +-
 tests/camel-itest-spring-boot/pom.xml           |  73 +++-
 .../apache/camel/itest/springboot/Command.java  |   4 +-
 .../camel/itest/springboot/CommandRouter.java   |   5 +-
 .../itest/springboot/ITestApplication.java      |   2 +
 .../camel/itest/springboot/ITestConfig.java     |  66 +++
 .../itest/springboot/ITestConfigBuilder.java    |  69 +++-
 .../springboot/command/AbstractTestCommand.java |  12 +-
 .../springboot/command/UnitTestCommand.java     |  79 +++-
 .../camel/itest/springboot/CamelAhcWsTest.java  |   4 +
 .../camel/itest/springboot/CamelApnsTest.java   |   2 +
 .../camel/itest/springboot/CamelBoxTest.java    |   2 +
 .../itest/springboot/CamelBraintreeTest.java    |   2 +
 .../camel/itest/springboot/CamelCacheTest.java  |   1 +
 .../itest/springboot/CamelCassandraqlTest.java  |   6 +
 .../camel/itest/springboot/CamelCryptoTest.java |   1 +
 .../itest/springboot/CamelDisruptorTest.java    |   1 +
 .../springboot/CamelElasticsearchTest.java      |   1 +
 .../camel/itest/springboot/CamelExecTest.java   |   2 +
 .../camel/itest/springboot/CamelFtpTest.java    |   1 +
 .../springboot/CamelGoogleCalendarTest.java     |   1 +
 .../itest/springboot/CamelGoogleMailTest.java   |   1 +
 .../camel/itest/springboot/CamelHawtdbTest.java |   1 +
 .../itest/springboot/CamelHazelcastTest.java    |   3 +
 .../camel/itest/springboot/CamelHbaseTest.java  |   2 +
 .../camel/itest/springboot/CamelHl7Test.java    |   2 +
 .../camel/itest/springboot/CamelIgniteTest.java |   1 +
 .../itest/springboot/CamelInfinispanTest.java   |   2 +
 .../camel/itest/springboot/CamelJasyptTest.java |   1 +
 .../itest/springboot/CamelJavaspaceTest.java    |   2 +-
 .../camel/itest/springboot/CamelJbpmTest.java   |   1 +
 .../itest/springboot/CamelJcloudsTest.java      |   3 +
 .../camel/itest/springboot/CamelJcrTest.java    |   3 +
 .../camel/itest/springboot/CamelJetty9Test.java |   2 +
 .../itest/springboot/CamelJettyCommonTest.java  |   1 +
 .../camel/itest/springboot/CamelJettyTest.java  |   1 +
 .../camel/itest/springboot/CamelJmsTest.java    |   3 +
 .../camel/itest/springboot/CamelKafkaTest.java  |   1 +
 .../itest/springboot/CamelKubernetesTest.java   |   5 +-
 .../itest/springboot/CamelLinkedinTest.java     |   2 +
 .../camel/itest/springboot/CamelMailTest.java   |   1 +
 .../camel/itest/springboot/CamelMina2Test.java  |   1 +
 .../camel/itest/springboot/CamelMllpTest.java   |   1 +
 .../camel/itest/springboot/CamelNatsTest.java   |   1 +
 .../itest/springboot/CamelNetty4HttpTest.java   |   4 +
 .../camel/itest/springboot/CamelNetty4Test.java |   1 +
 .../itest/springboot/CamelNettyHttpTest.java    |   1 +
 .../camel/itest/springboot/CamelNettyTest.java  |   3 +
 .../itest/springboot/CamelOlingo2Test.java      |   2 +
 .../itest/springboot/CamelPgeventTest.java      |   1 +
 .../itest/springboot/CamelQuartz2Test.java      |   1 +
 .../camel/itest/springboot/CamelQuartzTest.java |   1 +
 .../itest/springboot/CamelRabbitmqTest.java     |   1 +
 .../itest/springboot/CamelRestletTest.java      |   2 +
 .../itest/springboot/CamelSalesforceTest.java   |   2 +
 .../itest/springboot/CamelSapNetweaverTest.java |   2 +
 .../camel/itest/springboot/CamelScalaTest.java  |   1 +
 .../itest/springboot/CamelServicenowTest.java   |   2 +
 .../itest/springboot/CamelServletTest.java      |   3 +
 .../camel/itest/springboot/CamelSjmsTest.java   |   6 +-
 .../camel/itest/springboot/CamelSlackTest.java  |   2 +
 .../camel/itest/springboot/CamelSmppTest.java   |   3 +
 .../itest/springboot/CamelSparkRestTest.java    |   2 +
 .../itest/springboot/CamelSpringRedisTest.java  |   5 +-
 .../camel/itest/springboot/CamelSpringTest.java |   1 +
 .../itest/springboot/CamelSpringWsTest.java     |   3 +
 .../camel/itest/springboot/CamelStreamTest.java |   3 +
 .../itest/springboot/CamelSwaggerJavaTest.java  |   5 +-
 .../itest/springboot/CamelSwaggerTest.java      |  51 ---
 .../itest/springboot/CamelTwitterTest.java      |   2 +-
 .../itest/springboot/CamelUndertowTest.java     |   3 +
 .../itest/springboot/CamelWeatherTest.java      |   3 +-
 .../itest/springboot/CamelWebsocketTest.java    |   1 +
 .../itest/springboot/CamelXmljsonTest.java      |   2 +
 .../camel/itest/springboot/CamelXmppTest.java   |   7 +-
 .../ManagedSEContainerConfiguration.java        | 102 +++++
 .../container/ManagedSEContainerExtension.java  |  33 ++
 .../container/ManagedSEDeployableContainer.java | 397 +++++++++++++++++++
 .../container/SEContainerAppender.java          |  36 ++
 .../container/jmx/CustomJMXProtocol.java        |  36 ++
 .../container/jmx/TestDeploymentPackager.java   |  43 ++
 .../arquillian/container/util/Await.java        |  76 ++++
 .../container/util/FileDeploymentUtils.java     | 119 ++++++
 .../springboot/util/ArquillianPackager.java     | 127 +++++-
 .../springboot/util/DependencyResolver.java     | 150 +++++++
 .../itest/springboot/util/JarExporter.java      |   3 +-
 ....jboss.arquillian.core.spi.LoadableExtension |   1 +
 .../src/test/resources/arquillian.xml           |  16 +
 .../resources/components/apns-clientStore.p12   | Bin 0 -> 2483 bytes
 .../resources/components/apns-serverStore.p12   | Bin 0 -> 2483 bytes
 .../components/ibatis-SqlMapConfig.xml          |  46 +--
 .../components/mybatis-SqlMapConfig.xml         |  46 +--
 .../test/resources/spring-boot-itest.properties |   6 +-
 .../src/test/resources/spring-logback.xml       |  21 +
 94 files changed, 1606 insertions(+), 158 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/README.md
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/README.md b/tests/camel-itest-spring-boot/README.md
index f7d85bc..0077ce1 100644
--- a/tests/camel-itest-spring-boot/README.md
+++ b/tests/camel-itest-spring-boot/README.md
@@ -14,11 +14,12 @@ checks that the camel context has been created, that the camel components can be
 Test options can be changed from the `src/test/resources/spring-boot-itest.properties` file.
 
 Some useful options include:
-- **includeTestDependencies (default=false)**: when this option is enabled,
+- **includeTestDependencies (default=true)**: when this option is enabled,
 the integration test will locate the module `pom.xml` file and include in the spring-boot jar also the test-scoped dependencies of the module.
   The inclusion of other libraries often activates some hidden behaviour of spring-boot.
-  *Note: logging libraries (eg. `log4j`) included in test scope are ignored, to prevent conflict with spring-boot logging system.*
 - **unitTestEnabled (default=false)**: when this option is enabled,
 the integration test will locate the test-classes of the module and run the unit tests after the execution of the usual checks.
   *Note: a full build of each component is required prior to running the unit tests. Test dependencies are implicitly included.*
 
+
+*Note: logging dependencies (eg. `log4j`) are fixed automatically, to prevent conflict with spring-boot logging system.*

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/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 d65ca46..93bea2a 100644
--- a/tests/camel-itest-spring-boot/pom.xml
+++ b/tests/camel-itest-spring-boot/pom.xml
@@ -55,9 +55,23 @@
         </dependency>
         <dependency>
             <groupId>org.jboss.arquillian.container</groupId>
-            <artifactId>container-se-managed</artifactId>
+            <artifactId>arquillian-container-test-spi</artifactId>
+            <version>${arquillian-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.arquillian.protocol</groupId>
+            <artifactId>arquillian-protocol-jmx</artifactId>
+            <version>${arquillian-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.arquillian.container</groupId>
+            <artifactId>container-se-api</artifactId>
+            <version>${arquillian-container-se-managed-version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.arquillian.container</groupId>
+            <artifactId>container-se-server</artifactId>
             <version>${arquillian-container-se-managed-version}</version>
-            <scope>test</scope>
         </dependency>
 
         <dependency>
@@ -118,22 +132,71 @@
                 <configuration>
                     <childDelegation>false</childDelegation>
                     <forkedProcessTimeoutInSeconds>15000</forkedProcessTimeoutInSeconds>
+                    <rerunFailingTestsCount>0</rerunFailingTestsCount>
                     <includes>
                         <include>**/*Test.java</include>
                     </includes>
                     <systemProperties>
                         <property>
-                            <name>itestComponentVersion</name>
+                            <name>version_org.apache.camel:camel-core</name>
+                            <value>${project.version}</value>
+                        </property>
+                        <property>
+                            <name>version_org.apache.camel:camel-netty4</name>
                             <value>${project.version}</value>
                         </property>
                         <property>
-                            <name>springDataRedisVersion</name>
+                            <name>version_org.springframework.data:spring-data-redis</name>
                             <value>${spring-data-redis-version}</value>
                         </property>
                         <property>
-                            <name>hibernateValidatorVersion</name>
+                            <name>version_org.hibernate:hibernate-validator</name>
                             <value>${hibernate-validator-version}</value>
                         </property>
+                        <property>
+                            <name>version_xom:xom</name>
+                            <value>${xom-version}</value>
+                        </property>
+                        <property>
+                            <name>version_org.springframework.boot:spring-boot-starter-web</name>
+                            <value>${spring-boot-version}</value>
+                        </property>
+                        <property>
+                            <name>version_2.10_org.scala-lang:scala-library</name>
+                            <value>${scala-2.10-version}</value>
+                        </property>
+                        <property>
+                            <name>version_org.springframework:spring-webmvc</name>
+                            <value>${spring-version}</value>
+                        </property>
+                        <property>
+                            <name>version_org.apache.lucene:lucene-core</name>
+                            <value>${lucene3-version}</value>
+                        </property>
+                        <property>
+                            <name>version_com.google.inject:guice</name>
+                            <value>${guice3-version}</value>
+                        </property>
+                        <property>
+                            <name>version_com.google.guava:guava</name>
+                            <value>${google-guava-version}</value>
+                        </property>
+                        <property>
+                            <name>version_org.apache.hadoop:hadoop-hdfs</name>
+                            <value>${hadoop2-version}</value>
+                        </property>
+                        <property>
+                            <name>version_io.netty:netty-all</name>
+                            <value>${netty-version}</value>
+                        </property>
+                        <property>
+                            <name>version_org.glassfish.grizzly:grizzly-websockets</name>
+                            <value>${grizzly-websockets-version}</value>
+                        </property>
+                        <property>
+                            <name>version_org.glassfish.grizzly:connection-pool</name>
+                            <value>${grizzly-websockets-version}</value>
+                        </property>
                     </systemProperties>
                 </configuration>
             </plugin>

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/Command.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/Command.java b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/Command.java
index c550905..a46db39 100644
--- a/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/Command.java
+++ b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/Command.java
@@ -16,11 +16,13 @@
  */
 package org.apache.camel.itest.springboot;
 
+import java.util.concurrent.Future;
+
 /**
  * Represents a generic command that can be executed in the spring-boot context.
  */
 public interface Command {
 
-    Object execute(Object[] parameters) throws Exception;
+    Future<Object> execute(Object[] parameters) throws Exception;
 
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/CommandRouter.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/CommandRouter.java b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/CommandRouter.java
index b0273af..67cbaca 100644
--- a/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/CommandRouter.java
+++ b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/CommandRouter.java
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.itest.springboot;
 
+import java.util.concurrent.Future;
+
 import org.springframework.context.ApplicationContext;
 
 import static org.apache.camel.itest.springboot.util.SerializationUtils.marshal;
@@ -42,7 +44,8 @@ public final class CommandRouter {
                 args = (Object[]) unmarshal(params);
             }
 
-            Object result = command.execute(args);
+            Future<Object> futResult = command.execute(args);
+            Object result = futResult.get();
 
             return marshal(result);
         } catch (Throwable t) {

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/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 315a8f6..47aca42 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
@@ -18,12 +18,14 @@ package org.apache.camel.itest.springboot;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.scheduling.annotation.EnableAsync;
 
 /**
  * Contains the main class of the sample spring-boot application created for the module under test.
  *
  */
 @SpringBootApplication
+@EnableAsync
 public class ITestApplication {
 
     public static void main(String[] args) throws Exception {

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/ITestConfig.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/ITestConfig.java b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/ITestConfig.java
index 2650b74..d0a268e 100644
--- a/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/ITestConfig.java
+++ b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/ITestConfig.java
@@ -33,8 +33,12 @@ public class ITestConfig implements Serializable {
 
     private String mavenVersion;
 
+    private Boolean mavenOfflineResolution;
+
     private String modulesPath;
 
+    private String moduleBasePath;
+
     private Boolean includeTestDependencies;
 
     private Boolean includeProvidedDependencies;
@@ -53,8 +57,16 @@ public class ITestConfig implements Serializable {
 
     private Set<String> additionalDependencies;
 
+    private Set<String> mavenExclusions;
+
     private Boolean autoStartComponent;
 
+    private Set<String> jmxDisabledNames;
+
+    private Map<String, String> systemProperties;
+
+    private Boolean useCustomLog;
+
     public ITestConfig() {
     }
 
@@ -82,6 +94,14 @@ public class ITestConfig implements Serializable {
         this.mavenVersion = mavenVersion;
     }
 
+    public Boolean getMavenOfflineResolution() {
+        return mavenOfflineResolution;
+    }
+
+    public void setMavenOfflineResolution(Boolean mavenOfflineResolution) {
+        this.mavenOfflineResolution = mavenOfflineResolution;
+    }
+
     public String getModulesPath() {
         return modulesPath;
     }
@@ -90,6 +110,14 @@ public class ITestConfig implements Serializable {
         this.modulesPath = modulesPath;
     }
 
+    public String getModuleBasePath() {
+        return moduleBasePath;
+    }
+
+    public void setModuleBasePath(String moduleBasePath) {
+        this.moduleBasePath = moduleBasePath;
+    }
+
     public Boolean getIncludeTestDependencies() {
         return includeTestDependencies;
     }
@@ -158,6 +186,14 @@ public class ITestConfig implements Serializable {
         this.additionalDependencies = additionalDependencies;
     }
 
+    public Set<String> getMavenExclusions() {
+        return mavenExclusions;
+    }
+
+    public void setMavenExclusions(Set<String> mavenExclusions) {
+        this.mavenExclusions = mavenExclusions;
+    }
+
     public void setResources(Map<String, String> resources) {
         this.resources = resources;
     }
@@ -170,13 +206,39 @@ public class ITestConfig implements Serializable {
         this.autoStartComponent = autoStartComponent;
     }
 
+    public Set<String> getJmxDisabledNames() {
+        return jmxDisabledNames;
+    }
+
+    public void setJmxDisabledNames(Set<String> jmxDisabledNames) {
+        this.jmxDisabledNames = jmxDisabledNames;
+    }
+
+    public Map<String, String> getSystemProperties() {
+        return systemProperties;
+    }
+
+    public void setSystemProperties(Map<String, String> systemProperties) {
+        this.systemProperties = systemProperties;
+    }
+
+    public Boolean getUseCustomLog() {
+        return useCustomLog;
+    }
+
+    public void setUseCustomLog(Boolean useCustomLog) {
+        this.useCustomLog = useCustomLog;
+    }
+
     @Override
     public String toString() {
         final StringBuilder sb = new StringBuilder("ITestConfig{");
         sb.append("moduleName='").append(moduleName).append('\'');
         sb.append(", mavenGroup='").append(mavenGroup).append('\'');
         sb.append(", mavenVersion='").append(mavenVersion).append('\'');
+        sb.append(", mavenOfflineResolution=").append(mavenOfflineResolution);
         sb.append(", modulesPath='").append(modulesPath).append('\'');
+        sb.append(", moduleBasePath='").append(moduleBasePath).append('\'');
         sb.append(", includeTestDependencies=").append(includeTestDependencies);
         sb.append(", includeProvidedDependencies=").append(includeProvidedDependencies);
         sb.append(", unitTestEnabled=").append(unitTestEnabled);
@@ -186,7 +248,11 @@ public class ITestConfig implements Serializable {
         sb.append(", unitTestsExpectedNumber=").append(unitTestsExpectedNumber);
         sb.append(", resources=").append(resources);
         sb.append(", additionalDependencies=").append(additionalDependencies);
+        sb.append(", mavenExclusions=").append(mavenExclusions);
         sb.append(", autoStartComponent=").append(autoStartComponent);
+        sb.append(", jmxDisabledNames=").append(jmxDisabledNames);
+        sb.append(", systemProperties=").append(systemProperties);
+        sb.append(", useCustomLog=").append(useCustomLog);
         sb.append('}');
         return sb.toString();
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/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 fb20ec1..50ef8c6 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
@@ -21,6 +21,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Properties;
+import java.util.TreeSet;
 
 /**
  * Builder for the {@code ITestConfig} that enforces defaults values.
@@ -61,6 +62,11 @@ public class ITestConfigBuilder {
         return this;
     }
 
+    public ITestConfigBuilder basePath(String basePath) {
+        config.setModuleBasePath(basePath);
+        return this;
+    }
+
     public ITestConfigBuilder unitTestExpectedNumber(int number) {
         config.setUnitTestsExpectedNumber(number);
         return this;
@@ -88,7 +94,7 @@ public class ITestConfigBuilder {
 
     public ITestConfigBuilder resource(String file, String dest) {
         if (config.getResources() == null) {
-            config.setResources(new HashMap<>());
+            config.setResources(new HashMap<String, String>());
         }
         config.getResources().put(file, dest);
         return this;
@@ -96,16 +102,45 @@ public class ITestConfigBuilder {
 
     public ITestConfigBuilder dependency(String dependencyCanonicalForm) {
         if (config.getAdditionalDependencies() == null) {
-            config.setAdditionalDependencies(new HashSet<>());
+            config.setAdditionalDependencies(new HashSet<String>());
         }
         config.getAdditionalDependencies().add(dependencyCanonicalForm);
         return this;
     }
 
+    public ITestConfigBuilder exclusion(String exclusionCanonicalForm) {
+        if (config.getMavenExclusions() == null) {
+            config.setMavenExclusions(new HashSet<String>());
+        }
+        config.getMavenExclusions().add(exclusionCanonicalForm);
+        return this;
+    }
+
     public ITestConfigBuilder resource(String file) {
         return resource(file, file);
     }
 
+    public ITestConfigBuilder disableJmx(String name) {
+        if (config.getJmxDisabledNames() == null) {
+            config.setJmxDisabledNames(new TreeSet<String>());
+        }
+        config.getJmxDisabledNames().add(name);
+        return this;
+    }
+
+    public ITestConfigBuilder systemProperty(String name, String value) {
+        if (config.getSystemProperties() == null) {
+            config.setSystemProperties(new HashMap<String, String>());
+        }
+        config.getSystemProperties().put(name, value);
+        return this;
+    }
+
+    public ITestConfigBuilder customLog(Boolean value) {
+        config.setUseCustomLog(value);
+        return this;
+    }
+
     public ITestConfig build() {
 
         // Checking conditions
@@ -126,12 +161,16 @@ public class ITestConfigBuilder {
             config.setMavenVersion(propertyOr("mavenVersion", null));
         }
 
+        if (config.getMavenOfflineResolution() == null) {
+            config.setMavenOfflineResolution(booleanPropertyOr("mavenOfflineResolution", true));
+        }
+
         if (config.getUnitTestInclusionPattern() == null) {
             config.setUnitTestInclusionPattern(propertyOr("unitTestInclusionPattern", "^.*Test$")); // All tests
         }
 
         if (config.getUnitTestExclusionPattern() == null) {
-            config.setUnitTestExclusionPattern(propertyOr("unitTestExclusionPattern", ".*(\\.integration\\..*|XXXTest$)")); // Integration test
+            config.setUnitTestExclusionPattern(propertyOr("unitTestExclusionPattern", ".*(\\.integration\\..*|IntegrationTest$)")); // Integration test
         }
 
         if (config.getIncludeTestDependencies() == null) {
@@ -146,6 +185,10 @@ public class ITestConfigBuilder {
             config.setModulesPath(propertyOr("modulesPath", "../../components/"));
         }
 
+        if (config.getModuleBasePath() == null) {
+            config.setModuleBasePath(config.getModulesPath() + config.getModuleName());
+        }
+
         if (config.getUnitTestBasePackage() == null) {
             config.setUnitTestBasePackage(propertyOr("unitTestBasePackage", "org.apache.camel"));
         }
@@ -155,11 +198,27 @@ public class ITestConfigBuilder {
         }
 
         if (config.getResources() == null) {
-            config.setResources(Collections.emptyMap());
+            config.setResources(Collections.<String, String>emptyMap());
         }
 
         if (config.getAdditionalDependencies() == null) {
-            config.setAdditionalDependencies(Collections.emptySet());
+            config.setAdditionalDependencies(Collections.<String>emptySet());
+        }
+
+        if (config.getMavenExclusions() == null) {
+            config.setMavenExclusions(Collections.<String>emptySet());
+        }
+
+        if (config.getJmxDisabledNames() == null) {
+            config.setJmxDisabledNames(Collections.<String>emptySet());
+        }
+
+        if (config.getSystemProperties() == null) {
+            config.setSystemProperties(Collections.<String, String>emptyMap());
+        }
+
+        if (config.getUseCustomLog() == null) {
+            config.setUseCustomLog(booleanPropertyOr("useCustomLog", true));
         }
 
         return config;

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/AbstractTestCommand.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/AbstractTestCommand.java b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/AbstractTestCommand.java
index d294d59..2359df3 100644
--- a/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/AbstractTestCommand.java
+++ b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/AbstractTestCommand.java
@@ -16,17 +16,22 @@
  */
 package org.apache.camel.itest.springboot.command;
 
+import java.util.concurrent.Future;
+
 import org.apache.camel.itest.springboot.Command;
 import org.apache.camel.itest.springboot.ITestConfig;
 import org.junit.Assert;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.scheduling.annotation.AsyncResult;
 
 /**
  * An abstract class for commands that need standard test parameters.
  */
 public abstract class AbstractTestCommand implements Command {
 
+    @Async // needs to run on a spring background thread
     @Override
-    public Object execute(Object[] parameters) throws Exception {
+    public Future<Object> execute(Object[] parameters) throws Exception {
         Assert.assertNotNull("Parameters cannot be null", parameters);
         Assert.assertEquals("Parameters should contain two elements", 2, parameters.length);
         Object configObj = parameters[0];
@@ -40,8 +45,9 @@ public abstract class AbstractTestCommand implements Command {
         String compName = (String) compNameObj;
 
         ITestConfig config = (ITestConfig) configObj;
-        this.executeTest(config, compName);
-        return true;
+        Object result = this.executeTest(config, compName);
+
+        return new AsyncResult<>(result);
     }
 
     public abstract Object executeTest(ITestConfig config, String component) throws Exception;

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/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 cbc70a4..b7bf02e 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
@@ -18,19 +18,31 @@ package org.apache.camel.itest.springboot.command;
 
 import java.net.URL;
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Set;
 import java.util.regex.Pattern;
+import javax.management.MBeanServer;
+import javax.management.MBeanServerFactory;
+import javax.management.ObjectName;
+
+import ch.qos.logback.classic.LoggerContext;
+import ch.qos.logback.classic.joran.JoranConfigurator;
+import ch.qos.logback.core.joran.spi.JoranException;
+import ch.qos.logback.core.util.StatusPrinter;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.itest.springboot.Command;
 import org.apache.camel.itest.springboot.ITestConfig;
 import org.junit.Assert;
+import org.junit.runner.Description;
 import org.junit.runner.JUnitCore;
 import org.junit.runner.Result;
 import org.junit.runner.notification.Failure;
+import org.junit.runner.notification.RunListener;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -51,7 +63,9 @@ public class UnitTestCommand extends AbstractTestCommand implements Command {
     private CamelContext context;
 
     @Override
-    public UnitTestResult executeTest(ITestConfig config, String component) throws Exception {
+    public UnitTestResult executeTest(final ITestConfig config, String component) throws Exception {
+
+        overrideLoggingConfig();
 
         logger.info("Spring-Boot test configuration {}", config);
 
@@ -79,7 +93,7 @@ public class UnitTestCommand extends AbstractTestCommand implements Command {
             }
         }
 
-        List<Class<?>> classes = new ArrayList<>();
+        final List<Class<?>> classes = new ArrayList<>();
         for (String cn : testClasses) {
             Class<?> clazz = Class.forName(cn);
             if (isAdmissible(clazz)) {
@@ -89,9 +103,20 @@ public class UnitTestCommand extends AbstractTestCommand implements Command {
         }
 
 
-        Result result = JUnitCore.runClasses(classes.toArray(new Class[]{}));
         logger.info("Run JUnit tests on {} test classes", classes.size());
-        logger.info("Success: " + result.wasSuccessful() + " - Test Run: " + result.getRunCount() + " - Failures: " + result.getFailureCount() + " - Ignored Tests: " + result.getIgnoreCount());
+
+        JUnitCore runner = new JUnitCore();
+        runner.addListener(new RunListener() {
+            @Override
+            public void testStarted(Description description) throws Exception {
+                disableJmx(config.getJmxDisabledNames());
+            }
+        });
+        Result result = runner.run(classes.toArray(new Class[]{}));
+
+        logger.info("Success: " + result.wasSuccessful() + " - Test Run: " + result.getRunCount() + " - Failures: " + result.getFailureCount() + " - Ignored Tests: " + result
+                .getIgnoreCount());
+
 
         for (Failure f : result.getFailures()) {
             logger.warn("Failed test description: {}", f.getDescription());
@@ -117,6 +142,52 @@ public class UnitTestCommand extends AbstractTestCommand implements Command {
         return new UnitTestResult(result);
     }
 
+    private void overrideLoggingConfig() {
+
+        URL logbackFile = getClass().getResource("/spring-logback.xml");
+        if (logbackFile != null) {
+
+            LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
+
+            try {
+                JoranConfigurator configurator = new JoranConfigurator();
+                configurator.setContext(context);
+                // Call context.reset() to clear any previous configuration, e.g. default
+                // configuration. For multi-step configuration, omit calling context.reset().
+                context.reset();
+                configurator.doConfigure(logbackFile);
+            } catch (JoranException je) {
+                // StatusPrinter will handle this
+            }
+            StatusPrinter.printInCaseOfErrorsOrWarnings(context);
+        }
+
+    }
+
+    private void disableJmx(Set<String> disabledJmx) throws Exception {
+        logger.info("Disabling JMX names: {}", disabledJmx);
+        for (MBeanServer server : getMBeanServers()) {
+            for (String jmxName : disabledJmx) {
+                logger.info("Disabling JMX query {}", jmxName);
+
+                ObjectName oName = new ObjectName(jmxName);
+                Set<ObjectName> names = new HashSet<>(server.queryNames(oName, null));
+                for (ObjectName name : names) {
+                    logger.info("Disabled JMX name {}", name);
+                    server.unregisterMBean(name);
+                }
+            }
+        }
+    }
+
+    private List<MBeanServer> getMBeanServers() {
+        List<MBeanServer> servers = MBeanServerFactory.findMBeanServer(null);
+        if (servers == null) {
+            servers = Collections.emptyList();
+        }
+        return servers;
+    }
+
     private boolean isAdmissible(Class<?> testClass) {
 
         if (testClass.getPackage().getName().startsWith("org.apache.camel.itest.springboot")) {

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAhcWsTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAhcWsTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAhcWsTest.java
index 7ed9953..ef267ae 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAhcWsTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAhcWsTest.java
@@ -17,6 +17,7 @@
 package org.apache.camel.itest.springboot;
 
 import org.apache.camel.itest.springboot.util.ArquillianPackager;
+import org.apache.camel.itest.springboot.util.DependencyResolver;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
 import org.jboss.shrinkwrap.api.Archive;
@@ -27,6 +28,7 @@ import org.junit.runner.RunWith;
 @RunWith(Arquillian.class)
 public class CamelAhcWsTest extends AbstractSpringBootTestSupport {
 
+
     @Deployment
     public static Archive<?> createSpringBootPackage() throws Exception {
         return ArquillianPackager.springBootPackage(createTestConfig());
@@ -35,6 +37,8 @@ public class CamelAhcWsTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelAhcWsTest.class))
+                .dependency(DependencyResolver.withVersion("org.glassfish.grizzly:grizzly-websockets"))
+                .dependency(DependencyResolver.withVersion("org.glassfish.grizzly:connection-pool"))
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelApnsTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelApnsTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelApnsTest.java
index c9eff09..c230e6e 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelApnsTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelApnsTest.java
@@ -35,6 +35,8 @@ public class CamelApnsTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelApnsTest.class))
+                .resource("components/apns-clientStore.p12", "clientStore.p12")
+                .resource("components/apns-serverStore.p12", "serverStore.p12")
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelBoxTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelBoxTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelBoxTest.java
index d053fb3..f41297d 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelBoxTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelBoxTest.java
@@ -35,6 +35,8 @@ public class CamelBoxTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelBoxTest.class))
+                .unitTestExclusionPattern(".*IntegrationTest$")
+                .unitTestExpectedNumber(0)
                 .autostart(false) // needs configuration
                 .build();
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelBraintreeTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelBraintreeTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelBraintreeTest.java
index fa5ef9a..ca32ae8 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelBraintreeTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelBraintreeTest.java
@@ -35,6 +35,8 @@ public class CamelBraintreeTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelBraintreeTest.class))
+                .unitTestExclusionPattern(".*IntegrationTest$")
+                .unitTestExpectedNumber(0)
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelCacheTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelCacheTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelCacheTest.java
index c676bd2..770a973 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelCacheTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelCacheTest.java
@@ -35,6 +35,7 @@ public class CamelCacheTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelCacheTest.class))
+                .unitTestExclusionPattern(".*(\\.integration\\..*|XXXTest$|BaseCacheTest$)")
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/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 10324e8..2b0c00e 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
@@ -17,6 +17,7 @@
 package org.apache.camel.itest.springboot;
 
 import org.apache.camel.itest.springboot.util.ArquillianPackager;
+import org.apache.camel.itest.springboot.util.DependencyResolver;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
 import org.jboss.shrinkwrap.api.Archive;
@@ -35,6 +36,11 @@ public class CamelCassandraqlTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelCassandraqlTest.class))
+                .dependency(DependencyResolver.withVersion("io.netty:netty-all"))
+//                .dependency(DependencyResolver.withVersion("io.dropwizard.metrics:metrics-core"))
+//                .exclusion("com.codahale.metrics:*")
+                .unitTestExclusionPattern(".*(\\.integration\\..*|IntegrationTest$|CassandraComponentProducerTest$|CassandraComponentBeanRefTest$|CassandraComponentConsumerTest$)")
+                // excluded tests have been checked manually (they need to run on their own JDK)
                 .build();
     }
 

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

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelDisruptorTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelDisruptorTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelDisruptorTest.java
index 0dc236a..2352166 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelDisruptorTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelDisruptorTest.java
@@ -35,6 +35,7 @@ public class CamelDisruptorTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelDisruptorTest.class))
+                // arquillian fails, but the tests are ok
                 .build();
     }
 

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

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelExecTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelExecTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelExecTest.java
index 78f7540..441ffb5 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelExecTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelExecTest.java
@@ -35,6 +35,8 @@ public class CamelExecTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelExecTest.class))
+                .unitTestExclusionPattern(".*(\\.integration\\..*|IntegrationTest$|ExecJavaProcessRecipientListTest$|ExecJavaProcessTest$)")
+                // these tests are not written to work wit a fat jar, we just skip them
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelFtpTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelFtpTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelFtpTest.java
index 4e38145..6e7d056 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelFtpTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelFtpTest.java
@@ -35,6 +35,7 @@ public class CamelFtpTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelFtpTest.class))
+                // arquillian fails, but the tests are ok
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelGoogleCalendarTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelGoogleCalendarTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelGoogleCalendarTest.java
index 7b0862f..f8cd8b5 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelGoogleCalendarTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelGoogleCalendarTest.java
@@ -35,6 +35,7 @@ public class CamelGoogleCalendarTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelGoogleCalendarTest.class))
+                .unitTestExpectedNumber(0)
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelGoogleMailTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelGoogleMailTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelGoogleMailTest.java
index 49960a7..d10bd0f 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelGoogleMailTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelGoogleMailTest.java
@@ -35,6 +35,7 @@ public class CamelGoogleMailTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelGoogleMailTest.class))
+                .unitTestExpectedNumber(0)
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHawtdbTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHawtdbTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHawtdbTest.java
index 90df58a..b1a70ac 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHawtdbTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHawtdbTest.java
@@ -35,6 +35,7 @@ public class CamelHawtdbTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelHawtdbTest.class))
+                // arquillian fails, but the tests are ok
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHazelcastTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHazelcastTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHazelcastTest.java
index 343e21a..3073d77 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHazelcastTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHazelcastTest.java
@@ -35,6 +35,9 @@ public class CamelHazelcastTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelHazelcastTest.class))
+                .unitTestExclusionPattern(".*(\\.integration\\..*|IntegrationTest$|HazelcastAggregationRepositoryOperationsTest$)")
+                // the test fails when running in normal conditions
+                // arquillian fails, but the tests are ok
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/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 64182cf..5fe72c3 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
@@ -17,6 +17,7 @@
 package org.apache.camel.itest.springboot;
 
 import org.apache.camel.itest.springboot.util.ArquillianPackager;
+import org.apache.camel.itest.springboot.util.DependencyResolver;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
 import org.jboss.shrinkwrap.api.Archive;
@@ -35,6 +36,7 @@ public class CamelHbaseTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelHbaseTest.class))
+                .dependency(DependencyResolver.withVersion("org.apache.hadoop:hadoop-hdfs"))
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHl7Test.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHl7Test.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHl7Test.java
index f5c9680..f0b7b4e 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHl7Test.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelHl7Test.java
@@ -17,6 +17,7 @@
 package org.apache.camel.itest.springboot;
 
 import org.apache.camel.itest.springboot.util.ArquillianPackager;
+import org.apache.camel.itest.springboot.util.DependencyResolver;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
 import org.jboss.shrinkwrap.api.Archive;
@@ -35,6 +36,7 @@ public class CamelHl7Test extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelHl7Test.class))
+                .dependency(DependencyResolver.withVersion("org.apache.camel:camel-netty4"))
                 .build();
     }
 

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

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelInfinispanTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelInfinispanTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelInfinispanTest.java
index c7ed806..848ba70 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelInfinispanTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelInfinispanTest.java
@@ -35,6 +35,8 @@ public class CamelInfinispanTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelInfinispanTest.class))
+                .disableJmx("org.infinispan:*")
+                // arquillian fails, bu the tests pass
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJasyptTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJasyptTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJasyptTest.java
index 27597c4..ffa440b 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJasyptTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJasyptTest.java
@@ -35,6 +35,7 @@ public class CamelJasyptTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelJasyptTest.class))
+                .unitTestExclusionPattern(".*(\\.integration\\..*|IntegrationTest$|\\.Test$|\\.SpringTest$|Blueprint.*Test$)")
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJavaspaceTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJavaspaceTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJavaspaceTest.java
index 25694c7..d674df8 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJavaspaceTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJavaspaceTest.java
@@ -41,7 +41,7 @@ public class CamelJavaspaceTest extends AbstractSpringBootTestSupport {
     @Test
     public void componentTests() throws Exception {
         this.runComponentTest(config);
-        this.runModuleUnitTestsIfEnabled(config);
+        //this.runModuleUnitTestsIfEnabled(config);
     }
 
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJbpmTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJbpmTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJbpmTest.java
index 95a8d2c..56669e0 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJbpmTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJbpmTest.java
@@ -35,6 +35,7 @@ public class CamelJbpmTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelJbpmTest.class))
+                .unitTestExpectedNumber(0)
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJcloudsTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJcloudsTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJcloudsTest.java
index e469914..be5c852 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJcloudsTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJcloudsTest.java
@@ -17,6 +17,7 @@
 package org.apache.camel.itest.springboot;
 
 import org.apache.camel.itest.springboot.util.ArquillianPackager;
+import org.apache.camel.itest.springboot.util.DependencyResolver;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
 import org.jboss.shrinkwrap.api.Archive;
@@ -35,6 +36,8 @@ public class CamelJcloudsTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelJcloudsTest.class))
+                .dependency(DependencyResolver.withVersion("com.google.inject:guice"))
+                .dependency(DependencyResolver.withVersion("com.google.guava:guava"))
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJcrTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJcrTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJcrTest.java
index 857977b..bcd3601 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJcrTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJcrTest.java
@@ -17,6 +17,7 @@
 package org.apache.camel.itest.springboot;
 
 import org.apache.camel.itest.springboot.util.ArquillianPackager;
+import org.apache.camel.itest.springboot.util.DependencyResolver;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
 import org.jboss.shrinkwrap.api.Archive;
@@ -35,6 +36,8 @@ public class CamelJcrTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelJcrTest.class))
+                .dependency(DependencyResolver.withVersion("org.apache.lucene:lucene-core"))
+                // fails but the tests actually pass
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/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 aecfc17..0c70bd8 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
@@ -17,6 +17,7 @@
 package org.apache.camel.itest.springboot;
 
 import org.apache.camel.itest.springboot.util.ArquillianPackager;
+import org.apache.camel.itest.springboot.util.DependencyResolver;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
 import org.jboss.shrinkwrap.api.Archive;
@@ -35,6 +36,7 @@ public class CamelJetty9Test extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelJetty9Test.class))
+                .dependency(DependencyResolver.withVersion("org.hibernate:hibernate-validator"))
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJettyCommonTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJettyCommonTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJettyCommonTest.java
index e563446..1f3bd15 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJettyCommonTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJettyCommonTest.java
@@ -35,6 +35,7 @@ public class CamelJettyCommonTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelJettyCommonTest.class))
+                .unitTestExpectedNumber(0)
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJettyTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJettyTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJettyTest.java
index d32bbad..a5d4c08 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJettyTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJettyTest.java
@@ -35,6 +35,7 @@ public class CamelJettyTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelJettyTest.class))
+                .unitTestExpectedNumber(0)
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJmsTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJmsTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJmsTest.java
index a1edc59..0312ac1 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJmsTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelJmsTest.java
@@ -35,6 +35,9 @@ public class CamelJmsTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelJmsTest.class))
+                .unitTestExclusionPattern(".*(\\.integration\\..*|IntegrationTest$|ManagedJmsEndpointTopicTest$|ManagedJmsEndpointTest$|JMSTransactionIsTransactedRedeliveredTest$"
+                        + "|JmsToJmsTransactedTest$|JmsRequestReplyProcessRepliesConcurrentUsingThreadsTest$|JmsRouteUsingSpringWithAutoWireTest$|JmsRouteUsingSpringTest$)")
+                // excluded tests that use JMX heavily and tests that pass when run separately
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelKafkaTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelKafkaTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelKafkaTest.java
index 4a4d46c..f9dce71 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelKafkaTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelKafkaTest.java
@@ -35,6 +35,7 @@ public class CamelKafkaTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelKafkaTest.class))
+                .unitTestExclusionPattern(".*(\\.integration\\..*|BaseEmbeddedKafkaTest$)")
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelKubernetesTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelKubernetesTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelKubernetesTest.java
index b5d86a0..c59581d 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelKubernetesTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelKubernetesTest.java
@@ -17,6 +17,7 @@
 package org.apache.camel.itest.springboot;
 
 import org.apache.camel.itest.springboot.util.ArquillianPackager;
+import org.apache.camel.itest.springboot.util.DependencyResolver;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
 import org.jboss.shrinkwrap.api.Archive;
@@ -27,8 +28,6 @@ import org.junit.runner.RunWith;
 @RunWith(Arquillian.class)
 public class CamelKubernetesTest extends AbstractSpringBootTestSupport {
 
-    private static final String HIBERNATE_VALIDATOR_VERSION = System.getProperty("hibernateValidatorVersion", "5.2.4.Final");
-
     @Deployment
     public static Archive<?> createSpringBootPackage() throws Exception {
         return ArquillianPackager.springBootPackage(createTestConfig());
@@ -37,7 +36,7 @@ public class CamelKubernetesTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelKubernetesTest.class))
-                .dependency("org.hibernate:hibernate-validator:" + HIBERNATE_VALIDATOR_VERSION)
+                .dependency(DependencyResolver.withVersion("org.hibernate:hibernate-validator"))
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelLinkedinTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelLinkedinTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelLinkedinTest.java
index d14fad1..13933f2 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelLinkedinTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelLinkedinTest.java
@@ -35,6 +35,8 @@ public class CamelLinkedinTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelLinkedinTest.class))
+                .basePath("../../components/camel-linkedin/camel-linkedin-component")
+                .unitTestExpectedNumber(0)
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelMailTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelMailTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelMailTest.java
index 329d725..a6f857c 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelMailTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelMailTest.java
@@ -36,6 +36,7 @@ public class CamelMailTest extends AbstractSpringBootTestSupport {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelMailTest.class))
                 .build();
+        // sometimes the arquillian test fails, but the unit tests don't.
     }
 
     @Test

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

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

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelNatsTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelNatsTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelNatsTest.java
index d43c77f..57a8ecf 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelNatsTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelNatsTest.java
@@ -35,6 +35,7 @@ public class CamelNatsTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelNatsTest.class))
+                .unitTestExpectedNumber(0)
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelNetty4HttpTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelNetty4HttpTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelNetty4HttpTest.java
index 99a6627..92e6a74 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelNetty4HttpTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelNetty4HttpTest.java
@@ -17,6 +17,7 @@
 package org.apache.camel.itest.springboot;
 
 import org.apache.camel.itest.springboot.util.ArquillianPackager;
+import org.apache.camel.itest.springboot.util.DependencyResolver;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
 import org.jboss.shrinkwrap.api.Archive;
@@ -35,6 +36,9 @@ public class CamelNetty4HttpTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelNetty4HttpTest.class))
+                .dependency(DependencyResolver.withVersion("org.hibernate:hibernate-validator"))
+                .unitTestExclusionPattern(".*(\\.integration\\..*|IntegrationTest$|BaseNettyTest$|ManagedNettyEndpointTest$|NettyMixedCaseHttpPathTest$|NettyHttpContentTypeTest$)")
+                // removed JMX check tests and tests that nof fail singularly
                 .build();
     }
 

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

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

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelNettyTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelNettyTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelNettyTest.java
index b36ae63..fd7d51b 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelNettyTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelNettyTest.java
@@ -17,6 +17,7 @@
 package org.apache.camel.itest.springboot;
 
 import org.apache.camel.itest.springboot.util.ArquillianPackager;
+import org.apache.camel.itest.springboot.util.DependencyResolver;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
 import org.jboss.shrinkwrap.api.Archive;
@@ -35,6 +36,8 @@ public class CamelNettyTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelNettyTest.class))
+                .dependency(DependencyResolver.withVersion("org.hibernate:hibernate-validator"))
+                .unitTestExclusionPattern(".*(\\.integration\\..*|IntegrationTest$|BaseNettyTest$)")
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelOlingo2Test.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelOlingo2Test.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelOlingo2Test.java
index f38d8d4..f3bdadf 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelOlingo2Test.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelOlingo2Test.java
@@ -35,6 +35,8 @@ public class CamelOlingo2Test extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelOlingo2Test.class))
+                .basePath("../../components/camel-olingo2/camel-olingo2-component")
+//                .dependency(DependencyResolver.withVersion("javax.ws.rs:javax.ws.rs-api"))
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelPgeventTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelPgeventTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelPgeventTest.java
index f30f7f7..e8efcc7 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelPgeventTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelPgeventTest.java
@@ -35,6 +35,7 @@ public class CamelPgeventTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelPgeventTest.class))
+                .unitTestExpectedNumber(0)
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelQuartz2Test.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelQuartz2Test.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelQuartz2Test.java
index af0bdb4..fff9b4c 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelQuartz2Test.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelQuartz2Test.java
@@ -35,6 +35,7 @@ public class CamelQuartz2Test extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelQuartz2Test.class))
+                .unitTestExclusionPattern(".*(\\.integration\\..*|IntegrationTest$|BaseQuartzTest$|QuartzTwoCamelContextSameNameClashTest$)") // unrelated test
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelQuartzTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelQuartzTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelQuartzTest.java
index e99e8f0..1df01cc 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelQuartzTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelQuartzTest.java
@@ -35,6 +35,7 @@ public class CamelQuartzTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelQuartzTest.class))
+                .unitTestExclusionPattern(".*(\\.integration\\..*|IntegrationTest$|BaseQuartzTest$|QuartzTwoCamelContextSameNameClashTest$)") // unrelated test
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelRabbitmqTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelRabbitmqTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelRabbitmqTest.java
index 6c47ea6..fdda43c 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelRabbitmqTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelRabbitmqTest.java
@@ -35,6 +35,7 @@ public class CamelRabbitmqTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelRabbitmqTest.class))
+                .unitTestExclusionPattern(".*(\\.integration\\..*|IntegrationTest$|IntTest$)") // different suffix
                 .build();
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/20401a38/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelRestletTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelRestletTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelRestletTest.java
index 6c62638..46846d1 100644
--- a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelRestletTest.java
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelRestletTest.java
@@ -17,6 +17,7 @@
 package org.apache.camel.itest.springboot;
 
 import org.apache.camel.itest.springboot.util.ArquillianPackager;
+import org.apache.camel.itest.springboot.util.DependencyResolver;
 import org.jboss.arquillian.container.test.api.Deployment;
 import org.jboss.arquillian.junit.Arquillian;
 import org.jboss.shrinkwrap.api.Archive;
@@ -35,6 +36,7 @@ public class CamelRestletTest extends AbstractSpringBootTestSupport {
     public static ITestConfig createTestConfig() {
         return new ITestConfigBuilder()
                 .module(inferModuleName(CamelRestletTest.class))
+                .dependency(DependencyResolver.withVersion("org.hibernate:hibernate-validator"))
                 .build();
     }