This is an automated email from the ASF dual-hosted git repository. lburgazzoli pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit cc3f501a9048fcdedf922755173f93d5b7a58d49 Author: lburgazzoli <[email protected]> AuthorDate: Sat Jul 20 14:15:48 2019 +0200 Move jetty processor from salesforce to a dedicated extension #33 --- bom/pom.xml | 7 +++ build-parent/pom.xml | 7 +++ .../deployment/pom.xml | 8 +-- .../jetty/common/deployment/JettyProcessor.java} | 31 +++++----- extensions/{ => jetty-common}/pom.xml | 32 ++++------ .../{salesforce => jetty-common}/runtime/pom.xml | 11 ++-- extensions/pom.xml | 1 + extensions/salesforce/deployment/pom.xml | 4 ++ .../deployment/CamelSalesforceProcessor.java | 21 +++++-- .../salesforce/deployment/JettyProcessor.java | 71 ---------------------- extensions/salesforce/runtime/pom.xml | 4 ++ 11 files changed, 74 insertions(+), 123 deletions(-) diff --git a/bom/pom.xml b/bom/pom.xml index c8efd27..df76d4b 100644 --- a/bom/pom.xml +++ b/bom/pom.xml @@ -168,6 +168,13 @@ <version>${camel.version}</version> </dependency> + <!-- Quarkus Common--> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-jetty-common</artifactId> + <version>${project.version}</version> + </dependency> + <!-- Quarkus Camel --> <dependency> <groupId>org.apache.camel.quarkus</groupId> diff --git a/build-parent/pom.xml b/build-parent/pom.xml index e883eee..a4b61e3 100644 --- a/build-parent/pom.xml +++ b/build-parent/pom.xml @@ -36,6 +36,7 @@ <supported-maven-versions>[3.5.3,)</supported-maven-versions> <groovy.version>2.5.7</groovy.version> + <jetty.version>9.4.18.v20190429</jetty.version> <maven-checkstyle-plugin.version>3.0.0</maven-checkstyle-plugin.version> <maven-checkstyle.version>7.6.1</maven-checkstyle.version> @@ -71,6 +72,12 @@ <version>${project.version}</version> </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-jetty-common-deployment</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> </dependencyManagement> diff --git a/extensions/salesforce/deployment/pom.xml b/extensions/jetty-common/deployment/pom.xml similarity index 90% copy from extensions/salesforce/deployment/pom.xml copy to extensions/jetty-common/deployment/pom.xml index 1183ea0..669548e 100644 --- a/extensions/salesforce/deployment/pom.xml +++ b/extensions/jetty-common/deployment/pom.xml @@ -22,13 +22,13 @@ 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-salesforce-parent</artifactId> + <artifactId>camel-quarkus-jetty-common-parent</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> - <artifactId>camel-quarkus-salesforce-deployment</artifactId> - <name>Camel Quarkus :: Salesforce :: Deployment</name> + <artifactId>camel-quarkus-jetty-common-deployment</artifactId> + <name>Camel Quarkus :: Jetty :: Common :: Deployment</name> <dependencies> <dependency> @@ -37,7 +37,7 @@ </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId> - <artifactId>camel-quarkus-salesforce</artifactId> + <artifactId>camel-quarkus-jetty-common</artifactId> </dependency> </dependencies> diff --git a/extensions/salesforce/deployment/src/main/java/org/apache/camel/quarkus/component/salesforce/deployment/CamelSalesforceProcessor.java b/extensions/jetty-common/deployment/src/main/java/org/apache/camel/quarkus/jetty/common/deployment/JettyProcessor.java similarity index 58% copy from extensions/salesforce/deployment/src/main/java/org/apache/camel/quarkus/component/salesforce/deployment/CamelSalesforceProcessor.java copy to extensions/jetty-common/deployment/src/main/java/org/apache/camel/quarkus/jetty/common/deployment/JettyProcessor.java index 7a35f4e..584f1ce 100644 --- a/extensions/salesforce/deployment/src/main/java/org/apache/camel/quarkus/component/salesforce/deployment/CamelSalesforceProcessor.java +++ b/extensions/jetty-common/deployment/src/main/java/org/apache/camel/quarkus/jetty/common/deployment/JettyProcessor.java @@ -14,28 +14,27 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.quarkus.component.salesforce.deployment; +package org.apache.camel.quarkus.jetty.common.deployment; -import org.apache.camel.component.salesforce.SalesforceEndpointConfig; -import org.apache.camel.component.salesforce.SalesforceLoginConfig; +import java.util.Arrays; +import java.util.List; +import io.quarkus.deployment.annotations.BuildProducer; import io.quarkus.deployment.annotations.BuildStep; -import io.quarkus.deployment.builditem.FeatureBuildItem; import io.quarkus.deployment.builditem.substrate.ReflectiveClassBuildItem; +import org.eclipse.jetty.client.HttpClient; +import org.eclipse.jetty.client.ProtocolHandlers; -class CamelSalesforceProcessor { - - private static final String FEATURE = "camel-salesforce"; - - @BuildStep - FeatureBuildItem feature() { - return new FeatureBuildItem(FEATURE); - } +class JettyProcessor { + private static final List<Class<?>> JETTY_REFLECTIVE_CLASSES = Arrays.asList( + HttpClient.class, + ProtocolHandlers.class + ); @BuildStep - ReflectiveClassBuildItem registerForReflection() { - return new ReflectiveClassBuildItem(true, false, - SalesforceLoginConfig.class, - SalesforceEndpointConfig.class); + void registerForReflection(BuildProducer<ReflectiveClassBuildItem> reflectiveClass) { + for (Class<?> type : JETTY_REFLECTIVE_CLASSES) { + reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, type)); + } } } diff --git a/extensions/pom.xml b/extensions/jetty-common/pom.xml similarity index 58% copy from extensions/pom.xml copy to extensions/jetty-common/pom.xml index 77247eb..b9654cc 100644 --- a/extensions/pom.xml +++ b/extensions/jetty-common/pom.xml @@ -17,35 +17,25 @@ 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"> +<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-parent</artifactId> + <artifactId>camel-quarkus-build-parent</artifactId> <version>0.0.1-SNAPSHOT</version> + <relativePath>../../build-parent/pom.xml</relativePath> </parent> - <artifactId>camel-quarkus-extensions</artifactId> - <packaging>pom</packaging> - - <name>Camel Quarkus :: Extensions</name> + <modelVersion>4.0.0</modelVersion> + <artifactId>camel-quarkus-jetty-common-parent</artifactId> + <name>Camel Quarkus :: Jetty :: Common</name> + <packaging>pom</packaging> <modules> - <module>netty4-http</module> - <module>core</module> - <module>infinispan</module> - <module>aws-s3</module> - <module>aws-sns</module> - <module>aws-sqs</module> - <module>jdbc</module> - <module>salesforce</module> - <module>servlet</module> - <module>log</module> - <module>direct</module> - <module>rest</module> - <module>timer</module> + <module>deployment</module> + <module>runtime</module> </modules> </project> diff --git a/extensions/salesforce/runtime/pom.xml b/extensions/jetty-common/runtime/pom.xml similarity index 88% copy from extensions/salesforce/runtime/pom.xml copy to extensions/jetty-common/runtime/pom.xml index 3ddd6a1..b37a50e 100644 --- a/extensions/salesforce/runtime/pom.xml +++ b/extensions/jetty-common/runtime/pom.xml @@ -22,13 +22,13 @@ 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-salesforce-parent</artifactId> + <artifactId>camel-quarkus-jetty-common-parent</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> - <artifactId>camel-quarkus-salesforce</artifactId> - <name>Camel Quarkus :: Salesforce :: Runtime</name> + <artifactId>camel-quarkus-jetty-common</artifactId> + <name>Camel Quarkus :: Jetty :: Common</name> <dependencies> <dependency> @@ -36,8 +36,9 @@ <artifactId>camel-quarkus-core</artifactId> </dependency> <dependency> - <groupId>org.apache.camel</groupId> - <artifactId>camel-salesforce</artifactId> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-client</artifactId> + <version>${jetty.version}</version> </dependency> </dependencies> diff --git a/extensions/pom.xml b/extensions/pom.xml index 77247eb..ad3c3af 100644 --- a/extensions/pom.xml +++ b/extensions/pom.xml @@ -33,6 +33,7 @@ <name>Camel Quarkus :: Extensions</name> <modules> + <module>jetty-common</module> <module>netty4-http</module> <module>core</module> <module>infinispan</module> diff --git a/extensions/salesforce/deployment/pom.xml b/extensions/salesforce/deployment/pom.xml index 1183ea0..e83f30f 100644 --- a/extensions/salesforce/deployment/pom.xml +++ b/extensions/salesforce/deployment/pom.xml @@ -37,6 +37,10 @@ </dependency> <dependency> <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-jetty-common-deployment</artifactId> + </dependency> + <dependency> + <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-salesforce</artifactId> </dependency> </dependencies> diff --git a/extensions/salesforce/deployment/src/main/java/org/apache/camel/quarkus/component/salesforce/deployment/CamelSalesforceProcessor.java b/extensions/salesforce/deployment/src/main/java/org/apache/camel/quarkus/component/salesforce/deployment/CamelSalesforceProcessor.java index 7a35f4e..0f7c53a 100644 --- a/extensions/salesforce/deployment/src/main/java/org/apache/camel/quarkus/component/salesforce/deployment/CamelSalesforceProcessor.java +++ b/extensions/salesforce/deployment/src/main/java/org/apache/camel/quarkus/component/salesforce/deployment/CamelSalesforceProcessor.java @@ -16,14 +16,21 @@ */ package org.apache.camel.quarkus.component.salesforce.deployment; -import org.apache.camel.component.salesforce.SalesforceEndpointConfig; -import org.apache.camel.component.salesforce.SalesforceLoginConfig; +import java.util.Arrays; +import java.util.List; +import io.quarkus.deployment.annotations.BuildProducer; import io.quarkus.deployment.annotations.BuildStep; import io.quarkus.deployment.builditem.FeatureBuildItem; import io.quarkus.deployment.builditem.substrate.ReflectiveClassBuildItem; +import org.eclipse.jetty.client.HttpClient; +import org.eclipse.jetty.client.ProtocolHandlers; class CamelSalesforceProcessor { + private static final List<Class<?>> SALESFORCE_REFLECTIVE_CLASSES = Arrays.asList( + HttpClient.class, + ProtocolHandlers.class + ); private static final String FEATURE = "camel-salesforce"; @@ -33,9 +40,11 @@ class CamelSalesforceProcessor { } @BuildStep - ReflectiveClassBuildItem registerForReflection() { - return new ReflectiveClassBuildItem(true, false, - SalesforceLoginConfig.class, - SalesforceEndpointConfig.class); + void registerForReflection(BuildProducer<ReflectiveClassBuildItem> reflectiveClass) { + for (Class<?> type : SALESFORCE_REFLECTIVE_CLASSES) { + reflectiveClass.produce( + new ReflectiveClassBuildItem(true, true, type) + ); + } } } diff --git a/extensions/salesforce/deployment/src/main/java/org/apache/camel/quarkus/component/salesforce/deployment/JettyProcessor.java b/extensions/salesforce/deployment/src/main/java/org/apache/camel/quarkus/component/salesforce/deployment/JettyProcessor.java deleted file mode 100644 index 9b0ce07..0000000 --- a/extensions/salesforce/deployment/src/main/java/org/apache/camel/quarkus/component/salesforce/deployment/JettyProcessor.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * 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.component.salesforce.deployment; - -import java.util.Arrays; -import java.util.List; - -import javax.inject.Inject; - -import org.apache.camel.component.salesforce.internal.dto.LoginError; -import org.apache.camel.component.salesforce.internal.dto.LoginToken; -import org.apache.camel.component.salesforce.internal.dto.NotifyForFieldsEnum; -import org.apache.camel.component.salesforce.internal.dto.NotifyForOperationsEnum; -import org.apache.camel.component.salesforce.internal.dto.PushTopic; -import org.apache.camel.component.salesforce.internal.dto.QueryRecordsPushTopic; -import org.apache.camel.component.salesforce.internal.dto.RestChoices; -import org.apache.camel.component.salesforce.internal.dto.RestErrors; -import org.eclipse.jetty.client.HttpClient; -import org.eclipse.jetty.client.ProtocolHandlers; - -import io.quarkus.deployment.annotations.BuildProducer; -import io.quarkus.deployment.annotations.BuildStep; -import io.quarkus.deployment.builditem.substrate.ReflectiveClassBuildItem; -import io.quarkus.deployment.builditem.substrate.SubstrateConfigBuildItem; - -class JettyProcessor { - private static final List<Class<?>> JETTY_REFLECTIVE_CLASSES = Arrays.asList( - HttpClient.class, - ProtocolHandlers.class); - - @Inject - BuildProducer<ReflectiveClassBuildItem> reflectiveClass; - - @BuildStep - SubstrateConfigBuildItem process() { - for (Class<?> i : JETTY_REFLECTIVE_CLASSES) { - addReflectiveClass(true, false, i.getName()); - } - addReflectiveClass(true, true, LoginError.class.getName(), - LoginToken.class.getName(), - NotifyForFieldsEnum.class.getName(), - NotifyForOperationsEnum.class.getName(), - PushTopic.class.getName(), - QueryRecordsPushTopic.class.getName(), - RestChoices.class.getName(), - RestErrors.class.getName()); - - return SubstrateConfigBuildItem.builder() - .addRuntimeInitializedClass("org.eclipse.jetty.io.ByteBufferPool") - .addRuntimeInitializedClass("org.eclipse.jetty.util.thread.QueuedThreadPool") - .build(); - } - - private void addReflectiveClass(boolean methods, boolean fields, String... className) { - reflectiveClass.produce(new ReflectiveClassBuildItem(methods, fields, className)); - } -} diff --git a/extensions/salesforce/runtime/pom.xml b/extensions/salesforce/runtime/pom.xml index 3ddd6a1..a8af007 100644 --- a/extensions/salesforce/runtime/pom.xml +++ b/extensions/salesforce/runtime/pom.xml @@ -36,6 +36,10 @@ <artifactId>camel-quarkus-core</artifactId> </dependency> <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-jetty-common</artifactId> + </dependency> + <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-salesforce</artifactId> </dependency>
