FAQ
CAMEL-10052: Spring-boot integration tests


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

Branch: refs/heads/master
Commit: c39b95580ce8fc4d1335d5e43b7d7e3feacb6848
Parents: 4692110
Author: Nicola Ferraro <ni.ferraro@gmail.com>
Authored: Wed Jun 15 14:43:03 2016 +0200
Committer: Claus Ibsen <davsclaus@apache.org>
Committed: Wed Jun 15 15:40:20 2016 +0200

----------------------------------------------------------------------
  tests/camel-itest-spring-boot/pom.xml | 137 +++++++++++
  .../springboot/ApplicationContextHolder.java | 71 ++++++
  .../apache/camel/itest/springboot/Command.java | 26 ++
  .../camel/itest/springboot/CommandRouter.java | 53 +++++
  .../itest/springboot/ITestApplication.java | 39 +++
  .../camel/itest/springboot/ITestConfig.java | 147 ++++++++++++
  .../itest/springboot/ITestConfigBuilder.java | 146 ++++++++++++
  .../springboot/command/AbstractTestCommand.java | 49 ++++
  .../command/ComponentTestCommand.java | 52 ++++
  .../command/DataFormatTestCommand.java | 53 +++++
  .../springboot/command/LanguageTestCommand.java | 53 +++++
  .../springboot/command/UnitTestCommand.java | 135 +++++++++++
  .../springboot/command/UnitTestResult.java | 91 +++++++
  .../springboot/util/SerializationUtils.java | 71 ++++++
  .../AbstractSpringBootTestSupport.java | 107 +++++++++
  .../camel/itest/springboot/CamelAhcTest.java | 47 ++++
  .../camel/itest/springboot/CamelAhcWsTest.java | 48 ++++
  .../camel/itest/springboot/CamelAmqpTest.java | 48 ++++
  .../camel/itest/springboot/CamelApnsTest.java | 47 ++++
  .../camel/itest/springboot/CamelAtmosTest.java | 48 ++++
  .../CamelAtmosphereWebsocketTest.java | 48 ++++
  .../camel/itest/springboot/CamelAtomTest.java | 48 ++++
  .../camel/itest/springboot/CamelAvroTest.java | 47 ++++
  .../camel/itest/springboot/CamelAwsTest.java | 56 +++++
  .../camel/itest/springboot/CamelBamTest.java | 48 ++++
  .../itest/springboot/CamelBarcodeTest.java | 48 ++++
  .../camel/itest/springboot/CamelBase64Test.java | 48 ++++
  .../springboot/CamelBeanValidatorTest.java | 48 ++++
  .../camel/itest/springboot/CamelBeanioTest.java | 48 ++++
  .../itest/springboot/CamelBeanstalkTest.java | 48 ++++
  .../camel/itest/springboot/CamelBindyTest.java | 50 ++++
  .../itest/springboot/CamelBlueprintTest.java | 48 ++++
  .../camel/itest/springboot/CamelBoonTest.java | 48 ++++
  .../camel/itest/springboot/CamelBoxTest.java | 48 ++++
  .../itest/springboot/CamelBraintreeTest.java | 48 ++++
  .../camel/itest/springboot/CamelCacheTest.java | 48 ++++
  .../itest/springboot/CamelCassandraqlTest.java | 48 ++++
  .../camel/itest/springboot/CamelCastorTest.java | 48 ++++
  .../camel/itest/springboot/CamelCdiTest.java | 49 ++++
  .../camel/itest/springboot/CamelChunkTest.java | 48 ++++
  .../camel/itest/springboot/CamelCmSmsTest.java | 48 ++++
  .../camel/itest/springboot/CamelCmisTest.java | 51 ++++
  .../camel/itest/springboot/CamelCoapTest.java | 48 ++++
  .../camel/itest/springboot/CamelCometdTest.java | 48 ++++
  .../camel/itest/springboot/CamelConsulTest.java | 48 ++++
  .../itest/springboot/CamelContextTest.java | 48 ++++
  .../itest/springboot/CamelCoreOsgiTest.java | 48 ++++
  .../itest/springboot/CamelCoreXmlTest.java | 49 ++++
  .../itest/springboot/CamelCouchdbTest.java | 48 ++++
  .../camel/itest/springboot/CamelCryptoTest.java | 48 ++++
  .../camel/itest/springboot/CamelCsvTest.java | 48 ++++
  .../camel/itest/springboot/CamelCxfTest.java | 51 ++++
  .../itest/springboot/CamelCxfTransportTest.java | 48 ++++
  .../itest/springboot/CamelDisruptorTest.java | 50 ++++
  .../camel/itest/springboot/CamelDnsTest.java | 48 ++++
  .../camel/itest/springboot/CamelDockerTest.java | 48 ++++
  .../camel/itest/springboot/CamelDozerTest.java | 48 ++++
  .../itest/springboot/CamelDropboxTest.java | 48 ++++
  .../itest/springboot/CamelEclipseTest.java | 49 ++++
  .../itest/springboot/CamelEhcacheTest.java | 48 ++++
  .../camel/itest/springboot/CamelEjbTest.java | 48 ++++
  .../springboot/CamelElasticsearchTest.java | 48 ++++
  .../camel/itest/springboot/CamelElsqlTest.java | 48 ++++
  .../camel/itest/springboot/CamelEtcdTest.java | 50 ++++
  .../itest/springboot/CamelEventadminTest.java | 51 ++++
  .../camel/itest/springboot/CamelExecTest.java | 48 ++++
  .../itest/springboot/CamelFacebookTest.java | 49 ++++
  .../itest/springboot/CamelFlatpackTest.java | 48 ++++
  .../camel/itest/springboot/CamelFlinkTest.java | 48 ++++
  .../camel/itest/springboot/CamelFopTest.java | 48 ++++
  .../itest/springboot/CamelFreemarkerTest.java | 48 ++++
  .../camel/itest/springboot/CamelFtpTest.java | 50 ++++
  .../itest/springboot/CamelGangliaTest.java | 48 ++++
  .../itest/springboot/CamelGeocoderTest.java | 48 ++++
  .../camel/itest/springboot/CamelGitTest.java | 48 ++++
  .../camel/itest/springboot/CamelGithubTest.java | 48 ++++
  .../springboot/CamelGoogleCalendarTest.java | 48 ++++
  .../itest/springboot/CamelGoogleDriveTest.java | 48 ++++
  .../itest/springboot/CamelGoogleMailTest.java | 48 ++++
  .../camel/itest/springboot/CamelGoraTest.java | 48 ++++
  .../camel/itest/springboot/CamelGrapeTest.java | 48 ++++
  .../camel/itest/springboot/CamelGroovyTest.java | 49 ++++
  .../camel/itest/springboot/CamelGsonTest.java | 48 ++++
  .../springboot/CamelGuavaEventbusTest.java | 48 ++++
  .../camel/itest/springboot/CamelGuiceTest.java | 48 ++++
  .../camel/itest/springboot/CamelHawtdbTest.java | 48 ++++
  .../itest/springboot/CamelHazelcastTest.java | 48 ++++
  .../camel/itest/springboot/CamelHbaseTest.java | 48 ++++
  .../camel/itest/springboot/CamelHdfs2Test.java | 48 ++++
  .../camel/itest/springboot/CamelHdfsTest.java | 48 ++++
  .../itest/springboot/CamelHessianTest.java | 48 ++++
  .../itest/springboot/CamelHipchatTest.java | 48 ++++
  .../camel/itest/springboot/CamelHl7Test.java | 48 ++++
  .../camel/itest/springboot/CamelHttp4Test.java | 48 ++++
  .../itest/springboot/CamelHttpCommonTest.java | 48 ++++
  .../camel/itest/springboot/CamelHttpTest.java | 48 ++++
  .../itest/springboot/CamelHystrixTest.java | 48 ++++
  .../camel/itest/springboot/CamelIbatisTest.java | 48 ++++
  .../camel/itest/springboot/CamelIcalTest.java | 48 ++++
  .../camel/itest/springboot/CamelIgniteTest.java | 48 ++++
  .../itest/springboot/CamelInfinispanTest.java | 48 ++++
  .../camel/itest/springboot/CamelIrcTest.java | 48 ++++
  .../camel/itest/springboot/CamelIronmqTest.java | 48 ++++
  .../itest/springboot/CamelJacksonTest.java | 48 ++++
  .../itest/springboot/CamelJacksonxmlTest.java | 48 ++++
  .../camel/itest/springboot/CamelJasyptTest.java | 48 ++++
  .../itest/springboot/CamelJavaspaceTest.java | 48 ++++
  .../camel/itest/springboot/CamelJaxbTest.java | 48 ++++
  .../camel/itest/springboot/CamelJbpmTest.java | 48 ++++
  .../camel/itest/springboot/CamelJcacheTest.java | 48 ++++
  .../itest/springboot/CamelJcloudsTest.java | 48 ++++
  .../camel/itest/springboot/CamelJcrTest.java | 48 ++++
  .../camel/itest/springboot/CamelJdbcTest.java | 48 ++++
  .../camel/itest/springboot/CamelJetty9Test.java | 48 ++++
  .../itest/springboot/CamelJettyCommonTest.java | 48 ++++
  .../camel/itest/springboot/CamelJettyTest.java | 48 ++++
  .../itest/springboot/CamelJgroupsTest.java | 48 ++++
  .../camel/itest/springboot/CamelJibxTest.java | 48 ++++
  .../camel/itest/springboot/CamelJingTest.java | 48 ++++
  .../camel/itest/springboot/CamelJiraTest.java | 48 ++++
  .../camel/itest/springboot/CamelJmsTest.java | 48 ++++
  .../camel/itest/springboot/CamelJmxTest.java | 48 ++++
  .../camel/itest/springboot/CamelJoltTest.java | 48 ++++
  .../camel/itest/springboot/CamelJosqlTest.java | 49 ++++
  .../camel/itest/springboot/CamelJpaTest.java | 48 ++++
  .../camel/itest/springboot/CamelJschTest.java | 48 ++++
  .../itest/springboot/CamelJsonpathTest.java | 48 ++++
  .../camel/itest/springboot/CamelJt400Test.java | 48 ++++
  .../camel/itest/springboot/CamelJuelTest.java | 48 ++++
  .../camel/itest/springboot/CamelJxpathTest.java | 48 ++++
  .../camel/itest/springboot/CamelKafkaTest.java | 48 ++++
  .../itest/springboot/CamelKestrelTest.java | 48 ++++
  .../camel/itest/springboot/CamelKratiTest.java | 48 ++++
  .../itest/springboot/CamelKubernetesTest.java | 48 ++++
  .../camel/itest/springboot/CamelKuraTest.java | 48 ++++
  .../camel/itest/springboot/CamelLdapTest.java | 48 ++++
  .../itest/springboot/CamelLeveldbTest.java | 48 ++++
  .../itest/springboot/CamelLinkedinTest.java | 48 ++++
  .../camel/itest/springboot/CamelLuceneTest.java | 48 ++++
  .../camel/itest/springboot/CamelLzfTest.java | 49 ++++
  .../camel/itest/springboot/CamelMailTest.java | 51 ++++
  .../itest/springboot/CamelMetricsTest.java | 48 ++++
  .../camel/itest/springboot/CamelMina2Test.java | 48 ++++
  .../camel/itest/springboot/CamelMinaTest.java | 48 ++++
  .../camel/itest/springboot/CamelMllpTest.java | 48 ++++
  .../springboot/CamelMongodbGridfsTest.java | 48 ++++
  .../itest/springboot/CamelMongodbTest.java | 48 ++++
  .../camel/itest/springboot/CamelMqttTest.java | 48 ++++
  .../camel/itest/springboot/CamelMsvTest.java | 48 ++++
  .../itest/springboot/CamelMustacheTest.java | 48 ++++
  .../camel/itest/springboot/CamelMvelTest.java | 48 ++++
  .../itest/springboot/CamelMybatisTest.java | 48 ++++
  .../camel/itest/springboot/CamelNagiosTest.java | 48 ++++
  .../camel/itest/springboot/CamelNatsTest.java | 48 ++++
  .../itest/springboot/CamelNetty4HttpTest.java | 48 ++++
  .../camel/itest/springboot/CamelNetty4Test.java | 48 ++++
  .../itest/springboot/CamelNettyHttpTest.java | 48 ++++
  .../camel/itest/springboot/CamelNettyTest.java | 48 ++++
  .../camel/itest/springboot/CamelOgnlTest.java | 48 ++++
  .../itest/springboot/CamelOlingo2Test.java | 48 ++++
  .../itest/springboot/CamelOpenshiftTest.java | 48 ++++
  .../itest/springboot/CamelOptaplannerTest.java | 48 ++++
  .../camel/itest/springboot/CamelPahoTest.java | 48 ++++
  .../itest/springboot/CamelPaxloggingTest.java | 50 ++++
  .../camel/itest/springboot/CamelPdfTest.java | 48 ++++
  .../itest/springboot/CamelPgeventTest.java | 48 ++++
  .../itest/springboot/CamelPrinterTest.java | 48 ++++
  .../itest/springboot/CamelProtobufTest.java | 48 ++++
  .../itest/springboot/CamelQuartz2Test.java | 48 ++++
  .../camel/itest/springboot/CamelQuartzTest.java | 48 ++++
  .../itest/springboot/CamelQuickfixTest.java | 48 ++++
  .../itest/springboot/CamelRabbitmqTest.java | 48 ++++
  .../itest/springboot/CamelRestletTest.java | 48 ++++
  .../camel/itest/springboot/CamelRmiTest.java | 48 ++++
  .../itest/springboot/CamelRouteboxTest.java | 48 ++++
  .../camel/itest/springboot/CamelRssTest.java | 48 ++++
  .../camel/itest/springboot/CamelRubyTest.java | 48 ++++
  .../camel/itest/springboot/CamelRxTest.java | 48 ++++
  .../itest/springboot/CamelSalesforceTest.java | 48 ++++
  .../itest/springboot/CamelSapNetweaverTest.java | 48 ++++
  .../camel/itest/springboot/CamelSaxonTest.java | 50 ++++
  .../camel/itest/springboot/CamelScalaTest.java | 48 ++++
  .../itest/springboot/CamelSchematronTest.java | 48 ++++
  .../camel/itest/springboot/CamelScrTest.java | 48 ++++
  .../camel/itest/springboot/CamelScriptTest.java | 52 ++++
  .../itest/springboot/CamelServicenowTest.java | 48 ++++
  .../itest/springboot/CamelServletTest.java | 48 ++++
  .../springboot/CamelServletlistenerTest.java | 48 ++++
  .../camel/itest/springboot/CamelShiroTest.java | 48 ++++
  .../camel/itest/springboot/CamelSipTest.java | 48 ++++
  .../camel/itest/springboot/CamelSjmsTest.java | 48 ++++
  .../camel/itest/springboot/CamelSlackTest.java | 48 ++++
  .../camel/itest/springboot/CamelSmppTest.java | 48 ++++
  .../itest/springboot/CamelSnakeyamlTest.java | 49 ++++
  .../camel/itest/springboot/CamelSnmpTest.java | 48 ++++
  .../camel/itest/springboot/CamelSoapTest.java | 49 ++++
  .../camel/itest/springboot/CamelSolrTest.java | 48 ++++
  .../itest/springboot/CamelSparkRestTest.java | 48 ++++
  .../camel/itest/springboot/CamelSparkTest.java | 48 ++++
  .../camel/itest/springboot/CamelSplunkTest.java | 48 ++++
  .../itest/springboot/CamelSpringBatchTest.java | 48 ++++
  .../springboot/CamelSpringBootStarterTest.java | 48 ++++
  .../itest/springboot/CamelSpringBootTest.java | 48 ++++
  .../itest/springboot/CamelSpringDmTest.java | 48 ++++
  .../springboot/CamelSpringIntegrationTest.java | 48 ++++
  .../springboot/CamelSpringJavaconfigTest.java | 48 ++++
  .../itest/springboot/CamelSpringLdapTest.java | 48 ++++
  .../itest/springboot/CamelSpringRedisTest.java | 48 ++++
  .../springboot/CamelSpringSecurityTest.java | 48 ++++
  .../camel/itest/springboot/CamelSpringTest.java | 48 ++++
  .../itest/springboot/CamelSpringWsTest.java | 48 ++++
  .../camel/itest/springboot/CamelSqlTest.java | 48 ++++
  .../camel/itest/springboot/CamelSshTest.java | 48 ++++
  .../camel/itest/springboot/CamelStaxTest.java | 48 ++++
  .../camel/itest/springboot/CamelStompTest.java | 48 ++++
  .../camel/itest/springboot/CamelStreamTest.java | 48 ++++
  .../springboot/CamelStringtemplateTest.java | 48 ++++
  .../itest/springboot/CamelSwaggerJavaTest.java | 48 ++++
  .../itest/springboot/CamelSwaggerTest.java | 48 ++++
  .../camel/itest/springboot/CamelSyslogTest.java | 48 ++++
  .../itest/springboot/CamelTagsoupTest.java | 48 ++++
  .../itest/springboot/CamelTarfileTest.java | 48 ++++
  .../itest/springboot/CamelTelegramTest.java | 47 ++++
  .../itest/springboot/CamelTwitterTest.java | 49 ++++
  .../itest/springboot/CamelUndertowTest.java | 48 ++++
  .../springboot/CamelUnivocityParsersTest.java | 51 ++++
  .../itest/springboot/CamelUrlrewriteTest.java | 48 ++++
  .../itest/springboot/CamelVelocityTest.java | 48 ++++
  .../camel/itest/springboot/CamelVertxTest.java | 48 ++++
  .../itest/springboot/CamelWeatherTest.java | 47 ++++
  .../itest/springboot/CamelWebsocketTest.java | 47 ++++
  .../itest/springboot/CamelXmlbeansTest.java | 47 ++++
  .../itest/springboot/CamelXmljsonTest.java | 47 ++++
  .../camel/itest/springboot/CamelXmlrpcTest.java | 47 ++++
  .../itest/springboot/CamelXmlsecurityTest.java | 47 ++++
  .../camel/itest/springboot/CamelXmppTest.java | 47 ++++
  .../itest/springboot/CamelXstreamTest.java | 49 ++++
  .../camel/itest/springboot/CamelYammerTest.java | 47 ++++
  .../itest/springboot/CamelZipfileTest.java | 47 ++++
  .../springboot/CamelZipkinStarterTest.java | 48 ++++
  .../camel/itest/springboot/CamelZipkinTest.java | 48 ++++
  .../itest/springboot/CamelZookeeperTest.java | 48 ++++
  .../ArquillianSyncBootJarLauncher.java | 55 +++++
  .../SpringBootZipExporterDelegate.java | 51 ++++
  .../arquillian/SpringBootZipExporterImpl.java | 45 ++++
  .../SpringBootZipOnDemandInputStream.java | 224 ++++++++++++++++++
  .../springboot/util/ArquillianPackager.java | 237 +++++++++++++++++++
  .../itest/springboot/util/JarExporter.java | 44 ++++
  .../util/SpringBootContainerFacade.java | 65 +++++
  .../src/test/resources/BOOT-MANIFEST.MF | 3 +
  .../test/resources/spring-boot-itest.properties | 9 +
  tests/pom.xml | 8 +
  252 files changed, 12904 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/c39b9558/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
