This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/master by this push: new 6ad3987 Enable Spring dependent extensions to work with Quarkus Spring 6ad3987 is described below commit 6ad398704314a38fae95b244b01045f750a51253 Author: James Netherton <jamesnether...@gmail.com> AuthorDate: Wed Oct 21 07:54:35 2020 +0100 Enable Spring dependent extensions to work with Quarkus Spring Fixes #1759 --- .gitignore | 1 + extensions-support/spring/README.adoc | 49 ++++++++++ .../spring/beans}/pom.xml | 83 +++++++---------- .../spring/context}/pom.xml | 80 ++++++++-------- extensions-support/spring/core/pom.xml | 97 +++++++++++++++++++ extensions-support/spring/integration-test/pom.xml | 103 +++++++++++++++++++++ .../support/spring/ClassLoadingService.java | 31 +++++++ .../support/spring/test/SpringSupportTest.java | 48 ++++++++++ extensions-support/spring/pom.xml | 4 + extensions-support/spring/runtime/pom.xml | 12 ++- extensions/jpa/runtime/pom.xml | 4 - pom.xml | 7 ++ poms/bom/pom.xml | 57 ++++++++++++ 13 files changed, 480 insertions(+), 96 deletions(-) diff --git a/.gitignore b/.gitignore index 873f81c..cc360b8 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ pom.xml.releaseBackup pom.xml.versionsBackup pom.xml.next release.properties +dependency-reduced-pom.xml # Eclipse .project diff --git a/extensions-support/spring/README.adoc b/extensions-support/spring/README.adoc new file mode 100644 index 0000000..871efde --- /dev/null +++ b/extensions-support/spring/README.adoc @@ -0,0 +1,49 @@ += Spring Support + +This extension provides common support for Camel components that depend on `org.springframework` libraries: + +* spring-beans +* spring-context +* spring-core + +== Repackaging of core Spring libraries + +The Quarkus Spring extensions offers a limited set of supported packages for the Spring framework. This is achieved by shading the desired packages into a new quarkus-spring-*-api dependency. These can be found at the https://github.com/quarkusio/quarkus-spring-api[quarkus-spring-api] project. + +A side effect of this is that the Quarkus Spring extensions enforce the exclusion of the original Spring artifacts from the build via the `quarkus-bootstrap-maven-plugin`. For example: + +[source,xml] +---- +<plugin> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-bootstrap-maven-plugin</artifactId> + <configuration> + <excludedArtifacts> + <excludedArtifact>org.springframework:spring-core</excludedArtifact> + <excludedArtifact>org.springframework:spring-beans</excludedArtifact> + <excludedArtifact>org.springframework:spring-context</excludedArtifact> + </excludedArtifacts> + </configuration> +</plugin> +---- + +Therefore, in order to circumvent the artifact exclusion, the excluded Spring artifacts are shaded and repackaged with relevant packages required by various Camel extensions. + +[width="100%",cols="30,70",options="header"] +|=== +| Original Spring Artifact Name | Repackaged Artifact Name + + +| `spring-beans` +| `camel-quarkus-support-spring-beans` + +| `spring-context` +| `camel-quarkus-support-spring-context` + +| `spring-core` +| `camel-quarkus-support-spring-core` +|=== + +== Native support + +This extension contains the relevant Quarkus `BuildStep`s and GraalVM substitutions that enable the Spring core libraries to work properly in native mode. diff --git a/extensions/jpa/runtime/pom.xml b/extensions-support/spring/beans/pom.xml similarity index 51% copy from extensions/jpa/runtime/pom.xml copy to extensions-support/spring/beans/pom.xml index 6f069d1..11398b0 100644 --- a/extensions/jpa/runtime/pom.xml +++ b/extensions-support/spring/beans/pom.xml @@ -18,22 +18,15 @@ --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-jpa-parent</artifactId> + <artifactId>camel-quarkus-support-spring-parent</artifactId> <version>1.4.0-SNAPSHOT</version> - <relativePath>../pom.xml</relativePath> </parent> + <modelVersion>4.0.0</modelVersion> - <artifactId>camel-quarkus-jpa</artifactId> - <name>Camel Quarkus :: JPA :: Runtime</name> - <description>Store and retrieve Java objects from databases using Java Persistence API (JPA).</description> - - <properties> - <camel.quarkus.jvmSince>1.0.0</camel.quarkus.jvmSince> - <camel.quarkus.nativeSince>1.0.0</camel.quarkus.nativeSince> - </properties> + <artifactId>camel-quarkus-support-spring-beans</artifactId> + <name>Camel Quarkus :: Support :: Spring :: Beans</name> <dependencyManagement> <dependencies> @@ -49,57 +42,53 @@ <dependencies> <dependency> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-hibernate-orm</artifactId> - </dependency> - <dependency> <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-core</artifactId> - </dependency> - <dependency> - <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-support-spring</artifactId> - </dependency> - <dependency> - <groupId>org.apache.camel</groupId> - <artifactId>camel-jpa</artifactId> + <artifactId>camel-quarkus-support-spring-core</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> - <artifactId>spring-context</artifactId> + <artifactId>spring-beans</artifactId> + <scope>runtime</scope> </dependency> </dependencies> <build> <plugins> <plugin> - <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-maven-plugin</artifactId> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> <executions> <execution> - <id>update-extension-doc-page</id> - <goals><goal>update-extension-doc-page</goal></goals> - <phase>process-classes</phase> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + <configuration> + <createSourcesJar>true</createSourcesJar> + <artifactSet> + <includes> + <include>org.springframework:spring-beans</include> + </includes> + </artifactSet> + <filters> + <filter> + <artifact>org.springframework:spring-beans</artifact> + <includes> + <include>META-INF/spring.factories</include> + <include>org/springframework/beans/*</include> + <include>org/springframework/beans/factory/**</include> + <include>org/springframework/beans/propertyeditors/**</include> + <include>org/springframework/beans/support/**</include> + </includes> + <excludes> + <exclude>org/springframework/beans/factory/groovy/**</exclude> + </excludes> + </filter> + </filters> + </configuration> </execution> </executions> </plugin> - <plugin> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-bootstrap-maven-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <configuration> - <annotationProcessorPaths> - <path> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-extension-processor</artifactId> - <version>${quarkus.version}</version> - </path> - </annotationProcessorPaths> - </configuration> - </plugin> </plugins> </build> </project> diff --git a/extensions/jpa/runtime/pom.xml b/extensions-support/spring/context/pom.xml similarity index 50% copy from extensions/jpa/runtime/pom.xml copy to extensions-support/spring/context/pom.xml index 6f069d1..038e2ff 100644 --- a/extensions/jpa/runtime/pom.xml +++ b/extensions-support/spring/context/pom.xml @@ -18,22 +18,15 @@ --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-jpa-parent</artifactId> + <artifactId>camel-quarkus-support-spring-parent</artifactId> <version>1.4.0-SNAPSHOT</version> - <relativePath>../pom.xml</relativePath> </parent> + <modelVersion>4.0.0</modelVersion> - <artifactId>camel-quarkus-jpa</artifactId> - <name>Camel Quarkus :: JPA :: Runtime</name> - <description>Store and retrieve Java objects from databases using Java Persistence API (JPA).</description> - - <properties> - <camel.quarkus.jvmSince>1.0.0</camel.quarkus.jvmSince> - <camel.quarkus.nativeSince>1.0.0</camel.quarkus.nativeSince> - </properties> + <artifactId>camel-quarkus-support-spring-context</artifactId> + <name>Camel Quarkus :: Support :: Spring :: Context</name> <dependencyManagement> <dependencies> @@ -49,57 +42,58 @@ <dependencies> <dependency> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-hibernate-orm</artifactId> - </dependency> - <dependency> <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-core</artifactId> + <artifactId>camel-quarkus-support-spring-beans</artifactId> </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-support-spring</artifactId> - </dependency> - <dependency> - <groupId>org.apache.camel</groupId> - <artifactId>camel-jpa</artifactId> + <artifactId>camel-quarkus-support-spring-core</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> + <scope>runtime</scope> </dependency> </dependencies> <build> <plugins> <plugin> - <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-maven-plugin</artifactId> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> <executions> <execution> - <id>update-extension-doc-page</id> - <goals><goal>update-extension-doc-page</goal></goals> - <phase>process-classes</phase> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + <configuration> + <createSourcesJar>true</createSourcesJar> + <artifactSet> + <includes> + <include>org.springframework:spring-context</include> + </includes> + </artifactSet> + <filters> + <filter> + <artifact>org.springframework:spring-context</artifact> + <includes> + <include>org/springframework/context/*</include> + <include>org/springframework/context/event/**</include> + <include>org/springframework/context/expression/**</include> + <include>org/springframework/context/support/**</include> + <include>org/springframework/context/weaving/**</include> + <include>org/springframework/jndi/JndiCallback**</include> + <include>org/springframework/jndi/JndiTemplate.**</include> + <include>org/springframework/jndi/TypeMismatchNamingException**</include> + <include>org/springframework/scheduling/**</include> + </includes> + </filter> + </filters> + </configuration> </execution> </executions> </plugin> - <plugin> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-bootstrap-maven-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <configuration> - <annotationProcessorPaths> - <path> - <groupId>io.quarkus</groupId> - <artifactId>quarkus-extension-processor</artifactId> - <version>${quarkus.version}</version> - </path> - </annotationProcessorPaths> - </configuration> - </plugin> </plugins> </build> </project> diff --git a/extensions-support/spring/core/pom.xml b/extensions-support/spring/core/pom.xml new file mode 100644 index 0000000..80ca41d --- /dev/null +++ b/extensions-support/spring/core/pom.xml @@ -0,0 +1,97 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-support-spring-parent</artifactId> + <version>1.4.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <artifactId>camel-quarkus-support-spring-core</artifactId> + <name>Camel Quarkus :: Support :: Spring :: Core</name> + + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-bom</artifactId> + <version>${project.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + + <dependencies> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-core</artifactId> + <scope>runtime</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + <configuration> + <createSourcesJar>true</createSourcesJar> + <artifactSet> + <includes> + <include>org.springframework:spring-core</include> + </includes> + </artifactSet> + <filters> + <filter> + <artifact>org.springframework:spring-core</artifact> + <includes> + <include>org/springframework/asm/**</include> + <include>org/springframework/core/*</include> + <include>org/springframework/core/annotation/**</include> + <include>org/springframework/core/convert/**</include> + <include>org/springframework/core/env/**</include> + <include>org/springframework/core/io/**</include> + <include>org/springframework/core/log/**</include> + <include>org/springframework/core/task/**</include> + <include>org/springframework/lang/**</include> + <include>org/springframework/util/*</include> + <include>org/springframework/util/backoff/**</include> + <include>org/springframework/util/concurrent/**</include> + <include>org/springframework/util/comparator/**</include> + <include>org/springframework/util/function/**</include> + <include>org/springframework/util/xml/**</include> + </includes> + </filter> + </filters> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> diff --git a/extensions-support/spring/integration-test/pom.xml b/extensions-support/spring/integration-test/pom.xml new file mode 100644 index 0000000..fe56b5c --- /dev/null +++ b/extensions-support/spring/integration-test/pom.xml @@ -0,0 +1,103 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-build-parent-it</artifactId> + <version>1.4.0-SNAPSHOT</version> + <relativePath>../../../poms/build-parent-it/pom.xml</relativePath> + </parent> + <modelVersion>4.0.0</modelVersion> + + <artifactId>camel-quarkus-support-spring-integration-test</artifactId> + <name>Camel Quarkus :: Support Spring :: Integration Test</name> + <description>Integration tests for Camel Quarkus Support Spring extension</description> + + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-bom-test</artifactId> + <version>${project.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + + <dependencies> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-support-spring</artifactId> + </dependency> + <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-spring-di</artifactId> + </dependency> + <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-resteasy</artifactId> + </dependency> + + <!-- test dependencies --> + <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-junit5</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>io.rest-assured</groupId> + <artifactId>rest-assured</artifactId> + <scope>test</scope> + </dependency> + + <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory --> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-support-spring-deployment</artifactId> + <version>${project.version}</version> + <type>pom</type> + <scope>test</scope> + <exclusions> + <exclusion> + <groupId>*</groupId> + <artifactId>*</artifactId> + </exclusion> + </exclusions> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-maven-plugin</artifactId> + <executions> + <execution> + <goals> + <goal>build</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + +</project> diff --git a/extensions-support/spring/integration-test/src/main/java/org/apache/camel/quarkus/support/spring/ClassLoadingService.java b/extensions-support/spring/integration-test/src/main/java/org/apache/camel/quarkus/support/spring/ClassLoadingService.java new file mode 100644 index 0000000..14b0cff --- /dev/null +++ b/extensions-support/spring/integration-test/src/main/java/org/apache/camel/quarkus/support/spring/ClassLoadingService.java @@ -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. + */ +package org.apache.camel.quarkus.support.spring; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; + +@Path("/classloading") +public class ClassLoadingService { + + @GET + @Path("/{className}") + public void loadClass(@PathParam("className") String className) throws ClassNotFoundException { + Thread.currentThread().getContextClassLoader().loadClass(className); + } +} diff --git a/extensions-support/spring/integration-test/src/test/java/org/apache/camel/quarkus/support/spring/test/SpringSupportTest.java b/extensions-support/spring/integration-test/src/test/java/org/apache/camel/quarkus/support/spring/test/SpringSupportTest.java new file mode 100644 index 0000000..e1c43d7 --- /dev/null +++ b/extensions-support/spring/integration-test/src/test/java/org/apache/camel/quarkus/support/spring/test/SpringSupportTest.java @@ -0,0 +1,48 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.quarkus.support.spring.test; + +import io.quarkus.test.junit.QuarkusTest; +import io.restassured.RestAssured; +import org.junit.jupiter.api.Test; + +@QuarkusTest +public class SpringSupportTest { + + @Test + public void springClassLoading() { + // Verify that classes excluded by the Quarkus Spring extensions can be loaded + // I.e check they are not blacklisted since the camel-quarkus-support-spring-(beans,context,core) jars will provide them + String[] classNames = new String[] { + // From: org.springframework:spring-beans + "org.springframework.beans.factory.InitializingBean", + // From: org.springframework:spring-context + "org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor", + // From: org.springframework:spring-core + "org.springframework.core.SpringVersion", + }; + + for (String className : classNames) { + RestAssured.given() + .pathParam("className", className) + .when() + .get("/classloading/{className}") + .then() + .statusCode(204); + } + } +} diff --git a/extensions-support/spring/pom.xml b/extensions-support/spring/pom.xml index 5ff5b6c..1a261a3 100644 --- a/extensions-support/spring/pom.xml +++ b/extensions-support/spring/pom.xml @@ -33,8 +33,12 @@ <packaging>pom</packaging> <modules> + <module>beans</module> + <module>context</module> + <module>core</module> <module>deployment</module> <module>runtime</module> + <module>integration-test</module> </modules> </project> diff --git a/extensions-support/spring/runtime/pom.xml b/extensions-support/spring/runtime/pom.xml index e51eb8e..1c9dc0a 100644 --- a/extensions-support/spring/runtime/pom.xml +++ b/extensions-support/spring/runtime/pom.xml @@ -50,8 +50,16 @@ <artifactId>camel-quarkus-support-commons-logging</artifactId> </dependency> <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-core</artifactId> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-support-spring-beans</artifactId> + </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-support-spring-context</artifactId> + </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-support-spring-core</artifactId> </dependency> <dependency> <groupId>org.graalvm.nativeimage</groupId> diff --git a/extensions/jpa/runtime/pom.xml b/extensions/jpa/runtime/pom.xml index 6f069d1..9ab8db6 100644 --- a/extensions/jpa/runtime/pom.xml +++ b/extensions/jpa/runtime/pom.xml @@ -64,10 +64,6 @@ <groupId>org.apache.camel</groupId> <artifactId>camel-jpa</artifactId> </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-context</artifactId> - </dependency> </dependencies> <build> diff --git a/pom.xml b/pom.xml index 87ba6ce..fcbae41 100644 --- a/pom.xml +++ b/pom.xml @@ -144,6 +144,7 @@ <maven-source-plugin.version>3.1.0</maven-source-plugin.version> <maven-release-plugin.version>2.5.3</maven-release-plugin.version> <maven-resources-plugin.version>3.1.0</maven-resources-plugin.version> + <maven-shade-plugin.version>3.2.4</maven-shade-plugin.version> <!-- NOTE: We pin to this version due to https://github.com/apache/camel-quarkus/issues/723 --> <maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version> <os-maven-plugin.version>1.6.2</os-maven-plugin.version> @@ -311,6 +312,12 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>${maven-shade-plugin.version}</version> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>${maven-surefire-plugin.version}</version> <configuration> diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml index f48fb2e..b33bdd3 100644 --- a/poms/bom/pom.xml +++ b/poms/bom/pom.xml @@ -1113,6 +1113,16 @@ <groupId>org.apache.camel</groupId> <artifactId>camel-jdbc</artifactId> <version>${camel.version}</version> + <exclusions> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-beans</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-core</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>org.apache.camel</groupId> @@ -1165,6 +1175,18 @@ <groupId>org.apache.camel</groupId> <artifactId>camel-spring</artifactId> </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-beans</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-core</artifactId> + </exclusion> </exclusions> </dependency> <dependency> @@ -1191,6 +1213,18 @@ <groupId>org.apache.camel</groupId> <artifactId>camel-spring</artifactId> </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-beans</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-core</artifactId> + </exclusion> </exclusions> </dependency> <dependency> @@ -1771,6 +1805,14 @@ <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-beans</artifactId> + </exclusion> + <exclusion> + <groupId>org.springframework</groupId> + <artifactId>spring-core</artifactId> + </exclusion> </exclusions> </dependency> <dependency> @@ -4787,6 +4829,21 @@ </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-support-spring-beans</artifactId> + <version>${camel-quarkus.version}</version> + </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-support-spring-context</artifactId> + <version>${camel-quarkus.version}</version> + </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-support-spring-core</artifactId> + <version>${camel-quarkus.version}</version> + </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-support-spring-deployment</artifactId> <version>${camel-quarkus.version}</version> </dependency>