This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-quarkus-examples.git
commit 5949bd04c872124afe4bb7df0bc804292c17288e Author: James Netherton <[email protected]> AuthorDate: Wed Mar 11 09:07:36 2026 +0000 Update project READMEs and container images * Fix README spelling, typos, grammar & formatting * Update and sync container images with the Camel Quarkus core project --- amqp/README.adoc | 10 +++---- artemis-elasticsearch/README.adoc | 6 ++-- .../org/acme/resource/CustomPahoTestResource.java | 5 ++-- .../acme/resource/ElasticSearchTestResource.java | 13 ++++----- aws-lambda/README.adoc | 6 ++-- aws2-s3/README.adoc | 2 +- aws2-s3/src/main/resources/application.properties | 2 +- cluster-leader-election/README.adoc | 4 +-- cxf-soap/README.adoc | 32 +++++++++++++++------- data-extract-langchain4j/README.adoc | 6 ++-- .../org/acme/extraction/OllamaTestResource.java | 2 +- fhir/README.adoc | 6 ++-- fhir/src/main/resources/application.properties | 2 +- .../test/java/org/acme/fhir/FHIRTestResource.java | 2 +- file-bindy-ftp/README.adoc | 2 +- file-bindy-ftp/src/main/kubernetes/kubernetes.yml | 2 +- file-bindy-ftp/src/main/kubernetes/openshift.yml | 2 +- .../src/main/resources/application.properties | 2 +- .../java/org/acme/bindy/ftp/FtpTestResource.java | 4 +-- file-split-log-xml/README.adoc | 4 +-- health/README.adoc | 8 +++--- health/src/main/resources/application.properties | 10 +++---- http-log/README.adoc | 6 ++-- jdbc-datasource/README.adoc | 12 ++++---- .../src/main/resources/application.properties | 2 +- .../jdbc/PostgresSourceDatabaseTestResource.java | 4 +-- .../jdbc/PostgresTargetDatabaseTestResource.java | 4 +-- jms-jpa/README.adoc | 4 +-- jpa-idempotent-repository/README.adoc | 2 +- .../src/main/resources/application.properties | 2 +- jta-jpa/README.adoc | 7 +++-- kafka/README.adoc | 4 +-- kafka/src/main/resources/application.properties | 2 +- kamelet-chucknorris/README.adoc | 2 +- message-bridge/README.adoc | 6 ++-- netty-custom-correlation/README.adoc | 2 +- observability/README.adoc | 4 +-- openapi-contract-first/README.adoc | 2 +- platform-http-security-keycloak/README.adoc | 10 +++---- rest-json/README.adoc | 2 +- saga/README.adoc | 8 +++--- spring-redis/README.adoc | 4 +-- .../acme/spring/redis/SpringRedisTestResource.java | 2 +- timer-log-main/README.adoc | 4 +-- timer-log/README.adoc | 2 +- variables/README.adoc | 6 ++-- vertx-websocket-chat/README.adoc | 8 +++--- 47 files changed, 127 insertions(+), 116 deletions(-) diff --git a/amqp/README.adoc b/amqp/README.adoc index ed99cd51..5af2ab52 100644 --- a/amqp/README.adoc +++ b/amqp/README.adoc @@ -10,17 +10,17 @@ and other general information. == Prerequisites: -In order to send or receive message from Artemis Broker you need to start a service. -You can either run the container or start downloaded binary. +In order to send or receive messages to / from the Artemis Broker, you need to start a service. +You can either run Artemis in a container or from a downloaded Artemis binary distribution. === Run the Artemis container: [source,shell] ---- -docker run -d --rm -e AMQ_EXTRA_ARGS="--relax-jolokia" -e AMQ_USER=admin -e AMQ_PASSWORD=admin -p 5672:5672 -p 8161:8161 --name artemis quay.io/artemiscloud/activemq-artemis-broker:1.0.26 +docker run -d --rm -e AMQ_EXTRA_ARGS="--relax-jolokia" -e AMQ_USER=admin -e AMQ_PASSWORD=admin -p 5672:5672 -p 8161:8161 --name artemis quay.io/arkmq-org/activemq-artemis-broker:artemis.2.51.0 ---- -Now you can access Artemis on localhost:8161 +Now you can access Artemis on localhost:8161. === Run the downloaded binary: @@ -34,7 +34,7 @@ Change directory to the unzipped directory and start the broker. Which runs the broker in the foreground and logs to the console. -== Start in the Development mode +== Start in Development mode [source,shell] ---- diff --git a/artemis-elasticsearch/README.adoc b/artemis-elasticsearch/README.adoc index 3e4fe42c..0108e6a1 100644 --- a/artemis-elasticsearch/README.adoc +++ b/artemis-elasticsearch/README.adoc @@ -24,7 +24,7 @@ You can also use podman instead of docker for all the steps below. [source,shell] ---- -docker run -d --rm -e AMQ_EXTRA_ARGS="--relax-jolokia" -e AMQ_USER=admin -e AMQ_PASSWORD=admin -p 61616:61616 -p 8161:8161 -p 1883:1883 --name artemis quay.io/artemiscloud/activemq-artemis-broker:1.0.26 +docker run -d --rm -e AMQ_EXTRA_ARGS="--relax-jolokia" -e AMQ_USER=admin -e AMQ_PASSWORD=admin -p 61616:61616 -p 8161:8161 -p 1883:1883 --name artemis quay.io/arkmq-org/activemq-artemis-broker:artemis.2.51.0 ---- Now you can access Artemis on localhost:8161 @@ -33,13 +33,13 @@ Now you can access Artemis on localhost:8161 [source,shell] ---- -docker run -d --rm --name elasticsearch -p 9200:9200 -p 9300:9300 -it -m 4GB -e "discovery.type=single-node" -e "xpack.security.enabled=false" mirror.gcr.io/elastic/elasticsearch:8.13.2 +docker run -d --rm --name elasticsearch -p 9200:9200 -p 9300:9300 -it -m 4GB -e "discovery.type=single-node" -e "xpack.security.enabled=false" mirror.gcr.io/elastic/elasticsearch:9.1.0 ---- Now you can access Elasticsearch on localhost:9200 -== Start in the Development mode +== Start in Development mode [source,shell] ---- diff --git a/artemis-elasticsearch/src/test/java/org/acme/resource/CustomPahoTestResource.java b/artemis-elasticsearch/src/test/java/org/acme/resource/CustomPahoTestResource.java index ef3d2990..ff02309f 100644 --- a/artemis-elasticsearch/src/test/java/org/acme/resource/CustomPahoTestResource.java +++ b/artemis-elasticsearch/src/test/java/org/acme/resource/CustomPahoTestResource.java @@ -32,9 +32,10 @@ public class CustomPahoTestResource implements QuarkusTestResourceLifecycleManag @Override public Map<String, String> start() { - String imageName = "quay.io/artemiscloud/activemq-artemis-broker:1.0.26"; - if ("ppc64le".equals(SystemUtils.OS_ARCH)) + String imageName = "quay.io/arkmq-org/activemq-artemis-broker:artemis.2.51.0"; + if ("ppc64le".equals(SystemUtils.OS_ARCH)) { imageName = "icr.io/ppc64le-oss/activemq-artemis-broker-ppc64le:2.0.2"; + } container = new GenericContainer<>(DockerImageName.parse(imageName)) .withExposedPorts(61616, 8161, 1883) diff --git a/artemis-elasticsearch/src/test/java/org/acme/resource/ElasticSearchTestResource.java b/artemis-elasticsearch/src/test/java/org/acme/resource/ElasticSearchTestResource.java index b186a4d6..04acd6f4 100644 --- a/artemis-elasticsearch/src/test/java/org/acme/resource/ElasticSearchTestResource.java +++ b/artemis-elasticsearch/src/test/java/org/acme/resource/ElasticSearchTestResource.java @@ -29,25 +29,22 @@ import org.testcontainers.utility.DockerImageName; public class ElasticSearchTestResource implements QuarkusTestResourceLifecycleManager { private static final Logger LOG = LoggerFactory.getLogger(ElasticSearchTestResource.class); - private static String IMAGE_NAME; private ElasticsearchContainer container; @Override public Map<String, String> start() { - + String imageName = "mirror.gcr.io/elastic/elasticsearch:9.1.0"; if ("ppc64le".equals(SystemUtils.OS_ARCH)) { - IMAGE_NAME = "icr.io/ppc64le-oss/elasticsearch-ppc64le:8.3.3"; - } else - IMAGE_NAME = "mirror.gcr.io/elastic/elasticsearch:8.13.2"; + imageName = "icr.io/ppc64le-oss/elasticsearch-ppc64le:8.3.3"; + } - DockerImageName imageName = DockerImageName.parse(IMAGE_NAME) + DockerImageName parsedImageName = DockerImageName.parse(imageName) .asCompatibleSubstituteFor("docker.elastic.co/elasticsearch/elasticsearch"); - container = new ElasticsearchContainer(imageName) + container = new ElasticsearchContainer(parsedImageName) .withExposedPorts(9200) .withEnv("discovery.type", "single-node") .withEnv("xpack.security.enabled", "false") .waitingFor(Wait.forListeningPort()); - ; container.start(); diff --git a/aws-lambda/README.adoc b/aws-lambda/README.adoc index dcc1dba7..f7e09e7a 100644 --- a/aws-lambda/README.adoc +++ b/aws-lambda/README.adoc @@ -101,7 +101,7 @@ io.quarkus.amazon.lambda.runtime.QuarkusStreamHandler::handleRequest === Testing the AWS Lambda Function -1. Now select the Test tab for executing a quick test. Copy paste the below json payload and hit Test +1. Now select the Test tab for executing a quick test. Copy and paste the below JSON payload and hit Test { "name": "Ravishankar" @@ -115,7 +115,7 @@ io.quarkus.amazon.lambda.runtime.QuarkusStreamHandler::handleRequest [NOTE] ==== -<<package_native_executable,Please ensure that you have built your Java code as Quarkus Native executable>> +You must build the application as a native application prior to deployment. Refer to the `Package and run the application` section above for details. ==== 1. Go to AWS Web console and search for Lambda Service @@ -146,7 +146,7 @@ io.quarkus.amazon.lambda.runtime.QuarkusStreamHandler::handleRequest === Testing the AWS Lambda Function -1. Now select the Test tab for executing a quick test. Copy paste the below json payload and hit Test +1. Now select the Test tab for executing a quick test. Copy and paste the below JSON payload and hit Test { "name": "Ravishankar" diff --git a/aws2-s3/README.adoc b/aws2-s3/README.adoc index d789b70e..c8664e1f 100644 --- a/aws2-s3/README.adoc +++ b/aws2-s3/README.adoc @@ -27,7 +27,7 @@ export AWS_REGION=eu-central-1 export AWS_BUCKET_NAME=<your-bucket-name> ---- -== Start in the Development mode +== Start in Development mode [source,shell] ---- diff --git a/aws2-s3/src/main/resources/application.properties b/aws2-s3/src/main/resources/application.properties index 0985e0fe..716e7041 100644 --- a/aws2-s3/src/main/resources/application.properties +++ b/aws2-s3/src/main/resources/application.properties @@ -24,4 +24,4 @@ camel.component.aws2-s3.region=${AWS_REGION} cq.aws2-s3.example.bucketName=${AWS_BUCKET_NAME} #docker image for mocked tests -localstack.container.image=localstack/localstack:3.7.2 +localstack.container.image=mirror.gcr.io/localstack/localstack:4.13.0 diff --git a/cluster-leader-election/README.adoc b/cluster-leader-election/README.adoc index 846e5f76..0dd38d66 100644 --- a/cluster-leader-election/README.adoc +++ b/cluster-leader-election/README.adoc @@ -19,7 +19,7 @@ Apache Camel has a component (called master) that is built exactly for this scen Within the component's configuration, the developer provides a namespace to designate the shared resource. All processes that use the same namespace for the locking will ensure that only one process at a time obtains the lock. When a process has the lock, it is the leader, and the process will run. If it loses the lock for any reason, the component will stop the process, as well. -== Start in the Development mode +== Start in Development mode [source,shell] ---- @@ -90,7 +90,7 @@ INFO [clustered] (Camel (camel-quarkus-examples-cluster-leader-election) thread In the other terminal you should not see `Clustered route` message. -You can also close the application process with `CTRL+C` and watch the other terminal will take a lead and you should start seeing `Clustered route` messages. +You can also close the application process with `CTRL+C` and watch the other terminal will take a lead, and you should start seeing `Clustered route` messages. == Kubernetes diff --git a/cxf-soap/README.adoc b/cxf-soap/README.adoc index bb7a346c..e972b324 100644 --- a/cxf-soap/README.adoc +++ b/cxf-soap/README.adoc @@ -4,27 +4,27 @@ {cq-description} In this example we will create two SOAP webservices with two different approaches. Both services will use Camel routes as service implementation exposed via CXF component. -We will then communicate with the SOAP webservices (Camel consumer) directly via SOAP messages (ie. with `curl`). +We will then communicate with the SOAP webservices (Camel consumer) directly via SOAP messages (i.e. with `curl`). Later we will also leverage Camel producer to send SOAP messages to our exposed SOAP webservices. == WSDL first The "WSDL first" approach presupposes writing the link:src/main/resources/wsdl/CustomerService.wsdl[WSDL file] manually at the beginning of the SOAP service design. -Then we can use link:pom.xml#L231[the `generate-code` goal] of `quarkus-maven-plugin` to generate the Java classes for us. -The `wsdl2java` tool is used under the hood and its configuration can be found in link:src/main/resources/application.properties#L28[application.properties]. +Then we can use the `generate-code` goal of `quarkus-maven-plugin` to generate the Java classes for us. +The `wsdl2java` tool is used under the hood and its configuration can be found in `src/main/resources/application.properties`. The customer web service is exposed via Camel route endpoint `cxf:bean:customer`. Its logic is implemented directly in the route by delegating to `org.acme.cxf.soap.wsdl.repository.CustomerRepository`. The endpoint supports two SOAP operations: `getCustomersByName` and `updateCustomer`. -NOTE: Most modern IDEs will be able to discover the generared classes automatically. +NOTE: Most modern IDEs will be able to discover the generated classes automatically. You may want to check some occurrences of those in `org.acme.cxf.soap.wsdl.repository.CustomerRepository`. TIP: More information about generating Java classes from WSDL can be found in https://quarkiverse.github.io/quarkiverse-docs/quarkus-cxf/dev/user-guide/generate-java-from-wsdl.html[Java from WSDL] chapter of Quarkus CXF documentation. === Binding (Advanced) -For illustrating how other `wsdl2java` options could be applied via link:src/main/resources/application.properties#L29[`quarkus.cxf.codegen.wsdl2java.additional-params`], we have added a custom binding defined in link:src/main/resources/binding.xml[binding.xml]. +For illustrating how other `wsdl2java` options could be applied via `src/main/resources/application.properties`, we have added a custom binding defined in link:src/main/resources/binding.xml[binding.xml]. It instructs CXF to use `LocalDate` (more common in Java world) instead of default XML Date representation `XMLGregorianCalendar`. == Java first @@ -43,7 +43,7 @@ The approach mentioned above concerned the creation of SOAP webservices. We will also describe how to create a client using the Camel Quarkus CXF SOAP producer. You can observe `org.acme.cxf.soap.pojo.PojoCxfProducerRouteBuilder` where we are creating the `CxfEndpoint` which is used in the route in form of Camel producer. -It can typically looks like: +It typically looks like: [source,java] ---- from("direct:contact") @@ -52,7 +52,7 @@ from("direct:contact") For purpose of easier testing this approach we also added Camel Quarkus REST endpoint which will be used as external entry point for invoking the producer. -== Start in the Development mode +== Start in Development mode [source,shell] ---- @@ -186,9 +186,21 @@ $ curl -X GET "http://localhost:8080/producer/contacts?operationName=getContacts ---- Which should return something like: -``` -{"contacts":[{"name":"Lukas","address":{"city":"Czech Republic","street":"Random Street"},"type":"OTHER"}]} -``` +[source, json] +---- +{ + "contacts": [ + { + "name": "Lukas", + "address": { + "city": "Czech Republic", + "street": "Random Street" + }, + "type": "OTHER" + } + ] +} +---- == Package and run the application diff --git a/data-extract-langchain4j/README.adoc b/data-extract-langchain4j/README.adoc index 0a642898..c882190a 100644 --- a/data-extract-langchain4j/README.adoc +++ b/data-extract-langchain4j/README.adoc @@ -15,7 +15,7 @@ In this example, we'll convert those text conversations into Java Objects that c image::schema.png[] In order to achieve this extraction, we'll need a https://en.wikipedia.org/wiki/Large_language_model[Large Language Model (LLM)] and related serving framework that natively supports https://ollama.com/blog/structured-outputs[JSON structured output]. -Here, we choose https://ollama.com/library/granite4:3b-h[granite4:3b-h] served through https://ollama.com/[ollama] as it seems compute friendly and under Apache V2 license. +Here, we choose https://ollama.com/library/granite4:3b-h[granite4:3b-h] served through https://ollama.com/[ollama]. In order to request inference to the served model, we'll use the high-level LangChain4j APIs like https://docs.langchain4j.dev/tutorials/ai-services[AiServices]. === Start the Large Language Model @@ -24,7 +24,7 @@ Let's start a container to serve the LLM with Ollama, in a first shell type: [source,shell] ---- -docker run --rm -it -v cqex-data-extract-ollama:/root/.ollama -p 11434:11434 --name cqex-data-extract-ollama ollama/ollama:0.14.1 +docker run --rm -it -v cqex-data-extract-ollama:/root/.ollama -p 11434:11434 --name cqex-data-extract-ollama ollama/ollama:0.17.7 ---- After a moment, a log like below should be output: @@ -34,7 +34,7 @@ After a moment, a log like below should be output: time=2026-01-07T14:28:19.092Z level=INFO source=types.go:60 msg="inference compute" id=cpu library=cpu compute="" name=cpu description=cpu libdirs=ollama driver="" pci_id="" type="" total="62.2 GiB" available="62.2 GiB" ---- -Then, download the codellama model, in a second shell type: +Then, download the granite4:3b-h model, in a second shell type: [source,shell] ---- diff --git a/data-extract-langchain4j/src/test/java/org/acme/extraction/OllamaTestResource.java b/data-extract-langchain4j/src/test/java/org/acme/extraction/OllamaTestResource.java index a1b32a0c..541904e7 100644 --- a/data-extract-langchain4j/src/test/java/org/acme/extraction/OllamaTestResource.java +++ b/data-extract-langchain4j/src/test/java/org/acme/extraction/OllamaTestResource.java @@ -36,7 +36,7 @@ public class OllamaTestResource implements QuarkusTestResourceLifecycleManager { private static final Logger LOG = LoggerFactory.getLogger(OllamaTestResource.class); - private static final String OLLAMA_IMAGE = "ollama/ollama:0.14.1"; + private static final String OLLAMA_IMAGE = "ollama/ollama:0.17.7"; private static final int OLLAMA_SERVER_PORT = 11434; private static final String MODE_MOCK = "mock"; diff --git a/fhir/README.adoc b/fhir/README.adoc index 16af0361..ac5ae632 100644 --- a/fhir/README.adoc +++ b/fhir/README.adoc @@ -17,12 +17,12 @@ To run the application in development, from the runnable JAR or as a native appl docker run -ti -e hapi.fhir.fhir_version=R4 \ -e hapi.fhir.allow_multiple_delete=true -e \ -e hapi.fhir.reuse_cached_search_results_millis=-1 \ - -p 8080:8080 mirror.gcr.io/hapiproject/hapi:v7.4.0 + -p 8080:8080 mirror.gcr.io/hapiproject/hapi:v8.2.0-2 ---- Note that the container startup can take up to 30 seconds to complete. -=== Start in the Development mode +=== Start in Development mode Ensure that the aforementioned FHIR server container is started and run. @@ -196,7 +196,7 @@ $ kubectl delete all -l app.kubernetes.io/name=camel-quarkus-examples-fhir [NOTE] ==== -If you need to configure container resource limits & requests, or enable the Quarkus Kubernetes client to trust self signed certificates, you can find these configuration options in `src/main/resources/application.properties`. Simply uncomment them and set your desired values. +If you need to configure container resource limits & requests, or enable the Quarkus Kubernetes client to trust self-signed certificates, you can find these configuration options in `src/main/resources/application.properties`. Simply uncomment them and set your desired values. ==== ==== Deploying to OpenShift diff --git a/fhir/src/main/resources/application.properties b/fhir/src/main/resources/application.properties index e78f5755..ddededc3 100644 --- a/fhir/src/main/resources/application.properties +++ b/fhir/src/main/resources/application.properties @@ -28,7 +28,7 @@ camel.component.fhir.fhir-version=R4 camel.component.fhir.fhir-context=#R4 # Kubernetes configuration -# Uncomment to trust self signed certificates if they are presented by the Kubernetes API server +# Uncomment to trust self-signed certificates if they are presented by the Kubernetes API server #quarkus.kubernetes-client.trust-certs=true quarkus.kubernetes.image-pull-policy=IfNotPresent quarkus.kubernetes.ingress.expose=true diff --git a/fhir/src/test/java/org/acme/fhir/FHIRTestResource.java b/fhir/src/test/java/org/acme/fhir/FHIRTestResource.java index a691d25b..276d6684 100644 --- a/fhir/src/test/java/org/acme/fhir/FHIRTestResource.java +++ b/fhir/src/test/java/org/acme/fhir/FHIRTestResource.java @@ -29,7 +29,7 @@ public class FHIRTestResource implements QuarkusTestResourceLifecycleManager { @Override public Map<String, String> start() { - container = new GenericContainer<>("mirror.gcr.io/hapiproject/hapi:v7.4.0") + container = new GenericContainer<>("mirror.gcr.io/hapiproject/hapi:v8.6.0-1") .withExposedPorts(CONTAINER_PORT) .withEnv("hapi.fhir.fhir_version", "R4") .withEnv("hapi.fhir.allow_multiple_delete", "true") diff --git a/file-bindy-ftp/README.adoc b/file-bindy-ftp/README.adoc index dea06409..543594e7 100644 --- a/file-bindy-ftp/README.adoc +++ b/file-bindy-ftp/README.adoc @@ -153,7 +153,7 @@ $ kubectl delete all -l app.kubernetes.io/name=camel-quarkus-examples-file-bindy [NOTE] ==== -If you need to configure container resource limits & requests, or enable the Quarkus Kubernetes client to trust self signed certificates, you can find these configuration options in `src/main/resources/application.properties`. Simply uncomment them and set your desired values. +If you need to configure container resource limits & requests, or enable the Quarkus Kubernetes client to trust self-signed certificates, you can find these configuration options in `src/main/resources/application.properties`. Simply uncomment them and set your desired values. ==== ==== Deploying to OpenShift diff --git a/file-bindy-ftp/src/main/kubernetes/kubernetes.yml b/file-bindy-ftp/src/main/kubernetes/kubernetes.yml index 0d1dd906..576ccb71 100644 --- a/file-bindy-ftp/src/main/kubernetes/kubernetes.yml +++ b/file-bindy-ftp/src/main/kubernetes/kubernetes.yml @@ -37,7 +37,7 @@ spec: containers: - name: openssh-server # Use a simple SFTP server implementation based on Apache Mina SSHD. Purely for testing only, NOT for production use - image: quay.io/jamesnetherton/sftp-server:0.6.0 + image: quay.io/jamesnetherton/sftp-server:0.7.0 ports: - containerPort: 2222 env: diff --git a/file-bindy-ftp/src/main/kubernetes/openshift.yml b/file-bindy-ftp/src/main/kubernetes/openshift.yml index 0d1dd906..576ccb71 100644 --- a/file-bindy-ftp/src/main/kubernetes/openshift.yml +++ b/file-bindy-ftp/src/main/kubernetes/openshift.yml @@ -37,7 +37,7 @@ spec: containers: - name: openssh-server # Use a simple SFTP server implementation based on Apache Mina SSHD. Purely for testing only, NOT for production use - image: quay.io/jamesnetherton/sftp-server:0.6.0 + image: quay.io/jamesnetherton/sftp-server:0.7.0 ports: - containerPort: 2222 env: diff --git a/file-bindy-ftp/src/main/resources/application.properties b/file-bindy-ftp/src/main/resources/application.properties index 1be918bc..ddcc8adb 100644 --- a/file-bindy-ftp/src/main/resources/application.properties +++ b/file-bindy-ftp/src/main/resources/application.properties @@ -38,7 +38,7 @@ ftp.password = ${FTP_PASSWORD:ftppassword} # Kubernetes -# Uncomment to trust self signed certificates if they are presented by the Kubernetes API server +# Uncomment to trust self-signed certificates if they are presented by the Kubernetes API server #quarkus.kubernetes-client.trust-certs=true # Add the FTP server credentials secret to the application Pod diff --git a/file-bindy-ftp/src/test/java/org/acme/bindy/ftp/FtpTestResource.java b/file-bindy-ftp/src/test/java/org/acme/bindy/ftp/FtpTestResource.java index cb12e7a3..65b1d934 100644 --- a/file-bindy-ftp/src/test/java/org/acme/bindy/ftp/FtpTestResource.java +++ b/file-bindy-ftp/src/test/java/org/acme/bindy/ftp/FtpTestResource.java @@ -30,9 +30,9 @@ import org.testcontainers.containers.wait.strategy.Wait; public class FtpTestResource implements QuarkusTestResourceLifecycleManager { private static final int FTP_PORT = 2222; - private static final String SSH_IMAGE = "quay.io/jamesnetherton/sftp-server:0.6.0"; + private static final String SSH_IMAGE = "quay.io/jamesnetherton/sftp-server:0.7.0"; - private GenericContainer container; + private GenericContainer<?> container; @Override public Map<String, String> start() { diff --git a/file-split-log-xml/README.adoc b/file-split-log-xml/README.adoc index 22dcb9b4..fdb173f1 100644 --- a/file-split-log-xml/README.adoc +++ b/file-split-log-xml/README.adoc @@ -11,12 +11,12 @@ In particular, it demonstrates the following: 4. Usage of properties defined in `application.properties` in a Camel endpoint URI 5. No Java code required or used, the route defined in XML can still be compiled to native code. -The file consumer has been marked as non-idempotent thus it will read the same file again using a configurable 30 second delay. +The file consumer has been marked as non-idempotent thus it will read the same file again using a configurable 30-second delay. TIP: Check the https://camel.apache.org/camel-quarkus/latest/first-steps.html[Camel Quarkus User guide] for prerequisites and other general information. -== Start in the Development mode +== Start in Development mode [source,shell] ---- diff --git a/health/README.adoc b/health/README.adoc index e261b261..2e5fabac 100644 --- a/health/README.adoc +++ b/health/README.adoc @@ -1,15 +1,15 @@ = Health: A Camel Quarkus example :cq-example-description: An example that shows how to use Camel health-checks with Quarkus. -{cq-description} It also shows how you can build custom health-checks and have them automatic discovered by Camel and -used as parts of its health-check system. +{cq-description} It also shows how you can build custom health checks and have them automatic discovered by Camel and +used as parts of its health check system. TIP: Check the https://camel.apache.org/camel-quarkus/latest/first-steps.html[Camel Quarkus User guide] for prerequisites and other general information. The example has two routes. The timer route performs a given task at regular interval. For the sake of this example we'll say that this task unexpectedly freezes the service from time to time. The details can be consulted at http://localhost:8080/q/health. -The custom health check is expected to report UNKNOWN on first consultation, then UP during 10 seconds, and finally DOWN so as to +The custom health check is expected to report UNKNOWN on first consultation, then UP during 10 seconds, and finally DOWN to simulate that the service is frozen. The 2nd route is on purpose made to fail on startup by configuring netty to an unknown host. @@ -18,7 +18,7 @@ The routes health check will therefore report this route as DOWN until its exhau The details can be seen at runtime via the following url from a web browser: http://localhost:8080/q/health. -=== Start in the Development mode +=== Start in Development mode [source,shell] ---- diff --git a/health/src/main/resources/application.properties b/health/src/main/resources/application.properties index a97f65bf..9a53c859 100644 --- a/health/src/main/resources/application.properties +++ b/health/src/main/resources/application.properties @@ -23,14 +23,14 @@ quarkus.banner.enabled = false # here you can configure options on camel quarkus camel.quakus.name = MyHealthyCamel -# enable supervised route controller which will startup routes in safe manner +# enable supervised route controller which will start up routes in safe manner camel.routeController.enabled = true # attempt up till 10 times to start a route (and exhaust if still failing) # when a route is exhausted then its taken out as being supervised and -# will not take part of health-check either (UNKNOWN state) +# will not take part of health check either (UNKNOWN state) camel.routeController.back-off-max-attempts = 10 # when starting a route (and restarts) fails all attempts -# then we can control whether the route should be influence the health-check +# then we can control whether the route should be influenced by the health check # and report the route as either UNKNOWN or DOWN. Setting this option to true # will report it as DOWN otherwise its UNKNOWN #camel.routeController.unhealthy-on-exhausted = true @@ -39,10 +39,10 @@ camel.routeController.back-off-max-attempts = 10 # global flag to enable/disable camel.health.enabled = true -# routes check is default included but we can turn it on|off +# routes check is default included but, we can turn it on|off camel.health.routes-enabled = true -# registry check is default included but we can turn it on|off +# registry check is default included but, we can turn it on|off camel.health.registry-enabled = true # you can turn on or off individual routes as shown below diff --git a/http-log/README.adoc b/http-log/README.adoc index 95ca616b..66aa488a 100644 --- a/http-log/README.adoc +++ b/http-log/README.adoc @@ -13,13 +13,13 @@ You can of course also combine Quarkus REST services with Camel (see further bel TIP: Check the https://camel.apache.org/camel-quarkus/latest/first-steps.html[Camel Quarkus User guide] for prerequisites and other general information. -This example was used in a 10 minute video recording to demonstrate +This example was used in a 10-minute video recording to demonstrate how to quickly run 100 Camels with Apache Camel, Quarkus and GraalVM: - https://www.youtube.com/watch?v=4lXSf8DBQkQ -== Start in the Development mode +== Start in Development mode [source,shell] ---- @@ -78,7 +78,7 @@ $ ./target/*-runner == Using Camel from Quarkus JAX-RS The `ExampleResource.java` is a pure JAX-RS REST service without using Camel. -Suppose you wanted to add a HTTP POST that sends the HTTP body to a Kafka topic, +Suppose you wanted to add an HTTP POST that sends the HTTP body to a Kafka topic, via the camel-kafka component. You can then integrate Quarkus with Camel by dependency injecting Camels `FluentProducerTemplate` that allows to send the message in one line of code to Kafka. What's left is to configure the URL to the Kafka brokers, diff --git a/jdbc-datasource/README.adoc b/jdbc-datasource/README.adoc index 6b9aa9c0..e57fe29b 100644 --- a/jdbc-datasource/README.adoc +++ b/jdbc-datasource/README.adoc @@ -8,7 +8,7 @@ and other general information. == Start the source and target databases -All the commands in this example are expected to be run from the example directory, at the same level than the `pom.xml` file. +All the commands in this example are expected to be run from the example directory, at the same level as the `pom.xml` file. [source,shell] ---- cd jdbc-datasource @@ -23,7 +23,7 @@ docker run -p 5432:5432 \ -e POSTGRES_PASSWORD=1234567@8_source \ -e POSTGRES_DB=source_db \ -v ${PWD}/src/test/resources/init-source-db.sql:/docker-entrypoint-initdb.d/init-source-db.sql \ -mirror.gcr.io/postgres:15.0 +mirror.gcr.io/postgres:17.5 ---- In a second terminal, let's start the target database: @@ -35,7 +35,7 @@ docker run -p 5433:5432 \ -e POSTGRES_PASSWORD=1234567@8_target \ -e POSTGRES_DB=target_db \ -v ${PWD}/src/test/resources/init-target-db.sql:/docker-entrypoint-initdb.d/init-target-db.sql \ -mirror.gcr.io/postgres:15.0 +mirror.gcr.io/postgres:17.5 ---- == Running the application in dev mode @@ -83,7 +83,7 @@ mvn package ---- It produces the `quarkus-run.jar` file in the `target/quarkus-app/` directory. -Be aware that it’s not an _über-jar_ as the dependencies are copied into the `target/quarkus-app/lib/` directory. +Be aware that it’s not a _über-jar_ as the dependencies are copied into the `target/quarkus-app/lib/` directory. The application is now runnable executing the command below: @@ -92,7 +92,7 @@ The application is now runnable executing the command below: java -jar target/quarkus-app/quarkus-run.jar ---- -The application should output the same logs than in previous section. +The application should output the same logs as in the previous section. ==== Creating a native executable @@ -117,6 +117,6 @@ Either way, the resulting native executable could be started as below: ./target/*-runner ---- -The application should output the same logs than in previous section. +The application should output the same logs as in the previous section. If you want to learn more about building native executables, please consult https://quarkus.io/guides/maven-tooling. \ No newline at end of file diff --git a/jdbc-datasource/src/main/resources/application.properties b/jdbc-datasource/src/main/resources/application.properties index 0b766896..90a490fc 100644 --- a/jdbc-datasource/src/main/resources/application.properties +++ b/jdbc-datasource/src/main/resources/application.properties @@ -20,7 +20,7 @@ quarkus.banner.enabled = false quarkus.log.file.enabled = true -# Set how many time the route should be applied +# Set how many times the route should be applied etl.timer.repeatcount = 0 etl.timer.period = 10000 etl.timer.delay = 1000 diff --git a/jdbc-datasource/src/test/java/org/acme/jdbc/PostgresSourceDatabaseTestResource.java b/jdbc-datasource/src/test/java/org/acme/jdbc/PostgresSourceDatabaseTestResource.java index a96ae667..1ff882eb 100644 --- a/jdbc-datasource/src/test/java/org/acme/jdbc/PostgresSourceDatabaseTestResource.java +++ b/jdbc-datasource/src/test/java/org/acme/jdbc/PostgresSourceDatabaseTestResource.java @@ -34,7 +34,7 @@ public class PostgresSourceDatabaseTestResource<T extends GenericContainer> impl private static final Logger LOG = LoggerFactory.getLogger(PostgresSourceDatabaseTestResource.class); private static final int POSTGRES_PORT = 5432; - private static final String POSTGRES_IMAGE = "mirror.gcr.io/postgres:15.0"; + private static final String POSTGRES_IMAGE = "mirror.gcr.io/postgres:17.5"; private static final String POSTGRES_SOURCE_DB_NAME = "source_db"; private static final String POSTGRES_SOURCE_PASSWORD = "1234567@8_source"; @@ -73,7 +73,7 @@ public class PostgresSourceDatabaseTestResource<T extends GenericContainer> impl sourceDbContainer.stop(); } } catch (Exception ex) { - LOG.error("An issue occured while stopping the sourceDbContainer", ex); + LOG.error("An issue occurred while stopping the sourceDbContainer", ex); } } diff --git a/jdbc-datasource/src/test/java/org/acme/jdbc/PostgresTargetDatabaseTestResource.java b/jdbc-datasource/src/test/java/org/acme/jdbc/PostgresTargetDatabaseTestResource.java index fcfd5bb0..921539a0 100644 --- a/jdbc-datasource/src/test/java/org/acme/jdbc/PostgresTargetDatabaseTestResource.java +++ b/jdbc-datasource/src/test/java/org/acme/jdbc/PostgresTargetDatabaseTestResource.java @@ -34,7 +34,7 @@ public class PostgresTargetDatabaseTestResource<T extends GenericContainer> impl private static final Logger LOG = LoggerFactory.getLogger(PostgresTargetDatabaseTestResource.class); private static final int POSTGRES_PORT = 5432; - private static final String POSTGRES_IMAGE = "mirror.gcr.io/postgres:15.0"; + private static final String POSTGRES_IMAGE = "mirror.gcr.io/postgres:17.5"; private static final String POSTGRES_TARGET_DB_NAME = "target_db"; private static final String POSTGRES_TARGET_PASSWORD = "1234567@8_target"; @@ -73,7 +73,7 @@ public class PostgresTargetDatabaseTestResource<T extends GenericContainer> impl targetDbContainer.stop(); } } catch (Exception ex) { - LOG.error("An issue occured while stopping the targetDbContainer", ex); + LOG.error("An issue occurred while stopping the targetDbContainer", ex); } } diff --git a/jms-jpa/README.adoc b/jms-jpa/README.adoc index 7116de32..fe210666 100644 --- a/jms-jpa/README.adoc +++ b/jms-jpa/README.adoc @@ -14,7 +14,7 @@ and other general information. NOTE: The Narayana `node.identifier` is very important when you scale up in the cloud environment. It must be unique for each node. You can set it by using `quarkus.transaction-manager.node-name` property which the default value is `quarkus`. -== Start in the Development mode +== Start in Development mode [source,shell] ---- @@ -86,7 +86,7 @@ docker run --name artemis \ # Production Datasource %prod.quarkus.datasource.db-kind=mysql %prod.quarkus.datasource.username=admin -$prod.quarkus.datasource.password=admin +%prod.quarkus.datasource.password=admin %prod.quarkus.datasource.jdbc.url=mysql://localhost:3306/testdb %prod.quarkus.datasource.jdbc.transactions=xa diff --git a/jpa-idempotent-repository/README.adoc b/jpa-idempotent-repository/README.adoc index b425e397..874e3d8b 100644 --- a/jpa-idempotent-repository/README.adoc +++ b/jpa-idempotent-repository/README.adoc @@ -171,7 +171,7 @@ kubectl delete all -l app.kubernetes.io/name=camel-quarkus-examples-mariadb-data [NOTE] ==== -If you need to configure container resource limits & requests, or enable the Quarkus Kubernetes client to trust self signed certificates, you can find these configuration options in `src/main/resources/application.properties`. Simply uncomment them and set your desired values. +If you need to configure container resource limits & requests, or enable the Quarkus Kubernetes client to trust self-signed certificates, you can find these configuration options in `src/main/resources/application.properties`. Simply uncomment them and set your desired values. ==== ==== Deploying to OpenShift diff --git a/jpa-idempotent-repository/src/main/resources/application.properties b/jpa-idempotent-repository/src/main/resources/application.properties index 62948e6c..a33df3ba 100644 --- a/jpa-idempotent-repository/src/main/resources/application.properties +++ b/jpa-idempotent-repository/src/main/resources/application.properties @@ -33,7 +33,7 @@ db-hostname=localhost # Kubernetes -# Uncomment to trust self signed certificates if they are presented by the Kubernetes API server +# Uncomment to trust self-signed certificates if they are presented by the Kubernetes API server #quarkus.kubernetes-client.trust-certs=true quarkus.kubernetes.image-pull-policy=IfNotPresent diff --git a/jta-jpa/README.adoc b/jta-jpa/README.adoc index 786a3084..eca7f18c 100644 --- a/jta-jpa/README.adoc +++ b/jta-jpa/README.adoc @@ -14,7 +14,7 @@ and other general information. NOTE: The Narayana `node.identifier` is very important when you scale up in the cloud environment. It must be unique for each node. You can set it by using `quarkus.transaction-manager.node-name` property which the default value is `quarkus`. -== Start in the Development mode +== Start in Development mode [source,shell] ---- @@ -66,7 +66,7 @@ docker exec -it db-mysql mysql -uadmin -padmin testdb -e \ ==== Prerequisites -- Make sure `io.quarkus:quarkus-jdbc-mysql` has been added in `pom.xml` +- Make sure `io.quarkus:quarkus-jdbc-mysql` has been added to the project `pom.xml` - Make sure `db-mysql` has been started and ready for servicing - Edit `src/main/resource/application.properties` to uncomment all `%prod` lines @@ -191,7 +191,8 @@ Now restart the application, and wait about 10 seconds, then you can see the fol 2022-09-16 12:35:49,251 INFO [org.acm.DummyXAResourceRecovery] (Periodic Recovery) DummyXAResourceRecovery returning list of resources: [org.acme.DummyXAResource@35cdbf7a] 2022-09-16 12:35:49,270 INFO [org.acm.DummyXAResource] (Periodic Recovery) Committing DummyXAResource ---- -check the audit_log table, you should see the message "crash" in the table. + +Check the audit_log table, you should see the message "crash" in the table. == Feedback diff --git a/kafka/README.adoc b/kafka/README.adoc index f26b1b3e..68b03ff4 100644 --- a/kafka/README.adoc +++ b/kafka/README.adoc @@ -14,7 +14,7 @@ The example application requires a Kafka instance. You do not need to provide the Kafka instance yourself as long as you play with the example code in dev mode (a.k.a. `mvn quarkus:dev` - read more https://quarkus.io/guides/getting-started#development-mode[here] or as long as you only run the supplied tests (`mvn test`). -In those situations, Quarkus tooling starts a Strimzi image for you via https://quarkus.io/guides/kafka-dev-services[Quarkus Dev Services] +In those situations, Quarkus tooling starts a Strimzi image for you via https://quarkus.io/guides/kafka-dev-services[Quarkus Dev Services], and it also configures the application so that you do not need touch anything in `application.properties`. == Start in Development mode @@ -194,7 +194,7 @@ $ kubectl delete secret camel-kafka [NOTE] ==== -If you need to configure container resource limits & requests, or enable the Quarkus Kubernetes client to trust self signed certificates, you can find these configuration options in `src/main/resources/application.properties`. Simply uncomment them and set your desired values. +If you need to configure container resource limits & requests, or enable the Quarkus Kubernetes client to trust self-signed certificates, you can find these configuration options in `src/main/resources/application.properties`. Simply uncomment them and set your desired values. ==== diff --git a/kafka/src/main/resources/application.properties b/kafka/src/main/resources/application.properties index c092638d..c82c0f42 100644 --- a/kafka/src/main/resources/application.properties +++ b/kafka/src/main/resources/application.properties @@ -68,7 +68,7 @@ timer.delay = 10000 #quarkus.container-image.group=<YOUR_IMAGE_GROUP> #quarkus.container-image.registry=<YOUR_REGISTRY_URL> -# Uncomment to trust self signed certificates if they are presented by the Kubernetes API server +# Uncomment to trust self-signed certificates if they are presented by the Kubernetes API server #quarkus.kubernetes-client.trust-certs=true # Uncomment to set resource limits diff --git a/kamelet-chucknorris/README.adoc b/kamelet-chucknorris/README.adoc index 83709813..64ce3a1e 100644 --- a/kamelet-chucknorris/README.adoc +++ b/kamelet-chucknorris/README.adoc @@ -12,7 +12,7 @@ that uses the Kamelet, and logs the result from the Kamelet to the console. TIP: Check the https://camel.apache.org/camel-quarkus/latest/first-steps.html[Camel Quarkus User guide] for prerequisites and other general information. -== Start in the Development mode +== Start in Development mode [source,shell] ---- diff --git a/message-bridge/README.adoc b/message-bridge/README.adoc index c385c77b..35821d07 100644 --- a/message-bridge/README.adoc +++ b/message-bridge/README.adoc @@ -35,7 +35,7 @@ docker run \ icr.io/ibm-messaging/mq:9.4.5.0-r1 ---- -== Start in the Development mode +== Start in Development mode [source,shell] ---- @@ -170,7 +170,7 @@ TIP: You can omit -Dquarkus.kubernetes.deploy=true to disable automatic deployme Once the Ingress `camel-quarkus-examples-message-bridge` has been assigned an IP, you can start sending messages to the application: ---- -curl -X POST -H "Content-Type: text/plain" http://$(oc get ingress camel-quarkus-examples-message-bridge -o jsonpath='{.status.loadBalancer.ingress[0].ip}')/message -d 'Hello' +curl -X POST -H "Content-Type: text/plain" http://$(kubectl get ingress camel-quarkus-examples-message-bridge -o jsonpath='{.status.loadBalancer.ingress[0].ip}')/message -d 'Hello' ---- ==== Clean up @@ -194,7 +194,7 @@ oc patch service/activemq-artemis-broker -p '{"spec":{"ports":[{"name":"61616-tc ---- ---- -oc new-app icr.io/ibm-messaging/mq:9.3.2.1-r1 -e MQ_QMGR_NAME=QM1 -e LICENSE=accept -e MQ_APP_PASSWORD=passw0rd +oc new-app icr.io/ibm-messaging/mq:9.4.5.0-r1 -e MQ_QMGR_NAME=QM1 -e LICENSE=accept -e MQ_APP_PASSWORD=passw0rd ---- Next, create a `PersistentVolumeClaim` to serve as the storage for the transaction manager's object store. This example assumes that a persistent volume claim named `message-bridge` has already been set up. Keep in mind that the configuration of the persistent volume may require adjustments based on your specific OpenShift setup: diff --git a/netty-custom-correlation/README.adoc b/netty-custom-correlation/README.adoc index 447053fe..fb0e165b 100644 --- a/netty-custom-correlation/README.adoc +++ b/netty-custom-correlation/README.adoc @@ -6,7 +6,7 @@ TIP: Check the https://camel.apache.org/camel-quarkus/latest/first-steps.html[Camel Quarkus User guide] for prerequisites and other general information. -== Start in the Development mode +== Start in Development mode [source,shell] ---- diff --git a/observability/README.adoc b/observability/README.adoc index e80262dc..96cd438c 100644 --- a/observability/README.adoc +++ b/observability/README.adoc @@ -6,7 +6,7 @@ TIP: Check the https://camel.apache.org/camel-quarkus/latest/first-steps.html[Camel Quarkus User guide] for prerequisites and other general information. -== Start in the Development mode +== Start in Development mode [source,shell] ---- @@ -101,7 +101,7 @@ It will increment the counter metric each time the Camel timer is fired. Metrics are exposed on an HTTP endpoint at `/observe/metrics` on port `9876`. NOTE: Note we are using a different port (9876) for the management endpoint then our application (8080) is listening on. -This is configured in `applcation.properties` via link:src/main/resources/application.properties#L22[`quarkus.management.enabled = true`]. See the https://quarkus.io/guides/management-interface-reference[Quarkus management interface guide] for more information. +This is configured in `application.properties` with `quarkus.management.enabled = true`. See the https://quarkus.io/guides/management-interface-reference[Quarkus management interface guide] for more information. To view all Camel metrics do: diff --git a/openapi-contract-first/README.adoc b/openapi-contract-first/README.adoc index eabcf953..3c2a8531 100644 --- a/openapi-contract-first/README.adoc +++ b/openapi-contract-first/README.adoc @@ -18,7 +18,7 @@ so you can implement the APIs one by one. TIP: Check the https://camel.apache.org/camel-quarkus/latest/first-steps.html[Camel Quarkus User guide] for prerequisites and other general information. -== Start in the Development mode +== Start in Development mode [source,shell] ---- diff --git a/platform-http-security-keycloak/README.adoc b/platform-http-security-keycloak/README.adoc index 148cf792..691298cd 100644 --- a/platform-http-security-keycloak/README.adoc +++ b/platform-http-security-keycloak/README.adoc @@ -14,7 +14,7 @@ The example application requires a Keycloak instance. You do not need to provide the Keycloak instance yourself as long as you play with the example code in dev mode (a.k.a. `mvn quarkus:dev`) - read more https://quarkus.io/guides/getting-started#development-mode[here] or as long as you only run the supplied tests (`mvn test`). -In those situations, Quarkus tooling starts a Keycloak image for you via https://quarkus.io/guides/security-openid-connect-dev-services[Quarkus Dev Services] +In those situations, Quarkus tooling starts a Keycloak image for you via https://quarkus.io/guides/security-openid-connect-dev-services[Quarkus Dev Services], and it also configures the application so that you do not need touch anything in `application.properties`. [[users-configuration]] @@ -174,13 +174,13 @@ Follow https://www.keycloak.org/getting-started/getting-started-kube to install === Configure Keycloak on Kubernetes -Use the same configuration as in <<external-keycloak-instance-configuration>> and obtain `QUARKUS_OIDC_CREDENTIALS_SECRET` and rhe Kubernetes base URL (BASE_KEYCLOAK_KUBERNETES_URL) to your keycloak instance. +Use the same configuration as in <<external-keycloak-instance-configuration>> and obtain `QUARKUS_OIDC_CREDENTIALS_SECRET` and the Kubernetes base URL (BASE_KEYCLOAK_KUBERNETES_URL) to your keycloak instance. === Deploy Camel Quarkus application to Kubernetes TIP: Because we use `quarkus.kubernetes.env.secrets=quarkus-keycloak` in `application.properties` all properties from the secret `quarkus-keycloak` will be presented as ENV variables to the pod. -TIP: To trust self-signed certificates from Kubernetes API server use `-Dquarkus.kubernetes-client.trust-certs=true` in the deploy command. +TIP: To trust self-signed certificates from the Kubernetes API server use `-Dquarkus.kubernetes-client.trust-certs=true` in the deploy command. [source,shell] ---- @@ -204,7 +204,7 @@ The `kubernetes` profile uses quarkus kubernetes and openshift-container extensi </dependencies> ---- -You can check the pods status: +You can check the pod status: [source,shell] ---- @@ -269,7 +269,7 @@ The `openshift` profile uses quarkus openshift and openshift-container extension </dependencies> ---- -You can check the pods status: +You can check the pod status: [source,shell] ---- diff --git a/rest-json/README.adoc b/rest-json/README.adoc index 8a3d01b2..f7fe52eb 100644 --- a/rest-json/README.adoc +++ b/rest-json/README.adoc @@ -8,7 +8,7 @@ This example is a port of Quarkus' quickstart https://github.com/quarkusio/quark TIP: Check the https://camel.apache.org/camel-quarkus/latest/first-steps.html[Camel Quarkus User guide] for prerequisites and other general information. -== Start in the Development mode +== Start in Development mode [source,shell] ---- diff --git a/saga/README.adoc b/saga/README.adoc index 950c235b..d6dabf57 100644 --- a/saga/README.adoc +++ b/saga/README.adoc @@ -10,10 +10,10 @@ and other general information. There are 4 services as participants of the Saga: -- payment-service: it emulates a real payment transaction and it will be used by both flight-service and train-service -- flight-service: it emulates the booking of a flight ticket and it uses the payment-service to execute a payment transaction -- train-service: it emulates the reservation of a train seat and it uses the payment-service to execute a payment transaction -- app: is the starting point and it emulates a user that starts the transaction to buy both flight and train tickets +- payment-service: it emulates a real payment transaction, and it will be used by both flight-service and train-service +- flight-service: it emulates the booking of a flight ticket, and it uses the payment-service to execute a payment transaction +- train-service: it emulates the reservation of a train seat, and it uses the payment-service to execute a payment transaction +- app: is the starting point, and it emulates a user that starts the transaction to buy both flight and train tickets The starting point is a REST endpoint that creates a request for a new reservation and there is 15% probability that the payment service fails. diff --git a/spring-redis/README.adoc b/spring-redis/README.adoc index 9167ceb4..74bb13f6 100644 --- a/spring-redis/README.adoc +++ b/spring-redis/README.adoc @@ -6,7 +6,7 @@ TIP: Check the https://camel.apache.org/camel-quarkus/latest/first-steps.html[Camel Quarkus User guide] for prerequisites and other general information. -== Start in the Development mode +== Start in Development mode [source,shell] ---- @@ -27,7 +27,7 @@ In order to send or receive message from Redis you need to start a service. [source,shell] ---- -docker run -d --rm -p 6379:6379 -v /src/resources/redis.conf:/usr/local/etc/redis/redis.conf --name myredis mirror.gcr.io/redis:6.2.14-alpine redis-server /usr/local/etc/redis/redis.conf +docker run -d --rm -p 6379:6379 -v /src/resources/redis.conf:/usr/local/etc/redis/redis.conf --name myredis mirror.gcr.io/redis:7.4.0-alpine redis-server /usr/local/etc/redis/redis.conf ---- === Package and run the application diff --git a/spring-redis/src/test/java/org/acme/spring/redis/SpringRedisTestResource.java b/spring-redis/src/test/java/org/acme/spring/redis/SpringRedisTestResource.java index 48877294..91f09f78 100644 --- a/spring-redis/src/test/java/org/acme/spring/redis/SpringRedisTestResource.java +++ b/spring-redis/src/test/java/org/acme/spring/redis/SpringRedisTestResource.java @@ -29,7 +29,7 @@ import org.testcontainers.containers.wait.strategy.Wait; public class SpringRedisTestResource implements QuarkusTestResourceLifecycleManager { private static final Logger LOG = LoggerFactory.getLogger(SpringRedisTestResource.class); - private static final String IMAGE_NAME = "mirror.gcr.io/redis:6.2.14-alpine"; + private static final String IMAGE_NAME = "mirror.gcr.io/redis:7.4.0-alpine"; private static final int REDIS_PORT = 6379; private GenericContainer<?> container; diff --git a/timer-log-main/README.adoc b/timer-log-main/README.adoc index 95b6d5e8..522ae3f9 100644 --- a/timer-log-main/README.adoc +++ b/timer-log-main/README.adoc @@ -12,7 +12,7 @@ developing. TIP: Check the https://camel.apache.org/camel-quarkus/latest/first-steps.html[Camel Quarkus User guide] for prerequisites and other general information. -== Start in the Development mode +== Start in Development mode The `main()` method implemented in the `org.acme.timer.Main` requires two arguments: a greeting and a number how many times should the greeting be printed in the log. So we need to pass these two via `-Dquarkus.args` so that the @@ -31,7 +31,7 @@ https://camel.apache.org/camel-quarkus/latest/first-steps.html#_development_mode Then look at the log output in the console. As we run the example in Quarkus Dev Mode, you can edit the source code and have live updates. For example try to change `greeting = args[i++];` to `greeting = args[i++] + "!!!";` in the `main()` -method and you should see the application being recompiled, restarted and the greeting with three exclamation marks +method, and you should see the application being recompiled, restarted and the greeting with three exclamation marks should appear in the console. === Package and run the application diff --git a/timer-log/README.adoc b/timer-log/README.adoc index ff33f8f6..e6f749ad 100644 --- a/timer-log/README.adoc +++ b/timer-log/README.adoc @@ -6,7 +6,7 @@ TIP: Check the https://camel.apache.org/camel-quarkus/latest/first-steps.html[Camel Quarkus User guide] for prerequisites and other general information. -== Start in the Development mode +== Start in Development mode [source,shell] ---- diff --git a/variables/README.adoc b/variables/README.adoc index d9be25e9..b32c246b 100644 --- a/variables/README.adoc +++ b/variables/README.adoc @@ -6,7 +6,7 @@ TIP: Check the https://camel.apache.org/camel-quarkus/latest/first-steps.html[Camel Quarkus User guide] for prerequisites and other general information. -== Start in the Development mode +== Start in Development mode [source,shell] ---- @@ -19,14 +19,14 @@ workspace. Any modifications in your project will automatically take effect in t TIP: Please refer to the Development mode section of https://camel.apache.org/camel-quarkus/latest/first-steps.html#_development_mode[Camel Quarkus User guide] for more details. -Then look at the log output in the console. There are log messages generated from a second route. First several message show random number `N/A` (as is defined in application.properties). Following messages show random number generated by the first route, which starts delayed. +Then look at the log output in the console. There are log messages generated from a second route. First several messages show random number `N/A` (as is defined in application.properties). Following messages show random number generated by the first route, which starts delayed. As we run the example in Quarkus Dev Mode, you can edit the source code and have live updates. For example, try to change the default greeting message in `application.properties` to `Greeting`. The delay of the random member generation and period at which the timer fires can be changed by modifying configuration properties `timer.period` and `timer.delay` in `application.properties`. You can also override the default values via the command line with JVM arguments -`-Dtimer.period=100 -Dtimer.delay=1000' +`-Dtimer.period=100 -Dtimer.delay=1000` === Package and run the application diff --git a/vertx-websocket-chat/README.adoc b/vertx-websocket-chat/README.adoc index 66b4f2a1..9d7c62fa 100644 --- a/vertx-websocket-chat/README.adoc +++ b/vertx-websocket-chat/README.adoc @@ -6,7 +6,7 @@ TIP: Check the https://camel.apache.org/camel-quarkus/latest/first-steps.html[Camel Quarkus User guide] for prerequisites and other general information. -== Start in the Development mode +== Start in Development mode You can run your application in dev mode that enables live coding using: @@ -15,13 +15,13 @@ You can run your application in dev mode that enables live coding using: $ mvn compile quarkus:dev ---- -The above command compiles the project, starts the application and lets the Quarkus tooling watch for changes in your workspace. Any modifications in your project will automatically take effect in the running application.You can find the application running http://localhost:8080 +The above command compiles the project, starts the application and lets the Quarkus tooling watch for changes in your workspace. Any modifications in your project will automatically take effect in the running application. You can find the application running http://localhost:8080 TIP: Please refer to the Development mode section of https://camel.apache.org/camel-quarkus/latest/first-steps.html#_development_mode[Camel Quarkus User guide] for more details. -As we run the example in Quarkus Dev Mode, you can connect to the websocket by providing a username.Once you connect, you can see a chat room where you can send/receive messages. -You can write your message in the message section and you will be able to send the message either to a specific peer or to all of the users conncected by clicking the dropdown of the send button.You can click on the peer of your choice from the list to send the message only to that speicific peer.On clicking Send All,you can send your message to all of the users connected locally.You'll also be able to see the conversation on your window. +As we run the example in Quarkus Dev Mode, you can connect to the websocket by providing a username. Once you connect, you can see a chat room where you can send/receive messages. +You can write your message in the message section, and you will be able to send the message either to a specific peer or to all users connected by clicking the dropdown of the send button. You can click on the peer of your choice from the list to send the message only to that specific peer. On clicking Send All, you can send your message to all users connected locally. You'll also be able to see the conversation on your window. === Package and run the application
