Skip to content

Commit

Permalink
Eagerly initialized Random in various extensions #2664
Browse files Browse the repository at this point in the history
  • Loading branch information
ppalaga committed May 26, 2021
1 parent e4d459b commit bf1eeb6
Show file tree
Hide file tree
Showing 24 changed files with 162 additions and 22 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/camel-master-cron.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -153,14 +153,14 @@ jobs:
if [[ ${JVM_MODULES[@]} ]]; then
eval ./mvnw ${MAVEN_ARGS} ${BRANCH_OPTIONS} clean test \
-Dformatter.skip -Dimpsort.skip -Denforcer.skip \
-Pdocker,ci -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-native-image:21.0.0-java11 \
-Pdocker,ci \
-pl "${JVM_MODULES[*]}"
fi
if [[ ${NATIVE_MODULES[@]} ]]; then
eval ./mvnw ${MAVEN_ARGS} ${BRANCH_OPTIONS} clean verify \
-Dformatter.skip -Dimpsort.skip -Denforcer.skip \
-Pnative,docker,ci -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-native-image:21.0.0-java11 \
-Pnative,docker,ci \
-pl "${NATIVE_MODULES[*]}"
fi
- name: Report Build Failure
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/ci-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -171,14 +171,14 @@ jobs:
if [[ ${JVM_MODULES[@]} ]]; then
eval ./mvnw ${MAVEN_ARGS} ${BRANCH_OPTIONS} clean test \
-Dformatter.skip -Dimpsort.skip -Denforcer.skip \
-Pdocker,ci -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-native-image:21.0.0-java11 \
-Pdocker,ci \
-pl "${JVM_MODULES[*]}"
fi
if [[ ${NATIVE_MODULES[@]} ]]; then
eval ./mvnw ${MAVEN_ARGS} ${BRANCH_OPTIONS} clean verify \
-Dformatter.skip -Dimpsort.skip -Denforcer.skip \
-Pnative,docker,ci -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-native-image:21.0.0-java11 \
-Pnative,docker,ci \
-pl "${NATIVE_MODULES[*]}"
fi
- name: Fail if there are uncommitted changes
Expand Down Expand Up @@ -374,4 +374,4 @@ jobs:
git clone --depth 1 --branch camel-quarkus-main https://github.com/apache/camel-quarkus-examples.git \
&& cd camel-quarkus-examples \
&& echo "Current Examples commit:" $(git rev-parse HEAD) \
&& ./mvnw-for-each.sh ${MAVEN_ARGS} ${BRANCH_OPTIONS} -Pnative,docker -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-native-image:21.0.0-java11 clean verify
&& ./mvnw-for-each.sh ${MAVEN_ARGS} ${BRANCH_OPTIONS} -Pnative,docker clean verify
4 changes: 2 additions & 2 deletions .github/workflows/quarkus-master-cron.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -162,14 +162,14 @@ jobs:
if [[ ${JVM_MODULES[@]} ]]; then
eval ./mvnw ${MAVEN_ARGS} ${BRANCH_OPTIONS} clean test \
-Dformatter.skip -Dimpsort.skip -Denforcer.skip \
-Pdocker,ci -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-native-image:21.0.0-java11 \
-Pdocker,ci \
-pl "${JVM_MODULES[*]}"
fi
if [[ ${NATIVE_MODULES[@]} ]]; then
eval ./mvnw ${MAVEN_ARGS} ${BRANCH_OPTIONS} clean verify \
-Dformatter.skip -Dimpsort.skip -Denforcer.skip \
-Pnative,docker,ci -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-native-image:21.0.0-java11 \
-Pnative,docker,ci \
-pl "${NATIVE_MODULES[*]}"
fi
- name: Report Build Failure
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
*/
package org.apache.camel.quarkus.component.support.ahc.deployment;

import java.util.stream.Stream;

