Repository: camel Updated Branches: refs/heads/master d043c7d0a -> 68bd833a6
ClusteredRouteController: use spring-boot to spin up the boostrap node Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/68bd833a Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/68bd833a Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/68bd833a Branch: refs/heads/master Commit: 68bd833a6ee330d48ee2f5d703ef2f9f1728d23d Parents: d043c7d Author: lburgazzoli <lburgazz...@gmail.com> Authored: Sat Aug 12 09:59:28 2017 +0200 Committer: lburgazzoli <lburgazz...@gmail.com> Committed: Sat Aug 12 09:59:28 2017 +0200 ---------------------------------------------------------------------- .../cluster-bootstrap/pom.xml | 29 ++++--------- .../examples/cluster/ClusterBootstrap.java | 31 ++++++-------- .../cluster/ClusterBootstrapConfiguration.java | 44 ++++++++++++++++++++ .../src/main/resources/application.properties | 7 ++++ .../src/main/resources/log4j2.xml | 18 -------- .../readme.adoc | 2 +- 6 files changed, 74 insertions(+), 57 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/68bd833a/examples/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/pom.xml ---------------------------------------------------------------------- diff --git a/examples/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/pom.xml b/examples/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/pom.xml index f86fb3b..ce89de4 100644 --- a/examples/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/pom.xml +++ b/examples/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/pom.xml @@ -35,41 +35,30 @@ <dependencies> <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter</artifactId> + <version>${spring-boot-version}</version> + </dependency> + <dependency> <groupId>io.atomix</groupId> <artifactId>atomix-all</artifactId> <version>${atomix-version}</version> </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-api</artifactId> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-core</artifactId> - </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-slf4j-impl</artifactId> - </dependency> </dependencies> <build> <plugins> <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>exec-maven-plugin</artifactId> - <version>1.6.0</version> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + <version>${spring-boot-version}</version> <executions> <execution> <goals> - <goal>java</goal> + <goal>repackage</goal> </goals> </execution> </executions> - <configuration> - <includeProjectDependencies>true</includeProjectDependencies> - <mainClass>org.apache.camel.examples.cluster.ClusterBootstrap</mainClass> - </configuration> </plugin> </plugins> </build> http://git-wip-us.apache.org/repos/asf/camel/blob/68bd833a/examples/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/java/org/apache/camel/examples/cluster/ClusterBootstrap.java ---------------------------------------------------------------------- diff --git a/examples/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/java/org/apache/camel/examples/cluster/ClusterBootstrap.java b/examples/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/java/org/apache/camel/examples/cluster/ClusterBootstrap.java index 1115524..3f98fed 100644 --- a/examples/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/java/org/apache/camel/examples/cluster/ClusterBootstrap.java +++ b/examples/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/java/org/apache/camel/examples/cluster/ClusterBootstrap.java @@ -16,26 +16,21 @@ */ package org.apache.camel.examples.cluster; -import io.atomix.AtomixReplica; -import io.atomix.catalyst.transport.Address; -import io.atomix.catalyst.transport.netty.NettyTransport; -import io.atomix.copycat.server.storage.Storage; -import io.atomix.copycat.server.storage.StorageLevel; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; -public final class ClusterBootstrap { - private ClusterBootstrap() { - } +//CHECKSTYLE:OFF +/** + * A sample Spring Boot application that starts the Atomix boostsrap node. + */ +@SpringBootApplication +public class ClusterBootstrap { + /** + * A main method to start this application. + */ public static void main(String[] args) { - String address = System.getProperty("cluster.address", "127.0.0.1:8700"); - - AtomixReplica.builder(new Address(address)) - .withTransport(new NettyTransport()) - .withStorage(Storage.builder() - .withStorageLevel(StorageLevel.MEMORY) - .build()) - .build() - .bootstrap() - .join(); + SpringApplication.run(ClusterBootstrap.class, args); } } +//CHECKSTYLE:ON \ No newline at end of file http://git-wip-us.apache.org/repos/asf/camel/blob/68bd833a/examples/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/java/org/apache/camel/examples/cluster/ClusterBootstrapConfiguration.java ---------------------------------------------------------------------- diff --git a/examples/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/java/org/apache/camel/examples/cluster/ClusterBootstrapConfiguration.java b/examples/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/java/org/apache/camel/examples/cluster/ClusterBootstrapConfiguration.java new file mode 100644 index 0000000..9e80a95 --- /dev/null +++ b/examples/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/java/org/apache/camel/examples/cluster/ClusterBootstrapConfiguration.java @@ -0,0 +1,44 @@ +/** + * 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.examples.cluster; + +import io.atomix.AtomixReplica; +import io.atomix.catalyst.transport.Address; +import io.atomix.catalyst.transport.netty.NettyTransport; +import io.atomix.copycat.server.storage.Storage; +import io.atomix.copycat.server.storage.StorageLevel; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class ClusterBootstrapConfiguration { + @Value("${cluster.address}") + private String address; + + @Bean(destroyMethod = "shutdown") + public AtomixReplica atomix() { + return AtomixReplica.builder(new Address(address)) + .withTransport(new NettyTransport()) + .withStorage(Storage.builder() + .withStorageLevel(StorageLevel.MEMORY) + .build()) + .build() + .bootstrap() + .join(); + } +} http://git-wip-us.apache.org/repos/asf/camel/blob/68bd833a/examples/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/resources/application.properties ---------------------------------------------------------------------- diff --git a/examples/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/resources/application.properties b/examples/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/resources/application.properties new file mode 100644 index 0000000..1b4b220 --- /dev/null +++ b/examples/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/resources/application.properties @@ -0,0 +1,7 @@ + +debug = false + +logging.level.org.springframework = INFO +logging.level.io.atomix = DEBUG + +cluster.address = 127.0.0.1:8700 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/camel/blob/68bd833a/examples/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/resources/log4j2.xml ---------------------------------------------------------------------- diff --git a/examples/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/resources/log4j2.xml b/examples/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/resources/log4j2.xml deleted file mode 100644 index 06e8664..0000000 --- a/examples/camel-example-spring-boot-clustered-route-controller/cluster-bootstrap/src/main/resources/log4j2.xml +++ /dev/null @@ -1,18 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Configuration status="INFO"> - <Appenders> - <Console name="Console" target="SYSTEM_OUT"> - <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" /> - </Console> - <File name="File" fileName="target/cluster-bootstrap.log" immediateFlush="false" append="false"> - <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> - </File> - </Appenders> - <Loggers> - <Logger name="io.atomix" level="DEBUG"/> - - <Root level="INFO"> - <AppenderRef ref="Console" /> - </Root> - </Loggers> -</Configuration> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/camel/blob/68bd833a/examples/camel-example-spring-boot-clustered-route-controller/readme.adoc ---------------------------------------------------------------------- diff --git a/examples/camel-example-spring-boot-clustered-route-controller/readme.adoc b/examples/camel-example-spring-boot-clustered-route-controller/readme.adoc index 38cc96f..aff5405 100644 --- a/examples/camel-example-spring-boot-clustered-route-controller/readme.adoc +++ b/examples/camel-example-spring-boot-clustered-route-controller/readme.adoc @@ -10,7 +10,7 @@ This example shows how to work with a simple Apache Camel application using Spri 2. in a shell, run the cluster node + - mvn -pl cluster-bootstrap exec:java + mvn -pl cluster-bootstrap spring-boot:run 3. in a separate shell, run the first camel node +