You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2020/01/09 12:00:54 UTC
[camel-quarkus] branch master updated: Add spring common extension
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-quarkus.git
The following commit(s) were added to refs/heads/master by this push:
new f962c85 Add spring common extension
new 68aef81 Merge pull request #608 from jamesnetherton/spring-common-extension
f962c85 is described below
commit f962c85f3477e84017b9fa9d8a830421e40db615
Author: James Netherton <ja...@gmail.com>
AuthorDate: Wed Jan 8 10:28:38 2020 +0000
Add spring common extension
fixes #538
---
extensions/jdbc/deployment/pom.xml | 4 +++
extensions/jdbc/runtime/pom.xml | 4 +++
extensions/sql/deployment/pom.xml | 2 +-
.../component/sql/deployment/SqlProcessor.java | 19 ------------
extensions/sql/runtime/pom.xml | 6 +---
extensions/support/pom.xml | 1 +
.../{jdbc => support/spring}/deployment/pom.xml | 18 ++++-------
.../support/spring/deployment/SpringFeature.java | 30 +++++++++++++++++++
.../spring/deployment/SpringProcessor.java} | 35 ++--------------------
extensions/support/{ => spring}/pom.xml | 19 +++++-------
.../{jdbc => support/spring}/runtime/pom.xml | 28 +++++++----------
.../support/spring}/graal/SpringSubstitutions.java | 2 +-
.../main/resources/META-INF/quarkus-extension.yaml | 29 ++++++++++++++++++
.../quarkus/component/sql/it/SqlResource.java | 1 +
pom.xml | 1 +
poms/bom-deployment/pom.xml | 5 ++++
poms/bom/pom.xml | 20 ++++++++++---
17 files changed, 118 insertions(+), 106 deletions(-)
diff --git a/extensions/jdbc/deployment/pom.xml b/extensions/jdbc/deployment/pom.xml
index db97a21..d797dc5 100644
--- a/extensions/jdbc/deployment/pom.xml
+++ b/extensions/jdbc/deployment/pom.xml
@@ -55,6 +55,10 @@
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-support-spring-deployment</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-jdbc</artifactId>
</dependency>
</dependencies>
diff --git a/extensions/jdbc/runtime/pom.xml b/extensions/jdbc/runtime/pom.xml
index 98839e7..02933a6 100644
--- a/extensions/jdbc/runtime/pom.xml
+++ b/extensions/jdbc/runtime/pom.xml
@@ -50,6 +50,10 @@
<artifactId>camel-quarkus-core</artifactId>
</dependency>
<dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-support-spring</artifactId>
+ </dependency>
+ <dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-agroal</artifactId>
</dependency>
diff --git a/extensions/sql/deployment/pom.xml b/extensions/sql/deployment/pom.xml
index 503c4ac..bfbf26d 100644
--- a/extensions/sql/deployment/pom.xml
+++ b/extensions/sql/deployment/pom.xml
@@ -57,7 +57,7 @@
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-support-commons-logging-deployment</artifactId>
+ <artifactId>camel-quarkus-support-spring-deployment</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
diff --git a/extensions/sql/deployment/src/main/java/org/apache/camel/quarkus/component/sql/deployment/SqlProcessor.java b/extensions/sql/deployment/src/main/java/org/apache/camel/quarkus/component/sql/deployment/SqlProcessor.java
index b09fb6a..98d92f8 100644
--- a/extensions/sql/deployment/src/main/java/org/apache/camel/quarkus/component/sql/deployment/SqlProcessor.java
+++ b/extensions/sql/deployment/src/main/java/org/apache/camel/quarkus/component/sql/deployment/SqlProcessor.java
@@ -20,16 +20,11 @@ import java.sql.Types;
import org.apache.camel.quarkus.component.sql.CamelSqlConfig;
-import io.quarkus.deployment.GeneratedClassGizmoAdaptor;
import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.FeatureBuildItem;
-import io.quarkus.deployment.builditem.GeneratedClassBuildItem;
import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
-import io.quarkus.deployment.pkg.steps.NativeBuild;
-import io.quarkus.gizmo.ClassCreator;
-import io.quarkus.gizmo.ClassOutput;
class SqlProcessor {
@@ -56,18 +51,4 @@ class SqlProcessor {
.map(scriptFile -> new NativeImageResourceBuildItem(scriptFile.replace("classpath:", "")))
.forEach(nativeImage::produce);
}
-
- @BuildStep(onlyIf = NativeBuild.class)
- void generateKParameterClass(BuildProducer<GeneratedClassBuildItem> generatedClass) {
- // TODO: Investigate removing this. See https://github.com/apache/camel-quarkus/issues/534
- // The native image build fails with a NoClassDefFoundError without this. Possibly similar to https://github.com/oracle/graal/issues/656.
- ClassOutput classOutput = new GeneratedClassGizmoAdaptor(generatedClass, false);
- ClassCreator.builder()
- .className("kotlin.reflect.KParameter")
- .classOutput(classOutput)
- .setFinal(true)
- .superClass(Object.class)
- .build()
- .close();
- }
}
diff --git a/extensions/sql/runtime/pom.xml b/extensions/sql/runtime/pom.xml
index fc6c8d7..1cf42af 100644
--- a/extensions/sql/runtime/pom.xml
+++ b/extensions/sql/runtime/pom.xml
@@ -52,7 +52,7 @@
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-support-commons-logging</artifactId>
+ <artifactId>camel-quarkus-support-spring</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
@@ -70,10 +70,6 @@
<groupId>jakarta.security.jacc</groupId>
<artifactId>jakarta.security.jacc-api</artifactId>
</dependency>
- <dependency>
- <groupId>com.oracle.substratevm</groupId>
- <artifactId>svm</artifactId>
- </dependency>
</dependencies>
<build>
diff --git a/extensions/support/pom.xml b/extensions/support/pom.xml
index 1e7bf7c..68842de 100644
--- a/extensions/support/pom.xml
+++ b/extensions/support/pom.xml
@@ -38,6 +38,7 @@
<module>commons-logging</module>
<module>httpclient</module>
<module>jetty</module>
+ <module>spring</module>
<module>xstream</module>
<module>xml</module>
<module>xalan</module>
diff --git a/extensions/jdbc/deployment/pom.xml b/extensions/support/spring/deployment/pom.xml
similarity index 80%
copy from extensions/jdbc/deployment/pom.xml
copy to extensions/support/spring/deployment/pom.xml
index db97a21..2bdadd8 100644
--- a/extensions/jdbc/deployment/pom.xml
+++ b/extensions/support/spring/deployment/pom.xml
@@ -20,13 +20,13 @@
<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-jdbc-parent</artifactId>
+ <artifactId>camel-quarkus-support-spring-parent</artifactId>
<version>1.1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
- <artifactId>camel-quarkus-jdbc-deployment</artifactId>
- <name>Camel Quarkus :: JDBC :: Deployment</name>
+ <artifactId>camel-quarkus-support-spring-deployment</artifactId>
+ <name>Camel Quarkus :: Support :: Spring :: Deployment</name>
<dependencyManagement>
<dependencies>
@@ -43,19 +43,11 @@
<dependencies>
<dependency>
<groupId>io.quarkus</groupId>
- <artifactId>quarkus-agroal-deployment</artifactId>
- </dependency>
- <dependency>
- <groupId>io.quarkus</groupId>
- <artifactId>quarkus-narayana-jta-deployment</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-core-deployment</artifactId>
+ <artifactId>quarkus-core-deployment</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-jdbc</artifactId>
+ <artifactId>camel-quarkus-support-commons-logging-deployment</artifactId>
</dependency>
</dependencies>
diff --git a/extensions/support/spring/deployment/src/main/java/org/apache/camel/quarkus/support/spring/deployment/SpringFeature.java b/extensions/support/spring/deployment/src/main/java/org/apache/camel/quarkus/support/spring/deployment/SpringFeature.java
new file mode 100644
index 0000000..52f48bc
--- /dev/null
+++ b/extensions/support/spring/deployment/src/main/java/org/apache/camel/quarkus/support/spring/deployment/SpringFeature.java
@@ -0,0 +1,30 @@
+/*
+ * 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.deployment;
+
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.FeatureBuildItem;
+
+class SpringFeature {
+
+ public static final String FEATURE = "camel-support-spring";
+
+ @BuildStep
+ FeatureBuildItem feature() {
+ return new FeatureBuildItem(FEATURE);
+ }
+}
diff --git a/extensions/sql/deployment/src/main/java/org/apache/camel/quarkus/component/sql/deployment/SqlProcessor.java b/extensions/support/spring/deployment/src/main/java/org/apache/camel/quarkus/support/spring/deployment/SpringProcessor.java
similarity index 61%
copy from extensions/sql/deployment/src/main/java/org/apache/camel/quarkus/component/sql/deployment/SqlProcessor.java
copy to extensions/support/spring/deployment/src/main/java/org/apache/camel/quarkus/support/spring/deployment/SpringProcessor.java
index b09fb6a..9e3f129 100644
--- a/extensions/sql/deployment/src/main/java/org/apache/camel/quarkus/component/sql/deployment/SqlProcessor.java
+++ b/extensions/support/spring/deployment/src/main/java/org/apache/camel/quarkus/support/spring/deployment/SpringProcessor.java
@@ -14,48 +14,17 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.quarkus.component.sql.deployment;
-
-import java.sql.Types;
-
-import org.apache.camel.quarkus.component.sql.CamelSqlConfig;
+package org.apache.camel.quarkus.support.spring.deployment;
import io.quarkus.deployment.GeneratedClassGizmoAdaptor;
import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
-import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.builditem.GeneratedClassBuildItem;
-import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
-import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
import io.quarkus.deployment.pkg.steps.NativeBuild;
import io.quarkus.gizmo.ClassCreator;
import io.quarkus.gizmo.ClassOutput;
-class SqlProcessor {
-
- private static final String FEATURE = "camel-sql";
-
- @BuildStep
- FeatureBuildItem feature() {
- return new FeatureBuildItem(FEATURE);
- }
-
- @BuildStep
- void registerForReflection(BuildProducer<ReflectiveClassBuildItem> reflectiveClass) {
- reflectiveClass.produce(new ReflectiveClassBuildItem(false, true, Types.class));
- }
-
- @BuildStep
- void sqlNativeImageResources(BuildProducer<NativeImageResourceBuildItem> nativeImage, CamelSqlConfig config) {
- if (!config.scriptFiles.isPresent()) {
- return;
- }
-
- config.scriptFiles.get()
- .stream()
- .map(scriptFile -> new NativeImageResourceBuildItem(scriptFile.replace("classpath:", "")))
- .forEach(nativeImage::produce);
- }
+public class SpringProcessor {
@BuildStep(onlyIf = NativeBuild.class)
void generateKParameterClass(BuildProducer<GeneratedClassBuildItem> generatedClass) {
diff --git a/extensions/support/pom.xml b/extensions/support/spring/pom.xml
similarity index 74%
copy from extensions/support/pom.xml
copy to extensions/support/spring/pom.xml
index 1e7bf7c..4ecc0ee 100644
--- a/extensions/support/pom.xml
+++ b/extensions/support/spring/pom.xml
@@ -21,25 +21,20 @@
<parent>
<groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-extensions</artifactId>
+ <artifactId>camel-quarkus-build-parent</artifactId>
<version>1.1.0-SNAPSHOT</version>
+ <relativePath>../../../poms/build-parent/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
- <artifactId>camel-quarkus-support-extensions</artifactId>
- <name>Camel Quarkus :: Support</name>
+ <artifactId>camel-quarkus-support-spring-parent</artifactId>
+ <name>Camel Quarkus :: Support :: Spring</name>
<packaging>pom</packaging>
<modules>
- <module>ahc</module>
- <module>aws</module>
- <module>common</module>
- <module>commons-logging</module>
- <module>httpclient</module>
- <module>jetty</module>
- <module>xstream</module>
- <module>xml</module>
- <module>xalan</module>
+ <module>deployment</module>
+ <module>runtime</module>
</modules>
+
</project>
diff --git a/extensions/jdbc/runtime/pom.xml b/extensions/support/spring/runtime/pom.xml
similarity index 79%
copy from extensions/jdbc/runtime/pom.xml
copy to extensions/support/spring/runtime/pom.xml
index 98839e7..a7262fd 100644
--- a/extensions/jdbc/runtime/pom.xml
+++ b/extensions/support/spring/runtime/pom.xml
@@ -20,17 +20,13 @@
<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-jdbc-parent</artifactId>
+ <artifactId>camel-quarkus-support-spring-parent</artifactId>
<version>1.1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
- <artifactId>camel-quarkus-jdbc</artifactId>
- <name>Camel Quarkus :: JDBC :: Runtime</name>
-
- <properties>
- <firstVersion>0.2.0</firstVersion>
- </properties>
+ <artifactId>camel-quarkus-support-spring</artifactId>
+ <name>Camel Quarkus :: Support :: Spring :: Runtime</name>
<dependencyManagement>
<dependencies>
@@ -46,24 +42,20 @@
<dependencies>
<dependency>
- <groupId>org.apache.camel.quarkus</groupId>
- <artifactId>camel-quarkus-core</artifactId>
- </dependency>
- <dependency>
<groupId>io.quarkus</groupId>
- <artifactId>quarkus-agroal</artifactId>
+ <artifactId>quarkus-core</artifactId>
</dependency>
<dependency>
- <groupId>io.quarkus</groupId>
- <artifactId>quarkus-narayana-jta</artifactId>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-support-commons-logging</artifactId>
</dependency>
<dependency>
- <groupId>jakarta.security.jacc</groupId>
- <artifactId>jakarta.security.jacc-api</artifactId>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-jdbc</artifactId>
+ <groupId>com.oracle.substratevm</groupId>
+ <artifactId>svm</artifactId>
</dependency>
</dependencies>
diff --git a/extensions/sql/runtime/src/main/java/org/apache/camel/quarkus/component/sql/graal/SpringSubstitutions.java b/extensions/support/spring/runtime/src/main/java/org/apache/camel/quarkus/support/spring/graal/SpringSubstitutions.java
similarity index 98%
rename from extensions/sql/runtime/src/main/java/org/apache/camel/quarkus/component/sql/graal/SpringSubstitutions.java
rename to extensions/support/spring/runtime/src/main/java/org/apache/camel/quarkus/support/spring/graal/SpringSubstitutions.java
index 98df1b0..3db4d8d 100644
--- a/extensions/sql/runtime/src/main/java/org/apache/camel/quarkus/component/sql/graal/SpringSubstitutions.java
+++ b/extensions/support/spring/runtime/src/main/java/org/apache/camel/quarkus/support/spring/graal/SpringSubstitutions.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.quarkus.component.sql.graal;
+package org.apache.camel.quarkus.support.spring.graal;
import java.io.IOException;
import java.lang.reflect.Constructor;
diff --git a/extensions/support/spring/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/support/spring/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000..02eed5c
--- /dev/null
+++ b/extensions/support/spring/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,29 @@
+#
+# 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.
+#
+
+---
+name: "Camel Quarkus Support Spring"
+description: "Camel Quarkus Support Spring"
+metadata:
+ unlisted: true
+ keywords:
+ - "camel"
+ - "spring"
+ guide: "https://quarkus.io/guides/camel"
+ categories:
+ - "integration"
+
diff --git a/integration-tests/sql/src/main/java/org/apache/camel/quarkus/component/sql/it/SqlResource.java b/integration-tests/sql/src/main/java/org/apache/camel/quarkus/component/sql/it/SqlResource.java
index fc0c164..2b455ba 100644
--- a/integration-tests/sql/src/main/java/org/apache/camel/quarkus/component/sql/it/SqlResource.java
+++ b/integration-tests/sql/src/main/java/org/apache/camel/quarkus/component/sql/it/SqlResource.java
@@ -95,6 +95,7 @@ public class SqlResource {
.build();
}
+ @SuppressWarnings("unchecked")
@Path("/storedproc")
@GET
@Produces(MediaType.TEXT_PLAIN)
diff --git a/pom.xml b/pom.xml
index 1f2419c..4e0dde3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -50,6 +50,7 @@
<snakeyaml.version>1.25</snakeyaml.version>
<xalan.version>2.7.2</xalan.version>
<kotlin.version>1.3.21</kotlin.version>
+ <spring.version>5.2.1.RELEASE</spring.version>
<maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
<maven.compiler.target>1.8</maven.compiler.target>
diff --git a/poms/bom-deployment/pom.xml b/poms/bom-deployment/pom.xml
index 0e52d4a..eb75a5e 100644
--- a/poms/bom-deployment/pom.xml
+++ b/poms/bom-deployment/pom.xml
@@ -376,6 +376,11 @@
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-support-spring-deployment</artifactId>
+ <version>${camel-quarkus.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-support-xalan-deployment</artifactId>
<version>${camel-quarkus.version}</version>
</dependency>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 69895f5..541f5b6 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -414,10 +414,6 @@
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-jcl</artifactId>
- </exclusion>
</exclusions>
</dependency>
<dependency>
@@ -794,6 +790,11 @@
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-support-spring</artifactId>
+ <version>${camel-quarkus.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-support-xalan</artifactId>
<version>${camel-quarkus.version}</version>
</dependency>
@@ -885,6 +886,17 @@
<version>${jetty.version}</version>
</dependency>
<dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ <version>${spring.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-jcl</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>${snakeyaml.version}</version>