import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem;
Expand All @@ -26,12 +28,6 @@
class SupportAhcProcessor {

private static final String FEATURE = "camel-support-ahc";
private static final String[] RUNTIME_INITIALIZED_CLASSES = new String[] {
"org.asynchttpclient.netty.channel.ChannelManager",
"org.asynchttpclient.netty.request.NettyRequestSender",
"org.asynchttpclient.RequestBuilderBase",
"org.asynchttpclient.resolver.RequestHostnameResolver"
};

@BuildStep
FeatureBuildItem feature() {
Expand All @@ -52,9 +48,12 @@ ExtensionSslNativeSupportBuildItem activateSslNativeSupport() {

@BuildStep
void runtimeInitializedClasses(BuildProducer<RuntimeInitializedClassBuildItem> runtimeInitializedClass) {
for (String className : RUNTIME_INITIALIZED_CLASSES) {
runtimeInitializedClass
.produce(new RuntimeInitializedClassBuildItem(className));
}
Stream.of("org.asynchttpclient.netty.channel.ChannelManager",
"org.asynchttpclient.netty.request.NettyRequestSender",
"org.asynchttpclient.RequestBuilderBase",
"org.asynchttpclient.resolver.RequestHostnameResolver",
"org.asynchttpclient.ntlm.NtlmEngine")
.map(RuntimeInitializedClassBuildItem::new)
.forEach(runtimeInitializedClass::produce);
}
}
2 changes: 1 addition & 1 deletion extensions-support/aws2/deployment/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-support-commons-logging-deployment</artifactId>
<artifactId>camel-quarkus-support-httpclient-deployment</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem;
import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.builditem.nativeimage.NativeImageProxyDefinitionBuildItem;
import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ServiceProviderBuildItem;
import software.amazon.awssdk.http.SdkHttpService;

Expand Down Expand Up @@ -68,4 +69,10 @@ private void checkClasspath(String className, String dependencyName) {
}
}

@BuildStep
void runtimeInitialize(BuildProducer<RuntimeInitializedClassBuildItem> producer) {
producer.produce(
new RuntimeInitializedClassBuildItem("software.amazon.awssdk.core.retry.backoff.FullJitterBackoffStrategy"));
}

}
2 changes: 1 addition & 1 deletion extensions-support/aws2/runtime/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-support-commons-logging</artifactId>
<artifactId>camel-quarkus-support-httpclient-deployment</artifactId>
</dependency>
<dependency>
<groupId>software.amazon.awssdk</groupId>
Expand Down
4 changes: 4 additions & 0 deletions extensions-support/google-http-client/deployment/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-core-deployment</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-support-httpclient-deployment</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-support-google-http-client</artifactId>
Expand Down
4 changes: 4 additions & 0 deletions extensions-support/google-http-client/runtime/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,10 @@
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-support-httpclient</artifactId>
</dependency>
<dependency>
<groupId>com.google.http-client</groupId>
<artifactId>google-http-client</artifactId>
Expand Down
4 changes: 4 additions & 0 deletions extensions-support/httpclient/deployment/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@
<groupId>io.quarkus</groupId>
<artifactId>quarkus-core-deployment</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-apache-httpclient-deployment</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-support-commons-logging-deployment</artifactId>
Expand Down
4 changes: 4 additions & 0 deletions extensions-support/httpclient/runtime/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,10 @@
<groupId>io.quarkus</groupId>
<artifactId>quarkus-core</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-apache-httpclient</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-support-commons-logging</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
import org.jboss.jandex.DotName;
import software.amazon.awssdk.core.interceptor.ExecutionInterceptor;

Expand Down Expand Up @@ -69,4 +70,13 @@ void process(CombinedIndexBuildItem combinedIndexBuildItem,
void archiveMarkers(BuildProducer<AdditionalApplicationArchiveMarkerBuildItem> archiveMarkers) {
archiveMarkers.produce(new AdditionalApplicationArchiveMarkerBuildItem(AWS_SDK_APPLICATION_ARCHIVE_MARKERS));
}

@BuildStep
void runtimeInitialize(BuildProducer<RuntimeInitializedClassBuildItem> producer) {
// This class triggers initialization of FullJitterBackoffStragegy so needs to get runtime-initialized
// as well
producer.produce(
new RuntimeInitializedClassBuildItem("software.amazon.awssdk.services.dynamodb.DynamoDbRetryPolicy"));
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
*/
package org.apache.camel.quarkus.component.azure.eventhubs.deployment;

import java.util.stream.Stream;

import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
Expand All @@ -24,6 +26,7 @@
import io.quarkus.deployment.builditem.IndexDependencyBuildItem;
import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
import org.jboss.jandex.ClassInfo;
import org.jboss.jandex.DotName;

Expand Down Expand Up @@ -71,4 +74,10 @@ void nativeResources(BuildProducer<NativeImageResourceBuildItem> nativeResources
"eventhubs-messages.properties"));
}

