You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by fm...@apache.org on 2024/03/20 11:02:44 UTC
(camel-spring-boot) branch main updated: [CAMEL-20577] Test for avoid rest dupes
This is an automated email from the ASF dual-hosted git repository.
fmariani pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot.git
The following commit(s) were added to refs/heads/main by this push:
new ef979632725 [CAMEL-20577] Test for avoid rest dupes
ef979632725 is described below
commit ef979632725bbd83e9045c32d4abb6d5941fc000
Author: Croway <fe...@gmail.com>
AuthorDate: Tue Mar 19 15:32:44 2024 +0100
[CAMEL-20577] Test for avoid rest dupes
---
core/camel-spring-boot-xml/pom.xml | 5 ++
.../camel/spring/boot/xml/MixedRestDslTest.java | 74 ++++++++++++++++++++++
.../src/test/resources/camel-xml-io-dsl.xml | 27 ++++++++
.../src/test/resources/spring-camel-context.xml | 46 ++++++++++++++
4 files changed, 152 insertions(+)
diff --git a/core/camel-spring-boot-xml/pom.xml b/core/camel-spring-boot-xml/pom.xml
index 6fa2756f4b9..fe1833f2577 100644
--- a/core/camel-spring-boot-xml/pom.xml
+++ b/core/camel-spring-boot-xml/pom.xml
@@ -92,6 +92,11 @@
<version>${spring-boot-version}</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel.springboot</groupId>
+ <artifactId>camel-jetty-starter</artifactId>
+ <version>${project.version}</version>
+ </dependency>
</dependencies>
<build>
diff --git a/core/camel-spring-boot-xml/src/test/java/org/apache/camel/spring/boot/xml/MixedRestDslTest.java b/core/camel-spring-boot-xml/src/test/java/org/apache/camel/spring/boot/xml/MixedRestDslTest.java
new file mode 100644
index 00000000000..c683303835b
--- /dev/null
+++ b/core/camel-spring-boot-xml/src/test/java/org/apache/camel/spring/boot/xml/MixedRestDslTest.java
@@ -0,0 +1,74 @@
+/*
+ * 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.spring.boot.xml;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.rest.RestEndpoint;
+import org.apache.camel.spring.boot.CamelAutoConfiguration;
+import org.apache.camel.test.spring.junit5.CamelSpringBootTest;
+import org.assertj.core.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.ImportResource;
+import org.springframework.test.annotation.DirtiesContext;
+
+@DirtiesContext
+@CamelSpringBootTest
+@SpringBootTest(
+ properties = {
+ "camel.springboot.routes-include-pattern=classpath:camel-xml-io-dsl.xml",
+ "spring.main.allow-circular-references=true"
+ })
+public class MixedRestDslTest {
+
+ @Autowired
+ CamelContext camelContext;
+
+ @Test
+ public void testMultipleRestDslDefinition() {
+ Assertions.assertThat(camelContext.getRoutes())
+ .filteredOn(
+ route -> route.getEndpoint() instanceof RestEndpoint
+ )
+ .map(route -> ((RestEndpoint) route.getEndpoint()).getPath())
+ .containsExactlyInAnyOrder(
+ "java",
+ "xml-io",
+ "spring");
+ }
+
+ @Configuration
+ @EnableAutoConfiguration
+ @ImportResource(value = { "classpath:spring-camel-context.xml" })
+ public static class TestConfiguration {
+
+ @Bean
+ protected RouteBuilder createRouteBuilder() throws Exception {
+ return new RouteBuilder() {
+ @Override
+ public void configure() {
+ rest("java").get().to("direct:test");
+ }
+ };
+ }
+ }
+}
diff --git a/core/camel-spring-boot-xml/src/test/resources/camel-xml-io-dsl.xml b/core/camel-spring-boot-xml/src/test/resources/camel-xml-io-dsl.xml
new file mode 100644
index 00000000000..c96156752ae
--- /dev/null
+++ b/core/camel-spring-boot-xml/src/test/resources/camel-xml-io-dsl.xml
@@ -0,0 +1,27 @@
+<?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.
+
+-->
+
+<rests xmlns="http://camel.apache.org/schema/spring">
+ <rest path="xml-io">
+ <get consumes="application/json" produces="application/json">
+ <to uri="direct:createUser"/>
+ </get>
+ </rest>
+</rests>
\ No newline at end of file
diff --git a/core/camel-spring-boot-xml/src/test/resources/spring-camel-context.xml b/core/camel-spring-boot-xml/src/test/resources/spring-camel-context.xml
new file mode 100644
index 00000000000..91105c6e92f
--- /dev/null
+++ b/core/camel-spring-boot-xml/src/test/resources/spring-camel-context.xml
@@ -0,0 +1,46 @@
+<?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.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
+ http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">
+
+ <camelContext xmlns="http://camel.apache.org/schema/spring"
+ id="camel" useMDCLogging="true">
+
+ <restConfiguration component="jetty" bindingMode="json" enableCORS="true">
+ <apiProperty key="api.description" value="Desc"/>
+ </restConfiguration>
+ <rest path="spring">
+ <get consumes="application/json" produces="application/json">
+ <to uri="direct:sample"/>
+ </get>
+ </rest>
+ <route>
+ <from uri="direct:sample" />
+ <to uri="direct:test"/>
+ </route>
+ <route>
+ <from uri="direct:test" />
+ <log message="logged"/>
+ </route>
+ </camelContext>
+
+</beans>
\ No newline at end of file