This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit 40c0695fb88b3f6616203b1ad9226921484c26eb Author: Andrea Cosentino <[email protected]> AuthorDate: Thu Sep 26 10:05:48 2019 +0200 Regen --- .../src/main/docs/aws-s3-component.adoc | 2 +- .../main/docs/kubernetes-services-component.adoc | 51 +++++++++++++++++++++ .../modules/ROOT/pages/aws-s3-component.adoc | 2 +- .../components/modules/ROOT/pages/spring-boot.adoc | 52 +++++++++++++++++++++- .../modules/ROOT/pages/test-spring-junit5.adoc | 1 + 5 files changed, 105 insertions(+), 3 deletions(-) diff --git a/components/camel-aws-s3/src/main/docs/aws-s3-component.adoc b/components/camel-aws-s3/src/main/docs/aws-s3-component.adoc index 628eb41..962cf4c 100644 --- a/components/camel-aws-s3/src/main/docs/aws-s3-component.adoc +++ b/components/camel-aws-s3/src/main/docs/aws-s3-component.adoc @@ -65,7 +65,7 @@ The AWS S3 Storage Service component supports 5 options, which are listed below. The AWS S3 Storage Service endpoint is configured using URI syntax: ---- -aws-s3:bucketNameOrArn +aws-s3://bucketNameOrArn ---- with the following path and query parameters: diff --git a/components/camel-kubernetes/src/main/docs/kubernetes-services-component.adoc b/components/camel-kubernetes/src/main/docs/kubernetes-services-component.adoc index 2917639..fb1852e 100644 --- a/components/camel-kubernetes/src/main/docs/kubernetes-services-component.adoc +++ b/components/camel-kubernetes/src/main/docs/kubernetes-services-component.adoc @@ -118,3 +118,54 @@ The component supports 2 options, which are listed below. - getService - createService - deleteService + +== Kubernetes Services Producer Examples + +- listServices: this operation list the services on a kubernetes cluster + +[source,java] +-------------------------------------------------------------------------------- +from("direct:list"). + toF("kubernetes-services:///?kubernetesClient=#kubernetesClient&operation=listServices"). + to("mock:result"); +-------------------------------------------------------------------------------- + +This operation return a List of servoces from your cluster + +- listServicesByLabels: this operation list the deployments by labels on a kubernetes cluster + +[source,java] +-------------------------------------------------------------------------------- +from("direct:listByLabels").process(new Processor() { + + @Override + public void process(Exchange exchange) throws Exception { + Map<String, String> labels = new HashMap<>(); + labels.put("key1", "value1"); + labels.put("key2", "value2"); + exchange.getIn().setHeader(KubernetesConstants.KUBERNETES_SERVICE_LABELS, labels); + } + }); + toF("kubernetes-services:///?kubernetesClient=#kubernetesClient&operation=listServicesByLabels"). + to("mock:result"); +-------------------------------------------------------------------------------- + +This operation return a List of Services from your cluster, using a label selector (with key1 and key2, with value value1 and value2) + +== Kubernetes Services Consumer Example + +[source,java] +-------------------------------------------------------------------------------- +fromF("kubernetes-services://%s?oauthToken=%s&namespace=default&resourceName=test", host, authToken).process(new KubernertesProcessor()).to("mock:result"); + + public class KubernertesProcessor implements Processor { + @Override + public void process(Exchange exchange) throws Exception { + Message in = exchange.getIn(); + Service sv = exchange.getIn().getBody(Service.class); + log.info("Got event with configmap name: " + sv.getMetadata().getName() + " and action " + in.getHeader(KubernetesConstants.KUBERNETES_EVENT_ACTION)); + } + } +-------------------------------------------------------------------------------- + +This consumer will return a list of events on the namespace default for the deployment test. diff --git a/docs/components/modules/ROOT/pages/aws-s3-component.adoc b/docs/components/modules/ROOT/pages/aws-s3-component.adoc index 6ca3296..a204dbf 100644 --- a/docs/components/modules/ROOT/pages/aws-s3-component.adoc +++ b/docs/components/modules/ROOT/pages/aws-s3-component.adoc @@ -66,7 +66,7 @@ The AWS S3 Storage Service component supports 5 options, which are listed below. The AWS S3 Storage Service endpoint is configured using URI syntax: ---- -aws-s3:bucketNameOrArn +aws-s3://bucketNameOrArn ---- with the following path and query parameters: diff --git a/docs/components/modules/ROOT/pages/spring-boot.adoc b/docs/components/modules/ROOT/pages/spring-boot.adoc index 3ed2e85..f0bac65 100644 --- a/docs/components/modules/ROOT/pages/spring-boot.adoc +++ b/docs/components/modules/ROOT/pages/spring-boot.adoc @@ -578,7 +578,7 @@ The Rest-DSL XML files should be Camel XML rests (not CamelContext) such as ---- [[SpringBoot-Testing]] -== Testing +== Testing the JUnit 4 way For testing, Maven users will need to add the following dependencies to their `pom.xml`: [source,xml] @@ -628,3 +628,53 @@ public class MyApplicationTest { } ---- +== Testing the JUnit 5 way +For testing, Maven users will need to add the following dependencies to their `pom.xml`: + +[source,xml] +---- +<dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <version>${spring-boot.version}</version> <!-- Use the same version as your Spring Boot version --> + <scope>test</scope> +</dependency> +<dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-test-spring-junit5</artifactId> + <version>${camel.version}</version> <!-- use the same version as your Camel core version --> + <scope>test</scope> +</dependency> +---- + +To test a Camel Spring Boot application, annotate your test class(es) with +`@CamelSpringBootTest`. This brings Camel's Spring Test +support to your application, so that you can write tests using +https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-testing.html[Spring Boot test conventions]. + +To get the `CamelContext` or `ProducerTemplate`, you can inject them into the class in the normal Spring manner, using `@Autowired`. + +You can also use xref:manual::spring-testing.adoc[Camel Spring test annotations] to configure tests declaratively. This example uses the `@MockEndpoints` annotation to auto-mock an endpoint: + +[source,java] +---- +@CamelSpringBootTest +@SpringBootApplication +@MockEndpoints("direct:end") +public class MyApplicationTest { + + @Autowired + private ProducerTemplate template; + + @EndpointInject("mock:direct:end") + private MockEndpoint mock; + + @Test + public void testReceive() throws Exception { + mock.expectedBodiesReceived("Hello"); + template.sendBody("direct:start", "Hello"); + mock.assertIsSatisfied(); + } + +} +---- diff --git a/docs/components/modules/ROOT/pages/test-spring-junit5.adoc b/docs/components/modules/ROOT/pages/test-spring-junit5.adoc index dcf5242..bf26517 100644 --- a/docs/components/modules/ROOT/pages/test-spring-junit5.adoc +++ b/docs/components/modules/ROOT/pages/test-spring-junit5.adoc @@ -139,3 +139,4 @@ Tips: It's possible to run JUnit 4 & JUnit 5 based Camel Spring tests side by si * Imports of `org.apache.camel.test.spring.\*` should be replaced with `org.apache.camel.test.spring.junit5.*` * Usage of `@RunWith(CamelSpringRunner.class)` should be replaced with `@CamelSpringTest` * Usage of `@BootstrapWith(CamelTestContextBootstrapper.class)` should be replaced with `@CamelSpringTest` +* Usage of `@RunWith(CamelSpringBootRunner.class)` should be replaced with `@CamelSpringBootTest`
