You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by al...@apache.org on 2021/11/03 15:05:14 UTC
[camel-quarkus] branch main updated: Expand route configurations
test coverage #2978
This is an automated email from the ASF dual-hosted git repository.
aldettinger pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/main by this push:
new a2f9cf8 Expand route configurations test coverage #2978
a2f9cf8 is described below
commit a2f9cf851641d797b7cabca7074cfeb3ab128580
Author: aldettinger <al...@gmail.com>
AuthorDate: Tue Nov 2 16:49:07 2021 +0100
Expand route configurations test coverage #2978
---
integration-test-groups/foundation/pom.xml | 1 +
.../foundation/route-configurations/pom.xml | 152 +++++++++++++++++++++
.../RouteConfigurationsConfigurationBuilder.java | 34 +++++
.../RouteConfigurationsException.java | 35 +++++
.../RouteConfigurationsResource.java | 66 +++++++++
.../RouteConfigurationsRouteBuilder.java | 56 ++++++++
.../src/main/resources/application.properties | 17 +++
.../src/main/resources/xml/routeConfigurations.xml | 26 ++++
.../src/main/resources/xml/routes.xml | 23 ++++
.../main/resources/yaml/routeConfigurations.yaml | 28 ++++
.../src/main/resources/yaml/routes.yaml | 24 ++++
.../routeconfigurations/RouteConfigurationsIT.java | 23 ++++
.../RouteConfigurationsTest.java | 89 ++++++++++++
integration-tests/foundation-grouped/pom.xml | 34 +++++
14 files changed, 608 insertions(+)
diff --git a/integration-test-groups/foundation/pom.xml b/integration-test-groups/foundation/pom.xml
index 2e662a4..9d1bf27 100644
--- a/integration-test-groups/foundation/pom.xml
+++ b/integration-test-groups/foundation/pom.xml
@@ -49,6 +49,7 @@
<module>log</module>
<module>mock</module>
<module>ref</module>
+ <module>route-configurations</module>
<module>scheduler</module>
<module>seda</module>
<module>stream</module>
diff --git a/integration-test-groups/foundation/route-configurations/pom.xml b/integration-test-groups/foundation/route-configurations/pom.xml
new file mode 100644
index 0000000..b73eec9
--- /dev/null
+++ b/integration-test-groups/foundation/route-configurations/pom.xml
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-build-parent-it</artifactId>
+ <version>2.5.0-SNAPSHOT</version>
+ <relativePath>../../../poms/build-parent-it/pom.xml</relativePath>
+ </parent>
+
+ <artifactId>camel-quarkus-integration-test-route-configurations</artifactId>
+ <name>Camel Quarkus :: Integration Tests :: Route Configurations :: Tests</name>
+ <description>The camel quarkus integration tests for route configurations</description>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-direct</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-xml-io-dsl</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-yaml-dsl</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>io.quarkus</groupId>
+ <artifactId>quarkus-resteasy</artifactId>
+ </dependency>
+
+ <!-- test dependencies -->
+ <dependency>
+ <groupId>io.quarkus</groupId>
+ <artifactId>quarkus-junit5</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>io.rest-assured</groupId>
+ <artifactId>rest-assured</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory -->
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-core-deployment</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-direct-deployment</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-xml-io-dsl-deployment</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-yaml-dsl-deployment</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ </dependencies>
+
+ <profiles>
+ <profile>
+ <id>native</id>
+ <activation>
+ <property>
+ <name>native</name>
+ </property>
+ </activation>
+ <properties>
+ <quarkus.package.type>native</quarkus.package.type>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-failsafe-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+
+</project>
diff --git a/integration-test-groups/foundation/route-configurations/src/main/java/org/apache/camel/quarkus/core/it/routeconfigurations/RouteConfigurationsConfigurationBuilder.java b/integration-test-groups/foundation/route-configurations/src/main/java/org/apache/camel/quarkus/core/it/routeconfigurations/RouteConfigurationsConfigurationBuilder.java
new file mode 100644
index 0000000..2927049
--- /dev/null
+++ b/integration-test-groups/foundation/route-configurations/src/main/java/org/apache/camel/quarkus/core/it/routeconfigurations/RouteConfigurationsConfigurationBuilder.java
@@ -0,0 +1,34 @@
+/*
+ * 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.quarkus.core.it.routeconfigurations;
+
+import org.apache.camel.builder.RouteConfigurationBuilder;
+
+public class RouteConfigurationsConfigurationBuilder extends RouteConfigurationBuilder {
+ @Override
+ public void configuration() {
+ routeConfiguration()
+ .onException(RouteConfigurationsException.class)
+ .handled(true)
+ .setBody(constant("onException has been triggered in fallbackRouteConfiguration"));
+
+ routeConfiguration("routeConfigurationWithExplicitId")
+ .onException(RouteConfigurationsException.class)
+ .handled(true)
+ .setBody(constant("onException has been triggered in routeConfigurationWithExplicitId"));
+ }
+}
diff --git a/integration-test-groups/foundation/route-configurations/src/main/java/org/apache/camel/quarkus/core/it/routeconfigurations/RouteConfigurationsException.java b/integration-test-groups/foundation/route-configurations/src/main/java/org/apache/camel/quarkus/core/it/routeconfigurations/RouteConfigurationsException.java
new file mode 100644
index 0000000..27dda72
--- /dev/null
+++ b/integration-test-groups/foundation/route-configurations/src/main/java/org/apache/camel/quarkus/core/it/routeconfigurations/RouteConfigurationsException.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.core.it.routeconfigurations;
+
+import io.quarkus.runtime.annotations.RegisterForReflection;
+
+/**
+ * Having an Exception implementation dedicated to route configurations tests
+ * reinforce tests isolation. It's especially useful when the foundation tests
+ * are running grouped.
+ */
+@RegisterForReflection
+public class RouteConfigurationsException extends Exception {
+
+ private static final long serialVersionUID = 1L;
+
+ public RouteConfigurationsException(String message) {
+ super(message);
+ }
+
+}
diff --git a/integration-test-groups/foundation/route-configurations/src/main/java/org/apache/camel/quarkus/core/it/routeconfigurations/RouteConfigurationsResource.java b/integration-test-groups/foundation/route-configurations/src/main/java/org/apache/camel/quarkus/core/it/routeconfigurations/RouteConfigurationsResource.java
new file mode 100644
index 0000000..39e39ae
--- /dev/null
+++ b/integration-test-groups/foundation/route-configurations/src/main/java/org/apache/camel/quarkus/core/it/routeconfigurations/RouteConfigurationsResource.java
@@ -0,0 +1,66 @@
+/*
+ * 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.quarkus.core.it.routeconfigurations;
+
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Inject;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+import org.apache.camel.ProducerTemplate;
+
+@Path("/core")
+@ApplicationScoped
+public class RouteConfigurationsResource {
+
+ @Inject
+ ProducerTemplate producerTemplate;
+
+ @Path("/route-configurations/routeConfigurationWithExplicitId")
+ @GET
+ @Consumes(MediaType.TEXT_PLAIN)
+ @Produces(MediaType.TEXT_PLAIN)
+ public String routeConfigurationWithExplicitId(String content) {
+ return producerTemplate.requestBody("direct:routeConfigurationWithExplicitId", content, String.class);
+ }
+
+ @Path("/route-configurations/fallbackRouteConfiguration")
+ @GET
+ @Consumes(MediaType.TEXT_PLAIN)
+ @Produces(MediaType.TEXT_PLAIN)
+ public String fallbackRouteConfiguration(String content) {
+ return producerTemplate.requestBody("direct:fallbackRouteConfiguration", content, String.class);
+ }
+
+ @Path("/route-configurations/xmlRoute")
+ @GET
+ @Produces(MediaType.TEXT_PLAIN)
+ public String xmlRoute() {
+ return producerTemplate.requestBody("direct:xmlRoute", null, String.class);
+ }
+
+ @Path("/route-configurations/yamlRoute")
+ @GET
+ @Produces(MediaType.TEXT_PLAIN)
+ public String yamlRoute() {
+ return producerTemplate.requestBody("direct:yamlRoute", null, String.class);
+ }
+
+}
diff --git a/integration-test-groups/foundation/route-configurations/src/main/java/org/apache/camel/quarkus/core/it/routeconfigurations/RouteConfigurationsRouteBuilder.java b/integration-test-groups/foundation/route-configurations/src/main/java/org/apache/camel/quarkus/core/it/routeconfigurations/RouteConfigurationsRouteBuilder.java
new file mode 100644
index 0000000..dab6987
--- /dev/null
+++ b/integration-test-groups/foundation/route-configurations/src/main/java/org/apache/camel/quarkus/core/it/routeconfigurations/RouteConfigurationsRouteBuilder.java
@@ -0,0 +1,56 @@
+/*
+ * 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.quarkus.core.it.routeconfigurations;
+
+import org.apache.camel.Exchange;
+import org.apache.camel.Processor;
+import org.apache.camel.builder.RouteBuilder;
+
+public class RouteConfigurationsRouteBuilder extends RouteBuilder {
+
+ @Override
+ public void configure() {
+ from("direct:routeConfigurationWithExplicitId")
+ .routeConfigurationId("routeConfigurationWithExplicitId")
+ .process(new Processor() {
+ @Override
+ public void process(Exchange exchange) throws RouteConfigurationsException {
+ String body = exchange.getIn().getBody(String.class);
+ if ("explicit-exception".equals(body)) {
+ String message = "Intentional exception to trigger onException in routeConfigurationWithExplicitId";
+ throw new RouteConfigurationsException(message);
+ }
+ exchange.getMessage().setBody("onException has NOT been triggered in routeConfigurationWithExplicitId");
+ }
+ });
+
+ from("direct:fallbackRouteConfiguration")
+ .process(new Processor() {
+ @Override
+ public void process(Exchange exchange) throws RouteConfigurationsException {
+ String body = exchange.getIn().getBody(String.class);
+ if ("default-exception".equals(body)) {
+ String message = "Intentional exception to trigger onException in fallbackRouteConfiguration";
+ throw new RouteConfigurationsException(message);
+ }
+ exchange.getMessage()
+ .setBody("onException has NOT been triggered in fallbackRouteConfiguration");
+ }
+ });
+ }
+
+}
diff --git a/integration-test-groups/foundation/route-configurations/src/main/resources/application.properties b/integration-test-groups/foundation/route-configurations/src/main/resources/application.properties
new file mode 100644
index 0000000..80c421d
--- /dev/null
+++ b/integration-test-groups/foundation/route-configurations/src/main/resources/application.properties
@@ -0,0 +1,17 @@
+## ---------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements. See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License. You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ---------------------------------------------------------------------------
+camel.main.routes-include-pattern = classpath:xml/routes.xml,classpath:xml/routeConfigurations.xml,classpath:yaml/routeConfigurations.yaml,classpath:yaml/routes.yaml
diff --git a/integration-test-groups/foundation/route-configurations/src/main/resources/xml/routeConfigurations.xml b/integration-test-groups/foundation/route-configurations/src/main/resources/xml/routeConfigurations.xml
new file mode 100644
index 0000000..f7c2335
--- /dev/null
+++ b/integration-test-groups/foundation/route-configurations/src/main/resources/xml/routeConfigurations.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+<routeConfiguration id="xmlRouteConfiguration">
+ <onException>
+ <exception>org.apache.camel.quarkus.core.it.routeconfigurations.RouteConfigurationsException</exception>
+ <handled><constant>true</constant></handled>
+ <setBody><constant>onException has been triggered in xmlRouteConfiguration</constant></setBody>
+ </onException>
+</routeConfiguration>
diff --git a/integration-test-groups/foundation/route-configurations/src/main/resources/xml/routes.xml b/integration-test-groups/foundation/route-configurations/src/main/resources/xml/routes.xml
new file mode 100644
index 0000000..ab79c3e
--- /dev/null
+++ b/integration-test-groups/foundation/route-configurations/src/main/resources/xml/routes.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+-->
+<route routeConfigurationId="yamlRouteConfiguration">
+ <from uri="direct:xmlRoute"/>
+ <throwException exceptionType="org.apache.camel.quarkus.core.it.routeconfigurations.RouteConfigurationsException" message="Intentional exception to trigger onException in yamlRouteConfiguration"/>
+</route>
diff --git a/integration-test-groups/foundation/route-configurations/src/main/resources/yaml/routeConfigurations.yaml b/integration-test-groups/foundation/route-configurations/src/main/resources/yaml/routeConfigurations.yaml
new file mode 100644
index 0000000..fc71716
--- /dev/null
+++ b/integration-test-groups/foundation/route-configurations/src/main/resources/yaml/routeConfigurations.yaml
@@ -0,0 +1,28 @@
+#
+# 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.
+#
+
+- route-configuration:
+ - id: "yamlRouteConfiguration"
+ - on-exception:
+ handled:
+ constant: "true"
+ exception:
+ - "org.apache.camel.quarkus.core.it.routeconfigurations.RouteConfigurationsException"
+ steps:
+ - set-body:
+ constant:
+ expression: "onException has been triggered in yamlRouteConfiguration"
\ No newline at end of file
diff --git a/integration-test-groups/foundation/route-configurations/src/main/resources/yaml/routes.yaml b/integration-test-groups/foundation/route-configurations/src/main/resources/yaml/routes.yaml
new file mode 100644
index 0000000..6e5418f
--- /dev/null
+++ b/integration-test-groups/foundation/route-configurations/src/main/resources/yaml/routes.yaml
@@ -0,0 +1,24 @@
+#
+# 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.
+#
+
+- route:
+ route-configuration-id: "xmlRouteConfiguration"
+ from: "direct:yamlRoute"
+ steps:
+ - throw-exception:
+ exception-type: "org.apache.camel.quarkus.core.it.routeconfigurations.RouteConfigurationsException"
+ message: "Intentional exception to trigger onException in xmlRouteConfiguration"
\ No newline at end of file
diff --git a/integration-test-groups/foundation/route-configurations/src/test/java/org/apache/camel/quarkus/core/it/routeconfigurations/RouteConfigurationsIT.java b/integration-test-groups/foundation/route-configurations/src/test/java/org/apache/camel/quarkus/core/it/routeconfigurations/RouteConfigurationsIT.java
new file mode 100644
index 0000000..60f3253
--- /dev/null
+++ b/integration-test-groups/foundation/route-configurations/src/test/java/org/apache/camel/quarkus/core/it/routeconfigurations/RouteConfigurationsIT.java
@@ -0,0 +1,23 @@
+/*
+ * 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.quarkus.core.it.routeconfigurations;
+
+import io.quarkus.test.junit.NativeImageTest;
+
+@NativeImageTest
+public class RouteConfigurationsIT extends RouteConfigurationsTest {
+}
diff --git a/integration-test-groups/foundation/route-configurations/src/test/java/org/apache/camel/quarkus/core/it/routeconfigurations/RouteConfigurationsTest.java b/integration-test-groups/foundation/route-configurations/src/test/java/org/apache/camel/quarkus/core/it/routeconfigurations/RouteConfigurationsTest.java
new file mode 100644
index 0000000..32ad5eb
--- /dev/null
+++ b/integration-test-groups/foundation/route-configurations/src/test/java/org/apache/camel/quarkus/core/it/routeconfigurations/RouteConfigurationsTest.java
@@ -0,0 +1,89 @@
+/*
+ * 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.quarkus.core.it.routeconfigurations;
+
+import io.quarkus.test.junit.QuarkusTest;
+import io.restassured.RestAssured;
+import org.junit.jupiter.api.Test;
+
+import static org.hamcrest.Matchers.is;
+
+@QuarkusTest
+public class RouteConfigurationsTest {
+
+ @Test
+ public void sendNominalContentToRouteConfigurationWithExplicitIdShouldNotTriggerOnException() {
+ String expected = "onException has NOT been triggered in routeConfigurationWithExplicitId";
+ RestAssured.given()
+ .body("explicit-nominal")
+ .when()
+ .get("/core/route-configurations/routeConfigurationWithExplicitId")
+ .then()
+ .body(is(expected));
+ }
+
+ @Test
+ public void sendExceptionContentToRouteConfigurationWithExplicitIdShouldTriggerOnException() {
+ String expected = "onException has been triggered in routeConfigurationWithExplicitId";
+ RestAssured.given()
+ .body("explicit-exception")
+ .when()
+ .get("/core/route-configurations/routeConfigurationWithExplicitId")
+ .then()
+ .body(is(expected));
+ }
+
+ @Test
+ public void sendNominalContentToDefaultRouteConfigurationShouldNotTriggerOnException() {
+ String expected = "onException has NOT been triggered in fallbackRouteConfiguration";
+ RestAssured.given()
+ .body("default-nominal")
+ .when()
+ .get("/core/route-configurations/fallbackRouteConfiguration")
+ .then()
+ .body(is(expected));
+ }
+
+ @Test
+ public void sendExceptionContentToDefaultRouteConfigurationShouldTriggerOnException() {
+ String expected = "onException has been triggered in fallbackRouteConfiguration";
+ RestAssured.given()
+ .body("default-exception")
+ .when()
+ .get("/core/route-configurations/fallbackRouteConfiguration")
+ .then()
+ .body(is(expected));
+ }
+
+ @Test
+ public void sendContentToYamlRouteShouldTriggerOnExceptionInXmlRouteConfiguration() {
+ String expected = "onException has been triggered in xmlRouteConfiguration";
+ RestAssured.given()
+ .get("/core/route-configurations/yamlRoute")
+ .then()
+ .body(is(expected));
+ }
+
+ @Test
+ public void sendContentToXmlRouteShouldTriggerOnExceptionInYamlRouteConfiguration() {
+ String expected = "onException has been triggered in yamlRouteConfiguration";
+ RestAssured.given()
+ .get("/core/route-configurations/xmlRoute")
+ .then()
+ .body(is(expected));
+ }
+}
diff --git a/integration-tests/foundation-grouped/pom.xml b/integration-tests/foundation-grouped/pom.xml
index 0f0787d..aaed8b6 100644
--- a/integration-tests/foundation-grouped/pom.xml
+++ b/integration-tests/foundation-grouped/pom.xml
@@ -117,6 +117,14 @@
<artifactId>camel-quarkus-timer</artifactId>
</dependency>
<dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-xml-io-dsl</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-yaml-dsl</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
@@ -329,6 +337,32 @@
</exclusion>
</exclusions>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-xml-io-dsl-deployment</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-yaml-dsl-deployment</artifactId>
+ <version>${project.version}</version>
+ <type>pom</type>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
</dependencies>
<build>