You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pp...@apache.org on 2021/04/27 13:22:07 UTC
[camel-quarkus] 01/05: Upgrade to Quarkus 2.0.0.Alpha1
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 <pp...@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>