This is an automated email from the ASF dual-hosted git repository. ppalaga pushed a commit to branch camel-main in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit 6930b1e086ae19dae409e61f5d452df7b0a759ce Author: Peter Palaga <ppal...@redhat.com> AuthorDate: Wed Apr 21 15:59:48 2021 +0200 Upgrade to Quarkus 2.0.0.Alpha1 --- docs/antora.yml | 2 +- .../camel/quarkus/core/CamelContextRecorder.java | 2 + .../quarkus/core/CamelQuarkusClassResolver.java | 99 ++++++++++++++++++++++ .../camel/quarkus/core/FastCamelContext.java | 5 +- .../org/apache/camel/quarkus/main/CamelMain.java | 4 +- .../component/minio/it/MinioClientProducer.java | 2 +- .../component/minio/it/MinioConfigProvider.java | 6 ++ .../vertx/kafka/it/VertxKafkaProducers.java | 3 +- pom.xml | 8 +- poms/bom/pom.xml | 10 +++ 10 files changed, 131 insertions(+), 10 deletions(-) diff --git a/docs/antora.yml b/docs/antora.yml index 80e9fcf..8863269 100644 --- a/docs/antora.yml +++ b/docs/antora.yml @@ -24,4 +24,4 @@ asciidoc: attributes: cq-camel-components: 3.10.x@components # replace ${camel.docs.components.xref} min-maven-version: 3.6.2 # replace ${min-maven-version} - quarkus-version: 1.13.2.Final # replace ${quarkus.version} \ No newline at end of file + quarkus-version: 2.0.0.Alpha1 # replace ${quarkus.version} \ No newline at end of file diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java index c73e8f7..f8cb34c 100644 --- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java +++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java @@ -56,6 +56,8 @@ public class CamelContextRecorder { context.setLoadTypeConverters(false); context.setModelJAXBContextFactory(contextFactory.getValue()); context.adapt(ExtendedCamelContext.class).setStartupStepRecorder(startupStepRecorder.getValue()); + final ClassLoader tccl = Thread.currentThread().getContextClassLoader(); + context.setApplicationContextClassLoader(tccl); context.build(); context.addLifecycleStrategy(new CamelLifecycleEventBridge()); context.getManagementStrategy().addEventNotifier(new CamelManagementEventBridge()); diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelQuarkusClassResolver.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelQuarkusClassResolver.java new file mode 100644 index 0000000..361763c --- /dev/null +++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelQuarkusClassResolver.java @@ -0,0 +1,99 @@ +package org.apache.camel.quarkus.core; + +import java.io.InputStream; +import java.net.URL; +import java.util.Enumeration; + +import org.apache.camel.spi.ClassResolver; +import org.apache.camel.util.CastUtils; +import org.apache.camel.util.ObjectHelper; + +public class CamelQuarkusClassResolver implements ClassResolver { + + private final ClassLoader applicationContextClassLoader; + + public CamelQuarkusClassResolver(ClassLoader applicationContextClassLoader) { + this.applicationContextClassLoader = applicationContextClassLoader; + } + + @Override + public Class<?> resolveClass(String name) { + return loadClass(name, applicationContextClassLoader); + } + + @Override + public <T> Class<T> resolveClass(String name, Class<T> type) { + return CastUtils.cast(loadClass(name, applicationContextClassLoader)); + } + + @Override + public Class<?> resolveClass(String name, ClassLoader loader) { + return loadClass(name, loader); + } + + @Override + public <T> Class<T> resolveClass(String name, Class<T> type, ClassLoader loader) { + return CastUtils.cast(loadClass(name, loader)); + } + + @Override + public Class<?> resolveMandatoryClass(String name) throws ClassNotFoundException { + Class<?> answer = resolveClass(name); + if (answer == null) { + throw new ClassNotFoundException(name); + } + return answer; + } + + @Override + public <T> Class<T> resolveMandatoryClass(String name, Class<T> type) throws ClassNotFoundException { + Class<T> answer = resolveClass(name, type); + if (answer == null) { + throw new ClassNotFoundException(name); + } + return answer; + } + + @Override + public Class<?> resolveMandatoryClass(String name, ClassLoader loader) throws ClassNotFoundException { + Class<?> answer = resolveClass(name, loader); + if (answer == null) { + throw new ClassNotFoundException(name); + } + return answer; + } + + @Override + public <T> Class<T> resolveMandatoryClass(String name, Class<T> type, ClassLoader loader) throws ClassNotFoundException { + Class<T> answer = resolveClass(name, type, loader); + if (answer == null) { + throw new ClassNotFoundException(name); + } + return answer; + } + + @Override + public InputStream loadResourceAsStream(String uri) { + return ObjectHelper.loadResourceAsStream(uri, applicationContextClassLoader); + } + + @Override + public URL loadResourceAsURL(String uri) { + return ObjectHelper.loadResourceAsURL(uri, applicationContextClassLoader); + } + + @Override + public Enumeration<URL> loadResourcesAsURL(String uri) { + return loadAllResourcesAsURL(uri); + } + + @Override + public Enumeration<URL> loadAllResourcesAsURL(String uri) { + return ObjectHelper.loadResourcesAsURL(uri); + } + + protected Class<?> loadClass(String name, ClassLoader loader) { + return ObjectHelper.loadClass(name, loader); + } + +} diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java index 992028d..a7ba15d 100644 --- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java +++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/FastCamelContext.java @@ -21,6 +21,7 @@ import java.io.InputStream; import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Optional; import java.util.Properties; import java.util.function.Function; @@ -46,7 +47,6 @@ import org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager; import org.apache.camel.impl.engine.DefaultBeanIntrospection; import org.apache.camel.impl.engine.DefaultCamelBeanPostProcessor; import org.apache.camel.impl.engine.DefaultCamelContextNameStrategy; -import org.apache.camel.impl.engine.DefaultClassResolver; import org.apache.camel.impl.engine.DefaultComponentNameResolver; import org.apache.camel.impl.engine.DefaultComponentResolver; import org.apache.camel.impl.engine.DefaultConfigurerResolver; @@ -298,7 +298,8 @@ public class FastCamelContext extends AbstractCamelContext implements CatalogCam @Override protected ClassResolver createClassResolver() { - return new DefaultClassResolver(this); + return new CamelQuarkusClassResolver(Objects.requireNonNull(getApplicationContextClassLoader(), + "applicationContextClassLoader must be set before calling createClassResolver()")); } @Override diff --git a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMain.java b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMain.java index 6078f35..579e668 100644 --- a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMain.java +++ b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/main/CamelMain.java @@ -121,11 +121,11 @@ public final class CamelMain extends MainCommandLineSupport implements HasCamelC throw new IllegalStateException("Should not be invoked"); } - Collection<MainListener> getMainListeners() { + public Collection<MainListener> getMainListeners() { return Collections.unmodifiableCollection(listeners); } - MainConfigurationProperties getMainConfigurationProperties() { + public MainConfigurationProperties getMainConfigurationProperties() { return mainConfigurationProperties; } diff --git a/integration-tests/minio/src/main/java/org/apache/camel/quarkus/component/minio/it/MinioClientProducer.java b/integration-tests/minio/src/main/java/org/apache/camel/quarkus/component/minio/it/MinioClientProducer.java index d3ea59d..74fe08f 100644 --- a/integration-tests/minio/src/main/java/org/apache/camel/quarkus/component/minio/it/MinioClientProducer.java +++ b/integration-tests/minio/src/main/java/org/apache/camel/quarkus/component/minio/it/MinioClientProducer.java @@ -17,8 +17,8 @@ package org.apache.camel.quarkus.component.minio.it; import javax.enterprise.context.ApplicationScoped; +import javax.enterprise.inject.Produces; import javax.inject.Named; -import javax.ws.rs.Produces; import io.minio.MinioClient; diff --git a/integration-tests/minio/src/main/java/org/apache/camel/quarkus/component/minio/it/MinioConfigProvider.java b/integration-tests/minio/src/main/java/org/apache/camel/quarkus/component/minio/it/MinioConfigProvider.java index 809a7d4..496cc29 100644 --- a/integration-tests/minio/src/main/java/org/apache/camel/quarkus/component/minio/it/MinioConfigProvider.java +++ b/integration-tests/minio/src/main/java/org/apache/camel/quarkus/component/minio/it/MinioConfigProvider.java @@ -19,6 +19,7 @@ package org.apache.camel.quarkus.component.minio.it; import java.util.Collections; import java.util.HashMap; import java.util.Map; +import java.util.Set; import org.eclipse.microprofile.config.spi.ConfigSource; import org.eclipse.microprofile.config.spi.ConfigSourceProvider; @@ -57,5 +58,10 @@ public class MinioConfigProvider implements ConfigSourceProvider { public String getName() { return MinioConfig.class.getName(); } + + @Override + public Set<String> getPropertyNames() { + return values.keySet(); + } } } diff --git a/integration-tests/vertx-kafka/src/main/java/org/apache/camel/quarkus/component/vertx/kafka/it/VertxKafkaProducers.java b/integration-tests/vertx-kafka/src/main/java/org/apache/camel/quarkus/component/vertx/kafka/it/VertxKafkaProducers.java index 4ad0be0..6674b85 100644 --- a/integration-tests/vertx-kafka/src/main/java/org/apache/camel/quarkus/component/vertx/kafka/it/VertxKafkaProducers.java +++ b/integration-tests/vertx-kafka/src/main/java/org/apache/camel/quarkus/component/vertx/kafka/it/VertxKafkaProducers.java @@ -52,7 +52,8 @@ public class VertxKafkaProducers { config.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class.getName()); KafkaConsumer<String, String> consumer = KafkaConsumer.create(vertx, config); - return consumer.subscribe(TOPIC_OUTBOUND); + consumer.subscribe(TOPIC_OUTBOUND); + return consumer; } @Produces diff --git a/pom.xml b/pom.xml index db770cc..fdb12d0 100644 --- a/pom.xml +++ b/pom.xml @@ -94,20 +94,22 @@ <json-smart.version>2.4.2</json-smart.version> <kafka.version>2.5.0</kafka.version> <kudu.version>${kudu-version}</kudu.version><!-- keep in sync with Camel --> - <kotlin.version>1.4.31</kotlin.version><!-- keep in sync with Quarkus --> + <kotlin.version>1.4.32</kotlin.version><!-- keep in sync with Quarkus --> <netty3.version>${netty3-version}</netty3.version><!-- Spark --> <mvel2.version>${mvel-version}</mvel2.version><!-- keep in sync with Camel and Optaplanner --> <nimbus-jose-jwt.version>4.41.1</nimbus-jose-jwt.version><!-- Mess in hdfs transitive deps --> <okhttp.version>${squareup-okhttp-version}</okhttp.version><!-- keep in sync with okio --> <okio.version>${squareup-okio-version}</okio.version><!-- keep in sync with okhttp --> + <opencensus.version>0.28.0</opencensus.version><!-- mess in google-pubsub deps --> <optaplanner.version>8.2.0.Final</optaplanner.version> + <perfmark.version>0.23.0</perfmark.version><!-- mess in google-pubsub deps --> + <protobuf.version>${protobuf-version}</protobuf.version> <quarkiverse.freemarker.version>0.2.2</quarkiverse.freemarker.version> <quarkiverse-minio.version>0.2.2</quarkiverse-minio.version> - <quarkus.version>1.13.2.Final</quarkus.version> + <quarkus.version>2.0.0.Alpha1</quarkus.version> <quarkus-google-cloud.version>0.5.0</quarkus-google-cloud.version> <quarkus-hazelcast-client.version>1.1.1</quarkus-hazelcast-client.version> <quarkus-qpid-jms.version>0.24.0</quarkus-qpid-jms.version> - <protobuf.version>${protobuf-version}</protobuf.version> <retrofit.version>2.5.0</retrofit.version> <scala-2.11.version>2.11.12</scala-2.11.version><!-- Spark --> <smallrye.reactive.messaging.camel.version>2.9.0</smallrye.reactive.messaging.camel.version> <!-- keep in sync with Quarkus SmallRye Reactive Messaging --> diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml index f510aa1..2f36a15 100644 --- a/poms/bom/pom.xml +++ b/poms/bom/pom.xml @@ -5754,6 +5754,16 @@ <version>${debezium.version}</version> </dependency> <dependency> + <groupId>io.opencensus</groupId> + <artifactId>opencensus-api</artifactId> + <version>${opencensus.version}</version> + </dependency> + <dependency> + <groupId>io.perfmark</groupId> + <artifactId>perfmark-api</artifactId> + <version>${perfmark.version}</version> + </dependency> + <dependency> <groupId>io.quarkiverse.freemarker</groupId> <artifactId>quarkus-freemarker</artifactId> <version>${quarkiverse.freemarker.version}</version>