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 2017/05/25 11:58:27 UTC
[2/2] camel git commit: CAMEL-11311: Spring Boot with external
ActiveMQ broker.
CAMEL-11311: Spring Boot with external ActiveMQ broker.
Showing problems using SB autowiring of Amq ConnecionFactory
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/9e611463
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/9e611463
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/9e611463
Branch: refs/heads/master
Commit: 9e611463f2c6c44a3f9112842f07de95f800a62c
Parents: a055cd1
Author: Preben Asmussen <pr...@gmail.com>
Authored: Mon May 22 22:00:47 2017 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu May 25 13:57:51 2017 +0200
----------------------------------------------------------------------
examples/camel-example-spring-boot-amq/pom.xml | 131 +++++++++++++++++++
.../camel-example-spring-boot-amq/readme.adoc | 23 ++++
.../java/sample/camel/SampleAmqApplication.java | 32 +++++
.../sample/camel/SampleAutowiredAmqRoute.java | 35 +++++
.../src/main/resources/application.properties | 17 +++
.../sample/camel/SampleAmqApplicationTests.java | 43 ++++++
examples/pom.xml | 1 +
7 files changed, 282 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/9e611463/examples/camel-example-spring-boot-amq/pom.xml
----------------------------------------------------------------------
diff --git a/examples/camel-example-spring-boot-amq/pom.xml b/examples/camel-example-spring-boot-amq/pom.xml
new file mode 100644
index 0000000..227b49b
--- /dev/null
+++ b/examples/camel-example-spring-boot-amq/pom.xml
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor
+ license agreements. See the NOTICE file distributed with this work for additional
+ information regarding copyright ownership. The ASF licenses this file to
+ You under the Apache License, Version 2.0 (the "License"); you may not use
+ this file except in compliance with the License. You may obtain a copy of
+ the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
+ by applicable law or agreed to in writing, software distributed under the
+ License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+ OF ANY KIND, either express or implied. See the License for the specific
+ language governing permissions and limitations under the License. -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>examples</artifactId>
+ <version>2.20.0-SNAPSHOT</version>
+ </parent>
+
+ <name>Camel :: Example :: Spring Boot</name>
+ <description>An example showing how to work with Camel, ActiveMq and Spring Boot</description>
+
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+ <spring.boot-version>${spring-boot-version}</spring.boot-version>
+ </properties>
+ <dependencyManagement>
+ <dependencies>
+ <!-- Spring Boot BOM -->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-dependencies</artifactId>
+ <version>${spring.boot-version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ <!-- Camel BOM -->
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-spring-boot-dependencies</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+ <dependencies>
+ <!-- activemq -->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-activemq</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.activemq</groupId>
+ <artifactId>activemq-broker</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <!-- Camel -->
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-spring-boot-starter</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.activemq</groupId>
+ <artifactId>activemq-camel</artifactId>
+ <!-- version>5.14.0</version-->
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.activemq</groupId>
+ <artifactId>activemq-broker</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <!-- test -->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-test</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-test-spring</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-maven-plugin</artifactId>
+ <version>${spring-boot-version}</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>repackage</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>jdk9-build</id>
+ <activation>
+ <jdk>9</jdk>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <argLine>--add-modules java.xml.bind --add-opens
+ java.base/java.lang=ALL-UNNAMED</argLine>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+
+ <artifactId>camel-example-spring-boot-amq</artifactId>
+</project>
http://git-wip-us.apache.org/repos/asf/camel/blob/9e611463/examples/camel-example-spring-boot-amq/readme.adoc
----------------------------------------------------------------------
diff --git a/examples/camel-example-spring-boot-amq/readme.adoc b/examples/camel-example-spring-boot-amq/readme.adoc
new file mode 100644
index 0000000..c3634ad
--- /dev/null
+++ b/examples/camel-example-spring-boot-amq/readme.adoc
@@ -0,0 +1,23 @@
+# Camel Example Spring Boot and ActiveMQ
+
+This example shows how to work with a simple Apache Camel application using Spring Boot and Apache ActiveMQ starter
+
+##prerequisites
+A running Apache ActiveMQ instance with openwire transportConnector opened on port 1234
+
+The port is also configured in application.properties as spring.activemq.broker-url
+
+## Using Camel components
+
+Apache Camel provides 200+ components which you can use to integrate and route messages between many systems
+and data formats. To use any of these Camel components, add the component as a dependency to your project.
+
+## How to run
+
+You can run this example using
+
+ mvn spring-boot:run
+
+## More information
+
+You can find more information about Apache Camel at the website: http://camel.apache.org/
http://git-wip-us.apache.org/repos/asf/camel/blob/9e611463/examples/camel-example-spring-boot-amq/src/main/java/sample/camel/SampleAmqApplication.java
----------------------------------------------------------------------
diff --git a/examples/camel-example-spring-boot-amq/src/main/java/sample/camel/SampleAmqApplication.java b/examples/camel-example-spring-boot-amq/src/main/java/sample/camel/SampleAmqApplication.java
new file mode 100644
index 0000000..2442c2f
--- /dev/null
+++ b/examples/camel-example-spring-boot-amq/src/main/java/sample/camel/SampleAmqApplication.java
@@ -0,0 +1,32 @@
+/**
+ * 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 sample.camel;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+//CHECKSTYLE:OFF
+@SpringBootApplication
+@EnableAutoConfiguration
+public class SampleAmqApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(SampleAmqApplication.class, args);
+ }
+}
+// CHECKSTYLE:ON
http://git-wip-us.apache.org/repos/asf/camel/blob/9e611463/examples/camel-example-spring-boot-amq/src/main/java/sample/camel/SampleAutowiredAmqRoute.java
----------------------------------------------------------------------
diff --git a/examples/camel-example-spring-boot-amq/src/main/java/sample/camel/SampleAutowiredAmqRoute.java b/examples/camel-example-spring-boot-amq/src/main/java/sample/camel/SampleAutowiredAmqRoute.java
new file mode 100644
index 0000000..5746a60
--- /dev/null
+++ b/examples/camel-example-spring-boot-amq/src/main/java/sample/camel/SampleAutowiredAmqRoute.java
@@ -0,0 +1,35 @@
+/**
+ * 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 sample.camel;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.springframework.stereotype.Component;
+
+@Component
+public class SampleAutowiredAmqRoute extends RouteBuilder {
+
+ @Override
+ public void configure() throws Exception {
+ from("activemq:foo")
+ .to("log:sample");
+
+ from("timer:bar")
+ .setBody(constant("hello from camel"))
+ .to("activemq:foo");
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/9e611463/examples/camel-example-spring-boot-amq/src/main/resources/application.properties
----------------------------------------------------------------------
diff --git a/examples/camel-example-spring-boot-amq/src/main/resources/application.properties b/examples/camel-example-spring-boot-amq/src/main/resources/application.properties
new file mode 100644
index 0000000..6aafea1
--- /dev/null
+++ b/examples/camel-example-spring-boot-amq/src/main/resources/application.properties
@@ -0,0 +1,17 @@
+## ---------------------------------------------------------------------------
+## 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.
+## ---------------------------------------------------------------------------
+spring.activemq.broker-url=tcp://localhost:1234
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/9e611463/examples/camel-example-spring-boot-amq/src/test/java/sample/camel/SampleAmqApplicationTests.java
----------------------------------------------------------------------
diff --git a/examples/camel-example-spring-boot-amq/src/test/java/sample/camel/SampleAmqApplicationTests.java b/examples/camel-example-spring-boot-amq/src/test/java/sample/camel/SampleAmqApplicationTests.java
new file mode 100644
index 0000000..b5cd520
--- /dev/null
+++ b/examples/camel-example-spring-boot-amq/src/test/java/sample/camel/SampleAmqApplicationTests.java
@@ -0,0 +1,43 @@
+/**
+ * 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 sample.camel;
+
+import java.util.concurrent.TimeUnit;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.builder.NotifyBuilder;
+import org.apache.camel.test.spring.CamelSpringBootRunner;
+import org.junit.Ignore;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import static org.junit.Assert.assertTrue;
+
+@RunWith(CamelSpringBootRunner.class)
+@SpringBootTest(classes = SampleAmqApplication.class)
+public class SampleAmqApplicationTests {
+ @Autowired
+ private CamelContext camelContext;
+
+ @Ignore("Requires a running activemq with openwire port 1234")
+ public void shouldProduceMessages() throws Exception {
+ NotifyBuilder notify = new NotifyBuilder(camelContext).whenDone(1).create();
+
+ assertTrue(notify.matches(10, TimeUnit.SECONDS));
+ }
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/9e611463/examples/pom.xml
----------------------------------------------------------------------
diff --git a/examples/pom.xml b/examples/pom.xml
index 4ed89df..9701d02 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -94,6 +94,7 @@
<module>camel-example-splunk</module>
<module>camel-example-spring</module>
<module>camel-example-spring-boot</module>
+ <module>camel-example-spring-boot-amq</module>
<module>camel-example-spring-boot-geocoder</module>
<module>camel-example-spring-boot-live-reload</module>
<module>camel-example-spring-boot-metrics</module>