This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-examples.git
The following commit(s) were added to refs/heads/master by this push: new 74b746d CAMEL-16012: Remove prefix 04 (#37) 74b746d is described below commit 74b746dc51ee2ff979ec83eba97cd485ec29cf5f Author: metters <mett...@users.noreply.github.com> AuthorDate: Tue Feb 23 06:25:14 2021 +0100 CAMEL-16012: Remove prefix 04 (#37) * [CAMEL-16012] Remove prefix * [CAMEL-16012] Remove prefix * [CAMEL-16012] Fix README.adoc * [CAMEL-16012] Improve README.adoc * [CAMEL-16012] Remove prefix * [CAMEL-16012] Remove prefix * [CAMEL-16012] Fix Sonar issues * [CAMEL-16012] Remove prefix * [CAMEL-16012] Remove prefix * [CAMEL-16012] Remove prefix * [CAMEL-16012] Fix Sonar issues * [CAMEL-16012] Remove prefix * [CAMEL-16012] Edit README.adoc * [CAMEL-16012] Remove prefix * [CAMEL-16012] Edit pom.xml * [CAMEL-16012] Edit README.adoc * [CAMEL-16012] Fix some sonar issues * [CAMEL-16012] Remove prefix * [CAMEL-16012] Delete duplicate README.md * [CAMEL-16012] Edit README.adoc * [CAMEL-16012] Remove prefix * [CAMEL-16012] Fix some sonar issues * [CAMEL-16012] Edit README.adoc * [CAMEL-16012] Improve README.adoc * [CAMEL-16012] Improve README.adoc * [CAMEL-16012] Remove prefix Co-authored-by: Matthias Streidel <matthias.strei...@senacor.com> --- examples/README.adoc | 98 ++-------------- .../example/jmstofile/CamelJmsToFileExample.java | 81 -------------- .../example/kafka/MessagePublisherClient.java | 119 -------------------- examples/camel-example-loadbalancing/README.md | 53 --------- .../README.adoc | 0 .../pom.xml | 0 .../example/kubernetes/fmp/HazelcastRoute.java | 0 .../resources/META-INF/spring/camel-context.xml | 0 .../resources/fabric8/hazelcast-deployment.yaml | 0 .../main/resources/fabric8/hazelcast-service.yaml | 0 .../src/main/resources/log4j.properties | 0 .../{camel-example-java8 => java8}/README.adoc | 13 ++- examples/{camel-example-java8 => java8}/pom.xml | 0 .../apache/camel/example/java8/MyApplication.java | 0 .../src/main/resources/log4j2.properties | 0 examples/{camel-example-jdbc => jdbc}/README.adoc | 8 +- examples/{camel-example-jdbc => jdbc}/pom.xml | 0 .../apache/camel/example/jdbc/RecordProcessor.java | 0 .../src/main/resources/META-INF/LICENSE.txt | 0 .../src/main/resources/META-INF/NOTICE.txt | 0 .../resources/META-INF/spring/camel-context.xml | 0 .../src/main/resources/create-derby.sql | 0 .../src/main/resources/log4j2.properties | 0 .../README.adoc | 0 .../{camel-example-jms-file => jms-file}/pom.xml | 0 .../example/jmstofile/CamelJmsToFileExample.java | 87 +++++++++++++++ .../src/main/resources/META-INF/LICENSE.txt | 0 .../src/main/resources/META-INF/NOTICE.txt | 0 .../src/main/resources/log4j2.properties | 0 examples/{camel-example-jmx => jmx}/README.adoc | 0 examples/{camel-example-jmx => jmx}/pom.xml | 0 .../apache/camel/example/jmx/ISimpleMXBean.java | 0 .../apache/camel/example/jmx/MyRouteBuilder.java | 0 .../org/apache/camel/example/jmx/SimpleBean.java | 0 .../src/main/resources/META-INF/LICENSE.txt | 0 .../src/main/resources/META-INF/NOTICE.txt | 0 .../resources/META-INF/spring/camel-context.xml | 0 .../src/main/resources/log4j2.properties | 0 examples/{camel-example-jooq => jooq}/README.adoc | 0 examples/{camel-example-jooq => jooq}/pom.xml | 0 .../camel/examples/jooq/BookStoreRecordBean.java | 0 .../resources/META-INF/spring/camel-context.xml | 0 .../main/resources/META-INF/spring/jooq-spring.xml | 0 .../src/main/resources/config.properties | 0 .../src/main/resources/db-hsql.sql | 0 .../src/main/resources/log4j2.properties | 0 .../{camel-example-kafka => kafka}/README.adoc | 0 examples/{camel-example-kafka => kafka}/pom.xml | 0 .../camel/example/kafka/MessageConsumerClient.java | 47 ++++---- .../example/kafka/MessagePublisherClient.java | 123 +++++++++++++++++++++ .../camel/example/kafka/StringPartitioner.java | 2 + .../src/main/resources/META-INF/LICENSE.txt | 0 .../src/main/resources/META-INF/NOTICE.txt | 0 .../src/main/resources/application.properties | 0 .../src/main/resources/log4j2.properties | 0 .../{camel-example-kamelet => kamelet}/README.adoc | 0 .../{camel-example-kamelet => kamelet}/pom.xml | 0 .../org/apache/camel/example/MyApplication.java | 0 .../org/apache/camel/example/MyRouteTemplates.java | 0 .../java/org/apache/camel/example/MyRoutes.java | 0 .../src/main/resources/application.properties | 0 .../src/main/resources/logback.xml | 0 .../{camel-example-kotlin => kotlin}/README.adoc | 4 +- examples/{camel-example-kotlin => kotlin}/pom.xml | 1 - .../kotlin/org/apache/camel/example/MainApp.kt | 0 .../org/apache/camel/example/MyRouteBuilder.kt | 0 .../src/main/resources/log4j2.properties | 0 .../README.adoc | 31 +++--- .../pom.xml | 0 .../org/apache/camel/example/model/Report.java | 0 .../apache/camel/example/service/Generator.java | 4 +- .../apache/camel/example/service/Reporting.java | 0 .../src/main/resources/META-INF/LICENSE.txt | 0 .../src/main/resources/META-INF/NOTICE.txt | 0 .../META-INF/spring/camel-context-loadbalancer.xml | 0 .../META-INF/spring/camel-context-mina1.xml | 0 .../META-INF/spring/camel-context-mina2.xml | 0 .../src/main/resources/log4j2.properties | 0 .../README.adoc | 21 +++- .../pom.xml | 0 .../BankResponseAggregationStrategy.java | 0 .../java/org/apache/camel/loanbroker/Client.java | 0 .../camel/loanbroker/CreditScoreProcessor.java | 0 .../org/apache/camel/loanbroker/LoanBroker.java | 0 .../org/apache/camel/loanbroker/LoanBrokerWS.java | 0 .../apache/camel/loanbroker/ReplyProcessor.java | 0 .../org/apache/camel/loanbroker/bank/Bank.java | 9 +- .../apache/camel/loanbroker/bank/BankQuote.java | 0 .../org/apache/camel/loanbroker/bank/BankWS.java | 0 .../camel/loanbroker/credit/CreditAgency.java | 10 +- .../camel/loanbroker/credit/CreditAgencyWS.java | 0 .../src/main/resources/META-INF/LICENSE.txt | 0 .../src/main/resources/META-INF/NOTICE.txt | 0 .../META-INF/spring/webServiceCamelContext.xml | 0 .../src/main/resources/loanbroker.properties | 0 .../src/main/resources/log4j2.properties | 0 .../src/main/resources/logging.properties | 0 .../apache/camel/loanbroker/LoanBrokerWSTest.java | 0 .../src/test/resources/log4j2.properties | 0 .../README.adoc | 27 ++++- .../pom.xml | 0 .../BankResponseAggregationStrategy.java | 0 .../java/org/apache/camel/loanbroker/Client.java | 0 .../org/apache/camel/loanbroker/Constants.java | 0 .../camel/loanbroker/CreditAgencyProcessor.java | 0 .../org/apache/camel/loanbroker/LoanBroker.java | 0 .../apache/camel/loanbroker/LoanBrokerRoute.java | 0 .../apache/camel/loanbroker/ReplyProcessor.java | 0 .../camel/loanbroker/bank/BankProcessor.java | 0 .../src/main/resources/META-INF/LICENSE.txt | 0 .../src/main/resources/META-INF/NOTICE.txt | 0 .../src/main/resources/META-INF/spring/client.xml | 0 .../src/main/resources/META-INF/spring/server.xml | 0 .../src/main/resources/loanbroker.properties | 0 .../src/main/resources/log4j2.properties | 0 .../src/main/resources/logging.properties | 0 .../camel/loanbroker/LoanBrokerQueueTest.java | 0 .../src/test/resources/log4j2.properties | 0 examples/pom.xml | 24 ++-- 119 files changed, 343 insertions(+), 419 deletions(-) diff --git a/examples/README.adoc b/examples/README.adoc index 44f0ed6..8b17056 100644 --- a/examples/README.adoc +++ b/examples/README.adoc @@ -11,7 +11,7 @@ View the individual example READMEs for details. == Examples // examples: START -Number of Examples: 87 (0 deprecated) +Number of Examples: 50 (0 deprecated) [width="100%",cols="4,2,4",options="header"] |=== @@ -19,31 +19,7 @@ Number of Examples: 87 (0 deprecated) | link:camel-example-micrometer/README.adoc[Micrometer] (camel-example-micrometer) | Advanced | An example showing how to work with Camel, Spring Java Config and Micrometer monitoring -| link:any23/README.adoc[Any23 example] (camel-example-any23) | Beginner | An example that uses the Any23 dataformat - -| link:as2/README.adoc[AS2 Example] (camel-example-as2) | Beginner | An example which demonstrates the use of the Camel AS2 component - -| link:azure-storage-blob/README.adoc[Azure Storage Blob] (camel-example-azure-storage-blob) | Beginner | Azure Storage Blob example - -| link:basic/README.adoc[Basic] (camel-example-basic) | Beginner | Basic example - -| link:cdi/README.adoc[CDI] (camel-example-cdi) | Beginner | An example showing how to work with Camel and CDI for dependency injection - -| link:cdi-properties/README.adoc[CDI Properties] (camel-example-cdi-properties) | Beginner | DeltaSpike configuration properties CDI example - -| link:cdi-xml/README.adoc[CDI Camel XML] (camel-example-cdi-xml) | Beginner | CDI and Camel XML example - -| link:console/README.adoc[Console] (camel-example-console) | Beginner | An example that reads input from the console - -| link:csimple/readme.adoc[Csimple] (camel-example-csimple) | Beginner | Shows using compiled simple language - -| link:csimple-joor/readme.adoc[Csimple Joor] (camel-example-csimple-joor) | Beginner | Shows using compiled simple language with jOOR compiler - -| link:ftp/README[FTP] (camel-example-ftp) | Beginner | An example for showing Camel FTP integration - -| link:camel-example-java8/README.adoc[Java8] (camel-example-java8) | Beginner | An example for showing Camel DSL for Java 8 - -| link:camel-example-kamelet/README.adoc[Kamelet] (camel-example-kamelet) | Beginner | How to use Kamelets +| link:kamelet/README.adoc[Kamelet] (camel-example-kamelet) | Beginner | How to use Kamelets | link:camel-example-main/readme.adoc[Main] (camel-example-main) | Beginner | An example for showing standalone Camel @@ -80,49 +56,19 @@ Number of Examples: 87 (0 deprecated) | link:camel-example-spring-xquery/README.adoc[Spring XQuery] (camel-example-spring-xquery) | Beginner | An example using Spring XML to transform a message using XQuery -| link:cassandra-kubernetes/README.adoc[Cassandra Kubernetes] (camel-example-cassandra-kubernetes) | Cloud | An example with Camel and Cassandra running on Kubernetes - -| link:cdi-aws-s3/README.adoc[CDI AWS S3] (camel-example-cdi-aws-s3) | Cloud | AWS S3 CDI example - -| link:cdi-kubernetes/README.adoc[CDI Kubernetes] (camel-example-cdi-kubernetes) | Cloud | An example running Camel CDI on Kubernetes - -| link:cdi-minio/README.adoc[CDI Minio] (camel-example-cdi-minio) | Cloud | Minio CDI example - -| link:camel-example-hazelcast-kubernetes/README.adoc[Hazelcast Kubernetes] (camel-example-hazelcast-kubernetes) | Cloud | An example with Camel and Hazelcast running on Kubernetes - | link:camel-example-main-endpointdsl-aws2/readme.md[Main Endpointdsl Aws2] (camel-example-main-endpointdsl-aws2) | Cloud | An example for showing standalone Camel with multiple AWS2 components -| link:cdi-cassandraql/README.adoc[CDI Cassandra] (camel-example-cdi-cassandraql) | Database | Cassandraql CDI example - -| link:debezium/README.adoc[Debezium] (camel-example-debezium) | Database | An example for Debezium Component - -| link:debezium-eventhubs-blob/README.adoc[Debezium Eventhubs Blob] (camel-example-debezium-eventhubs-blob) | Database | An example for Debezium Component with Azure Event Hubs and Azure Storage Blob +| link:jdbc/README.adoc[JDBC] (camel-example-jdbc) | Database | An example for showing Camel using JDBC component -| link:camel-example-jdbc/README.adoc[JDBC] (camel-example-jdbc) | Database | An example for showing Camel using JDBC component - -| link:camel-example-jooq/README.adoc[JOOQ] (camel-example-jooq) | Database | An example for showing Camel using JOOQ component +| link:jooq/README.adoc[JOOQ] (camel-example-jooq) | Database | An example for showing Camel using JOOQ component | link:camel-example-mongodb/README.adoc[Mongodb] (camel-example-mongodb) | Database | An example that uses Camel MongoDB component -| link:aggregate/README.adoc[Aggregate] (camel-example-aggregate) | EIP | Demonstrates the persistent support for the Camel aggregator - -| link:aggregate-dist/README.adoc[Aggregate Dist] (camel-example-aggregate-dist) | EIP | How to use the JdbcAggregationRepository in a distributed environment - -| link:artemis/README.adoc[Widget Gadget using Apache ActiveMQ Artemis] (camel-example-artemis) | EIP | The widget and gadget example from the EIP book using Apache ActiveMQ Artemis - -| link:bigxml-split/README.adoc[Bigxml Split] (camel-example-bigxml-split) | EIP | How to deal with big XML files in Camel - -| link:billboard-aggregate/README.adoc[Billboard Aggr] (camel-example-billboard-aggr) | EIP | Billboard aggregation example +| link:loadbalancing/readme.md[Load Balancing] (camel-example-loadbalancing) | EIP | An example that demonstrate load balancing messaging with mina servers (TCP/IP) -| link:cafe/README.adoc[Cafe] (camel-example-cafe) | EIP | A cafe example showing how to work with Camel +| link:loan-broker-cxf/README.adoc[Loan Broker WebService] (camel-example-loan-broker-cxf) | EIP | An example that shows the EIP's loan broker demo -| link:cafe-endpointdsl/README.adoc[Cafe Endpointdsl] (camel-example-cafe-endpointdsl) | EIP | A cafe example showing how to work with Camel and the Endpoint DSL - -| link:camel-example-loadbalancing/readme.md[Load Balancing] (camel-example-loadbalancing) | EIP | An example that demonstrate load balancing messaging with mina servers (TCP/IP) - -| link:camel-example-loan-broker-cxf/README.adoc[Loan Broker WebService] (camel-example-loan-broker-cxf) | EIP | An example that shows the EIP's loan broker demo - -| link:camel-example-loan-broker-jms/README.adoc[Loan Broker JMS] (camel-example-loan-broker-jms) | EIP | An example that shows the EIP's loan broker demo using JMS +| link:loan-broker-jms/README.adoc[Loan Broker JMS] (camel-example-loan-broker-jms) | EIP | An example that shows the EIP's loan broker demo using JMS | link:camel-example-route-throttling/readme.md[Route Throttling] (camel-example-route-throttling) | EIP | A client-server example using JMS transport where we on the server side can throttle the Camel route dynamically based on the flow of messages @@ -134,8 +80,6 @@ Number of Examples: 87 (0 deprecated) | link:camel-example-widget-gadget-xml/README.adoc[Widget Gadget XML] (camel-example-widget-gadget-xml) | EIP | The widget and gadget example from the EIP book -| link:fhir/README.adoc[FHIR] (camel-example-fhir) | Health Care | An example running Camel FHIR using Camel CDI - | link:camel-example-transformer-cdi/README.adoc[Transformer CDI] (camel-example-transformer-cdi) | Input/Output Type Contract | An example demonstrating declarative transformation along data type declaration using Java DSL and CDI @@ -143,25 +87,15 @@ Number of Examples: 87 (0 deprecated) Spring DSL -| link:cdi-metrics/README.adoc[CDI Metrics] (camel-example-cdi-metrics) | Management and Monitoring | Dropwizard Metrics CDI example - -| link:flight-recorder/README.adoc[Flight Recorder] (camel-example-flight-recorder) | Management and Monitoring | Diagnosing Camel with Java Flight Recorder - -| link:camel-example-jmx/README.adoc[JMX] (camel-example-jmx) | Management and Monitoring | An example showing how to work with Camel and JMX +| link:jmx/README.adoc[JMX] (camel-example-jmx) | Management and Monitoring | An example showing how to work with Camel and JMX | link:camel-example-management/README.adoc[Management] (camel-example-management) | Management and Monitoring | An example for showing Camel JMX management | link:camel-example-splunk/README.adoc[Splunk] (camel-example-splunk) | Management and Monitoring | An example using Splunk -| link:activemq-tomcat/README.adoc[ActiveMQ Tomcat] (camel-example-activemq-tomcat) | Messaging | An example using ActiveMQ Broker and Camel with Apache Tomcat - -| link:artemis-large-messages/README.adoc[Artemis Large Messages] (camel-example-artemis-large-messages) | Messaging | Demonstrates sending large messages (handles GBs in size) between Apache Camel and ActiveMQ Artemis in - streaming mode - +| link:jms-file/README.adoc[JMS-File] (camel-example-jms-file) | Messaging | An example that persists messages from JMS to files -| link:camel-example-jms-file/README.adoc[JMS-File] (camel-example-jms-file) | Messaging | An example that persists messages from JMS to files - -| link:camel-example-kafka/README.adoc[Kafka] (camel-example-kafka) | Messaging | An example for Kafka +| link:kafka/README.adoc[Kafka] (camel-example-kafka) | Messaging | An example for Kafka | link:camel-example-main-artemis/readme.adoc[Main Artemis] (camel-example-main-artemis) | Messaging | An example for showing standalone Camel with ActiveMQ Artemis @@ -171,12 +105,10 @@ Number of Examples: 87 (0 deprecated) | link:camel-example-vertx-kafka/README.adoc[Vertx Kafka] (camel-example-vertx-kafka) | Messaging | An example for Vertx Kafka -| link:camel-example-kotlin/README.adoc[Kotlin] (camel-example-kotlin) | Other Languages | A Camel route using Kotlin +| link:kotlin/README.adoc[Kotlin] (camel-example-kotlin) | Other Languages | A Camel route using Kotlin | link:camel-example-reactive-executor-vertx/readme.adoc[Reactive Executor Vertx] (camel-example-reactive-executor-vertx) | Reactive | An example for showing using VertX as reactive executor with standalone Camel -| link:cdi-rest-servlet/README.adoc[CDI Rest] (camel-example-cdi-rest-servlet) | Rest | Rest DSL using Servlet with CDI example - | link:camel-example-openapi-cdi/README.adoc[OpenApi CDI] (camel-example-openapi-cdi) | Rest | An example using REST DSL and OpenApi Java with CDI | link:camel-example-swagger-cdi/README.adoc[Swagger CDI] (camel-example-swagger-cdi) | Rest | An example using REST DSL and Swagger Java with CDI @@ -189,14 +121,6 @@ Number of Examples: 87 (0 deprecated) | link:camel-example-twitter-websocket/README.adoc[Twitter Websocket] (camel-example-twitter-websocket) | Social | An example that pushes new tweets to a web page using web-socket -| link:cdi-test/README.adoc[CDI Test] (camel-example-cdi-test) | Testing | An example illustrating Camel CDI testing features - -| link:cxf/README.adoc[CXF] (camel-example-cxf) | WebService | An example which demonstrates the use of the Camel CXF component - -| link:cxf-proxy/README.adoc[CXF Proxy] (camel-example-cxf-proxy) | WebService | An example which uses Camel to proxy a web service - -| link:cxf-tomcat/README.adoc[CXF Tomcat] (camel-example-cxf-tomcat) | WebService | An example using Camel CXF (code first) with Apache Tomcat - | link:camel-example-spring-ws/README.adoc[Spring WebService] (camel-example-spring-ws) | WebService | An example showing how to work with Camel and Spring Web Services |=== // examples: END diff --git a/examples/camel-example-jms-file/src/main/java/org/apache/camel/example/jmstofile/CamelJmsToFileExample.java b/examples/camel-example-jms-file/src/main/java/org/apache/camel/example/jmstofile/CamelJmsToFileExample.java deleted file mode 100644 index 4d949ff..0000000 --- a/examples/camel-example-jms-file/src/main/java/org/apache/camel/example/jmstofile/CamelJmsToFileExample.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.example.jmstofile; - -import javax.jms.ConnectionFactory; - -import org.apache.activemq.ActiveMQConnectionFactory; -import org.apache.camel.CamelContext; -import org.apache.camel.ProducerTemplate; -import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.component.jms.JmsComponent; -import org.apache.camel.impl.DefaultCamelContext; - -/** - * An example class for demonstrating some of the basics behind Camel. This - * example sends some text messages on to a JMS Queue, consumes them and - * persists them to disk - */ -public final class CamelJmsToFileExample { - - private CamelJmsToFileExample() { - } - - public static void main(String args[]) throws Exception { - // tag::e1[] - CamelContext context = new DefaultCamelContext(); - // end::e1[] - // Set up the ActiveMQ JMS Components - // tag::e2[] - ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false"); - // Note we can explicit name the component - context.addComponent("test-jms", JmsComponent.jmsComponentAutoAcknowledge(connectionFactory)); - // end::e2[] - // Add some configuration by hand ... - // tag::e3[] - context.addRoutes(new RouteBuilder() { - public void configure() { - from("test-jms:queue:test.queue").to("file://test"); - } - }); - // end::e3[] - // Camel template - a handy class for kicking off exchanges - // tag::e4[] - ProducerTemplate template = context.createProducerTemplate(); - // end::e4[] - // Now everything is set up - lets start the context - context.start(); - // Now send some test text to a component - for this case a JMS Queue - // The text get converted to JMS messages - and sent to the Queue - // test.queue - // The file component is listening for messages from the Queue - // test.queue, consumes - // them and stores them to disk. The content of each file will be the - // test we sent here. - // The listener on the file component gets notified when new files are - // found ... that's it! - // tag::e5[] - for (int i = 0; i < 10; i++) { - template.sendBody("test-jms:queue:test.queue", "Test Message: " + i); - } - // end::e5[] - - // wait a bit and then stop - Thread.sleep(1000); - context.stop(); - } -} diff --git a/examples/camel-example-kafka/src/main/java/org/apache/camel/example/kafka/MessagePublisherClient.java b/examples/camel-example-kafka/src/main/java/org/apache/camel/example/kafka/MessagePublisherClient.java deleted file mode 100644 index 62fcf4e..0000000 --- a/examples/camel-example-kafka/src/main/java/org/apache/camel/example/kafka/MessagePublisherClient.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.camel.example.kafka; - -import java.util.Calendar; -import java.util.HashMap; -import java.util.Map; - -import org.apache.camel.CamelContext; -import org.apache.camel.ProducerTemplate; -import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.builder.component.ComponentsBuilderFactory; -import org.apache.camel.component.kafka.KafkaComponent; -import org.apache.camel.component.kafka.KafkaConstants; -import org.apache.camel.impl.DefaultCamelContext; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public final class MessagePublisherClient { - - private static final Logger LOG = LoggerFactory.getLogger(MessagePublisherClient.class); - - private MessagePublisherClient() { } - - public static void main(String[] args) throws Exception { - - LOG.info("About to run Kafka-camel integration..."); - - String testKafkaMessage = "Test Message from MessagePublisherClient " + Calendar.getInstance().getTime(); - - CamelContext camelContext = new DefaultCamelContext(); - - // Add route to send messages to Kafka - - camelContext.addRoutes(new RouteBuilder() { - public void configure() { - camelContext.getPropertiesComponent().setLocation("classpath:application.properties"); - - // setup kafka component with the brokers - ComponentsBuilderFactory.kafka() - .brokers("{{kafka.host}}:{{kafka.port}}") - .register(camelContext, "kafka"); - - from("direct:kafkaStart").routeId("DirectToKafka") - .to("kafka:{{producer.topic}}").log("${headers}"); - - // Topic can be set in header as well. - - from("direct:kafkaStartNoTopic").routeId("kafkaStartNoTopic") - .to("kafka:dummy") - .log("${headers}"); - - // Use custom partitioner based on the key. - - from("direct:kafkaStartWithPartitioner").routeId("kafkaStartWithPartitioner") - .to("kafka:{{producer.topic}}?partitioner={{producer.partitioner}}") - .log("${headers}"); - - - // Takes input from the command line. - - from("stream:in").setHeader(KafkaConstants.PARTITION_KEY, simple("0")) - .setHeader(KafkaConstants.KEY, simple("1")).to("direct:kafkaStart"); - - } - - }); - - ProducerTemplate producerTemplate = camelContext.createProducerTemplate(); - camelContext.start(); - - Map<String, Object> headers = new HashMap<>(); - - headers.put(KafkaConstants.PARTITION_KEY, 0); - headers.put(KafkaConstants.KEY, "1"); - producerTemplate.sendBodyAndHeaders("direct:kafkaStart", testKafkaMessage, headers); - - // Send with topicName in header - - testKafkaMessage = "TOPIC " + testKafkaMessage; - headers.put(KafkaConstants.KEY, "2"); - headers.put(KafkaConstants.TOPIC, "TestLog"); - - producerTemplate.sendBodyAndHeaders("direct:kafkaStartNoTopic", testKafkaMessage, headers); - - testKafkaMessage = "PART 0 : " + testKafkaMessage; - Map<String, Object> newHeader = new HashMap<>(); - newHeader.put(KafkaConstants.KEY, "AB"); // This should go to partition 0 - - producerTemplate.sendBodyAndHeaders("direct:kafkaStartWithPartitioner", testKafkaMessage, newHeader); - - testKafkaMessage = "PART 1 : " + testKafkaMessage; - newHeader.put(KafkaConstants.KEY, "ABC"); // This should go to partition 1 - - producerTemplate.sendBodyAndHeaders("direct:kafkaStartWithPartitioner", testKafkaMessage, newHeader); - - LOG.info("Successfully published event to Kafka."); - System.out.println("Enter text on the line below : [Press Ctrl-C to exit.] "); - - Thread.sleep(5 * 60 * 1000); - - camelContext.stop(); - } - -} diff --git a/examples/camel-example-loadbalancing/README.md b/examples/camel-example-loadbalancing/README.md deleted file mode 100644 index c1ad691..0000000 --- a/examples/camel-example-loadbalancing/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# Load balancing with MINA Example - - -### Introduction - -This example shows how you can easily use the Camel-MINA component to design a solution -allowing for distributing message workload onto several servers. -These servers are simple TCP/IP servers created by the Apache MINA framework and run in -separate JVMs. The load balancer pattern of Camel which is used on top of them allows for -sending in Round Robin mode the messages created from a Camel Bean component -alternatively between each server running on localhost:9991 and localhost:9992. - -Within this demo every ten seconds, a Report object is created from the Camel load balancer server. -This object is sent by the Camel load balancer to a MINA server where the object is then serialized. -One of the two MINA servers (localhost:9991 and localhost:9992) receives the object and enriches -the message by setting the field reply of the Report object. The reply is sent back by the MINA -server to the client, which then logs the reply on the console. - -If any of the two MINA servers is not running, then the load balancer will automatic failover -to the next server. - -### Build - -To compile and install the project in your maven repo, execute the following -command on the root of the project - - mvn clean install - -### Run - -To run the example, then execute the following command in the respective folder: - ->mina1 - - mvn exec:java -Pmina1 - ->mina2 - - mvn exec:java -Pmina2 - ->loadbalancing - - mvn exec:java -Ploadbalancer - -### Help and contributions - -If you hit any problem using Camel or have some feedback, -then please [let us know](https://camel.apache.org/support.html). - -We also love contributors, -so [get involved](https://camel.apache.org/contributing.html) :-) - -The Camel riders! diff --git a/examples/camel-example-hazelcast-kubernetes/README.adoc b/examples/hazelcast-kubernetes/README.adoc similarity index 100% rename from examples/camel-example-hazelcast-kubernetes/README.adoc rename to examples/hazelcast-kubernetes/README.adoc diff --git a/examples/camel-example-hazelcast-kubernetes/pom.xml b/examples/hazelcast-kubernetes/pom.xml similarity index 100% rename from examples/camel-example-hazelcast-kubernetes/pom.xml rename to examples/hazelcast-kubernetes/pom.xml diff --git a/examples/camel-example-hazelcast-kubernetes/src/main/java/org/apache/camel/example/kubernetes/fmp/HazelcastRoute.java b/examples/hazelcast-kubernetes/src/main/java/org/apache/camel/example/kubernetes/fmp/HazelcastRoute.java similarity index 100% rename from examples/camel-example-hazelcast-kubernetes/src/main/java/org/apache/camel/example/kubernetes/fmp/HazelcastRoute.java rename to examples/hazelcast-kubernetes/src/main/java/org/apache/camel/example/kubernetes/fmp/HazelcastRoute.java diff --git a/examples/camel-example-hazelcast-kubernetes/src/main/resources/META-INF/spring/camel-context.xml b/examples/hazelcast-kubernetes/src/main/resources/META-INF/spring/camel-context.xml similarity index 100% rename from examples/camel-example-hazelcast-kubernetes/src/main/resources/META-INF/spring/camel-context.xml rename to examples/hazelcast-kubernetes/src/main/resources/META-INF/spring/camel-context.xml diff --git a/examples/camel-example-hazelcast-kubernetes/src/main/resources/fabric8/hazelcast-deployment.yaml b/examples/hazelcast-kubernetes/src/main/resources/fabric8/hazelcast-deployment.yaml similarity index 100% rename from examples/camel-example-hazelcast-kubernetes/src/main/resources/fabric8/hazelcast-deployment.yaml rename to examples/hazelcast-kubernetes/src/main/resources/fabric8/hazelcast-deployment.yaml diff --git a/examples/camel-example-hazelcast-kubernetes/src/main/resources/fabric8/hazelcast-service.yaml b/examples/hazelcast-kubernetes/src/main/resources/fabric8/hazelcast-service.yaml similarity index 100% rename from examples/camel-example-hazelcast-kubernetes/src/main/resources/fabric8/hazelcast-service.yaml rename to examples/hazelcast-kubernetes/src/main/resources/fabric8/hazelcast-service.yaml diff --git a/examples/camel-example-hazelcast-kubernetes/src/main/resources/log4j.properties b/examples/hazelcast-kubernetes/src/main/resources/log4j.properties similarity index 100% rename from examples/camel-example-hazelcast-kubernetes/src/main/resources/log4j.properties rename to examples/hazelcast-kubernetes/src/main/resources/log4j.properties diff --git a/examples/camel-example-java8/README.adoc b/examples/java8/README.adoc similarity index 78% rename from examples/camel-example-java8/README.adoc rename to examples/java8/README.adoc index 62b21f8..befeb50 100644 --- a/examples/camel-example-java8/README.adoc +++ b/examples/java8/README.adoc @@ -4,9 +4,18 @@ This example shows how to use Java 8 new features, such as lambda expressions and method references, in the definition of a Camel route. -=== How to run +=== Build -You can run this example using +You will need to compile this example first: + +[source,sh] +---- +$ mvn compile +---- + +=== Run + +To run the example execute [source,sh] ---- diff --git a/examples/camel-example-java8/pom.xml b/examples/java8/pom.xml similarity index 100% rename from examples/camel-example-java8/pom.xml rename to examples/java8/pom.xml diff --git a/examples/camel-example-java8/src/main/java/org/apache/camel/example/java8/MyApplication.java b/examples/java8/src/main/java/org/apache/camel/example/java8/MyApplication.java similarity index 100% rename from examples/camel-example-java8/src/main/java/org/apache/camel/example/java8/MyApplication.java rename to examples/java8/src/main/java/org/apache/camel/example/java8/MyApplication.java diff --git a/examples/camel-example-kafka/src/main/resources/log4j2.properties b/examples/java8/src/main/resources/log4j2.properties similarity index 100% rename from examples/camel-example-kafka/src/main/resources/log4j2.properties rename to examples/java8/src/main/resources/log4j2.properties diff --git a/examples/camel-example-jdbc/README.adoc b/examples/jdbc/README.adoc similarity index 92% rename from examples/camel-example-jdbc/README.adoc rename to examples/jdbc/README.adoc index fe53d7f..6a35821 100644 --- a/examples/camel-example-jdbc/README.adoc +++ b/examples/jdbc/README.adoc @@ -7,18 +7,18 @@ Apache Derby database. === Build -First compile this example: +You will need to compile this example first: [source,sh] ---- $ mvn compile ---- -=== Compile +=== Run -Now to run the example type +To run the example execute -[source,sh +[source,sh] ---- $ mvn camel:run ---- diff --git a/examples/camel-example-jdbc/pom.xml b/examples/jdbc/pom.xml similarity index 100% rename from examples/camel-example-jdbc/pom.xml rename to examples/jdbc/pom.xml diff --git a/examples/camel-example-jdbc/src/main/java/org/apache/camel/example/jdbc/RecordProcessor.java b/examples/jdbc/src/main/java/org/apache/camel/example/jdbc/RecordProcessor.java similarity index 100% rename from examples/camel-example-jdbc/src/main/java/org/apache/camel/example/jdbc/RecordProcessor.java rename to examples/jdbc/src/main/java/org/apache/camel/example/jdbc/RecordProcessor.java diff --git a/examples/camel-example-loan-broker-jms/src/main/resources/META-INF/LICENSE.txt b/examples/jdbc/src/main/resources/META-INF/LICENSE.txt similarity index 100% rename from examples/camel-example-loan-broker-jms/src/main/resources/META-INF/LICENSE.txt rename to examples/jdbc/src/main/resources/META-INF/LICENSE.txt diff --git a/examples/camel-example-loan-broker-jms/src/main/resources/META-INF/NOTICE.txt b/examples/jdbc/src/main/resources/META-INF/NOTICE.txt similarity index 100% rename from examples/camel-example-loan-broker-jms/src/main/resources/META-INF/NOTICE.txt rename to examples/jdbc/src/main/resources/META-INF/NOTICE.txt diff --git a/examples/camel-example-jdbc/src/main/resources/META-INF/spring/camel-context.xml b/examples/jdbc/src/main/resources/META-INF/spring/camel-context.xml similarity index 100% rename from examples/camel-example-jdbc/src/main/resources/META-INF/spring/camel-context.xml rename to examples/jdbc/src/main/resources/META-INF/spring/camel-context.xml diff --git a/examples/camel-example-jdbc/src/main/resources/create-derby.sql b/examples/jdbc/src/main/resources/create-derby.sql similarity index 100% rename from examples/camel-example-jdbc/src/main/resources/create-derby.sql rename to examples/jdbc/src/main/resources/create-derby.sql diff --git a/examples/camel-example-kotlin/src/main/resources/log4j2.properties b/examples/jdbc/src/main/resources/log4j2.properties similarity index 100% rename from examples/camel-example-kotlin/src/main/resources/log4j2.properties rename to examples/jdbc/src/main/resources/log4j2.properties diff --git a/examples/camel-example-jms-file/README.adoc b/examples/jms-file/README.adoc similarity index 100% rename from examples/camel-example-jms-file/README.adoc rename to examples/jms-file/README.adoc diff --git a/examples/camel-example-jms-file/pom.xml b/examples/jms-file/pom.xml similarity index 100% rename from examples/camel-example-jms-file/pom.xml rename to examples/jms-file/pom.xml diff --git a/examples/jms-file/src/main/java/org/apache/camel/example/jmstofile/CamelJmsToFileExample.java b/examples/jms-file/src/main/java/org/apache/camel/example/jmstofile/CamelJmsToFileExample.java new file mode 100644 index 0000000..5905810 --- /dev/null +++ b/examples/jms-file/src/main/java/org/apache/camel/example/jmstofile/CamelJmsToFileExample.java @@ -0,0 +1,87 @@ +/* + * 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.example.jmstofile; + +import org.apache.activemq.ActiveMQConnectionFactory; +import org.apache.camel.CamelContext; +import org.apache.camel.ProducerTemplate; +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.component.jms.JmsComponent; +import org.apache.camel.impl.DefaultCamelContext; + +import static java.util.Collections.singletonList; + +/** + * An example class for demonstrating some of the basics behind Camel. This + * example sends some text messages on to a JMS Queue, consumes them and + * persists them to disk + */ +public final class CamelJmsToFileExample { + + private CamelJmsToFileExample() { + } + + public static void main(String[] args) throws Exception { + // tag::e1[] + try (CamelContext context = new DefaultCamelContext()) { + // end::e1[] + // Set up the ActiveMQ JMS Components + // tag::e2[] + ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false"); + connectionFactory.setTrustAllPackages(false); + connectionFactory.setTrustedPackages(singletonList("org.apache.camel.example.jmstofile")); + + + // Note we can explicit name the component + context.addComponent("test-jms", JmsComponent.jmsComponentAutoAcknowledge(connectionFactory)); + // end::e2[] + // Add some configuration by hand ... + // tag::e3[] + context.addRoutes(new RouteBuilder() { + public void configure() { + from("test-jms:queue:test.queue").to("file://test"); + } + }); + // end::e3[] + // Camel template - a handy class for kicking off exchanges + // tag::e4[] + try (ProducerTemplate template = context.createProducerTemplate()) { + // end::e4[] + // Now everything is set up - lets start the context + context.start(); + // Now send some test text to a component - for this case a JMS Queue + // The text get converted to JMS messages - and sent to the Queue + // test.queue + // The file component is listening for messages from the Queue + // test.queue, consumes + // them and stores them to disk. The content of each file will be the + // test we sent here. + // The listener on the file component gets notified when new files are + // found ... that's it! + // tag::e5[] + for (int i = 0; i < 10; i++) { + template.sendBody("test-jms:queue:test.queue", "Test Message: " + i); + } + } + // end::e5[] + + // wait a bit and then stop + Thread.sleep(1000); + context.stop(); + } + } +} diff --git a/examples/camel-example-loan-broker-cxf/src/main/resources/META-INF/LICENSE.txt b/examples/jms-file/src/main/resources/META-INF/LICENSE.txt similarity index 100% rename from examples/camel-example-loan-broker-cxf/src/main/resources/META-INF/LICENSE.txt rename to examples/jms-file/src/main/resources/META-INF/LICENSE.txt diff --git a/examples/camel-example-loan-broker-cxf/src/main/resources/META-INF/NOTICE.txt b/examples/jms-file/src/main/resources/META-INF/NOTICE.txt similarity index 100% rename from examples/camel-example-loan-broker-cxf/src/main/resources/META-INF/NOTICE.txt rename to examples/jms-file/src/main/resources/META-INF/NOTICE.txt diff --git a/examples/camel-example-jms-file/src/main/resources/log4j2.properties b/examples/jms-file/src/main/resources/log4j2.properties similarity index 100% rename from examples/camel-example-jms-file/src/main/resources/log4j2.properties rename to examples/jms-file/src/main/resources/log4j2.properties diff --git a/examples/camel-example-jmx/README.adoc b/examples/jmx/README.adoc similarity index 100% rename from examples/camel-example-jmx/README.adoc rename to examples/jmx/README.adoc diff --git a/examples/camel-example-jmx/pom.xml b/examples/jmx/pom.xml similarity index 100% rename from examples/camel-example-jmx/pom.xml rename to examples/jmx/pom.xml diff --git a/examples/camel-example-jmx/src/main/java/org/apache/camel/example/jmx/ISimpleMXBean.java b/examples/jmx/src/main/java/org/apache/camel/example/jmx/ISimpleMXBean.java similarity index 100% rename from examples/camel-example-jmx/src/main/java/org/apache/camel/example/jmx/ISimpleMXBean.java rename to examples/jmx/src/main/java/org/apache/camel/example/jmx/ISimpleMXBean.java diff --git a/examples/camel-example-jmx/src/main/java/org/apache/camel/example/jmx/MyRouteBuilder.java b/examples/jmx/src/main/java/org/apache/camel/example/jmx/MyRouteBuilder.java similarity index 100% rename from examples/camel-example-jmx/src/main/java/org/apache/camel/example/jmx/MyRouteBuilder.java rename to examples/jmx/src/main/java/org/apache/camel/example/jmx/MyRouteBuilder.java diff --git a/examples/camel-example-jmx/src/main/java/org/apache/camel/example/jmx/SimpleBean.java b/examples/jmx/src/main/java/org/apache/camel/example/jmx/SimpleBean.java similarity index 100% rename from examples/camel-example-jmx/src/main/java/org/apache/camel/example/jmx/SimpleBean.java rename to examples/jmx/src/main/java/org/apache/camel/example/jmx/SimpleBean.java diff --git a/examples/camel-example-loadbalancing/src/main/resources/META-INF/LICENSE.txt b/examples/jmx/src/main/resources/META-INF/LICENSE.txt similarity index 100% rename from examples/camel-example-loadbalancing/src/main/resources/META-INF/LICENSE.txt rename to examples/jmx/src/main/resources/META-INF/LICENSE.txt diff --git a/examples/camel-example-loadbalancing/src/main/resources/META-INF/NOTICE.txt b/examples/jmx/src/main/resources/META-INF/NOTICE.txt similarity index 100% rename from examples/camel-example-loadbalancing/src/main/resources/META-INF/NOTICE.txt rename to examples/jmx/src/main/resources/META-INF/NOTICE.txt diff --git a/examples/camel-example-jmx/src/main/resources/META-INF/spring/camel-context.xml b/examples/jmx/src/main/resources/META-INF/spring/camel-context.xml similarity index 100% rename from examples/camel-example-jmx/src/main/resources/META-INF/spring/camel-context.xml rename to examples/jmx/src/main/resources/META-INF/spring/camel-context.xml diff --git a/examples/camel-example-loan-broker-jms/src/main/resources/log4j2.properties b/examples/jmx/src/main/resources/log4j2.properties similarity index 100% rename from examples/camel-example-loan-broker-jms/src/main/resources/log4j2.properties rename to examples/jmx/src/main/resources/log4j2.properties diff --git a/examples/camel-example-jooq/README.adoc b/examples/jooq/README.adoc similarity index 100% rename from examples/camel-example-jooq/README.adoc rename to examples/jooq/README.adoc diff --git a/examples/camel-example-jooq/pom.xml b/examples/jooq/pom.xml similarity index 100% rename from examples/camel-example-jooq/pom.xml rename to examples/jooq/pom.xml diff --git a/examples/camel-example-jooq/src/main/java/org/apache/camel/examples/jooq/BookStoreRecordBean.java b/examples/jooq/src/main/java/org/apache/camel/examples/jooq/BookStoreRecordBean.java similarity index 100% rename from examples/camel-example-jooq/src/main/java/org/apache/camel/examples/jooq/BookStoreRecordBean.java rename to examples/jooq/src/main/java/org/apache/camel/examples/jooq/BookStoreRecordBean.java diff --git a/examples/camel-example-jooq/src/main/resources/META-INF/spring/camel-context.xml b/examples/jooq/src/main/resources/META-INF/spring/camel-context.xml similarity index 100% rename from examples/camel-example-jooq/src/main/resources/META-INF/spring/camel-context.xml rename to examples/jooq/src/main/resources/META-INF/spring/camel-context.xml diff --git a/examples/camel-example-jooq/src/main/resources/META-INF/spring/jooq-spring.xml b/examples/jooq/src/main/resources/META-INF/spring/jooq-spring.xml similarity index 100% rename from examples/camel-example-jooq/src/main/resources/META-INF/spring/jooq-spring.xml rename to examples/jooq/src/main/resources/META-INF/spring/jooq-spring.xml diff --git a/examples/camel-example-jooq/src/main/resources/config.properties b/examples/jooq/src/main/resources/config.properties similarity index 100% rename from examples/camel-example-jooq/src/main/resources/config.properties rename to examples/jooq/src/main/resources/config.properties diff --git a/examples/camel-example-jooq/src/main/resources/db-hsql.sql b/examples/jooq/src/main/resources/db-hsql.sql similarity index 100% rename from examples/camel-example-jooq/src/main/resources/db-hsql.sql rename to examples/jooq/src/main/resources/db-hsql.sql diff --git a/examples/camel-example-jooq/src/main/resources/log4j2.properties b/examples/jooq/src/main/resources/log4j2.properties similarity index 100% rename from examples/camel-example-jooq/src/main/resources/log4j2.properties rename to examples/jooq/src/main/resources/log4j2.properties diff --git a/examples/camel-example-kafka/README.adoc b/examples/kafka/README.adoc similarity index 100% rename from examples/camel-example-kafka/README.adoc rename to examples/kafka/README.adoc diff --git a/examples/camel-example-kafka/pom.xml b/examples/kafka/pom.xml similarity index 100% rename from examples/camel-example-kafka/pom.xml rename to examples/kafka/pom.xml diff --git a/examples/camel-example-kafka/src/main/java/org/apache/camel/example/kafka/MessageConsumerClient.java b/examples/kafka/src/main/java/org/apache/camel/example/kafka/MessageConsumerClient.java similarity index 52% rename from examples/camel-example-kafka/src/main/java/org/apache/camel/example/kafka/MessageConsumerClient.java rename to examples/kafka/src/main/java/org/apache/camel/example/kafka/MessageConsumerClient.java index 5540678..874e27d 100644 --- a/examples/camel-example-kafka/src/main/java/org/apache/camel/example/kafka/MessageConsumerClient.java +++ b/examples/kafka/src/main/java/org/apache/camel/example/kafka/MessageConsumerClient.java @@ -34,36 +34,37 @@ public final class MessageConsumerClient { LOG.info("About to run Kafka-camel integration..."); - CamelContext camelContext = new DefaultCamelContext(); + try (CamelContext camelContext = new DefaultCamelContext()) { - // Add route to send messages to Kafka + // Add route to send messages to Kafka - camelContext.addRoutes(new RouteBuilder() { - public void configure() { - camelContext.getPropertiesComponent().setLocation("classpath:application.properties"); + camelContext.addRoutes(new RouteBuilder() { + public void configure() { + camelContext.getPropertiesComponent().setLocation("classpath:application.properties"); - log.info("About to start route: Kafka Server -> Log "); + log.info("About to start route: Kafka Server -> Log "); - // setup kafka component with the brokers - ComponentsBuilderFactory.kafka() - .brokers("{{kafka.host}}:{{kafka.port}}") - .register(camelContext, "kafka"); + // setup kafka component with the brokers + ComponentsBuilderFactory.kafka() + .brokers("{{kafka.host}}:{{kafka.port}}") + .register(camelContext, "kafka"); - from("kafka:{{consumer.topic}}" - + "?maxPollRecords={{consumer.maxPollRecords}}" - + "&consumersCount={{consumer.consumersCount}}" - + "&seekTo={{consumer.seekTo}}" - + "&groupId={{consumer.group}}") - .routeId("FromKafka") - .log("${body}"); - } - }); - camelContext.start(); + from("kafka:{{consumer.topic}}" + + "?maxPollRecords={{consumer.maxPollRecords}}" + + "&consumersCount={{consumer.consumersCount}}" + + "&seekTo={{consumer.seekTo}}" + + "&groupId={{consumer.group}}") + .routeId("FromKafka") + .log("${body}"); + } + }); + camelContext.start(); - // let it run for 5 minutes before shutting down - Thread.sleep(5 * 60 * 1000); + // let it run for 5 minutes before shutting down + Thread.sleep(5L * 60 * 1000); - camelContext.stop(); + camelContext.stop(); + } } } diff --git a/examples/kafka/src/main/java/org/apache/camel/example/kafka/MessagePublisherClient.java b/examples/kafka/src/main/java/org/apache/camel/example/kafka/MessagePublisherClient.java new file mode 100644 index 0000000..1787459 --- /dev/null +++ b/examples/kafka/src/main/java/org/apache/camel/example/kafka/MessagePublisherClient.java @@ -0,0 +1,123 @@ +/* + * 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.example.kafka; + +import java.util.Calendar; +import java.util.HashMap; +import java.util.Map; + +import org.apache.camel.CamelContext; +import org.apache.camel.ProducerTemplate; +import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.builder.component.ComponentsBuilderFactory; +import org.apache.camel.component.kafka.KafkaConstants; +import org.apache.camel.impl.DefaultCamelContext; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public final class MessagePublisherClient { + + private static final Logger LOG = LoggerFactory.getLogger(MessagePublisherClient.class); + public static final String DIRECT_KAFKA_START = "direct:kafkaStart"; + public static final String DIRECT_KAFKA_START_WITH_PARTITIONER = "direct:kafkaStartWithPartitioner"; + public static final String HEADERS = "${headers}"; + + private MessagePublisherClient() { } + + public static void main(String[] args) throws Exception { + + LOG.info("About to run Kafka-camel integration..."); + + String testKafkaMessage = "Test Message from MessagePublisherClient " + Calendar.getInstance().getTime(); + + try (CamelContext camelContext = new DefaultCamelContext()) { + + // Add route to send messages to Kafka + + camelContext.addRoutes(new RouteBuilder() { + public void configure() { + camelContext.getPropertiesComponent().setLocation("classpath:application.properties"); + + // setup kafka component with the brokers + ComponentsBuilderFactory.kafka() + .brokers("{{kafka.host}}:{{kafka.port}}") + .register(camelContext, "kafka"); + + from(DIRECT_KAFKA_START).routeId("DirectToKafka") + .to("kafka:{{producer.topic}}").log(HEADERS); + + // Topic can be set in header as well. + + from("direct:kafkaStartNoTopic").routeId("kafkaStartNoTopic") + .to("kafka:dummy") + .log(HEADERS); + + // Use custom partitioner based on the key. + + from(DIRECT_KAFKA_START_WITH_PARTITIONER).routeId("kafkaStartWithPartitioner") + .to("kafka:{{producer.topic}}?partitioner={{producer.partitioner}}") + .log(HEADERS); + + + // Takes input from the command line. + + from("stream:in").setHeader(KafkaConstants.PARTITION_KEY, simple("0")) + .setHeader(KafkaConstants.KEY, simple("1")).to(DIRECT_KAFKA_START); + + } + + }); + + try (ProducerTemplate producerTemplate = camelContext.createProducerTemplate()) { + camelContext.start(); + + Map<String, Object> headers = new HashMap<>(); + + headers.put(KafkaConstants.PARTITION_KEY, 0); + headers.put(KafkaConstants.KEY, "1"); + producerTemplate.sendBodyAndHeaders(DIRECT_KAFKA_START, testKafkaMessage, headers); + + // Send with topicName in header + + testKafkaMessage = "TOPIC " + testKafkaMessage; + headers.put(KafkaConstants.KEY, "2"); + headers.put(KafkaConstants.TOPIC, "TestLog"); + + producerTemplate.sendBodyAndHeaders("direct:kafkaStartNoTopic", testKafkaMessage, headers); + + testKafkaMessage = "PART 0 : " + testKafkaMessage; + Map<String, Object> newHeader = new HashMap<>(); + newHeader.put(KafkaConstants.KEY, "AB"); // This should go to partition 0 + + producerTemplate.sendBodyAndHeaders(DIRECT_KAFKA_START_WITH_PARTITIONER, testKafkaMessage, newHeader); + + testKafkaMessage = "PART 1 : " + testKafkaMessage; + newHeader.put(KafkaConstants.KEY, "ABC"); // This should go to partition 1 + + producerTemplate.sendBodyAndHeaders(DIRECT_KAFKA_START_WITH_PARTITIONER, testKafkaMessage, newHeader); + } + + LOG.info("Successfully published event to Kafka."); + System.out.println("Enter text on the line below : [Press Ctrl-C to exit.] "); + + Thread.sleep(5L * 60 * 1000); + + camelContext.stop(); + } + } + +} diff --git a/examples/camel-example-kafka/src/main/java/org/apache/camel/example/kafka/StringPartitioner.java b/examples/kafka/src/main/java/org/apache/camel/example/kafka/StringPartitioner.java similarity index 98% rename from examples/camel-example-kafka/src/main/java/org/apache/camel/example/kafka/StringPartitioner.java rename to examples/kafka/src/main/java/org/apache/camel/example/kafka/StringPartitioner.java index 0aa1511..1ba09ac 100644 --- a/examples/camel-example-kafka/src/main/java/org/apache/camel/example/kafka/StringPartitioner.java +++ b/examples/kafka/src/main/java/org/apache/camel/example/kafka/StringPartitioner.java @@ -29,6 +29,7 @@ public class StringPartitioner implements Partitioner { @Override public void configure(Map<String, ?> configs) { + // noop } @Override @@ -48,6 +49,7 @@ public class StringPartitioner implements Partitioner { @Override public void close() { + // noop } } diff --git a/examples/camel-example-kafka/src/main/resources/META-INF/LICENSE.txt b/examples/kafka/src/main/resources/META-INF/LICENSE.txt similarity index 100% rename from examples/camel-example-kafka/src/main/resources/META-INF/LICENSE.txt rename to examples/kafka/src/main/resources/META-INF/LICENSE.txt diff --git a/examples/camel-example-kafka/src/main/resources/META-INF/NOTICE.txt b/examples/kafka/src/main/resources/META-INF/NOTICE.txt similarity index 100% rename from examples/camel-example-kafka/src/main/resources/META-INF/NOTICE.txt rename to examples/kafka/src/main/resources/META-INF/NOTICE.txt diff --git a/examples/camel-example-kafka/src/main/resources/application.properties b/examples/kafka/src/main/resources/application.properties similarity index 100% rename from examples/camel-example-kafka/src/main/resources/application.properties rename to examples/kafka/src/main/resources/application.properties diff --git a/examples/camel-example-java8/src/main/resources/log4j2.properties b/examples/kafka/src/main/resources/log4j2.properties similarity index 100% rename from examples/camel-example-java8/src/main/resources/log4j2.properties rename to examples/kafka/src/main/resources/log4j2.properties diff --git a/examples/camel-example-kamelet/README.adoc b/examples/kamelet/README.adoc similarity index 100% rename from examples/camel-example-kamelet/README.adoc rename to examples/kamelet/README.adoc diff --git a/examples/camel-example-kamelet/pom.xml b/examples/kamelet/pom.xml similarity index 100% rename from examples/camel-example-kamelet/pom.xml rename to examples/kamelet/pom.xml diff --git a/examples/camel-example-kamelet/src/main/java/org/apache/camel/example/MyApplication.java b/examples/kamelet/src/main/java/org/apache/camel/example/MyApplication.java similarity index 100% rename from examples/camel-example-kamelet/src/main/java/org/apache/camel/example/MyApplication.java rename to examples/kamelet/src/main/java/org/apache/camel/example/MyApplication.java diff --git a/examples/camel-example-kamelet/src/main/java/org/apache/camel/example/MyRouteTemplates.java b/examples/kamelet/src/main/java/org/apache/camel/example/MyRouteTemplates.java similarity index 100% rename from examples/camel-example-kamelet/src/main/java/org/apache/camel/example/MyRouteTemplates.java rename to examples/kamelet/src/main/java/org/apache/camel/example/MyRouteTemplates.java diff --git a/examples/camel-example-kamelet/src/main/java/org/apache/camel/example/MyRoutes.java b/examples/kamelet/src/main/java/org/apache/camel/example/MyRoutes.java similarity index 100% rename from examples/camel-example-kamelet/src/main/java/org/apache/camel/example/MyRoutes.java rename to examples/kamelet/src/main/java/org/apache/camel/example/MyRoutes.java diff --git a/examples/camel-example-kamelet/src/main/resources/application.properties b/examples/kamelet/src/main/resources/application.properties similarity index 100% rename from examples/camel-example-kamelet/src/main/resources/application.properties rename to examples/kamelet/src/main/resources/application.properties diff --git a/examples/camel-example-kamelet/src/main/resources/logback.xml b/examples/kamelet/src/main/resources/logback.xml similarity index 100% rename from examples/camel-example-kamelet/src/main/resources/logback.xml rename to examples/kamelet/src/main/resources/logback.xml diff --git a/examples/camel-example-kotlin/README.adoc b/examples/kotlin/README.adoc similarity index 95% rename from examples/camel-example-kotlin/README.adoc rename to examples/kotlin/README.adoc index 86157db..e7a1447 100644 --- a/examples/camel-example-kotlin/README.adoc +++ b/examples/kotlin/README.adoc @@ -11,13 +11,13 @@ response. To build this project use .... -mvn install +$ mvn install .... To run this project .... -mvn exec:java +$ mvn exec:java .... You can then open the following url from a web browser: diff --git a/examples/camel-example-kotlin/pom.xml b/examples/kotlin/pom.xml similarity index 98% rename from examples/camel-example-kotlin/pom.xml rename to examples/kotlin/pom.xml index 81bc2d9..5fedfa6 100644 --- a/examples/camel-example-kotlin/pom.xml +++ b/examples/kotlin/pom.xml @@ -94,7 +94,6 @@ <build> <sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory> - <testSourceDirectory>${project.basedir}/src/test/kotlin</testSourceDirectory> <defaultGoal>install</defaultGoal> diff --git a/examples/camel-example-kotlin/src/main/kotlin/org/apache/camel/example/MainApp.kt b/examples/kotlin/src/main/kotlin/org/apache/camel/example/MainApp.kt similarity index 100% rename from examples/camel-example-kotlin/src/main/kotlin/org/apache/camel/example/MainApp.kt rename to examples/kotlin/src/main/kotlin/org/apache/camel/example/MainApp.kt diff --git a/examples/camel-example-kotlin/src/main/kotlin/org/apache/camel/example/MyRouteBuilder.kt b/examples/kotlin/src/main/kotlin/org/apache/camel/example/MyRouteBuilder.kt similarity index 100% rename from examples/camel-example-kotlin/src/main/kotlin/org/apache/camel/example/MyRouteBuilder.kt rename to examples/kotlin/src/main/kotlin/org/apache/camel/example/MyRouteBuilder.kt diff --git a/examples/camel-example-jdbc/src/main/resources/log4j2.properties b/examples/kotlin/src/main/resources/log4j2.properties similarity index 100% rename from examples/camel-example-jdbc/src/main/resources/log4j2.properties rename to examples/kotlin/src/main/resources/log4j2.properties diff --git a/examples/camel-example-loadbalancing/README.adoc b/examples/loadbalancing/README.adoc similarity index 86% rename from examples/camel-example-loadbalancing/README.adoc rename to examples/loadbalancing/README.adoc index 06b606d..f22328e 100644 --- a/examples/camel-example-loadbalancing/README.adoc +++ b/examples/loadbalancing/README.adoc @@ -27,32 +27,35 @@ will automatic failover to the next server. To compile and install the project in your maven repo, execute the following command on the root of the project -.... -mvn clean install -.... +[source,sh] +---- +$ mvn clean install +---- === Run -To run the example, then execute the following command in the respective -folder: +To run the example, then execute the following commands, each in a separate session in the terminal: -- mina1 +==== mina1 -.... +[source,sh] +---- mvn exec:java -Pmina1 -.... +---- -- mina2 +==== mina2 -.... +[source,sh] +---- mvn exec:java -Pmina2 -.... +---- -- loadbalancing +==== loadbalancer -.... +[source,sh] +---- mvn exec:java -Ploadbalancer -.... +---- === Help and contributions diff --git a/examples/camel-example-loadbalancing/pom.xml b/examples/loadbalancing/pom.xml similarity index 100% rename from examples/camel-example-loadbalancing/pom.xml rename to examples/loadbalancing/pom.xml diff --git a/examples/camel-example-loadbalancing/src/main/java/org/apache/camel/example/model/Report.java b/examples/loadbalancing/src/main/java/org/apache/camel/example/model/Report.java similarity index 100% rename from examples/camel-example-loadbalancing/src/main/java/org/apache/camel/example/model/Report.java rename to examples/loadbalancing/src/main/java/org/apache/camel/example/model/Report.java diff --git a/examples/camel-example-loadbalancing/src/main/java/org/apache/camel/example/service/Generator.java b/examples/loadbalancing/src/main/java/org/apache/camel/example/service/Generator.java similarity index 93% rename from examples/camel-example-loadbalancing/src/main/java/org/apache/camel/example/service/Generator.java rename to examples/loadbalancing/src/main/java/org/apache/camel/example/service/Generator.java index 70455b8..e769741 100644 --- a/examples/camel-example-loadbalancing/src/main/java/org/apache/camel/example/service/Generator.java +++ b/examples/loadbalancing/src/main/java/org/apache/camel/example/service/Generator.java @@ -20,9 +20,9 @@ import org.apache.camel.example.model.Report; public class Generator { - private static int count; + private int count; - public Report createReport() throws Exception { + public Report createReport() { int counter = ++count; // Create a Report object diff --git a/examples/camel-example-loadbalancing/src/main/java/org/apache/camel/example/service/Reporting.java b/examples/loadbalancing/src/main/java/org/apache/camel/example/service/Reporting.java similarity index 100% rename from examples/camel-example-loadbalancing/src/main/java/org/apache/camel/example/service/Reporting.java rename to examples/loadbalancing/src/main/java/org/apache/camel/example/service/Reporting.java diff --git a/examples/camel-example-jmx/src/main/resources/META-INF/LICENSE.txt b/examples/loadbalancing/src/main/resources/META-INF/LICENSE.txt similarity index 100% rename from examples/camel-example-jmx/src/main/resources/META-INF/LICENSE.txt rename to examples/loadbalancing/src/main/resources/META-INF/LICENSE.txt diff --git a/examples/camel-example-jmx/src/main/resources/META-INF/NOTICE.txt b/examples/loadbalancing/src/main/resources/META-INF/NOTICE.txt similarity index 100% rename from examples/camel-example-jmx/src/main/resources/META-INF/NOTICE.txt rename to examples/loadbalancing/src/main/resources/META-INF/NOTICE.txt diff --git a/examples/camel-example-loadbalancing/src/main/resources/META-INF/spring/camel-context-loadbalancer.xml b/examples/loadbalancing/src/main/resources/META-INF/spring/camel-context-loadbalancer.xml similarity index 100% rename from examples/camel-example-loadbalancing/src/main/resources/META-INF/spring/camel-context-loadbalancer.xml rename to examples/loadbalancing/src/main/resources/META-INF/spring/camel-context-loadbalancer.xml diff --git a/examples/camel-example-loadbalancing/src/main/resources/META-INF/spring/camel-context-mina1.xml b/examples/loadbalancing/src/main/resources/META-INF/spring/camel-context-mina1.xml similarity index 100% rename from examples/camel-example-loadbalancing/src/main/resources/META-INF/spring/camel-context-mina1.xml rename to examples/loadbalancing/src/main/resources/META-INF/spring/camel-context-mina1.xml diff --git a/examples/camel-example-loadbalancing/src/main/resources/META-INF/spring/camel-context-mina2.xml b/examples/loadbalancing/src/main/resources/META-INF/spring/camel-context-mina2.xml similarity index 100% rename from examples/camel-example-loadbalancing/src/main/resources/META-INF/spring/camel-context-mina2.xml rename to examples/loadbalancing/src/main/resources/META-INF/spring/camel-context-mina2.xml diff --git a/examples/camel-example-loadbalancing/src/main/resources/log4j2.properties b/examples/loadbalancing/src/main/resources/log4j2.properties similarity index 100% rename from examples/camel-example-loadbalancing/src/main/resources/log4j2.properties rename to examples/loadbalancing/src/main/resources/log4j2.properties diff --git a/examples/camel-example-loan-broker-cxf/README.adoc b/examples/loan-broker-cxf/README.adoc similarity index 61% rename from examples/camel-example-loan-broker-cxf/README.adoc rename to examples/loan-broker-cxf/README.adoc index 03ead0f..700a3eb 100644 --- a/examples/camel-example-loan-broker-cxf/README.adoc +++ b/examples/loan-broker-cxf/README.adoc @@ -3,8 +3,7 @@ === Introduction This example shows how to use Camel to implement the EIP’s loan broker -example, from the EIP book -(http://www.enterpriseintegrationpatterns.com/SystemManagementExample.html). +example, from the EIP book: http://www.enterpriseintegrationpatterns.com/SystemManagementExample.html[Loan Broker System Management]. The example use web services for exchanging messages between the client, credit agency, and the banks. @@ -14,18 +13,30 @@ credit agency, and the banks. You will need to compile this example first: .... -mvn compile +$ mvn compile .... === Run .... -mvn exec:java -PWS.LoanBroker -mvn exec:java -PWS.Client +$ mvn exec:java -PWS.LoanBroker +.... +and in another terminal session execute +.... +$ mvn exec:java -PWS.Client .... To stop the example hit ctrl+c +=== Run unit tests + +There are unit tests implemented, which can be run with the following command: + +[source,sh] +---- +$ mvn test +---- + === Help and contributions If you hit any problem using Camel or have some feedback, then please diff --git a/examples/camel-example-loan-broker-cxf/pom.xml b/examples/loan-broker-cxf/pom.xml similarity index 100% rename from examples/camel-example-loan-broker-cxf/pom.xml rename to examples/loan-broker-cxf/pom.xml diff --git a/examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/BankResponseAggregationStrategy.java b/examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/BankResponseAggregationStrategy.java similarity index 100% rename from examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/BankResponseAggregationStrategy.java rename to examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/BankResponseAggregationStrategy.java diff --git a/examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/Client.java b/examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/Client.java similarity index 100% rename from examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/Client.java rename to examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/Client.java diff --git a/examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/CreditScoreProcessor.java b/examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/CreditScoreProcessor.java similarity index 100% rename from examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/CreditScoreProcessor.java rename to examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/CreditScoreProcessor.java diff --git a/examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/LoanBroker.java b/examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/LoanBroker.java similarity index 100% rename from examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/LoanBroker.java rename to examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/LoanBroker.java diff --git a/examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/LoanBrokerWS.java b/examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/LoanBrokerWS.java similarity index 100% rename from examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/LoanBrokerWS.java rename to examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/LoanBrokerWS.java diff --git a/examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/ReplyProcessor.java b/examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/ReplyProcessor.java similarity index 100% rename from examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/ReplyProcessor.java rename to examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/ReplyProcessor.java diff --git a/examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/bank/Bank.java b/examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/bank/Bank.java similarity index 85% rename from examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/bank/Bank.java rename to examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/bank/Bank.java index 9569a4e..ec24038 100644 --- a/examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/bank/Bank.java +++ b/examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/bank/Bank.java @@ -18,8 +18,8 @@ package org.apache.camel.loanbroker.bank; //START SNIPPET: bankImpl public class Bank implements BankWS { - private String bankName; - private double primeRate; + private final String bankName; + private final double primeRate; public Bank(String name) { bankName = name; @@ -33,15 +33,14 @@ public class Bank implements BankWS { @Override public BankQuote getQuote(String ssn, double loanAmount, int loanDuration, int creditHistory, int creditScore) { - Double rate = primeRate + (double) (loanDuration / 12) / 10 + Math.random() * 10 / 10; + Double rate = primeRate + ((double) loanDuration / 12) / 10 + Math.random() * 10 / 10; // Wait for a while try { Thread.sleep(1000); } catch (InterruptedException e) { // do nothing here } - BankQuote result = new BankQuote(bankName, ssn, rate); - return result; + return new BankQuote(bankName, ssn, rate); } } diff --git a/examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/bank/BankQuote.java b/examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/bank/BankQuote.java similarity index 100% rename from examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/bank/BankQuote.java rename to examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/bank/BankQuote.java diff --git a/examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/bank/BankWS.java b/examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/bank/BankWS.java similarity index 100% rename from examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/bank/BankWS.java rename to examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/bank/BankWS.java diff --git a/examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/credit/CreditAgency.java b/examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/credit/CreditAgency.java similarity index 85% rename from examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/credit/CreditAgency.java rename to examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/credit/CreditAgency.java index 5d9daa9..16859b1 100644 --- a/examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/credit/CreditAgency.java +++ b/examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/credit/CreditAgency.java @@ -16,19 +16,21 @@ */ package org.apache.camel.loanbroker.credit; +import java.util.Random; + //START SNIPPET: creditAgencyImpl public class CreditAgency implements CreditAgencyWS { + private final Random random = new Random(); + @Override public int getCreditHistoryLength(String ssn) { - int creditScore = (int) (Math.random() * 600 + 300); - return creditScore; + return random.nextInt() * 600 + 300; } @Override public int getCreditScore(String ssn) { - int creditHistoryLength = (int) (Math.random() * 19 + 1); - return creditHistoryLength; + return random.nextInt() * 19 + 1; } } diff --git a/examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/credit/CreditAgencyWS.java b/examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/credit/CreditAgencyWS.java similarity index 100% rename from examples/camel-example-loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/credit/CreditAgencyWS.java rename to examples/loan-broker-cxf/src/main/java/org/apache/camel/loanbroker/credit/CreditAgencyWS.java diff --git a/examples/camel-example-jms-file/src/main/resources/META-INF/LICENSE.txt b/examples/loan-broker-cxf/src/main/resources/META-INF/LICENSE.txt similarity index 100% rename from examples/camel-example-jms-file/src/main/resources/META-INF/LICENSE.txt rename to examples/loan-broker-cxf/src/main/resources/META-INF/LICENSE.txt diff --git a/examples/camel-example-jms-file/src/main/resources/META-INF/NOTICE.txt b/examples/loan-broker-cxf/src/main/resources/META-INF/NOTICE.txt similarity index 100% rename from examples/camel-example-jms-file/src/main/resources/META-INF/NOTICE.txt rename to examples/loan-broker-cxf/src/main/resources/META-INF/NOTICE.txt diff --git a/examples/camel-example-loan-broker-cxf/src/main/resources/META-INF/spring/webServiceCamelContext.xml b/examples/loan-broker-cxf/src/main/resources/META-INF/spring/webServiceCamelContext.xml similarity index 100% rename from examples/camel-example-loan-broker-cxf/src/main/resources/META-INF/spring/webServiceCamelContext.xml rename to examples/loan-broker-cxf/src/main/resources/META-INF/spring/webServiceCamelContext.xml diff --git a/examples/camel-example-loan-broker-jms/src/main/resources/loanbroker.properties b/examples/loan-broker-cxf/src/main/resources/loanbroker.properties similarity index 100% rename from examples/camel-example-loan-broker-jms/src/main/resources/loanbroker.properties rename to examples/loan-broker-cxf/src/main/resources/loanbroker.properties diff --git a/examples/camel-example-loan-broker-cxf/src/main/resources/log4j2.properties b/examples/loan-broker-cxf/src/main/resources/log4j2.properties similarity index 100% rename from examples/camel-example-loan-broker-cxf/src/main/resources/log4j2.properties rename to examples/loan-broker-cxf/src/main/resources/log4j2.properties diff --git a/examples/camel-example-loan-broker-cxf/src/main/resources/logging.properties b/examples/loan-broker-cxf/src/main/resources/logging.properties similarity index 100% rename from examples/camel-example-loan-broker-cxf/src/main/resources/logging.properties rename to examples/loan-broker-cxf/src/main/resources/logging.properties diff --git a/examples/camel-example-loan-broker-cxf/src/test/java/org/apache/camel/loanbroker/LoanBrokerWSTest.java b/examples/loan-broker-cxf/src/test/java/org/apache/camel/loanbroker/LoanBrokerWSTest.java similarity index 100% rename from examples/camel-example-loan-broker-cxf/src/test/java/org/apache/camel/loanbroker/LoanBrokerWSTest.java rename to examples/loan-broker-cxf/src/test/java/org/apache/camel/loanbroker/LoanBrokerWSTest.java diff --git a/examples/camel-example-loan-broker-jms/src/test/resources/log4j2.properties b/examples/loan-broker-cxf/src/test/resources/log4j2.properties similarity index 100% rename from examples/camel-example-loan-broker-jms/src/test/resources/log4j2.properties rename to examples/loan-broker-cxf/src/test/resources/log4j2.properties diff --git a/examples/camel-example-loan-broker-jms/README.adoc b/examples/loan-broker-jms/README.adoc similarity index 67% rename from examples/camel-example-loan-broker-jms/README.adoc rename to examples/loan-broker-jms/README.adoc index da696f7..f0559d0 100644 --- a/examples/camel-example-loan-broker-jms/README.adoc +++ b/examples/loan-broker-jms/README.adoc @@ -4,7 +4,7 @@ This example shows how to use Camel to implement the EIP’s loan broker example, from the EIP book -(http://www.enterpriseintegrationpatterns.com/SystemManagementExample.html). +http://www.enterpriseintegrationpatterns.com/SystemManagementExample.html[SystemManagementExample]. The example uses JMS queues for exchanging messages between the client, credit agency, and the banks. @@ -13,19 +13,36 @@ credit agency, and the banks. You will need to compile this example first: -.... +[source, sh] +---- mvn compile -.... +---- === Run -.... +[source, sh] +---- mvn exec:java -PQueue.LoanBroker +---- + +In a separate terminal session: + +[source, sh] +---- mvn exec:java -PQueue.Client -.... +---- To stop the example hit ctrl+c +=== Run unit tests + +There are unit tests implemented, which can be run with the following command: + +[source,sh] +---- +$ mvn test +---- + === Help and contributions If you hit any problem using Camel or have some feedback, then please diff --git a/examples/camel-example-loan-broker-jms/pom.xml b/examples/loan-broker-jms/pom.xml similarity index 100% rename from examples/camel-example-loan-broker-jms/pom.xml rename to examples/loan-broker-jms/pom.xml diff --git a/examples/camel-example-loan-broker-jms/src/main/java/org/apache/camel/loanbroker/BankResponseAggregationStrategy.java b/examples/loan-broker-jms/src/main/java/org/apache/camel/loanbroker/BankResponseAggregationStrategy.java similarity index 100% rename from examples/camel-example-loan-broker-jms/src/main/java/org/apache/camel/loanbroker/BankResponseAggregationStrategy.java rename to examples/loan-broker-jms/src/main/java/org/apache/camel/loanbroker/BankResponseAggregationStrategy.java diff --git a/examples/camel-example-loan-broker-jms/src/main/java/org/apache/camel/loanbroker/Client.java b/examples/loan-broker-jms/src/main/java/org/apache/camel/loanbroker/Client.java similarity index 100% rename from examples/camel-example-loan-broker-jms/src/main/java/org/apache/camel/loanbroker/Client.java rename to examples/loan-broker-jms/src/main/java/org/apache/camel/loanbroker/Client.java diff --git a/examples/camel-example-loan-broker-jms/src/main/java/org/apache/camel/loanbroker/Constants.java b/examples/loan-broker-jms/src/main/java/org/apache/camel/loanbroker/Constants.java similarity index 100% rename from examples/camel-example-loan-broker-jms/src/main/java/org/apache/camel/loanbroker/Constants.java rename to examples/loan-broker-jms/src/main/java/org/apache/camel/loanbroker/Constants.java diff --git a/examples/camel-example-loan-broker-jms/src/main/java/org/apache/camel/loanbroker/CreditAgencyProcessor.java b/examples/loan-broker-jms/src/main/java/org/apache/camel/loanbroker/CreditAgencyProcessor.java similarity index 100% rename from examples/camel-example-loan-broker-jms/src/main/java/org/apache/camel/loanbroker/CreditAgencyProcessor.java rename to examples/loan-broker-jms/src/main/java/org/apache/camel/loanbroker/CreditAgencyProcessor.java diff --git a/examples/camel-example-loan-broker-jms/src/main/java/org/apache/camel/loanbroker/LoanBroker.java b/examples/loan-broker-jms/src/main/java/org/apache/camel/loanbroker/LoanBroker.java similarity index 100% rename from examples/camel-example-loan-broker-jms/src/main/java/org/apache/camel/loanbroker/LoanBroker.java rename to examples/loan-broker-jms/src/main/java/org/apache/camel/loanbroker/LoanBroker.java diff --git a/examples/camel-example-loan-broker-jms/src/main/java/org/apache/camel/loanbroker/LoanBrokerRoute.java b/examples/loan-broker-jms/src/main/java/org/apache/camel/loanbroker/LoanBrokerRoute.java similarity index 100% rename from examples/camel-example-loan-broker-jms/src/main/java/org/apache/camel/loanbroker/LoanBrokerRoute.java rename to examples/loan-broker-jms/src/main/java/org/apache/camel/loanbroker/LoanBrokerRoute.java diff --git a/examples/camel-example-loan-broker-jms/src/main/java/org/apache/camel/loanbroker/ReplyProcessor.java b/examples/loan-broker-jms/src/main/java/org/apache/camel/loanbroker/ReplyProcessor.java similarity index 100% rename from examples/camel-example-loan-broker-jms/src/main/java/org/apache/camel/loanbroker/ReplyProcessor.java rename to examples/loan-broker-jms/src/main/java/org/apache/camel/loanbroker/ReplyProcessor.java diff --git a/examples/camel-example-loan-broker-jms/src/main/java/org/apache/camel/loanbroker/bank/BankProcessor.java b/examples/loan-broker-jms/src/main/java/org/apache/camel/loanbroker/bank/BankProcessor.java similarity index 100% rename from examples/camel-example-loan-broker-jms/src/main/java/org/apache/camel/loanbroker/bank/BankProcessor.java rename to examples/loan-broker-jms/src/main/java/org/apache/camel/loanbroker/bank/BankProcessor.java diff --git a/examples/camel-example-jdbc/src/main/resources/META-INF/LICENSE.txt b/examples/loan-broker-jms/src/main/resources/META-INF/LICENSE.txt similarity index 100% rename from examples/camel-example-jdbc/src/main/resources/META-INF/LICENSE.txt rename to examples/loan-broker-jms/src/main/resources/META-INF/LICENSE.txt diff --git a/examples/camel-example-jdbc/src/main/resources/META-INF/NOTICE.txt b/examples/loan-broker-jms/src/main/resources/META-INF/NOTICE.txt similarity index 100% rename from examples/camel-example-jdbc/src/main/resources/META-INF/NOTICE.txt rename to examples/loan-broker-jms/src/main/resources/META-INF/NOTICE.txt diff --git a/examples/camel-example-loan-broker-jms/src/main/resources/META-INF/spring/client.xml b/examples/loan-broker-jms/src/main/resources/META-INF/spring/client.xml similarity index 100% rename from examples/camel-example-loan-broker-jms/src/main/resources/META-INF/spring/client.xml rename to examples/loan-broker-jms/src/main/resources/META-INF/spring/client.xml diff --git a/examples/camel-example-loan-broker-jms/src/main/resources/META-INF/spring/server.xml b/examples/loan-broker-jms/src/main/resources/META-INF/spring/server.xml similarity index 100% rename from examples/camel-example-loan-broker-jms/src/main/resources/META-INF/spring/server.xml rename to examples/loan-broker-jms/src/main/resources/META-INF/spring/server.xml diff --git a/examples/camel-example-loan-broker-cxf/src/main/resources/loanbroker.properties b/examples/loan-broker-jms/src/main/resources/loanbroker.properties similarity index 100% rename from examples/camel-example-loan-broker-cxf/src/main/resources/loanbroker.properties rename to examples/loan-broker-jms/src/main/resources/loanbroker.properties diff --git a/examples/camel-example-jmx/src/main/resources/log4j2.properties b/examples/loan-broker-jms/src/main/resources/log4j2.properties similarity index 100% rename from examples/camel-example-jmx/src/main/resources/log4j2.properties rename to examples/loan-broker-jms/src/main/resources/log4j2.properties diff --git a/examples/camel-example-loan-broker-jms/src/main/resources/logging.properties b/examples/loan-broker-jms/src/main/resources/logging.properties similarity index 100% rename from examples/camel-example-loan-broker-jms/src/main/resources/logging.properties rename to examples/loan-broker-jms/src/main/resources/logging.properties diff --git a/examples/camel-example-loan-broker-jms/src/test/java/org/apache/camel/loanbroker/LoanBrokerQueueTest.java b/examples/loan-broker-jms/src/test/java/org/apache/camel/loanbroker/LoanBrokerQueueTest.java similarity index 100% rename from examples/camel-example-loan-broker-jms/src/test/java/org/apache/camel/loanbroker/LoanBrokerQueueTest.java rename to examples/loan-broker-jms/src/test/java/org/apache/camel/loanbroker/LoanBrokerQueueTest.java diff --git a/examples/camel-example-loan-broker-cxf/src/test/resources/log4j2.properties b/examples/loan-broker-jms/src/test/resources/log4j2.properties similarity index 100% rename from examples/camel-example-loan-broker-cxf/src/test/resources/log4j2.properties rename to examples/loan-broker-jms/src/test/resources/log4j2.properties diff --git a/examples/pom.xml b/examples/pom.xml index ea83478..5183465 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -114,18 +114,18 @@ <module>fhir</module> <module>flight-recorder</module> <module>ftp</module> - <module>camel-example-hazelcast-kubernetes</module> - <module>camel-example-java8</module> - <module>camel-example-jdbc</module> - <module>camel-example-jmx</module> - <module>camel-example-jms-file</module> - <module>camel-example-jooq</module> - <module>camel-example-kafka</module> - <module>camel-example-kamelet</module> - <module>camel-example-kotlin</module> - <module>camel-example-loadbalancing</module> - <module>camel-example-loan-broker-cxf</module> - <module>camel-example-loan-broker-jms</module> + <module>hazelcast-kubernetes</module> + <module>java8</module> + <module>jdbc</module> + <module>jms-file</module> + <module>jmx</module> + <module>jooq</module> + <module>kafka</module> + <module>kamelet</module> + <module>kotlin</module> + <module>loan-broker-cxf</module> + <module>loadbalancing</module> + <module>loan-broker-jms</module> <module>camel-example-main</module> <module>camel-example-main-artemis</module> <module>camel-example-main-endpointdsl</module>