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 fe83fcd926a329af4b5d05bf07929c76843a1ea1 Author: Luca Burgazzoli <[email protected]> AuthorDate: Mon Mar 1 14:05:00 2021 +0100 CAMEL-16275: move RouteBuilderLoader implementations to dedicated artefact --- bom/camel-bom/pom.xml | 15 +++ .../services/org/apache/camel/routes-loader/java | 2 - .../services/org/apache/camel/routes-loader/xml | 2 - .../camel-yaml-dsl => camel-java-joor-dsl}/pom.xml | 117 ++++++-------------- .../services/org/apache/camel/routes-loader/java | 2 + .../src/main/docs/java-joor-dsl.adoc | 15 +++ .../dsl/java/joor/JavaRoutesBuilderLoader.java | 18 +-- .../camel/dsl/java/joor/JavaMainRestsTest.java | 20 ++-- .../camel/dsl/java/joor/JavaMainTemplateTest.java | 16 +-- .../apache/camel/dsl/java/joor/JavaMainTest.java | 45 +++----- .../dsl/java/joor/JavaRoutesBuilderLoaderTest.java | 36 +++--- .../java/joor/support/MockRestConsumerFactory.java | 40 +++---- .../apache/camel/dsl/java/joor/support/MyUser.java | 27 +++-- .../src/test/resources/log4j2-test.properties | 31 ++++++ .../org/apache/camel/main/java/MyRoutesDummy.java | 6 +- .../org/apache/camel/main/java/MyRoutesScan.java | 6 +- .../apache/camel/main/java/MyRoutesWithRest.java | 9 +- .../camel/main/java/MyRoutesWithTemplate.java | 10 +- .../src/test/resources/routes/MyRoutes.java | 0 .../test/resources/routes/MyRoutesWithBeans.java | 0 .../test/resources/routes/MyRoutesWithModel.java | 2 +- .../resources/routes/MyRoutesWithNestedClass.java | 0 .../resources/routes/MyRoutesWithNestedTypes.java | 0 .../test/resources/routes/MyRoutesWithPackage.java | 0 .../routes/MyRoutesWithPackageAndComment.java | 0 .../routes/MyRoutesWithPackageAndLineComment.java | 0 .../routes/MyRoutesWithRestConfiguration.java | 0 .../camel-yaml-dsl => camel-xml-io-dsl}/pom.xml | 122 ++++++--------------- .../services/org/apache/camel/routes-loader/xml | 2 +- .../src/main/docs/java-xml-io-dsl.adoc | 11 ++ .../camel/dsl/xml/io}/XmlRoutesBuilderLoader.java | 3 +- .../apache/camel/dsl/xml/io/XmlMainRestsTest.java | 6 +- .../camel/dsl/xml/io/XmlMainTemplateTest.java | 6 +- .../org/apache/camel/dsl/xml/io/XmlMainTest.java | 6 +- .../dsl/xml/io}/XmlRoutesBuilderLoaderTest.java | 2 +- .../xml/io/support/MockRestConsumerFactory.java | 40 +++---- .../src/test/resources/log4j2-test.properties | 31 ++++++ .../org/apache/camel/main/xml/camel-dummy.xml | 2 +- .../org/apache/camel/main/xml/camel-rests.xml | 0 .../org/apache/camel/main/xml/camel-scan.xml | 2 +- .../org/apache/camel/main/xml/camel-template.xml | 10 +- .../camel-yaml-dsl => camel-xml-jaxb-dsl}/pom.xml | 120 ++++++-------------- .../services/org/apache/camel/routes-loader/xml | 2 + .../src/main/docs/java-xml-jaxb-dsl.adoc | 11 ++ .../dsl}/xml/jaxb/JaxbXmlRoutesBuilderLoader.java | 2 +- .../camel/dsl/xml/jaxb/JaxbXmlMainRestsTest.java | 6 +- .../dsl/xml/jaxb/JaxbXmlMainTemplateTest.java | 6 +- .../apache/camel/dsl/xml/jaxb/JaxbXmlMainTest.java | 6 +- .../xml/jaxb/JaxbXmlRoutesBuilderLoaderTest.java | 28 +++-- .../xml/jaxb/support/MockRestConsumerFactory.java | 40 +++---- .../src/test/resources/log4j2-test.properties | 31 ++++++ .../org/apache/camel/main/xml/camel-dummy.xml | 0 .../org/apache/camel/main/xml/camel-rests.xml | 0 .../org/apache/camel/main/xml/camel-scan.xml | 0 .../org/apache/camel/main/xml/camel-template.xml | 10 +- .../services/org/apache/camel/other.properties | 7 -- dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml | 5 + .../services/org/apache/camel/other.properties | 7 -- .../src/generated/resources/yaml-dsl.json | 14 --- .../camel-yaml-dsl/src/main/docs/yaml-dsl.adoc | 4 +- .../camel/dsl/yaml/YamlRoutesBuilderLoader.java | 23 +++- .../org/apache/camel/dsl/yaml/MainTest.groovy | 39 +++++++ .../src/test/resources/routes/routes.yaml | 20 ++++ dsl/pom.xml | 3 + parent/pom.xml | 39 +++++-- 65 files changed, 589 insertions(+), 496 deletions(-) diff --git a/bom/camel-bom/pom.xml b/bom/camel-bom/pom.xml index bcbe59c..a3f524a 100644 --- a/bom/camel-bom/pom.xml +++ b/bom/camel-bom/pom.xml @@ -947,6 +947,11 @@ <artifactId>camel-jasypt</artifactId> <version>${project.version}</version> </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-java-joor-dsl</artifactId> + <version>${project.version}</version> + </dependency> <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-jaxb</artifactId> @@ -2000,11 +2005,21 @@ </dependency> <dependency> <groupId>org.apache.camel</groupId> + <artifactId>camel-xml-io-dsl</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> <artifactId>camel-xml-jaxb</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.camel</groupId> + <artifactId>camel-xml-jaxb-dsl</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> <artifactId>camel-xml-jaxp</artifactId> <version>${project.version}</version> </dependency> diff --git a/components/camel-joor/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/java b/components/camel-joor/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/java deleted file mode 100644 index d1968d0..0000000 --- a/components/camel-joor/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/java +++ /dev/null @@ -1,2 +0,0 @@ -# Generated by camel build tools - do NOT edit this file! -class=org.apache.camel.language.joor.JoorRoutesBuilderLoader diff --git a/core/camel-xml-jaxb/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml b/core/camel-xml-jaxb/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml deleted file mode 100644 index daa444e..0000000 --- a/core/camel-xml-jaxb/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml +++ /dev/null @@ -1,2 +0,0 @@ -# Generated by camel build tools - do NOT edit this file! -class=org.apache.camel.xml.jaxb.JaxbXmlRoutesBuilderLoader diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml b/dsl/camel-java-joor-dsl/pom.xml similarity index 56% copy from dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml copy to dsl/camel-java-joor-dsl/pom.xml index 298b94c..15fde31 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml +++ b/dsl/camel-java-joor-dsl/pom.xml @@ -24,19 +24,19 @@ <parent> <groupId>org.apache.camel</groupId> - <artifactId>camel-yaml-dsl-parent</artifactId> + <artifactId>dsl</artifactId> <version>3.9.0-SNAPSHOT</version> </parent> - <artifactId>camel-yaml-dsl</artifactId> + <artifactId>camel-java-joor-dsl</artifactId> <packaging>jar</packaging> - <name>Camel :: YAML DSL</name> - <description>Camel DSL with YAML</description> + <name>Camel :: Java DSL with jOOR</name> + <description>Camel Java DSL with jOOR</description> <properties> <firstVersion>3.9.0</firstVersion> <sourcecheckExcludes> - **/*.groovy + **/resources/**/My*.java </sourcecheckExcludes> <sourcecheckExcludesComma> ${sourcecheckExcludes}, @@ -46,42 +46,25 @@ <dependencies> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-yaml-dsl-common</artifactId> - <version>${project.version}</version> + <artifactId>camel-support</artifactId> </dependency> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-yaml-dsl-deserializers</artifactId> - <version>${project.version}</version> + <artifactId>camel-core-model</artifactId> </dependency> + <!-- requires Java 11 or 14 --> <dependency> - <groupId>org.junit.jupiter</groupId> - <artifactId>junit-jupiter</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.assertj</groupId> - <artifactId>assertj-core</artifactId> - <scope>test</scope> + <groupId>org.jooq</groupId> + <artifactId>joor</artifactId> + <version>${joor-version}</version> </dependency> + <dependency> - <groupId>org.spockframework</groupId> - <artifactId>spock-core</artifactId> - <version>${spock-version}</version> + <groupId>org.apache.camel</groupId> + <artifactId>camel-main</artifactId> <scope>test</scope> - <exclusions> - <exclusion> - <groupId>org.codehaus.groovy</groupId> - <artifactId>*</artifactId> - </exclusion> - <exclusion> - <groupId>junit</groupId> - <artifactId>*</artifactId> - </exclusion> - </exclusions> </dependency> - <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-direct</artifactId> @@ -124,34 +107,17 @@ </dependency> <dependency> - <groupId>org.codehaus.groovy</groupId> - <artifactId>groovy</artifactId> - <version>${groovy-version}</version> + <groupId>org.assertj</groupId> + <artifactId>assertj-core</artifactId> <scope>test</scope> </dependency> <dependency> - <groupId>org.codehaus.groovy</groupId> - <artifactId>groovy-test</artifactId> - <version>${groovy-version}</version> + <groupId>org.apache.camel</groupId> + <artifactId>camel-test-junit5</artifactId> <scope>test</scope> </dependency> <dependency> - <groupId>com.github.java-json-tools</groupId> - <artifactId>json-schema-validator</artifactId> - <version>${json-schema-validator-version}</version> - </dependency> - - <dependency> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-databind</artifactId> - </dependency> - <dependency> - <groupId>com.fasterxml.jackson.dataformat</groupId> - <artifactId>jackson-dataformat-yaml</artifactId> - </dependency> - - <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <scope>test</scope> @@ -173,40 +139,6 @@ <plugins> <plugin> <groupId>org.apache.camel</groupId> - <artifactId>camel-yaml-dsl-maven-plugin</artifactId> - <version>${project.version}</version> - <executions> - <execution> - <phase>generate-sources</phase> - <goals> - <goal>generate-yaml-schema</goal> - </goals> - <configuration> - <bannedDefinitions> - <bannedDefinition>org.apache.camel.model.FromDefinition</bannedDefinition> - </bannedDefinitions> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.codehaus.gmavenplus</groupId> - <artifactId>gmavenplus-plugin</artifactId> - <version>${gmavenplus-plugin-version}</version> - <executions> - <execution> - <goals> - <goal>addTestSources</goal> - <goal>compileTests</goal> - </goals> - </execution> - </executions> - <configuration> - <invokeDynamic>true</invokeDynamic> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.camel</groupId> <artifactId>camel-package-maven-plugin</artifactId> <executions> <execution> @@ -220,4 +152,17 @@ </plugins> </build> + <!-- skip testing on java 8 --> + <profiles> + <profile> + <id>jdk8</id> + <activation> + <jdk>[,8)</jdk> + </activation> + <properties> + <maven.test.skip.exec>true</maven.test.skip.exec> + </properties> + </profile> + </profiles> + </project> \ No newline at end of file diff --git a/dsl/camel-java-joor-dsl/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/java b/dsl/camel-java-joor-dsl/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/java new file mode 100644 index 0000000..a1c82c7 --- /dev/null +++ b/dsl/camel-java-joor-dsl/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/java @@ -0,0 +1,2 @@ +# Generated by camel build tools - do NOT edit this file! +class=org.apache.camel.dsl.java.joor.JavaRoutesBuilderLoader diff --git a/dsl/camel-java-joor-dsl/src/main/docs/java-joor-dsl.adoc b/dsl/camel-java-joor-dsl/src/main/docs/java-joor-dsl.adoc new file mode 100644 index 0000000..179cd72 --- /dev/null +++ b/dsl/camel-java-joor-dsl/src/main/docs/java-joor-dsl.adoc @@ -0,0 +1,15 @@ +[[java-joor-dsl-other]] += Java DSL based on joor +:docTitle: XML Dsl +:artifactId: camel-java-joor-dsl +:description: Camel DSL with YAML +:supportLevel: Stable +:since: 3. +:supportLevel: Preview +include::{cq-version}@camel-quarkus:ROOT:partial$reference/others/java-joor-dsl.adoc[opts=optional] +//Manually maintained attributes +:group: DSL + +xml-io- + +See https://camel.apache.org/manual/latest/dsl.html \ No newline at end of file diff --git a/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorRoutesBuilderLoader.java b/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java similarity index 85% rename from components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorRoutesBuilderLoader.java rename to dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java index 0ebf95f..949618b 100644 --- a/components/camel-joor/src/main/java/org/apache/camel/language/joor/JoorRoutesBuilderLoader.java +++ b/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.language.joor; +package org.apache.camel.dsl.java.joor; import java.io.InputStream; import java.util.regex.Matcher; @@ -35,8 +35,8 @@ import org.apache.camel.util.IOHelper; import org.joor.Reflect; @ManagedResource(description = "Managed JavaRoutesBuilderLoader") -@RoutesLoader(JoorRoutesBuilderLoader.EXTENSION) -public class JoorRoutesBuilderLoader extends RoutesBuilderLoaderSupport { +@RoutesLoader(JavaRoutesBuilderLoader.EXTENSION) +public class JavaRoutesBuilderLoader extends RoutesBuilderLoaderSupport { public static final String EXTENSION = "java"; public static final Pattern PACKAGE_PATTERN = Pattern.compile( "^\\s*package\\s+([a-zA-Z][\\.\\w]*)\\s*;.*$", Pattern.MULTILINE); @@ -61,12 +61,16 @@ public class JoorRoutesBuilderLoader extends RoutesBuilderLoaderSupport { final String content = IOHelper.loadText(is); final String name = determineName(resource, content); - StartupStep step = recorder.beginStep(JoorRoutesBuilderLoader.class, name, "Compiling RouteBuilder"); + StartupStep step = recorder != null + ? recorder.beginStep(JavaRoutesBuilderLoader.class, name, "Compiling RouteBuilder") + : null; + try { - final Reflect compiled = Reflect.compile(name, content); - return compiled.create().get(); + return Reflect.compile(name, content).create().get(); } finally { - recorder.endStep(step); + if (recorder != null) { + recorder.endStep(step); + } } } } diff --git a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlRestsTest.java b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaMainRestsTest.java similarity index 83% copy from core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlRestsTest.java copy to dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaMainRestsTest.java index 77c27b8..d91acce 100644 --- a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlRestsTest.java +++ b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaMainRestsTest.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.main.xml; +package org.apache.camel.dsl.java.joor; import java.util.List; import org.apache.camel.CamelContext; +import org.apache.camel.dsl.java.joor.support.MockRestConsumerFactory; import org.apache.camel.main.Main; -import org.apache.camel.main.support.MockRestConsumerFactory; import org.apache.camel.model.ModelCamelContext; import org.apache.camel.model.rest.GetVerbDefinition; import org.apache.camel.model.rest.RestDefinition; @@ -31,13 +31,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; -public class MainXmlRestsTest { +public class JavaMainRestsTest { @Test public void testMainRestsCollector() { // will load XML from target/classes when testing doTestMain( - "org/apache/camel/main/xml/camel-rests.xml", + "org/apache/camel/main/java/MyRoutesWithRest.java", null); } @@ -45,7 +45,7 @@ public class MainXmlRestsTest { public void testMainRestsCollectorScan() { // will load XML from target/classes when testing doTestMain( - "org/apache/camel/main/xml/camel-res*.xml", + "org/apache/camel/main/java/MyRoutesWithRes*.java", null); } @@ -53,7 +53,7 @@ public class MainXmlRestsTest { public void testMainRestsCollectorScanWildcardDirClasspathPath() { // will load XML from target/classes when testing doTestMain( - "org/apache/camel/main/**/camel-res*.xml", + "org/apache/camel/main/**/MyRoutesWithRes*.java", null); } @@ -61,28 +61,28 @@ public class MainXmlRestsTest { public void testMainRestsCollectorScanClasspathPrefix() { // will load XML from target/classes when testing doTestMain( - "classpath:org/apache/camel/main/xml/camel-res*.xml", + "classpath:org/apache/camel/main/java/MyRoutesWithRes*.java", null); } @Test public void testMainRestsCollectorScanInDir() { doTestMain( - "file:src/test/resources/org/apache/camel/main/xml/camel-res*.xml", + "file:src/test/resources/org/apache/camel/main/java/MyRoutesWithRes*.java", null); } @Test public void testMainRestsCollectorScanWildcardDirFilePath() { doTestMain( - "file:src/test/resources/**/camel-res*.xml", + "file:src/test/resources/org/**/MyRoutesWithRes*.java", null); } @Test public void testMainRestsCollectorFile() { doTestMain( - "file:src/test/resources/org/apache/camel/main/xml/camel-rests.xml,", + "file:src/test/resources/org/apache/camel/main/java/MyRoutesWithRest.java,", null); } diff --git a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTemplateTest.java b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaMainTemplateTest.java similarity index 83% copy from core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTemplateTest.java copy to dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaMainTemplateTest.java index 847b862..fd755fa 100644 --- a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTemplateTest.java +++ b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaMainTemplateTest.java @@ -14,24 +14,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.main.xml; +package org.apache.camel.dsl.java.joor; import org.apache.camel.CamelContext; +import org.apache.camel.dsl.java.joor.support.MockRestConsumerFactory; import org.apache.camel.main.Main; -import org.apache.camel.main.support.MockRestConsumerFactory; import org.apache.camel.model.ModelCamelContext; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -public class MainXmlTemplateTest { +public class JavaMainTemplateTest { @Test public void testMainRoutesCollector() { // will load XML from target/classes when testing doTestMain( - "org/apache/camel/main/xml/camel-template.xml", + "org/apache/camel/main/java/MyRoutesWithTemplate.java", null); } @@ -39,7 +39,7 @@ public class MainXmlTemplateTest { public void testMainRoutesCollectorScan() { // will load XML from target/classes when testing doTestMain( - "org/apache/camel/main/xml/camel-template*.xml", + "org/apache/camel/main/java/MyRoutesWithTempl*.java", null); } @@ -47,7 +47,7 @@ public class MainXmlTemplateTest { public void testMainRoutesCollectorScanTwo() { // will load XML from target/classes when testing doTestMain( - "org/apache/camel/main/xml/camel-t*.xml", + "org/apache/camel/main/java/MyRoutesWithTempl*.java", null); } @@ -55,7 +55,7 @@ public class MainXmlTemplateTest { public void testMainRoutesCollectorScanWildcardDirClasspathPath() { // will load XML from target/classes when testing doTestMain( - "org/apache/camel/main/**/camel-t*.xml", + "org/apache/camel/main/**/MyRoutesWithTempl*.java", null); } @@ -63,7 +63,7 @@ public class MainXmlTemplateTest { public void testMainRoutesCollectorScanClasspathPrefix() { // will load XML from target/classes when testing doTestMain( - "classpath:org/apache/camel/main/xml/camel-t*.xml", + "classpath:org/apache/camel/main/java/MyRoutesWithTempl*.java", null); } diff --git a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTest.java b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaMainTest.java similarity index 67% copy from core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTest.java copy to dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaMainTest.java index 44ac8f3..b18a2ea 100644 --- a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTest.java +++ b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaMainTest.java @@ -14,24 +14,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.main.xml; +package org.apache.camel.dsl.java.joor; import org.apache.camel.CamelContext; import org.apache.camel.component.mock.MockEndpoint; +import org.apache.camel.dsl.java.joor.support.MockRestConsumerFactory; import org.apache.camel.main.Main; -import org.apache.camel.main.support.MockRestConsumerFactory; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -public class MainXmlTest { +public class JavaMainTest { @Test public void testMainRoutesCollector() throws Exception { // will load XML from target/classes when testing doTestMain( - "org/apache/camel/main/xml/camel-dummy.xml,org/apache/camel/main/xml/camel-scan.xml", + "org/apache/camel/main/java/MyRoutesDummy.java,org/apache/camel/main/java/MyRoutesScan.java", null); } @@ -39,59 +39,44 @@ public class MainXmlTest { public void testMainRoutesCollectorScan() throws Exception { // will load XML from target/classes when testing doTestMain( - "org/apache/camel/main/xml/camel-*.xml", - "**/camel-rests.xml,**/camel-template.xml"); + "org/apache/camel/main/java/MyRoutes*.java", + "**/*Rest*.java,**/*Template*.java"); } @Test public void testMainRoutesCollectorScanWildcardDirClasspathPath() throws Exception { // will load XML from target/classes when testing doTestMain( - "org/apache/camel/main/**/*.xml", - "**/camel-rests.xml,**/camel-template.xml"); + "org/apache/camel/main/**/*.java", + "**/*Rest*.java,**/*Template*.java"); } @Test public void testMainRoutesCollectorScanClasspathPrefix() throws Exception { // will load XML from target/classes when testing doTestMain( - "classpath:org/apache/camel/main/xml/camel-*.xml", - "**/camel-rests.xml,**/camel-template.xml"); - } - - @Test - public void testMainRoutesCollectorScanInJar() throws Exception { - // will load XML from camel-core test JAR when testing - doTestMain( - "org/apache/camel/model/scan-*.xml", - null); + "classpath:org/apache/camel/main/java/MyRoutes*.java", + "**/*Rest*.java,**/*Template*.java"); } @Test public void testMainRoutesCollectorScanInDir() throws Exception { doTestMain( - "file:src/test/resources/org/apache/camel/main/xml/camel-*.xml", - "**/camel-rests.xml,**/camel-template.xml"); + "file:src/test/resources/org/apache/camel/main/java/MyRoutes*.java", + "**/*Rest*.java,**/*Template*.java"); } @Test public void testMainRoutesCollectorScanWildcardDirFilePath() throws Exception { doTestMain( - "file:src/test/resources/**/*.xml", - "**/camel-rests.xml,**/camel-template.xml"); + "file:src/test/resources/org/**/*.java", + "**/*Rest*.java,**/*Template*.java"); } @Test public void testMainRoutesCollectorFile() throws Exception { doTestMain( - "file:src/test/resources/org/apache/camel/main/xml/camel-dummy.xml,file:src/test/resources/org/apache/camel/main/xml/camel-scan.xml,", - null); - } - - @Test - public void testMainRoutesCollectorScanInJarAndDir() throws Exception { - doTestMain( - "classpath:org/apache/camel/main/xml/*dummy.xml,file:src/test/resources/org/apache/camel/main/xml/*scan.xml", + "file:src/test/resources/org/apache/camel/main/java/MyRoutesDummy.java,file:src/test/resources/org/apache/camel/main/java/MyRoutesScan.java", null); } diff --git a/components/camel-joor/src/test/java/org/apache/camel/language/joor/JoorRoutesBuilderLoaderTest.java b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoaderTest.java similarity index 75% rename from components/camel-joor/src/test/java/org/apache/camel/language/joor/JoorRoutesBuilderLoaderTest.java rename to dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoaderTest.java index a19181b..f14d635 100644 --- a/components/camel-joor/src/test/java/org/apache/camel/language/joor/JoorRoutesBuilderLoaderTest.java +++ b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoaderTest.java @@ -14,24 +14,26 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.language.joor; +package org.apache.camel.dsl.java.joor; import java.util.Collection; import org.apache.camel.RoutesBuilder; import org.apache.camel.builder.RouteBuilder; +import org.apache.camel.dsl.java.joor.support.MyUser; import org.apache.camel.impl.DefaultCamelContext; import org.apache.camel.model.ProcessDefinition; import org.apache.camel.model.SetBodyDefinition; import org.apache.camel.model.ToDefinition; import org.apache.camel.spi.Resource; +import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; import static org.assertj.core.api.Assertions.assertThat; -public class JoorRoutesBuilderLoaderTest { +public class JavaRoutesBuilderLoaderTest { @ParameterizedTest @ValueSource(strings = { @@ -42,7 +44,7 @@ public class JoorRoutesBuilderLoaderTest { }) void testLoadRoutes(String location) throws Exception { try (DefaultCamelContext context = new DefaultCamelContext()) { - Resource resource = Resource.fromClasspath(JoorRoutesBuilderLoaderTest.class, location); + Resource resource = Resource.fromClasspath(JavaRoutesBuilderLoaderTest.class, location); Collection<RoutesBuilder> builders = context.getRoutesLoader().findRoutesBuilders(resource); assertThat(builders).hasSize(1); @@ -51,12 +53,12 @@ public class JoorRoutesBuilderLoaderTest { builder.setContext(context); builder.configure(); - assertThat(builder.getRouteCollection().getRoutes()) + Assertions.assertThat(builder.getRouteCollection().getRoutes()) .hasSize(1) .first() .satisfies(rd -> { - assertThat(rd.getInput().getEndpointUri()).matches("timer:.*tick"); - assertThat(rd.getOutputs().get(0)).isInstanceOf(ToDefinition.class); + Assertions.assertThat(rd.getInput().getEndpointUri()).matches("timer:.*tick"); + Assertions.assertThat(rd.getOutputs().get(0)).isInstanceOf(ToDefinition.class); }); } } @@ -66,7 +68,7 @@ public class JoorRoutesBuilderLoaderTest { final String location = "/routes/MyRoutesWithNestedClass.java"; try (DefaultCamelContext context = new DefaultCamelContext()) { - Resource resource = Resource.fromClasspath(JoorRoutesBuilderLoaderTest.class, location); + Resource resource = Resource.fromClasspath(JavaRoutesBuilderLoaderTest.class, location); Collection<RoutesBuilder> builders = context.getRoutesLoader().findRoutesBuilders(resource); assertThat(builders).hasSize(1); @@ -75,14 +77,14 @@ public class JoorRoutesBuilderLoaderTest { builder.setContext(context); builder.configure(); - assertThat(builder.getRouteCollection().getRoutes()) + Assertions.assertThat(builder.getRouteCollection().getRoutes()) .hasSize(1) .first() .satisfies(rd -> { - assertThat(rd.getInput().getEndpointUri()).matches("timer:.*tick"); - assertThat(rd.getOutputs().get(0)).isInstanceOf(SetBodyDefinition.class); - assertThat(rd.getOutputs().get(1)).isInstanceOf(ProcessDefinition.class); - assertThat(rd.getOutputs().get(2)).isInstanceOf(ToDefinition.class); + Assertions.assertThat(rd.getInput().getEndpointUri()).matches("timer:.*tick"); + Assertions.assertThat(rd.getOutputs().get(0)).isInstanceOf(SetBodyDefinition.class); + Assertions.assertThat(rd.getOutputs().get(1)).isInstanceOf(ProcessDefinition.class); + Assertions.assertThat(rd.getOutputs().get(2)).isInstanceOf(ToDefinition.class); }); } } @@ -92,7 +94,7 @@ public class JoorRoutesBuilderLoaderTest { final String location = "/routes/MyRoutesWithRestConfiguration.java"; try (DefaultCamelContext context = new DefaultCamelContext()) { - Resource resource = Resource.fromClasspath(JoorRoutesBuilderLoaderTest.class, location); + Resource resource = Resource.fromClasspath(JavaRoutesBuilderLoaderTest.class, location); Collection<RoutesBuilder> builders = context.getRoutesLoader().findRoutesBuilders(resource); assertThat(builders).hasSize(1); @@ -101,7 +103,7 @@ public class JoorRoutesBuilderLoaderTest { builder.setContext(context); builder.configure(); - assertThat(builder.getRestConfiguration()) + Assertions.assertThat(builder.getRestConfiguration()) .hasFieldOrPropertyWithValue("component", "restlet"); } } @@ -111,7 +113,7 @@ public class JoorRoutesBuilderLoaderTest { final String location = "/routes/MyRoutesWithModel.java"; try (DefaultCamelContext context = new DefaultCamelContext()) { - Resource resource = Resource.fromClasspath(JoorRoutesBuilderLoaderTest.class, location); + Resource resource = Resource.fromClasspath(JavaRoutesBuilderLoaderTest.class, location); Collection<RoutesBuilder> builders = context.getRoutesLoader().findRoutesBuilders(resource); assertThat(builders).hasSize(1); @@ -120,8 +122,8 @@ public class JoorRoutesBuilderLoaderTest { builder.setContext(context); builder.configure(); - assertThat(builder.getRestCollection().getRests()).anySatisfy(rd -> { - assertThat(rd.getVerbs()) + Assertions.assertThat(builder.getRestCollection().getRests()).anySatisfy(rd -> { + Assertions.assertThat(rd.getVerbs()) .first() .hasFieldOrPropertyWithValue("outType", MyUser.class.getName()); }); diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/support/MockRestConsumerFactory.java similarity index 55% copy from components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java copy to dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/support/MockRestConsumerFactory.java index e4c2944..e38832f 100644 --- a/components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java +++ b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/support/MockRestConsumerFactory.java @@ -14,26 +14,28 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import org.apache.camel.Exchange; -import org.apache.camel.Processor; -import org.apache.camel.builder.RouteBuilder; +package org.apache.camel.dsl.java.joor.support; -public class MyRoutesWithNestedClass extends RouteBuilder { - @Override - public void configure() throws Exception { - Processor toUpper = new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - String body = exchange.getIn().getBody(String.class); - body = body.toUpperCase(); +import java.util.Map; - exchange.getOut().setBody(body); - } - }; +import org.apache.camel.CamelContext; +import org.apache.camel.Consumer; +import org.apache.camel.Processor; +import org.apache.camel.spi.RestConfiguration; +import org.apache.camel.spi.RestConsumerFactory; - from("timer:tick") - .setBody().constant("test") - .process(toUpper) - .to("log:info"); +public final class MockRestConsumerFactory implements RestConsumerFactory { + @Override + public Consumer createConsumer( + CamelContext camelContext, + Processor processor, + String verb, + String basePath, + String uriTemplate, + String consumes, + String produces, + RestConfiguration configuration, + Map<String, Object> parameters) { + return null; } -} \ No newline at end of file +} diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithNestedTypes.java b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/support/MyUser.java similarity index 69% copy from components/camel-joor/src/test/resources/routes/MyRoutesWithNestedTypes.java copy to dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/support/MyUser.java index 1e0d168..93d6c0f 100644 --- a/components/camel-joor/src/test/resources/routes/MyRoutesWithNestedTypes.java +++ b/dsl/camel-java-joor-dsl/src/test/java/org/apache/camel/dsl/java/joor/support/MyUser.java @@ -14,15 +14,26 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import org.apache.camel.Exchange; -import org.apache.camel.Processor; -import org.apache.camel.builder.RouteBuilder; +package org.apache.camel.dsl.java.joor.support; -public class MyRoutesWithNestedTypes extends RouteBuilder { - @Override - public void configure() throws Exception { +public class MyUser { + + private String name; + private int age; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getAge() { + return age; } - public static class MyModel { + public void setAge(int age) { + this.age = age; } -} \ No newline at end of file +} diff --git a/dsl/camel-java-joor-dsl/src/test/resources/log4j2-test.properties b/dsl/camel-java-joor-dsl/src/test/resources/log4j2-test.properties new file mode 100644 index 0000000..fe99721 --- /dev/null +++ b/dsl/camel-java-joor-dsl/src/test/resources/log4j2-test.properties @@ -0,0 +1,31 @@ +## --------------------------------------------------------------------------- +## 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. +## --------------------------------------------------------------------------- + +appender.file.type = File +appender.file.name = file +appender.file.fileName = target/camel-java-joor-dsl-test.log +appender.file.layout.type = PatternLayout +appender.file.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n + +appender.out.type = Console +appender.out.name = out +appender.out.layout.type = PatternLayout +appender.out.layout.pattern = [%30.30t] %-30.30c{1} %-5p %m%n + +rootLogger.level = INFO +rootLogger.appenderRef.file.ref = file +#rootLogger.appenderRef.out.ref = out diff --git a/components/camel-joor/src/test/resources/routes/MyRoutes.java b/dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesDummy.java similarity index 89% copy from components/camel-joor/src/test/resources/routes/MyRoutes.java copy to dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesDummy.java index 0d0b57c..785aa39 100644 --- a/components/camel-joor/src/test/resources/routes/MyRoutes.java +++ b/dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesDummy.java @@ -16,10 +16,10 @@ */ import org.apache.camel.builder.RouteBuilder; -public class MyRoutes extends RouteBuilder { +public class MyRoutesDummy extends RouteBuilder { @Override public void configure() throws Exception { - from("timer:tick") - .to("log:info"); + from("direct:dummy") + .to("mock:dummy"); } } \ No newline at end of file diff --git a/components/camel-joor/src/test/resources/routes/MyRoutes.java b/dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesScan.java similarity index 89% copy from components/camel-joor/src/test/resources/routes/MyRoutes.java copy to dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesScan.java index 0d0b57c..9780c4c 100644 --- a/components/camel-joor/src/test/resources/routes/MyRoutes.java +++ b/dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesScan.java @@ -16,10 +16,10 @@ */ import org.apache.camel.builder.RouteBuilder; -public class MyRoutes extends RouteBuilder { +public class MyRoutesScan extends RouteBuilder { @Override public void configure() throws Exception { - from("timer:tick") - .to("log:info"); + from("direct:scan") + .to("mock:scan"); } } \ No newline at end of file diff --git a/components/camel-joor/src/test/resources/routes/MyRoutes.java b/dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesWithRest.java similarity index 83% copy from components/camel-joor/src/test/resources/routes/MyRoutes.java copy to dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesWithRest.java index 0d0b57c..0c50514 100644 --- a/components/camel-joor/src/test/resources/routes/MyRoutes.java +++ b/dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesWithRest.java @@ -16,10 +16,13 @@ */ import org.apache.camel.builder.RouteBuilder; -public class MyRoutes extends RouteBuilder { +public class MyRoutesWithRest extends RouteBuilder { @Override public void configure() throws Exception { - from("timer:tick") - .to("log:info"); + rest() + .id("bar") + .path("/say/hello") + .get("/bar") + .to("mock:bar"); } } \ No newline at end of file diff --git a/components/camel-joor/src/test/resources/routes/MyRoutes.java b/dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesWithTemplate.java similarity index 77% copy from components/camel-joor/src/test/resources/routes/MyRoutes.java copy to dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesWithTemplate.java index 0d0b57c..86df5ae 100644 --- a/components/camel-joor/src/test/resources/routes/MyRoutes.java +++ b/dsl/camel-java-joor-dsl/src/test/resources/org/apache/camel/main/java/MyRoutesWithTemplate.java @@ -16,10 +16,14 @@ */ import org.apache.camel.builder.RouteBuilder; -public class MyRoutes extends RouteBuilder { +public class MyRoutesWithTemplate extends RouteBuilder { @Override public void configure() throws Exception { - from("timer:tick") - .to("log:info"); + routeTemplate("myTemplate") + .templateParameter("foo") + .templateParameter("bar") + .route() + .from("direct:{{foo}}") + .to("mock:{{bat}}"); } } \ No newline at end of file diff --git a/components/camel-joor/src/test/resources/routes/MyRoutes.java b/dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutes.java similarity index 100% rename from components/camel-joor/src/test/resources/routes/MyRoutes.java rename to dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutes.java diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithBeans.java b/dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithBeans.java similarity index 100% rename from components/camel-joor/src/test/resources/routes/MyRoutesWithBeans.java rename to dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithBeans.java diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithModel.java b/dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithModel.java similarity index 93% rename from components/camel-joor/src/test/resources/routes/MyRoutesWithModel.java rename to dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithModel.java index e434b2d..61ab328 100644 --- a/components/camel-joor/src/test/resources/routes/MyRoutesWithModel.java +++ b/dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithModel.java @@ -21,7 +21,7 @@ public class MyRoutesWithModel extends RouteBuilder { public void configure() throws Exception { rest("/say") .get("/emp/{id}") - .outType(org.apache.camel.language.joor.MyUser.class) + .outType(org.apache.camel.dsl.java.joor.support.MyUser.class) .to("direct:getEmployee"); from("direct:getEmployee") diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java b/dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithNestedClass.java similarity index 100% copy from components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java copy to dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithNestedClass.java diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithNestedTypes.java b/dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithNestedTypes.java similarity index 100% rename from components/camel-joor/src/test/resources/routes/MyRoutesWithNestedTypes.java rename to dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithNestedTypes.java diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithPackage.java b/dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithPackage.java similarity index 100% rename from components/camel-joor/src/test/resources/routes/MyRoutesWithPackage.java rename to dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithPackage.java diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithPackageAndComment.java b/dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithPackageAndComment.java similarity index 100% rename from components/camel-joor/src/test/resources/routes/MyRoutesWithPackageAndComment.java rename to dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithPackageAndComment.java diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithPackageAndLineComment.java b/dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithPackageAndLineComment.java similarity index 100% rename from components/camel-joor/src/test/resources/routes/MyRoutesWithPackageAndLineComment.java rename to dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithPackageAndLineComment.java diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithRestConfiguration.java b/dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithRestConfiguration.java similarity index 100% rename from components/camel-joor/src/test/resources/routes/MyRoutesWithRestConfiguration.java rename to dsl/camel-java-joor-dsl/src/test/resources/routes/MyRoutesWithRestConfiguration.java diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml b/dsl/camel-xml-io-dsl/pom.xml similarity index 56% copy from dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml copy to dsl/camel-xml-io-dsl/pom.xml index 298b94c..fea3406 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml +++ b/dsl/camel-xml-io-dsl/pom.xml @@ -24,64 +24,50 @@ <parent> <groupId>org.apache.camel</groupId> - <artifactId>camel-yaml-dsl-parent</artifactId> + <artifactId>dsl</artifactId> <version>3.9.0-SNAPSHOT</version> </parent> - <artifactId>camel-yaml-dsl</artifactId> + <artifactId>camel-xml-io-dsl</artifactId> <packaging>jar</packaging> - <name>Camel :: YAML DSL</name> - <description>Camel DSL with YAML</description> + <name>Camel :: XML DSL with camel-xml-io</name> + <description>Camel XML DSL with camel-xml-io</description> <properties> <firstVersion>3.9.0</firstVersion> - <sourcecheckExcludes> - **/*.groovy - </sourcecheckExcludes> - <sourcecheckExcludesComma> - ${sourcecheckExcludes}, - </sourcecheckExcludesComma> </properties> <dependencies> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-yaml-dsl-common</artifactId> - <version>${project.version}</version> + <artifactId>camel-support</artifactId> </dependency> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-yaml-dsl-deserializers</artifactId> - <version>${project.version}</version> + <artifactId>camel-core-model</artifactId> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-xml-io</artifactId> </dependency> <dependency> - <groupId>org.junit.jupiter</groupId> - <artifactId>junit-jupiter</artifactId> + <groupId>org.apache.camel</groupId> + <artifactId>camel-core</artifactId> + <type>test-jar</type> <scope>test</scope> </dependency> <dependency> - <groupId>org.assertj</groupId> - <artifactId>assertj-core</artifactId> + <groupId>org.apache.camel</groupId> + <artifactId>camel-main</artifactId> <scope>test</scope> </dependency> + <dependency> - <groupId>org.spockframework</groupId> - <artifactId>spock-core</artifactId> - <version>${spock-version}</version> + <groupId>org.apache.camel</groupId> + <artifactId>camel-core-engine</artifactId> <scope>test</scope> - <exclusions> - <exclusion> - <groupId>org.codehaus.groovy</groupId> - <artifactId>*</artifactId> - </exclusion> - <exclusion> - <groupId>junit</groupId> - <artifactId>*</artifactId> - </exclusion> - </exclusions> </dependency> - <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-direct</artifactId> @@ -124,34 +110,17 @@ </dependency> <dependency> - <groupId>org.codehaus.groovy</groupId> - <artifactId>groovy</artifactId> - <version>${groovy-version}</version> + <groupId>org.assertj</groupId> + <artifactId>assertj-core</artifactId> <scope>test</scope> </dependency> <dependency> - <groupId>org.codehaus.groovy</groupId> - <artifactId>groovy-test</artifactId> - <version>${groovy-version}</version> + <groupId>org.apache.camel</groupId> + <artifactId>camel-test-junit5</artifactId> <scope>test</scope> </dependency> <dependency> - <groupId>com.github.java-json-tools</groupId> - <artifactId>json-schema-validator</artifactId> - <version>${json-schema-validator-version}</version> - </dependency> - - <dependency> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-databind</artifactId> - </dependency> - <dependency> - <groupId>com.fasterxml.jackson.dataformat</groupId> - <artifactId>jackson-dataformat-yaml</artifactId> - </dependency> - - <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <scope>test</scope> @@ -173,40 +142,6 @@ <plugins> <plugin> <groupId>org.apache.camel</groupId> - <artifactId>camel-yaml-dsl-maven-plugin</artifactId> - <version>${project.version}</version> - <executions> - <execution> - <phase>generate-sources</phase> - <goals> - <goal>generate-yaml-schema</goal> - </goals> - <configuration> - <bannedDefinitions> - <bannedDefinition>org.apache.camel.model.FromDefinition</bannedDefinition> - </bannedDefinitions> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.codehaus.gmavenplus</groupId> - <artifactId>gmavenplus-plugin</artifactId> - <version>${gmavenplus-plugin-version}</version> - <executions> - <execution> - <goals> - <goal>addTestSources</goal> - <goal>compileTests</goal> - </goals> - </execution> - </executions> - <configuration> - <invokeDynamic>true</invokeDynamic> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.camel</groupId> <artifactId>camel-package-maven-plugin</artifactId> <executions> <execution> @@ -220,4 +155,17 @@ </plugins> </build> + <!-- skip testing on java 8 --> + <profiles> + <profile> + <id>jdk8</id> + <activation> + <jdk>[,8)</jdk> + </activation> + <properties> + <maven.test.skip.exec>true</maven.test.skip.exec> + </properties> + </profile> + </profiles> + </project> \ No newline at end of file diff --git a/core/camel-xml-io/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml b/dsl/camel-xml-io-dsl/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml similarity index 50% rename from core/camel-xml-io/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml rename to dsl/camel-xml-io-dsl/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml index 78de6b4..4497cb0 100644 --- a/core/camel-xml-io/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml +++ b/dsl/camel-xml-io-dsl/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml @@ -1,2 +1,2 @@ # Generated by camel build tools - do NOT edit this file! -class=org.apache.camel.xml.in.XmlRoutesBuilderLoader +class=org.apache.camel.dsl.xml.io.XmlRoutesBuilderLoader diff --git a/dsl/camel-xml-io-dsl/src/main/docs/java-xml-io-dsl.adoc b/dsl/camel-xml-io-dsl/src/main/docs/java-xml-io-dsl.adoc new file mode 100644 index 0000000..6a7bbc9 --- /dev/null +++ b/dsl/camel-xml-io-dsl/src/main/docs/java-xml-io-dsl.adoc @@ -0,0 +1,11 @@ +[[xml-io-dsl-other]] += Xml Io Dsl Component +:docTitle: XML Dsl +:artifactId: camel-xml-io-dsl +:description: Camel DSL with YAML +:supportLevel: Stable +include::{cq-version}@camel-quarkus:ROOT:partial$reference/others/xml-io-dsl.adoc[opts=optional] +//Manually maintained attributes +:group: DSL + +See https://camel.apache.org/manual/latest/dsl.html \ No newline at end of file diff --git a/core/camel-xml-io/src/main/java/org/apache/camel/xml/in/XmlRoutesBuilderLoader.java b/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java similarity index 97% rename from core/camel-xml-io/src/main/java/org/apache/camel/xml/in/XmlRoutesBuilderLoader.java rename to dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java index 5c50e1b..e8f2b4b 100644 --- a/core/camel-xml-io/src/main/java/org/apache/camel/xml/in/XmlRoutesBuilderLoader.java +++ b/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.xml.in; +package org.apache.camel.dsl.xml.io; import java.io.InputStream; @@ -28,6 +28,7 @@ import org.apache.camel.spi.Resource; import org.apache.camel.spi.StartupStepRecorder; import org.apache.camel.spi.annotations.RoutesLoader; import org.apache.camel.support.RoutesBuilderLoaderSupport; +import org.apache.camel.xml.in.ModelParser; @ManagedResource(description = "Managed XML RoutesBuilderLoader") @RoutesLoader(XmlRoutesBuilderLoader.EXTENSION) diff --git a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlRestsTest.java b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlMainRestsTest.java similarity index 96% copy from core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlRestsTest.java copy to dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlMainRestsTest.java index 77c27b8..948d9c9 100644 --- a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlRestsTest.java +++ b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlMainRestsTest.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.main.xml; +package org.apache.camel.dsl.xml.io; import java.util.List; import org.apache.camel.CamelContext; +import org.apache.camel.dsl.xml.io.support.MockRestConsumerFactory; import org.apache.camel.main.Main; -import org.apache.camel.main.support.MockRestConsumerFactory; import org.apache.camel.model.ModelCamelContext; import org.apache.camel.model.rest.GetVerbDefinition; import org.apache.camel.model.rest.RestDefinition; @@ -31,7 +31,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; -public class MainXmlRestsTest { +public class XmlMainRestsTest { @Test public void testMainRestsCollector() { diff --git a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTemplateTest.java b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlMainTemplateTest.java similarity index 95% copy from core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTemplateTest.java copy to dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlMainTemplateTest.java index 847b862..50577d0 100644 --- a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTemplateTest.java +++ b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlMainTemplateTest.java @@ -14,18 +14,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.main.xml; +package org.apache.camel.dsl.xml.io; import org.apache.camel.CamelContext; +import org.apache.camel.dsl.xml.io.support.MockRestConsumerFactory; import org.apache.camel.main.Main; -import org.apache.camel.main.support.MockRestConsumerFactory; import org.apache.camel.model.ModelCamelContext; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -public class MainXmlTemplateTest { +public class XmlMainTemplateTest { @Test public void testMainRoutesCollector() { diff --git a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTest.java b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlMainTest.java similarity index 97% copy from core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTest.java copy to dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlMainTest.java index 44ac8f3..d689c61 100644 --- a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTest.java +++ b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlMainTest.java @@ -14,18 +14,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.main.xml; +package org.apache.camel.dsl.xml.io; import org.apache.camel.CamelContext; import org.apache.camel.component.mock.MockEndpoint; +import org.apache.camel.dsl.xml.io.support.MockRestConsumerFactory; import org.apache.camel.main.Main; -import org.apache.camel.main.support.MockRestConsumerFactory; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -public class MainXmlTest { +public class XmlMainTest { @Test public void testMainRoutesCollector() throws Exception { diff --git a/core/camel-xml-io/src/test/java/org/apache/camel/xml/in/XmlRoutesBuilderLoaderTest.java b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoaderTest.java similarity index 99% copy from core/camel-xml-io/src/test/java/org/apache/camel/xml/in/XmlRoutesBuilderLoaderTest.java copy to dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoaderTest.java index 2b916e6..c1fe3e7 100644 --- a/core/camel-xml-io/src/test/java/org/apache/camel/xml/in/XmlRoutesBuilderLoaderTest.java +++ b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoaderTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.xml.in; +package org.apache.camel.dsl.xml.io; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.impl.DefaultCamelContext; diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/support/MockRestConsumerFactory.java similarity index 55% copy from components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java copy to dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/support/MockRestConsumerFactory.java index e4c2944..80bc75c 100644 --- a/components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java +++ b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/support/MockRestConsumerFactory.java @@ -14,26 +14,28 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import org.apache.camel.Exchange; -import org.apache.camel.Processor; -import org.apache.camel.builder.RouteBuilder; +package org.apache.camel.dsl.xml.io.support; -public class MyRoutesWithNestedClass extends RouteBuilder { - @Override - public void configure() throws Exception { - Processor toUpper = new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - String body = exchange.getIn().getBody(String.class); - body = body.toUpperCase(); +import java.util.Map; - exchange.getOut().setBody(body); - } - }; +import org.apache.camel.CamelContext; +import org.apache.camel.Consumer; +import org.apache.camel.Processor; +import org.apache.camel.spi.RestConfiguration; +import org.apache.camel.spi.RestConsumerFactory; - from("timer:tick") - .setBody().constant("test") - .process(toUpper) - .to("log:info"); +public final class MockRestConsumerFactory implements RestConsumerFactory { + @Override + public Consumer createConsumer( + CamelContext camelContext, + Processor processor, + String verb, + String basePath, + String uriTemplate, + String consumes, + String produces, + RestConfiguration configuration, + Map<String, Object> parameters) { + return null; } -} \ No newline at end of file +} diff --git a/dsl/camel-xml-io-dsl/src/test/resources/log4j2-test.properties b/dsl/camel-xml-io-dsl/src/test/resources/log4j2-test.properties new file mode 100644 index 0000000..b8d8a73 --- /dev/null +++ b/dsl/camel-xml-io-dsl/src/test/resources/log4j2-test.properties @@ -0,0 +1,31 @@ +## --------------------------------------------------------------------------- +## 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. +## --------------------------------------------------------------------------- + +appender.file.type = File +appender.file.name = file +appender.file.fileName = target/camel-xml-io-dsl-test.log +appender.file.layout.type = PatternLayout +appender.file.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n + +appender.out.type = Console +appender.out.name = out +appender.out.layout.type = PatternLayout +appender.out.layout.pattern = [%30.30t] %-30.30c{1} %-5p %m%n + +rootLogger.level = INFO +rootLogger.appenderRef.file.ref = file +#rootLogger.appenderRef.out.ref = out diff --git a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-dummy.xml b/dsl/camel-xml-io-dsl/src/test/resources/org/apache/camel/main/xml/camel-dummy.xml similarity index 93% copy from core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-dummy.xml copy to dsl/camel-xml-io-dsl/src/test/resources/org/apache/camel/main/xml/camel-dummy.xml index 901aa8d..ba9df1e 100644 --- a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-dummy.xml +++ b/dsl/camel-xml-io-dsl/src/test/resources/org/apache/camel/main/xml/camel-dummy.xml @@ -17,7 +17,7 @@ limitations under the License. --> -<routes id="camel" xmlns="http://camel.apache.org/schema/spring"> +<routes xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="direct:dummy"/> <to uri="mock:dummy"/> diff --git a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-rests.xml b/dsl/camel-xml-io-dsl/src/test/resources/org/apache/camel/main/xml/camel-rests.xml similarity index 100% copy from core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-rests.xml copy to dsl/camel-xml-io-dsl/src/test/resources/org/apache/camel/main/xml/camel-rests.xml diff --git a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-scan.xml b/dsl/camel-xml-io-dsl/src/test/resources/org/apache/camel/main/xml/camel-scan.xml similarity index 93% copy from core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-scan.xml copy to dsl/camel-xml-io-dsl/src/test/resources/org/apache/camel/main/xml/camel-scan.xml index 2e61ef3..aa6ce8e 100644 --- a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-scan.xml +++ b/dsl/camel-xml-io-dsl/src/test/resources/org/apache/camel/main/xml/camel-scan.xml @@ -17,7 +17,7 @@ limitations under the License. --> -<routes id="camel" xmlns="http://camel.apache.org/schema/spring"> +<routes xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="direct:scan"/> <to uri="mock:scan"/> diff --git a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-template.xml b/dsl/camel-xml-io-dsl/src/test/resources/org/apache/camel/main/xml/camel-template.xml similarity index 80% copy from core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-template.xml copy to dsl/camel-xml-io-dsl/src/test/resources/org/apache/camel/main/xml/camel-template.xml index f626de0..0f30dc8 100644 --- a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-template.xml +++ b/dsl/camel-xml-io-dsl/src/test/resources/org/apache/camel/main/xml/camel-template.xml @@ -18,8 +18,12 @@ --> <routeTemplates xmlns="http://camel.apache.org/schema/spring"> - <routeTemplate id="myTemplate" parameters="foo,bar"> - <from uri="direct:{{foo}}"/> - <to uri="mock:{{bar}}"/> + <routeTemplate id="myTemplate"> + <templateParameter name="foo"/> + <templateParameter name="bar"/> + <route> + <from uri="direct:{{foo}}"/> + <to uri="mock:{{bar}}"/> + </route> </routeTemplate> </routeTemplates> diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml b/dsl/camel-xml-jaxb-dsl/pom.xml similarity index 55% copy from dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml copy to dsl/camel-xml-jaxb-dsl/pom.xml index 298b94c..78a0e03 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml +++ b/dsl/camel-xml-jaxb-dsl/pom.xml @@ -24,64 +24,44 @@ <parent> <groupId>org.apache.camel</groupId> - <artifactId>camel-yaml-dsl-parent</artifactId> + <artifactId>dsl</artifactId> <version>3.9.0-SNAPSHOT</version> </parent> - <artifactId>camel-yaml-dsl</artifactId> + <artifactId>camel-xml-jaxb-dsl</artifactId> <packaging>jar</packaging> - <name>Camel :: YAML DSL</name> - <description>Camel DSL with YAML</description> + <name>Camel :: XML DSL with camel-xml-jaxb</name> + <description>Camel XML DSL with acmel-xml-jaxb</description> <properties> <firstVersion>3.9.0</firstVersion> - <sourcecheckExcludes> - **/*.groovy - </sourcecheckExcludes> - <sourcecheckExcludesComma> - ${sourcecheckExcludes}, - </sourcecheckExcludesComma> </properties> <dependencies> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-yaml-dsl-common</artifactId> - <version>${project.version}</version> + <artifactId>camel-support</artifactId> </dependency> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-yaml-dsl-deserializers</artifactId> - <version>${project.version}</version> + <artifactId>camel-core-model</artifactId> </dependency> - <dependency> - <groupId>org.junit.jupiter</groupId> - <artifactId>junit-jupiter</artifactId> - <scope>test</scope> + <groupId>org.apache.camel</groupId> + <artifactId>camel-xml-jaxb</artifactId> </dependency> + <dependency> - <groupId>org.assertj</groupId> - <artifactId>assertj-core</artifactId> + <groupId>org.apache.camel</groupId> + <artifactId>camel-core</artifactId> + <type>test-jar</type> <scope>test</scope> </dependency> <dependency> - <groupId>org.spockframework</groupId> - <artifactId>spock-core</artifactId> - <version>${spock-version}</version> + <groupId>org.apache.camel</groupId> + <artifactId>camel-main</artifactId> <scope>test</scope> - <exclusions> - <exclusion> - <groupId>org.codehaus.groovy</groupId> - <artifactId>*</artifactId> - </exclusion> - <exclusion> - <groupId>junit</groupId> - <artifactId>*</artifactId> - </exclusion> - </exclusions> </dependency> - <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-direct</artifactId> @@ -124,34 +104,17 @@ </dependency> <dependency> - <groupId>org.codehaus.groovy</groupId> - <artifactId>groovy</artifactId> - <version>${groovy-version}</version> + <groupId>org.assertj</groupId> + <artifactId>assertj-core</artifactId> <scope>test</scope> </dependency> <dependency> - <groupId>org.codehaus.groovy</groupId> - <artifactId>groovy-test</artifactId> - <version>${groovy-version}</version> + <groupId>org.apache.camel</groupId> + <artifactId>camel-test-junit5</artifactId> <scope>test</scope> </dependency> <dependency> - <groupId>com.github.java-json-tools</groupId> - <artifactId>json-schema-validator</artifactId> - <version>${json-schema-validator-version}</version> - </dependency> - - <dependency> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-databind</artifactId> - </dependency> - <dependency> - <groupId>com.fasterxml.jackson.dataformat</groupId> - <artifactId>jackson-dataformat-yaml</artifactId> - </dependency> - - <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <scope>test</scope> @@ -173,40 +136,6 @@ <plugins> <plugin> <groupId>org.apache.camel</groupId> - <artifactId>camel-yaml-dsl-maven-plugin</artifactId> - <version>${project.version}</version> - <executions> - <execution> - <phase>generate-sources</phase> - <goals> - <goal>generate-yaml-schema</goal> - </goals> - <configuration> - <bannedDefinitions> - <bannedDefinition>org.apache.camel.model.FromDefinition</bannedDefinition> - </bannedDefinitions> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.codehaus.gmavenplus</groupId> - <artifactId>gmavenplus-plugin</artifactId> - <version>${gmavenplus-plugin-version}</version> - <executions> - <execution> - <goals> - <goal>addTestSources</goal> - <goal>compileTests</goal> - </goals> - </execution> - </executions> - <configuration> - <invokeDynamic>true</invokeDynamic> - </configuration> - </plugin> - <plugin> - <groupId>org.apache.camel</groupId> <artifactId>camel-package-maven-plugin</artifactId> <executions> <execution> @@ -220,4 +149,17 @@ </plugins> </build> + <!-- skip testing on java 8 --> + <profiles> + <profile> + <id>jdk8</id> + <activation> + <jdk>[,8)</jdk> + </activation> + <properties> + <maven.test.skip.exec>true</maven.test.skip.exec> + </properties> + </profile> + </profiles> + </project> \ No newline at end of file diff --git a/dsl/camel-xml-jaxb-dsl/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml b/dsl/camel-xml-jaxb-dsl/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml new file mode 100644 index 0000000..a0547c8 --- /dev/null +++ b/dsl/camel-xml-jaxb-dsl/src/generated/resources/META-INF/services/org/apache/camel/routes-loader/xml @@ -0,0 +1,2 @@ +# Generated by camel build tools - do NOT edit this file! +class=org.apache.camel.dsl.xml.jaxb.JaxbXmlRoutesBuilderLoader diff --git a/dsl/camel-xml-jaxb-dsl/src/main/docs/java-xml-jaxb-dsl.adoc b/dsl/camel-xml-jaxb-dsl/src/main/docs/java-xml-jaxb-dsl.adoc new file mode 100644 index 0000000..62c32db --- /dev/null +++ b/dsl/camel-xml-jaxb-dsl/src/main/docs/java-xml-jaxb-dsl.adoc @@ -0,0 +1,11 @@ +[[xml-jaxb-dsl-other]] += Jaxb Xml Dsl Component +:docTitle: Jaxb XML Dsl +:artifactId: camel-xml-jaxb-dsl +:description: Camel DSL with YAML +:supportLevel: Stable +include::{cq-version}@camel-quarkus:ROOT:partial$reference/others/xml-jaxb-dsl.adoc[opts=optional] +//Manually maintained attributes +:group: DSL + +See https://camel.apache.org/manual/latest/dsl.html \ No newline at end of file diff --git a/core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/JaxbXmlRoutesBuilderLoader.java b/dsl/camel-xml-jaxb-dsl/src/main/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlRoutesBuilderLoader.java similarity index 99% rename from core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/JaxbXmlRoutesBuilderLoader.java rename to dsl/camel-xml-jaxb-dsl/src/main/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlRoutesBuilderLoader.java index 69f62c1..6413a23 100644 --- a/core/camel-xml-jaxb/src/main/java/org/apache/camel/xml/jaxb/JaxbXmlRoutesBuilderLoader.java +++ b/dsl/camel-xml-jaxb-dsl/src/main/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlRoutesBuilderLoader.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.xml.jaxb; +package org.apache.camel.dsl.xml.jaxb; import java.io.InputStream; diff --git a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlRestsTest.java b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlMainRestsTest.java similarity index 96% rename from core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlRestsTest.java rename to dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlMainRestsTest.java index 77c27b8..7710282 100644 --- a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlRestsTest.java +++ b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlMainRestsTest.java @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.main.xml; +package org.apache.camel.dsl.xml.jaxb; import java.util.List; import org.apache.camel.CamelContext; +import org.apache.camel.dsl.xml.jaxb.support.MockRestConsumerFactory; import org.apache.camel.main.Main; -import org.apache.camel.main.support.MockRestConsumerFactory; import org.apache.camel.model.ModelCamelContext; import org.apache.camel.model.rest.GetVerbDefinition; import org.apache.camel.model.rest.RestDefinition; @@ -31,7 +31,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertTrue; -public class MainXmlRestsTest { +public class JaxbXmlMainRestsTest { @Test public void testMainRestsCollector() { diff --git a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTemplateTest.java b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlMainTemplateTest.java similarity index 95% rename from core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTemplateTest.java rename to dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlMainTemplateTest.java index 847b862..3057bae 100644 --- a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTemplateTest.java +++ b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlMainTemplateTest.java @@ -14,18 +14,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.main.xml; +package org.apache.camel.dsl.xml.jaxb; import org.apache.camel.CamelContext; +import org.apache.camel.dsl.xml.jaxb.support.MockRestConsumerFactory; import org.apache.camel.main.Main; -import org.apache.camel.main.support.MockRestConsumerFactory; import org.apache.camel.model.ModelCamelContext; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -public class MainXmlTemplateTest { +public class JaxbXmlMainTemplateTest { @Test public void testMainRoutesCollector() { diff --git a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTest.java b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlMainTest.java similarity index 97% rename from core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTest.java rename to dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlMainTest.java index 44ac8f3..5d885ca 100644 --- a/core/camel-main/src/test/java/org/apache/camel/main/xml/MainXmlTest.java +++ b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlMainTest.java @@ -14,18 +14,18 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.main.xml; +package org.apache.camel.dsl.xml.jaxb; import org.apache.camel.CamelContext; import org.apache.camel.component.mock.MockEndpoint; +import org.apache.camel.dsl.xml.jaxb.support.MockRestConsumerFactory; import org.apache.camel.main.Main; -import org.apache.camel.main.support.MockRestConsumerFactory; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; -public class MainXmlTest { +public class JaxbXmlMainTest { @Test public void testMainRoutesCollector() throws Exception { diff --git a/core/camel-xml-io/src/test/java/org/apache/camel/xml/in/XmlRoutesBuilderLoaderTest.java b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlRoutesBuilderLoaderTest.java similarity index 79% rename from core/camel-xml-io/src/test/java/org/apache/camel/xml/in/XmlRoutesBuilderLoaderTest.java rename to dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlRoutesBuilderLoaderTest.java index 2b916e6..6804f53 100644 --- a/core/camel-xml-io/src/test/java/org/apache/camel/xml/in/XmlRoutesBuilderLoaderTest.java +++ b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/JaxbXmlRoutesBuilderLoaderTest.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.xml.in; +package org.apache.camel.dsl.xml.jaxb; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.impl.DefaultCamelContext; @@ -23,7 +23,7 @@ import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertFalse; -public class XmlRoutesBuilderLoaderTest { +public class JaxbXmlRoutesBuilderLoaderTest { @Test public void canLoadRoutes() throws Exception { String content = "" @@ -39,8 +39,12 @@ public class XmlRoutesBuilderLoaderTest { + "</routes>"; Resource resource = Resource.fromString("in-memory.xml", content); - RouteBuilder builder = (RouteBuilder) new XmlRoutesBuilderLoader().loadRoutesBuilder(resource); - builder.setContext(new DefaultCamelContext()); + + JaxbXmlRoutesBuilderLoader loader = new JaxbXmlRoutesBuilderLoader(); + loader.setCamelContext(new DefaultCamelContext()); + + RouteBuilder builder = (RouteBuilder) loader.loadRoutesBuilder(resource); + builder.setContext(loader.getCamelContext()); builder.configure(); assertFalse(builder.getRouteCollection().getRoutes().isEmpty()); @@ -58,8 +62,12 @@ public class XmlRoutesBuilderLoaderTest { + "</rests>"; Resource resource = Resource.fromString("in-memory.xml", content); - RouteBuilder builder = (RouteBuilder) new XmlRoutesBuilderLoader().loadRoutesBuilder(resource); - builder.setContext(new DefaultCamelContext()); + + JaxbXmlRoutesBuilderLoader loader = new JaxbXmlRoutesBuilderLoader(); + loader.setCamelContext(new DefaultCamelContext()); + + RouteBuilder builder = (RouteBuilder) loader.loadRoutesBuilder(resource); + builder.setContext(loader.getCamelContext()); builder.configure(); assertFalse(builder.getRestCollection().getRests().isEmpty()); @@ -80,8 +88,12 @@ public class XmlRoutesBuilderLoaderTest { + "</routeTemplates>"; Resource resource = Resource.fromString("in-memory.xml", content); - RouteBuilder builder = (RouteBuilder) new XmlRoutesBuilderLoader().loadRoutesBuilder(resource); - builder.setContext(new DefaultCamelContext()); + + JaxbXmlRoutesBuilderLoader loader = new JaxbXmlRoutesBuilderLoader(); + loader.setCamelContext(new DefaultCamelContext()); + + RouteBuilder builder = (RouteBuilder) loader.loadRoutesBuilder(resource); + builder.setContext(loader.getCamelContext()); builder.configure(); assertFalse(builder.getRouteTemplateCollection().getRouteTemplates().isEmpty()); diff --git a/components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/support/MockRestConsumerFactory.java similarity index 55% rename from components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java rename to dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/support/MockRestConsumerFactory.java index e4c2944..6420433 100644 --- a/components/camel-joor/src/test/resources/routes/MyRoutesWithNestedClass.java +++ b/dsl/camel-xml-jaxb-dsl/src/test/java/org/apache/camel/dsl/xml/jaxb/support/MockRestConsumerFactory.java @@ -14,26 +14,28 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import org.apache.camel.Exchange; -import org.apache.camel.Processor; -import org.apache.camel.builder.RouteBuilder; +package org.apache.camel.dsl.xml.jaxb.support; -public class MyRoutesWithNestedClass extends RouteBuilder { - @Override - public void configure() throws Exception { - Processor toUpper = new Processor() { - @Override - public void process(Exchange exchange) throws Exception { - String body = exchange.getIn().getBody(String.class); - body = body.toUpperCase(); +import java.util.Map; - exchange.getOut().setBody(body); - } - }; +import org.apache.camel.CamelContext; +import org.apache.camel.Consumer; +import org.apache.camel.Processor; +import org.apache.camel.spi.RestConfiguration; +import org.apache.camel.spi.RestConsumerFactory; - from("timer:tick") - .setBody().constant("test") - .process(toUpper) - .to("log:info"); +public final class MockRestConsumerFactory implements RestConsumerFactory { + @Override + public Consumer createConsumer( + CamelContext camelContext, + Processor processor, + String verb, + String basePath, + String uriTemplate, + String consumes, + String produces, + RestConfiguration configuration, + Map<String, Object> parameters) { + return null; } -} \ No newline at end of file +} diff --git a/dsl/camel-xml-jaxb-dsl/src/test/resources/log4j2-test.properties b/dsl/camel-xml-jaxb-dsl/src/test/resources/log4j2-test.properties new file mode 100644 index 0000000..5c45b64 --- /dev/null +++ b/dsl/camel-xml-jaxb-dsl/src/test/resources/log4j2-test.properties @@ -0,0 +1,31 @@ +## --------------------------------------------------------------------------- +## 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. +## --------------------------------------------------------------------------- + +appender.file.type = File +appender.file.name = file +appender.file.fileName = target/camel-xml-jaxb-dsl-test.log +appender.file.layout.type = PatternLayout +appender.file.layout.pattern = %d [%-15.15t] %-5p %-30.30c{1} - %m%n + +appender.out.type = Console +appender.out.name = out +appender.out.layout.type = PatternLayout +appender.out.layout.pattern = [%30.30t] %-30.30c{1} %-5p %m%n + +rootLogger.level = INFO +rootLogger.appenderRef.file.ref = file +#rootLogger.appenderRef.out.ref = out diff --git a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-dummy.xml b/dsl/camel-xml-jaxb-dsl/src/test/resources/org/apache/camel/main/xml/camel-dummy.xml similarity index 100% rename from core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-dummy.xml rename to dsl/camel-xml-jaxb-dsl/src/test/resources/org/apache/camel/main/xml/camel-dummy.xml diff --git a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-rests.xml b/dsl/camel-xml-jaxb-dsl/src/test/resources/org/apache/camel/main/xml/camel-rests.xml similarity index 100% rename from core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-rests.xml rename to dsl/camel-xml-jaxb-dsl/src/test/resources/org/apache/camel/main/xml/camel-rests.xml diff --git a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-scan.xml b/dsl/camel-xml-jaxb-dsl/src/test/resources/org/apache/camel/main/xml/camel-scan.xml similarity index 100% rename from core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-scan.xml rename to dsl/camel-xml-jaxb-dsl/src/test/resources/org/apache/camel/main/xml/camel-scan.xml diff --git a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-template.xml b/dsl/camel-xml-jaxb-dsl/src/test/resources/org/apache/camel/main/xml/camel-template.xml similarity index 80% rename from core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-template.xml rename to dsl/camel-xml-jaxb-dsl/src/test/resources/org/apache/camel/main/xml/camel-template.xml index f626de0..0f30dc8 100644 --- a/core/camel-main/src/test/resources/org/apache/camel/main/xml/camel-template.xml +++ b/dsl/camel-xml-jaxb-dsl/src/test/resources/org/apache/camel/main/xml/camel-template.xml @@ -18,8 +18,12 @@ --> <routeTemplates xmlns="http://camel.apache.org/schema/spring"> - <routeTemplate id="myTemplate" parameters="foo,bar"> - <from uri="direct:{{foo}}"/> - <to uri="mock:{{bar}}"/> + <routeTemplate id="myTemplate"> + <templateParameter name="foo"/> + <templateParameter name="bar"/> + <route> + <from uri="direct:{{foo}}"/> + <to uri="mock:{{bar}}"/> + </route> </routeTemplate> </routeTemplates> diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/generated/resources/META-INF/services/org/apache/camel/other.properties b/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/generated/resources/META-INF/services/org/apache/camel/other.properties deleted file mode 100644 index 0fbee6d..0000000 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl-common/src/generated/resources/META-INF/services/org/apache/camel/other.properties +++ /dev/null @@ -1,7 +0,0 @@ -# Generated by camel build tools - do NOT edit this file! -name=yaml-dsl-common -groupId=org.apache.camel -artifactId=camel-yaml-dsl-common -version=3.9.0-SNAPSHOT -projectName=Camel :: YAML DSL :: Common -projectDescription=Camel DSL with YAML Common diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml b/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml index 298b94c..6e17776 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/pom.xml @@ -84,6 +84,11 @@ <dependency> <groupId>org.apache.camel</groupId> + <artifactId>camel-main</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> <artifactId>camel-direct</artifactId> <scope>test</scope> </dependency> diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties deleted file mode 100644 index b6c1a30..0000000 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/META-INF/services/org/apache/camel/other.properties +++ /dev/null @@ -1,7 +0,0 @@ -# Generated by camel build tools - do NOT edit this file! -name=yaml-dsl -groupId=org.apache.camel -artifactId=camel-yaml-dsl -version=3.9.0-SNAPSHOT -projectName=Camel :: YAML DSL -projectDescription=Camel DSL with YAML diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/yaml-dsl.json b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/yaml-dsl.json deleted file mode 100644 index 2b9161a..0000000 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/generated/resources/yaml-dsl.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "other": { - "kind": "other", - "name": "yaml-dsl", - "title": "Yaml Dsl", - "description": "Camel DSL with YAML", - "deprecated": false, - "firstVersion": "3.9.0", - "supportLevel": "Preview", - "groupId": "org.apache.camel", - "artifactId": "camel-yaml-dsl", - "version": "3.9.0-SNAPSHOT" - } -} diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/docs/yaml-dsl.adoc b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/docs/yaml-dsl.adoc index 080603d..95be86e 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/docs/yaml-dsl.adoc +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/docs/yaml-dsl.adoc @@ -1,5 +1,5 @@ -[[yaml-dsl-other]] -= Yaml Dsl Component +[[yaml-dsl]] += Yaml Dsl :docTitle: Yaml Dsl :artifactId: camel-yaml-dsl :description: Camel DSL with YAML diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java index 1ea50f8..e313569 100644 --- a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/main/java/org/apache/camel/dsl/yaml/YamlRoutesBuilderLoader.java @@ -19,7 +19,11 @@ package org.apache.camel.dsl.yaml; import java.io.InputStream; import java.util.List; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.RoutesBuilder; +import org.apache.camel.StartupStep; +import org.apache.camel.api.management.ManagedAttribute; +import org.apache.camel.api.management.ManagedResource; import org.apache.camel.builder.ErrorHandlerBuilder; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.dsl.yaml.common.YamlDeserializationContext; @@ -33,6 +37,7 @@ import org.apache.camel.model.rest.RestDefinition; import org.apache.camel.model.rest.VerbDefinition; import org.apache.camel.spi.CamelContextCustomizer; import org.apache.camel.spi.Resource; +import org.apache.camel.spi.StartupStepRecorder; import org.apache.camel.spi.annotations.RoutesLoader; import org.apache.camel.support.RoutesBuilderLoaderSupport; import org.apache.camel.support.service.ServiceHelper; @@ -40,16 +45,19 @@ import org.apache.camel.util.ObjectHelper; import org.snakeyaml.engine.v2.api.Load; import org.snakeyaml.engine.v2.api.LoadSettings; +@ManagedResource(description = "Managed YAML RoutesBuilderLoader") @RoutesLoader(YamlRoutesBuilderLoader.EXTENSION) public class YamlRoutesBuilderLoader extends RoutesBuilderLoaderSupport { public static final String EXTENSION = "yaml"; private LoadSettings settings; private YamlDeserializationContext constructor; + private StartupStepRecorder recorder; public YamlRoutesBuilderLoader() { } + @ManagedAttribute(description = "Supported file extension") @Override public String getSupportedExtension() { return EXTENSION; @@ -59,6 +67,8 @@ public class YamlRoutesBuilderLoader extends RoutesBuilderLoaderSupport { protected void doBuild() throws Exception { super.doBuild(); + this.recorder = getCamelContext().adapt(ExtendedCamelContext.class).getStartupStepRecorder(); + this.settings = LoadSettings.builder().build(); this.constructor = new YamlDeserializationContext(settings); this.constructor.setCamelContext(getCamelContext()); @@ -92,11 +102,22 @@ public class YamlRoutesBuilderLoader extends RoutesBuilderLoaderSupport { return new RouteBuilder() { @Override public void configure() throws Exception { - Load load = new Load(settings, constructor); + final Load load = new Load(settings, constructor); + + StartupStep step = recorder != null + ? recorder.beginStep(YamlRoutesBuilderLoader.class, resource.getLocation(), + "Loading and Parsing YAML routes") + : null; + try (InputStream is = resource.getInputStream()) { for (Object item : (List<?>) load.loadFromInputStream(is)) { + configure(item); } + } finally { + if (recorder != null) { + recorder.endStep(step); + } } } diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/MainTest.groovy b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/MainTest.groovy new file mode 100644 index 0000000..e7d9ede --- /dev/null +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/groovy/org/apache/camel/dsl/yaml/MainTest.groovy @@ -0,0 +1,39 @@ +/* + * 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.dsl.yaml + + +import org.apache.camel.component.mock.MockEndpoint +import org.apache.camel.dsl.yaml.support.MockRestConsumerFactory +import org.apache.camel.main.Main +import spock.lang.Specification + +class MainTest extends Specification { + + def 'load routes with main'() { + given: + def main = new Main() + main.bind("restConsumerFactory", new MockRestConsumerFactory()) + main.configure().withRoutesIncludePattern('routes/ro*.yaml') + when: + main.start() + main.camelContext.getEndpoint("mock:result", MockEndpoint.class).expectedBodiesReceived("Hello World") + main.camelTemplate.sendBody("direct:start", "Hello World") + then: + main.camelContext.getEndpoint("mock:result", MockEndpoint.class).assertIsSatisfied() + } +} diff --git a/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/resources/routes/routes.yaml b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/resources/routes/routes.yaml new file mode 100644 index 0000000..6218fd3 --- /dev/null +++ b/dsl/camel-yaml-dsl/camel-yaml-dsl/src/test/resources/routes/routes.yaml @@ -0,0 +1,20 @@ +# +# 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. +# +- from: + uri: "direct:start" + steps: + - to: "mock:result" \ No newline at end of file diff --git a/dsl/pom.xml b/dsl/pom.xml index fcc07e3..0d4b9ea 100644 --- a/dsl/pom.xml +++ b/dsl/pom.xml @@ -34,6 +34,9 @@ <description>Camel DSLs Modules</description> <modules> + <module>camel-java-joor-dsl</module> + <module>camel-xml-io-dsl</module> + <module>camel-xml-jaxb-dsl</module> <module>camel-yaml-dsl</module> </modules> diff --git a/parent/pom.xml b/parent/pom.xml index 5476cb9..5462bf7 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -2595,55 +2595,72 @@ </dependency> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-yaml-dsl-common</artifactId> + <artifactId>camel-yammer</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-yaml-dsl-deserializers</artifactId> + <artifactId>camel-zendesk</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-yaml-dsl</artifactId> + <artifactId>camel-zip-deflater</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-yammer</artifactId> + <artifactId>camel-zipfile</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-zendesk</artifactId> + <artifactId>camel-zipkin</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-zip-deflater</artifactId> + <artifactId>camel-zookeeper-master</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-zipfile</artifactId> + <artifactId>camel-zookeeper</artifactId> <version>${project.version}</version> </dependency> + <!-- camel components: END --> + + <!-- camel dsl --> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-zipkin</artifactId> + <artifactId>camel-java-joor-dsl</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-zookeeper-master</artifactId> + <artifactId>camel-yaml-dsl-common</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.camel</groupId> - <artifactId>camel-zookeeper</artifactId> + <artifactId>camel-yaml-dsl-deserializers</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-xml-io-dsl</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-xml-jaxb-dsl</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-yaml-dsl</artifactId> <version>${project.version}</version> </dependency> - <!-- camel components: END --> <!-- camel catalog --> <dependency>