new file mode 100644
index 0000000..b53b612
--- /dev/null
+++ b/tests/camel-itest-spring-boot/pom.xml
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 " rel="nofollow">http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <parent>
+ <artifactId>tests</artifactId>
+ <groupId>org.apache.camel</groupId>
+ <version>2.18-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>camel-itest-spring-boot</artifactId>
+
+ <name>Camel :: Integration Tests :: Spring-Boot</name>
+ <description>Spring-Boot Camel test</description>
+
+
+ <properties>
+ <arquillian.version>1.1.11.Final</arquillian.version>
+ <arquillian-container.version>1.0.0.Final</arquillian-container.version>
+ <shrinkwrap.version>1.2.3</shrinkwrap.version>
+ <shrinkwrap-resolver.version>2.2.2</shrinkwrap-resolver.version>
+ </properties>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-spring-boot-starter</artifactId>
+ </dependency>
+
+ <!-- Dependency needed to incorporate classes in main jar -->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-loader</artifactId>
+ <version>${spring-boot-version}</version>
+ </dependency>
+
+ <!-- test dependencies needed also@compile/unittestenabled time -->
+ <dependency>
+ <groupId>org.jboss.shrinkwrap</groupId>
+ <artifactId>shrinkwrap-api</artifactId>
+ <version>${shrinkwrap.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.shrinkwrap</groupId>
+ <artifactId>shrinkwrap-impl-base</artifactId>
+ <version>${shrinkwrap.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+
+ <!-- Test dependencies -->
+ <dependency>
+ <groupId>org.jboss.arquillian.junit</groupId>
+ <artifactId>arquillian-junit-container</artifactId>
+ <version>${arquillian.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.arquillian.container</groupId>
+ <artifactId>container-se-managed</artifactId>
+ <version>${arquillian-container.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.shrinkwrap.resolver</groupId>
+ <artifactId>shrinkwrap-resolver-api</artifactId>
+ <version>${shrinkwrap-resolver.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.shrinkwrap.resolver</groupId>
+ <artifactId>shrinkwrap-resolver-spi</artifactId>
+ <version>${shrinkwrap-resolver.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.shrinkwrap.resolver</groupId>
+ <artifactId>shrinkwrap-resolver-api-maven</artifactId>
+ <version>${shrinkwrap-resolver.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.shrinkwrap.resolver</groupId>
+ <artifactId>shrinkwrap-resolver-spi-maven</artifactId>
+ <version>${shrinkwrap-resolver.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.shrinkwrap.resolver</groupId>
+ <artifactId>shrinkwrap-resolver-api-maven-archive</artifactId>
+ <version>${shrinkwrap-resolver.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.shrinkwrap.resolver</groupId>
+ <artifactId>shrinkwrap-resolver-impl-maven</artifactId>
+ <version>${shrinkwrap-resolver.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.shrinkwrap.resolver</groupId>
+ <artifactId>shrinkwrap-resolver-impl-maven-archive</artifactId>
+ <version>${shrinkwrap-resolver.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <childDelegation>false</childDelegation>
+ <forkedProcessTimeoutInSeconds>15000</forkedProcessTimeoutInSeconds>
+ <includes>
+ <include>**/*Test.java</include>
+ </includes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>

http://git-wip-us.apache.org/repos/asf/camel/blob/c39b9558/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/ApplicationContextHolder.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/ApplicationContextHolder.java b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/ApplicationContextHolder.java
new file mode 100644
index 0000000..1885e62
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/ApplicationContextHolder.java
@@ -0,0 +1,71 @@
+/**
+ * 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;
+
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+
+/**
+ * receives a spring-context and make it available to classes outside the spring scope.
+ */
+@Component
+public class ApplicationContextHolder implements ApplicationContextAware {
+
+ private static ApplicationContext context;
+
+ private static long contextMaxWaitTime = 60000L;
+
+ @Override
+ public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+ synchronized (ApplicationContextHolder.class) {
+ ApplicationContextHolder.context = applicationContext;
+ ApplicationContextHolder.class.notifyAll();
+ }
+ }
+
+ public static ApplicationContext getApplicationContext() throws InterruptedException {
+ waitForContextReady();
+ return context;
+ }
+
+ private static void waitForContextReady() throws InterruptedException {
+ long maxWait = contextMaxWaitTime;
+ long deadline = System.currentTimeMillis() + maxWait;
+ synchronized (ApplicationContextHolder.class) {
+ long time = System.currentTimeMillis();
+ while (time < deadline && context == null) {
+ ApplicationContextHolder.class.wait(deadline - time);
+ time = System.currentTimeMillis();
+ }
+
+ if (context == null) {
+ throw new IllegalStateException("No spring context available after " + maxWait + " millis");
+ }
+ }
+ }
+
+ public static long getContextMaxWaitTime() {
+ return contextMaxWaitTime;
+ }
+
+ public static void setContextMaxWaitTime(long contextMaxWaitTime) {
+ ApplicationContextHolder.contextMaxWaitTime = contextMaxWaitTime;
+ }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/c39b9558/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
new file mode 100644
index 0000000..c550905
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/Command.java
@@ -0,0 +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.itest.springboot;
+
+/**
+ * Represents a generic command that can be executed in the spring-boot context.
+ */
+public interface Command {
+
+ Object execute(Object[] parameters) throws Exception;
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/c39b9558/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
new file mode 100644
index 0000000..b0273af
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/CommandRouter.java
@@ -0,0 +1,53 @@
+/**
+ * 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;
+
+import org.springframework.context.ApplicationContext;
+
+import static org.apache.camel.itest.springboot.util.SerializationUtils.marshal;
+import static org.apache.camel.itest.springboot.util.SerializationUtils.transferable;
+import static org.apache.camel.itest.springboot.util.SerializationUtils.unmarshal;
+
+/**
+ * Routes a command coming from another classloader to the appropriate spring bean.
+ */
+public final class CommandRouter {
+
+ private CommandRouter() {
+ }
+
+ public static byte[] execute(String commandStr, byte[] params) {
+
+ try {
+ ApplicationContext context = ApplicationContextHolder.getApplicationContext();
+
+ Command command = (Command) context.getBean(commandStr);
+
+ Object[] args = null;
+ if (params != null) {
+ args = (Object[]) unmarshal(params);
+ }
+
+ Object result = command.execute(args);
+
+ return marshal(result);
+ } catch (Throwable t) {
+ return marshal(transferable(t));
+ }
+ }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/c39b9558/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
new file mode 100644
index 0000000..315a8f6
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/ITestApplication.java
@@ -0,0 +1,39 @@
+/**
+ * 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;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * Contains the main class of the sample spring-boot application created for the module under test.
+ *
+ */
+@SpringBootApplication
+public class ITestApplication {
+
+ public static void main(String[] args) throws Exception {
+ SpringApplication.run(ITestApplication.class, args);
+ }
+
+ @Override
+ public String toString() {
+ // to tell source-check this is not a utility-class
+ return "spring-boot-main";
+ }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/c39b9558/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
new file mode 100644
index 0000000..200be45
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/ITestConfig.java
@@ -0,0 +1,147 @@
+/**
+ * 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;
+
+import java.io.Serializable;
+
+/**
+ * A configuration bean for a test execution.
+ */
+public class ITestConfig implements Serializable {
+
+ private static final long serialVersionUID = -3641997669166217595L;
+
+ private String moduleName;
+
+ private String mavenGroup;
+
+ private String mavenVersion;
+
+ private String modulesPath;
+
+ private Boolean includeTestDependencies;
+
+ private Boolean unitTestEnabled;
+
+ private String unitTestInclusionPattern;
+
+ private String unitTestExclusionPattern;
+
+ private String unitTestBasePackage;
+
+ private Integer unitTestsExpectedNumber;
+
+ public ITestConfig() {
+ }
+
+ public String getModuleName() {
+ return moduleName;
+ }
+
+ public void setModuleName(String moduleName) {
+ this.moduleName = moduleName;
+ }
+
+ public String getMavenGroup() {
+ return mavenGroup;
+ }
+
+ public void setMavenGroup(String mavenGroup) {
+ this.mavenGroup = mavenGroup;
+ }
+
+ public String getMavenVersion() {
+ return mavenVersion;
+ }
+
+ public void setMavenVersion(String mavenVersion) {
+ this.mavenVersion = mavenVersion;
+ }
+
+ public String getModulesPath() {
+ return modulesPath;
+ }
+
+ public void setModulesPath(String modulesPath) {
+ this.modulesPath = modulesPath;
+ }
+
+ public Boolean getIncludeTestDependencies() {
+ return includeTestDependencies;
+ }
+
+ public void setIncludeTestDependencies(Boolean includeTestDependencies) {
+ this.includeTestDependencies = includeTestDependencies;
+ }
+
+ public Boolean getUnitTestEnabled() {
+ return unitTestEnabled;
+ }
+
+ public void setUnitTestEnabled(Boolean unitTestEnabled) {
+ this.unitTestEnabled = unitTestEnabled;
+ }
+
+ public String getUnitTestInclusionPattern() {
+ return unitTestInclusionPattern;
+ }
+
+ public void setUnitTestInclusionPattern(String unitTestInclusionPattern) {
+ this.unitTestInclusionPattern = unitTestInclusionPattern;
+ }
+
+ public String getUnitTestExclusionPattern() {
+ return unitTestExclusionPattern;
+ }
+
+ public void setUnitTestExclusionPattern(String unitTestExclusionPattern) {
+ this.unitTestExclusionPattern = unitTestExclusionPattern;
+ }
+
+ public String getUnitTestBasePackage() {
+ return unitTestBasePackage;
+ }
+
+ public void setUnitTestBasePackage(String unitTestBasePackage) {
+ this.unitTestBasePackage = unitTestBasePackage;
+ }
+
+ public Integer getUnitTestsExpectedNumber() {
+ return unitTestsExpectedNumber;
+ }
+
+ public void setUnitTestsExpectedNumber(Integer unitTestsExpectedNumber) {
+ this.unitTestsExpectedNumber = unitTestsExpectedNumber;
+ }
+
+ @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(", modulesPath='").append(modulesPath).append('\'');
+ sb.append(", includeTestDependencies=").append(includeTestDependencies);
+ sb.append(", unitTestEnabled=").append(unitTestEnabled);
+ sb.append(", unitTestInclusionPattern='").append(unitTestInclusionPattern).append('\'');
+ sb.append(", unitTestExclusionPattern='").append(unitTestExclusionPattern).append('\'');
+ sb.append(", unitTestBasePackage='").append(unitTestBasePackage).append('\'');
+ sb.append(", unitTestsExpectedNumber=").append(unitTestsExpectedNumber);
+ sb.append('}');
+ return sb.toString();
+ }
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/c39b9558/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
new file mode 100644
index 0000000..092665b
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/ITestConfigBuilder.java
@@ -0,0 +1,146 @@
+/**
+ * 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;
+
+import java.io.InputStream;
+import java.util.Optional;
+import java.util.Properties;
+
+/**
+ * Builder for the {@code ITestConfig} that enforces defaults values.
+ */
+public class ITestConfigBuilder {
+
+ private static final String PROPERTIES_FILE = "/spring-boot-itest.properties";
+
+ private Properties properties;
+
+ private ITestConfig config;
+
+ public ITestConfigBuilder() {
+ this.config = new ITestConfig();
+ }
+
+ public ITestConfigBuilder(ITestConfig config) {
+ this.config = config;
+ }
+
+ public ITestConfigBuilder module(String module) {
+ config.setModuleName(module);
+ return this;
+ }
+
+ public ITestConfigBuilder mavenGroup(String mavenGroup) {
+ config.setMavenGroup(mavenGroup);
+ return this;
+ }
+
+ public ITestConfigBuilder mavenVersion(String mavenVersion) {
+ config.setMavenVersion(mavenVersion);
+ return this;
+ }
+
+ public ITestConfigBuilder modulesPath(String path) {
+ config.setModulesPath(path);
+ return this;
+ }
+
+ public ITestConfigBuilder unitTestExpectedNumber(int number) {
+ config.setUnitTestsExpectedNumber(number);
+ return this;
+ }
+
+ public ITestConfigBuilder unitTestBasePackage(String pack) {
+ config.setUnitTestBasePackage(pack);
+ return this;
+ }
+
+ public ITestConfigBuilder unitTestInclusionPattern(String pattern) {
+ config.setUnitTestInclusionPattern(pattern);
+ return this;
+ }
+
+ public ITestConfigBuilder unitTestExclusionPattern(String pattern) {
+ config.setUnitTestExclusionPattern(pattern);
+ return this;
+ }
+
+ public ITestConfig build() {
+
+ // Checking conditions
+ if (config.getModuleName() == null) {
+ fail("ModuleName is required");
+ }
+
+ // Set the defaults
+ if (config.getUnitTestEnabled() == null) {
+ config.setUnitTestEnabled(booleanProperty("unitTestEnabled").orElse(false));
+ }
+
+ if (config.getMavenGroup() == null) {
+ config.setMavenGroup(property("mavenGroup").orElse("org.apache.camel"));
+ }
+
+ if (config.getMavenVersion() == null) {
+ config.setMavenVersion(property("mavenVersion").orElse(null));
+ }
+
+ if (config.getUnitTestInclusionPattern() == null) {
+ config.setUnitTestInclusionPattern(property("unitTestInclusionPattern").orElse("^.*Test$")); // All tests
+ }
+
+ if (config.getUnitTestExclusionPattern() == null) {
+ config.setUnitTestExclusionPattern(property("unitTestExclusionPattern").orElse(".*(\\.integration\\..*|XXXTest$)")); // Integration test
+ }
+
+ if (config.getIncludeTestDependencies() == null) {
+ config.setIncludeTestDependencies(booleanProperty("includeTestDependencies").orElse(config.getUnitTestEnabled()));
+ }
+
+ if (config.getModulesPath() == null) {
+ config.setModulesPath(property("modulesPath").orElse("../../components/"));
+ }
+
+ if (config.getUnitTestBasePackage() == null) {
+ config.setUnitTestBasePackage(property("unitTestBasePackage").orElse("org.apache.camel"));
+ }
+
+ return config;
+ }
+
+ private void fail(String msg) {
+ throw new IllegalStateException("Configuration is not complete: " + msg);
+ }
+
+ private Optional<String> property(String name) {
+ if (properties == null) {
+ properties = new Properties();
+ try {
+ InputStream in = getClass().getResourceAsStream(PROPERTIES_FILE);
+ properties.load(in);
+ } catch (Exception e) {
+ throw new IllegalStateException("Unable to load property file: " + PROPERTIES_FILE, e);
+ }
+ }
+
+ return Optional.ofNullable(properties.getProperty(name));
+ }
+
+ private Optional<Boolean> booleanProperty(String name) {
+ return property(name).map(Boolean::valueOf);
+ }
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/c39b9558/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
new file mode 100644
index 0000000..d294d59
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/AbstractTestCommand.java
@@ -0,0 +1,49 @@
+/**
+ * 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.command;
+
+import org.apache.camel.itest.springboot.Command;
+import org.apache.camel.itest.springboot.ITestConfig;
+import org.junit.Assert;
+
+/**
+ * An abstract class for commands that need standard test parameters.
+ */
+public abstract class AbstractTestCommand implements Command {
+
+ @Override
+ public 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];
+ Assert.assertNotNull("The first parameter cannot be null", configObj);
+ Assert.assertTrue("First parameter should be of type ITestConfig, found type " + configObj.getClass().getName(), configObj instanceof ITestConfig);
+
+ Object compNameObj = parameters[1];
+ Assert.assertNotNull("The second parameter cannot be null", compNameObj);
+ Assert.assertTrue("Second parameter should be of type String, found type " + compNameObj.getClass().getName(), compNameObj instanceof String);
+
+ String compName = (String) compNameObj;
+
+ ITestConfig config = (ITestConfig) configObj;
+ this.executeTest(config, compName);
+ return true;
+ }
+
+ public abstract Object executeTest(ITestConfig config, String component) throws Exception;
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/c39b9558/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/ComponentTestCommand.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/ComponentTestCommand.java b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/ComponentTestCommand.java
new file mode 100644
index 0000000..909757f
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/ComponentTestCommand.java
@@ -0,0 +1,52 @@
+/**
+ * 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.command;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.itest.springboot.Command;
+import org.apache.camel.itest.springboot.ITestConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import static org.junit.Assert.assertNotNull;
+
+/**
+ * A command that tries to lookup a camel component.
+ */
+@Component("module")
+public class ComponentTestCommand extends AbstractTestCommand implements Command {
+
+ private Logger logger = LoggerFactory.getLogger(getClass());
+
+ @Autowired
+ private CamelContext context;
+
+ @Override
+ public Boolean executeTest(ITestConfig config, String component) throws Exception {
+
+ logger.info("Getting Camel component: {}", component);
+
+ org.apache.camel.Component comp = context.getComponent(component, true, false);
+ assertNotNull("Cannot get module with name: " + component, comp);
+
+ logger.info("Found Camel module: {} instance: {} with className: {}", component, comp, comp.getClass());
+ return true;
+ }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/c39b9558/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/DataFormatTestCommand.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/DataFormatTestCommand.java b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/DataFormatTestCommand.java
new file mode 100644
index 0000000..6a9c789
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/DataFormatTestCommand.java
@@ -0,0 +1,53 @@
+/**
+ * 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.command;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.itest.springboot.Command;
+import org.apache.camel.itest.springboot.ITestConfig;
+import org.apache.camel.spi.DataFormat;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import static org.junit.Assert.assertNotNull;
+
+/**
+ * A command that tries to lookup a camel data-format.
+ */
+@Component("dataformat")
+public class DataFormatTestCommand extends AbstractTestCommand implements Command {
+
+ private Logger logger = LoggerFactory.getLogger(getClass());
+
+ @Autowired
+ private CamelContext context;
+
+ @Override
+ public Boolean executeTest(ITestConfig config, String dataFormat) throws Exception {
+
+ logger.info("Getting Camel dataFormat: {}", dataFormat);
+
+ DataFormat df = context.resolveDataFormat(dataFormat);
+ assertNotNull("Cannot get dataformat with name: " + dataFormat, df);
+
+ logger.info("Found Camel dataformat: {} instance: {} with className: {}", dataFormat, df, df.getClass());
+ return true;
+ }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/c39b9558/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/LanguageTestCommand.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/LanguageTestCommand.java b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/LanguageTestCommand.java
new file mode 100644
index 0000000..bab9501
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/LanguageTestCommand.java
@@ -0,0 +1,53 @@
+/**
+ * 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.command;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.itest.springboot.Command;
+import org.apache.camel.itest.springboot.ITestConfig;
+import org.apache.camel.spi.Language;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import static org.junit.Assert.assertNotNull;
+
+/**
+ * A command that tries to lookup a camel language.
+ */
+@Component("language")
+public class LanguageTestCommand extends AbstractTestCommand implements Command {
+
+ private Logger logger = LoggerFactory.getLogger(getClass());
+
+ @Autowired
+ private CamelContext context;
+
+ @Override
+ public Boolean executeTest(ITestConfig config, String language) throws Exception {
+
+ logger.info("Getting Camel language: {}", language);
+
+ Language lan = context.resolveLanguage(language);
+ assertNotNull("Cannot get language with name: " + language, lan);
+
+ logger.info("Found Camel language: {} instance: {} with className: {}", language, lan, lan.getClass());
+ return true;
+ }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/c39b9558/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
new file mode 100644
index 0000000..c3b99fe
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/UnitTestCommand.java
@@ -0,0 +1,135 @@
+/**
+ * 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.command;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+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.JUnitCore;
+import org.junit.runner.Result;
+import org.junit.runner.notification.Failure;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider;
+import org.springframework.core.type.filter.RegexPatternTypeFilter;
+import org.springframework.stereotype.Component;
+
+/**
+ * A command that executes all unit tests contained in the module.
+ */
+@Component("unittest")
+public class UnitTestCommand extends AbstractTestCommand implements Command {
+
+ Logger logger = LoggerFactory.getLogger(getClass());
+
+ @Autowired
+ private CamelContext context;
+
+ @Override
+ public UnitTestResult executeTest(ITestConfig config, String component) throws Exception {
+
+ logger.info("Spring-Boot test configuration {}", config);
+
+ Pattern pattern = Pattern.compile(config.getUnitTestInclusionPattern());
+
+ logger.info("Scaning the classpath for test classes");
+ ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(false);
+
+ scanner.addIncludeFilter(new RegexPatternTypeFilter(pattern));
+
+ List<String> testClasses = new LinkedList<>(scanner.findCandidateComponents(config.getUnitTestBasePackage()).stream().map(bd -> bd.getBeanClassName()).collect(Collectors.toList()));
+
+ if (config.getUnitTestExclusionPattern() != null) {
+ Pattern exclusionPattern = Pattern.compile(config.getUnitTestExclusionPattern());
+ for (Iterator<String> it = testClasses.iterator(); it.hasNext();) {
+ String cn = it.next();
+ if (exclusionPattern.matcher(cn).matches()) {
+ logger.warn("Excluding Test Class: {}", cn);
+ it.remove();
+ }
+ }
+ }
+
+ 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);
+ }
+ }
+
+
+ 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());
+
+ for (Failure f : result.getFailures()) {
+ logger.warn("Failed test description: {}", f.getDescription());
+ logger.warn("Message: {}", f.getMessage());
+ if (f.getException() != null) {
+ logger.warn("Exception thrown from test", f.getException());
+ }
+ }
+
+ if (!result.wasSuccessful()) {
+ Assert.fail("Some unit tests failed (" + result.getFailureCount() + "/" + result.getRunCount() + "), check the logs for more details");
+ }
+
+ if (result.getRunCount() == 0 && config.getUnitTestsExpectedNumber() == null) {
+ Assert.fail("No tests have been found");
+ }
+
+ Integer expectedTests = config.getUnitTestsExpectedNumber();
+ if (expectedTests != null && expectedTests != result.getRunCount()) {
+ Assert.fail("Wrong number of tests: expected " + expectedTests + " found " + result.getRunCount());
+ }
+
+ return new UnitTestResult(result);
+ }
+
+ private boolean isAdmissible(Class<?> testClass) {
+
+ if (testClass.getPackage().getName().startsWith("org.apache.camel.itest.springboot")) {
+ // no tests from the integration test suite
+ return false;
+ }
+
+ URL location = testClass.getResource("/" + testClass.getName().replace(".", "/") + ".class");
+ if (location != null) {
+ int firstLevel = location.toString().indexOf("!/");
+ int lastLevel = location.toString().lastIndexOf("!/");
+ if (firstLevel >= 0 && lastLevel >= 0 && firstLevel != lastLevel) {
+ // test class is in a nested jar, skipping
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/c39b9558/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/UnitTestResult.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/UnitTestResult.java b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/UnitTestResult.java
new file mode 100644
index 0000000..2872d70
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/command/UnitTestResult.java
@@ -0,0 +1,91 @@
+/**
+ * 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.command;
+
+import java.io.Serializable;
+
+import org.junit.runner.Result;
+
+/**
+ * Contains the result of the execution of a test suite.
+ * Can be rebuilt at the other classloader as it does not contain reference to internal classes.
+ */
+public class UnitTestResult implements Serializable {
+
+ private static final long serialVersionUID = -5015959334755321719L;
+
+ private int runCount;
+
+ private int failureCount;
+
+ private long runTime;
+
+ private int ignoreCount;
+
+ private boolean successful;
+
+ public UnitTestResult() {
+ }
+
+ public UnitTestResult(Result jr) {
+ this.runCount = jr.getRunCount();
+ this.failureCount = jr.getFailureCount();
+ this.runTime = jr.getRunTime();
+ this.ignoreCount = jr.getIgnoreCount();
+ this.successful = jr.wasSuccessful();
+ }
+
+ public int getRunCount() {
+ return runCount;
+ }
+
+ public void setRunCount(int runCount) {
+ this.runCount = runCount;
+ }
+
+ public int getFailureCount() {
+ return failureCount;
+ }
+
+ public void setFailureCount(int failureCount) {
+ this.failureCount = failureCount;
+ }
+
+ public long getRunTime() {
+ return runTime;
+ }
+
+ public void setRunTime(long runTime) {
+ this.runTime = runTime;
+ }
+
+ public int getIgnoreCount() {
+ return ignoreCount;
+ }
+
+ public void setIgnoreCount(int ignoreCount) {
+ this.ignoreCount = ignoreCount;
+ }
+
+ public boolean isSuccessful() {
+ return successful;
+ }
+
+ public void setSuccessful(boolean successful) {
+ this.successful = successful;
+ }
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/c39b9558/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/util/SerializationUtils.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/util/SerializationUtils.java b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/util/SerializationUtils.java
new file mode 100644
index 0000000..ac9cfe8
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/main/java/org/apache/camel/itest/springboot/util/SerializationUtils.java
@@ -0,0 +1,71 @@
+/**
+ * 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.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+/**
+ * Provide basic serialization utils.
+ * Cannot rely on common available libraries to not influence the test outcome.
+ */
+public final class SerializationUtils {
+
+ private SerializationUtils() {
+ }
+
+ public static byte[] marshal(Object o) {
+ try (ByteArrayOutputStream out = new ByteArrayOutputStream(); ObjectOutputStream oout = new ObjectOutputStream(out)) {
+ oout.writeObject(o);
+ oout.flush();
+ return out.toByteArray();
+ } catch (IOException e) {
+ throw new RuntimeException("Unable to marshal the bean " + o, e);
+ }
+ }
+
+ public static Object unmarshal(byte[] content) {
+ if (content == null) {
+ return null;
+ }
+
+ try (ByteArrayInputStream in = new ByteArrayInputStream(content); ObjectInputStream oin = new ObjectInputStream(in)) {
+ Object bean = oin.readObject();
+ return bean;
+
+ } catch (IOException | ClassNotFoundException e) {
+ throw new RuntimeException("Unable to unmarshal the bean", e);
+ }
+ }
+
+ public static Throwable transferable(Throwable ex) {
+ try (StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw)) {
+ ex.printStackTrace(pw);
+ pw.flush();
+
+ return new Exception("Error while executing tests. Wrapped exception is: " + sw.toString());
+ } catch (IOException e) {
+ return new RuntimeException("Error while cleaning up the exception. Message=" + e.getMessage());
+ }
+ }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/c39b9558/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/AbstractSpringBootTestSupport.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/AbstractSpringBootTestSupport.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/AbstractSpringBootTestSupport.java
new file mode 100644
index 0000000..24162c4
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/AbstractSpringBootTestSupport.java
@@ -0,0 +1,107 @@
+/**
+ * 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;
+
+import java.lang.reflect.Method;
+
+import org.apache.camel.itest.springboot.arquillian.ArquillianSyncBootJarLauncher;
+import org.apache.camel.itest.springboot.util.SpringBootContainerFacade;
+import org.junit.Before;
+
+/**
+ * This is the base class of all spring-boot integration tests.
+ */
+public abstract class AbstractSpringBootTestSupport {
+
+ protected ITestConfig config;
+
+ private SpringBootContainerFacade facade;
+
+ /**
+ * Starts a spring-boot container with the module under test.
+ *
+ * @throws Exception
+ */
+ @Before
+ public void startSpringBoot() throws Exception {
+ this.config = retrieveConfig();
+
+ ArquillianSyncBootJarLauncher launcher = new ArquillianSyncBootJarLauncher();
+ launcher.run(new String[]{});
+
+ this.facade = new SpringBootContainerFacade(launcher.getClassLoader());
+ }
+
+ protected static String inferModuleName(Class<?> testClass) {
+ String name = testClass.getSimpleName();
+ int id1 = name.indexOf("Test");
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < id1; i++) {
+ char c = name.charAt(i);
+ if (i > 0 && Character.isUpperCase(c) && sb.length() > 0) {
+ sb.append("-");
+ }
+ sb.append(Character.toLowerCase(c));
+ }
+ return sb.toString();
+ }
+
+ protected String defaultComponentName() throws Exception {
+ return config.getModuleName().replace("camel-", "");
+ }
+
+ protected void runComponentTest(ITestConfig config) throws Exception {
+ this.runComponentTest(config, defaultComponentName());
+ }
+
+ protected void runComponentTest(ITestConfig config, String componentName) throws Exception {
+ facade.executeTest("module", config, componentName);
+ }
+
+ protected void runDataformatTest(ITestConfig config) throws Exception {
+ this.runDataformatTest(config, defaultComponentName());
+ }
+
+ protected void runDataformatTest(ITestConfig config, String dataFormatName) throws Exception {
+ facade.executeTest("dataformat", config, dataFormatName);
+ }
+
+ protected void runLanguageTest(ITestConfig config) throws Exception {
+ this.runLanguageTest(config, defaultComponentName());
+ }
+
+ protected void runLanguageTest(ITestConfig config, String language) throws Exception {
+ facade.executeTest("language", config, language);
+ }
+
+ protected void runModuleUnitTestsIfEnabled(ITestConfig config) throws Exception {
+ if (config.getUnitTestEnabled()) {
+ this.runModuleUnitTests(config);
+ }
+ }
+
+ protected void runModuleUnitTests(ITestConfig config) throws Exception {
+ facade.executeTest("unittest", config, config.getModuleName().replace("camel-", ""));
+ }
+
+ protected ITestConfig retrieveConfig() throws Exception {
+ Method confMethod = this.getClass().getMethod("createTestConfig");
+ ITestConfig conf = (ITestConfig) confMethod.invoke(null);
+ return conf;
+ }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/c39b9558/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAhcTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAhcTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAhcTest.java
new file mode 100644
index 0000000..bc98919
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAhcTest.java
@@ -0,0 +1,47 @@
+/**
+ * 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;
+
+import org.apache.camel.itest.springboot.util.ArquillianPackager;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.shrinkwrap.api.Archive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+
+@RunWith(Arquillian.class)
+public class CamelAhcTest extends AbstractSpringBootTestSupport {
+
+ @Deployment
+ public static Archive<?> createSpringBootPackage() throws Exception {
+ return ArquillianPackager.springBootPackage(createTestConfig());
+ }
+
+ public static ITestConfig createTestConfig() {
+ return new ITestConfigBuilder()
+ .module(inferModuleName(CamelAhcTest.class))
+ .build();
+ }
+
+ @Test
+ public void componentTests() throws Exception {
+ this.runComponentTest(config);
+ this.runModuleUnitTestsIfEnabled(config);
+ }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/c39b9558/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
new file mode 100644
index 0000000..7ed9953
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAhcWsTest.java
@@ -0,0 +1,48 @@
+/**
+ * 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;
+
+import org.apache.camel.itest.springboot.util.ArquillianPackager;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.shrinkwrap.api.Archive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+
+@RunWith(Arquillian.class)
+public class CamelAhcWsTest extends AbstractSpringBootTestSupport {
+
+ @Deployment
+ public static Archive<?> createSpringBootPackage() throws Exception {
+ return ArquillianPackager.springBootPackage(createTestConfig());
+ }
+
+ public static ITestConfig createTestConfig() {
+ return new ITestConfigBuilder()
+ .module(inferModuleName(CamelAhcWsTest.class))
+ .build();
+ }
+
+ @Test
+ public void componentTests() throws Exception {
+ this.runComponentTest(config);
+ this.runModuleUnitTestsIfEnabled(config);
+ }
+
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/c39b9558/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAmqpTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAmqpTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAmqpTest.java
new file mode 100644
index 0000000..4f66a0d
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAmqpTest.java
@@ -0,0 +1,48 @@
+/**
+ * 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;
+
+import org.apache.camel.itest.springboot.util.ArquillianPackager;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.shrinkwrap.api.Archive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+
+@RunWith(Arquillian.class)
+public class CamelAmqpTest extends AbstractSpringBootTestSupport {
+
+ @Deployment
+ public static Archive<?> createSpringBootPackage() throws Exception {
+ return ArquillianPackager.springBootPackage(createTestConfig());
+ }
+
+ public static ITestConfig createTestConfig() {
+ return new ITestConfigBuilder()
+ .module(inferModuleName(CamelAmqpTest.class))
+ .build();
+ }
+
+ @Test
+ public void componentTests() throws Exception {
+ this.runComponentTest(config);
+ this.runModuleUnitTestsIfEnabled(config);
+ }
+
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/c39b9558/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
new file mode 100644
index 0000000..c9eff09
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelApnsTest.java
@@ -0,0 +1,47 @@
+/**
+ * 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;
+
+import org.apache.camel.itest.springboot.util.ArquillianPackager;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.shrinkwrap.api.Archive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+
+@RunWith(Arquillian.class)
+public class CamelApnsTest extends AbstractSpringBootTestSupport {
+
+ @Deployment
+ public static Archive<?> createSpringBootPackage() throws Exception {
+ return ArquillianPackager.springBootPackage(createTestConfig());
+ }
+
+ public static ITestConfig createTestConfig() {
+ return new ITestConfigBuilder()
+ .module(inferModuleName(CamelApnsTest.class))
+ .build();
+ }
+
+ @Test
+ public void componentTests() throws Exception {
+ this.runComponentTest(config);
+ this.runModuleUnitTestsIfEnabled(config);
+ }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/c39b9558/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAtmosTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAtmosTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAtmosTest.java
new file mode 100644
index 0000000..ae43401
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAtmosTest.java
@@ -0,0 +1,48 @@
+/**
+ * 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;
+
+import org.apache.camel.itest.springboot.util.ArquillianPackager;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.shrinkwrap.api.Archive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+
+@RunWith(Arquillian.class)
+public class CamelAtmosTest extends AbstractSpringBootTestSupport {
+
+ @Deployment
+ public static Archive<?> createSpringBootPackage() throws Exception {
+ return ArquillianPackager.springBootPackage(createTestConfig());
+ }
+
+ public static ITestConfig createTestConfig() {
+ return new ITestConfigBuilder()
+ .module(inferModuleName(CamelAtmosTest.class))
+ .build();
+ }
+
+ @Test
+ public void componentTests() throws Exception {
+ this.runComponentTest(config);
+ this.runModuleUnitTestsIfEnabled(config);
+ }
+
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/c39b9558/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAtmosphereWebsocketTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAtmosphereWebsocketTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAtmosphereWebsocketTest.java
new file mode 100644
index 0000000..9a8b781
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAtmosphereWebsocketTest.java
@@ -0,0 +1,48 @@
+/**
+ * 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;
+
+import org.apache.camel.itest.springboot.util.ArquillianPackager;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.shrinkwrap.api.Archive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+
+@RunWith(Arquillian.class)
+public class CamelAtmosphereWebsocketTest extends AbstractSpringBootTestSupport {
+
+ @Deployment
+ public static Archive<?> createSpringBootPackage() throws Exception {
+ return ArquillianPackager.springBootPackage(createTestConfig());
+ }
+
+ public static ITestConfig createTestConfig() {
+ return new ITestConfigBuilder()
+ .module(inferModuleName(CamelAtmosphereWebsocketTest.class))
+ .build();
+ }
+
+ @Test
+ public void componentTests() throws Exception {
+ this.runComponentTest(config);
+ this.runModuleUnitTestsIfEnabled(config);
+ }
+
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/c39b9558/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAtomTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAtomTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAtomTest.java
new file mode 100644
index 0000000..0d68402
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAtomTest.java
@@ -0,0 +1,48 @@
+/**
+ * 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;
+
+import org.apache.camel.itest.springboot.util.ArquillianPackager;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.shrinkwrap.api.Archive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+
+@RunWith(Arquillian.class)
+public class CamelAtomTest extends AbstractSpringBootTestSupport {
+
+ @Deployment
+ public static Archive<?> createSpringBootPackage() throws Exception {
+ return ArquillianPackager.springBootPackage(createTestConfig());
+ }
+
+ public static ITestConfig createTestConfig() {
+ return new ITestConfigBuilder()
+ .module(inferModuleName(CamelAtomTest.class))
+ .build();
+ }
+
+ @Test
+ public void componentTests() throws Exception {
+ this.runComponentTest(config);
+ this.runModuleUnitTestsIfEnabled(config);
+ }
+
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/c39b9558/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAvroTest.java
----------------------------------------------------------------------
diff --git a/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAvroTest.java b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAvroTest.java
new file mode 100644
index 0000000..c1c946e
--- /dev/null
+++ b/tests/camel-itest-spring-boot/src/test/java/org/apache/camel/itest/springboot/CamelAvroTest.java
@@ -0,0 +1,47 @@
+/**
+ * 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;
+
+import org.apache.camel.itest.springboot.util.ArquillianPackager;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.shrinkwrap.api.Archive;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+
+@RunWith(Arquillian.class)
+public class CamelAvroTest extends AbstractSpringBootTestSupport {
+
+ @Deployment
+ public static Archive<?> createSpringBootPackage() throws Exception {
+ return ArquillianPackager.springBootPackage(createTestConfig());
+ }
+
+ public static ITestConfig createTestConfig() {
+ return new ITestConfigBuilder()
+ .module(inferModuleName(CamelAvroTest.class))
+ .build();
+ }
+
+ @Test
+ public void moduleTests() throws Exception {
+ this.runDataformatTest(config);
+ this.runModuleUnitTestsIfEnabled(config);
+ }
+
+}

Search Discussions

Discussion Posts

Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 1 of 9 | next ›
Discussion Overview
groupcommits @
categoriescamel
postedJun 15, '16 at 1:44p
activeJun 15, '16 at 1:44p
posts9
users1
websitecamel.apache.org

1 user in discussion

Davsclaus: 9 posts

People

Translate

site design / logo © 2017 Grokbase