@BuildStep
void runtimeInitializedClasses(BuildProducer<RuntimeInitializedClassBuildItem> runtimeInitializedClasses) {
Stream.of("com.azure.messaging.eventhubs.PartitionBasedLoadBalancer")
.map(RuntimeInitializedClassBuildItem::new)
.forEach(runtimeInitializedClasses::produce);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,11 @@
*/
package org.apache.camel.quarkus.component.dropbox.deployment;

import java.util.stream.Stream;

import com.dropbox.core.DbxRequestUtil;
import com.dropbox.core.v2.DbxRawClientV2;
import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem;
import io.quarkus.deployment.builditem.FeatureBuildItem;
Expand Down Expand Up @@ -46,4 +51,13 @@ NativeImageResourceBuildItem nativeImageResources() {
// Required by com.dropbox.core.http.SSLConfig
return new NativeImageResourceBuildItem("com/dropbox/core/trusted-certs.raw", "com/dropbox/core/sdk-version.txt");
}

@BuildStep
void runtimeInitializedClasses(BuildProducer<RuntimeInitializedClassBuildItem> runtimeInitializedClasses) {
Stream.of(
DbxRequestUtil.class.getName(),
DbxRawClientV2.class.getName())
.map(RuntimeInitializedClassBuildItem::new)
.forEach(runtimeInitializedClasses::produce);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,16 @@
*/
package org.apache.camel.quarkus.component.google.pubsub.deployment;

import java.util.stream.Stream;

import com.fasterxml.jackson.databind.ObjectMapper;
import io.quarkus.arc.deployment.UnremovableBeanBuildItem;
import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.annotations.ExecutionTime;
import io.quarkus.deployment.annotations.Record;
import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
import io.quarkus.jackson.runtime.ObjectMapperProducer;
import org.apache.camel.component.google.pubsub.serializer.GooglePubsubSerializer;
import org.apache.camel.quarkus.component.google.pubsub.GooglePubsubRecorder;
Expand Down Expand Up @@ -51,4 +54,14 @@ public CamelRuntimeBeanBuildItem createGooglePubsubSerializerBean(GooglePubsubRe
return new CamelRuntimeBeanBuildItem("googlePubsubSerializer", GooglePubsubSerializer.class.getTypeName(),
recorder.createSerializer());
}

@BuildStep
void runtimeInitializedClasses(BuildProducer<RuntimeInitializedClassBuildItem> runtimeInitializedClass) {
Stream.of(
"io.grpc.internal.RetriableStream" // Consider moving this to a separate support extension if we need this in multiple top level extensions
)
.map(RuntimeInitializedClassBuildItem::new)
.forEach(runtimeInitializedClass::produce);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,29 @@
*/
package org.apache.camel.quarkus.component.jslt.deployment;

import java.util.stream.Stream;

import com.schibsted.spt.data.jslt.impl.BuiltinFunctions;
import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.FeatureBuildItem;
import org.jboss.logging.Logger;
import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;

class JsltProcessor {

private static final Logger LOG = Logger.getLogger(JsltProcessor.class);
private static final String FEATURE = "camel-jslt";

@BuildStep
FeatureBuildItem feature() {
return new FeatureBuildItem(FEATURE);
}

@BuildStep
void runtimeInitializedClasses(BuildProducer<RuntimeInitializedClassBuildItem> runtimeInitializedClass) {
Stream.of(
BuiltinFunctions.class.getName(),
BuiltinFunctions.Random.class.getName())
.map(RuntimeInitializedClassBuildItem::new)
.forEach(runtimeInitializedClass::produce);
}
}
4 changes: 4 additions & 0 deletions extensions/nitrite/deployment/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-core-deployment</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-support-httpclient-deployment</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-nitrite</artifactId>
Expand Down
4 changes: 4 additions & 0 deletions extensions/nitrite/runtime/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-support-httpclient</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-nitrite</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,15 @@
*/
package org.apache.camel.quarkus.component.solr.deployment;

import java.util.stream.Stream;

import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem;
import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem;
import org.jboss.jandex.AnnotationTarget;
import org.jboss.jandex.ClassInfo;
import org.jboss.jandex.DotName;
Expand Down Expand Up @@ -63,4 +66,15 @@ void registerForReflection(BuildProducer<ReflectiveClassBuildItem> reflectiveCla
})
.forEach(reflectiveClass::produce);
}

@BuildStep
void runtimeInitializedClasses(BuildProducer<RuntimeInitializedClassBuildItem> runtimeInitializedClasses) {
Stream.of(
"org.apache.solr.client.solrj.routing.RequestReplicaListTransformerGenerator",
"org.apache.zookeeper.Login" // Move this to a separate support extension if it turns out to be needed in multiple top level extensions
)
.map(RuntimeInitializedClassBuildItem::new)
.forEach(runtimeInitializedClasses::produce);
}

}

0 comments on commit bf1eeb6

Please sign in to comment.