Skip to content

Commit

Permalink
Merge pull request #30018 from zakkak/2022-12-21-move-registrations-t…
Browse files Browse the repository at this point in the history
…o-proper-extensions

Move log4j-api to correct quarkus module and add condition for jackson-module-jaxb-annotations registrations
  • Loading branch information
yrodiere authored Jan 3, 2023
2 parents ec45a5e + 690eeaf commit 533f315
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;

class ElasticsearchRestClientProcessor {

Expand All @@ -14,10 +13,4 @@ public void build(BuildProducer<ExtensionSslNativeSupportBuildItem> extensionSsl
extensionSslNativeSupport.produce(new ExtensionSslNativeSupportBuildItem(Feature.ELASTICSEARCH_REST_CLIENT_COMMON));
}

@BuildStep
public ReflectiveClassBuildItem registerForReflection() {
return new ReflectiveClassBuildItem(true, true,
"org.apache.logging.log4j.message.ReusableMessageFactory",
"org.apache.logging.log4j.message.DefaultFlowMessageFactory");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import io.quarkus.deployment.Feature;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.FeatureBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
import io.quarkus.elasticsearch.restclient.highlevel.runtime.ElasticsearchRestHighLevelClientProducer;

class ElasticsearchHighLevelClientProcessor {
Expand All @@ -18,4 +19,11 @@ AdditionalBeanBuildItem build() {
return AdditionalBeanBuildItem.unremovableOf(ElasticsearchRestHighLevelClientProducer.class);
}

@BuildStep
public ReflectiveClassBuildItem registerForReflection() {
return new ReflectiveClassBuildItem(true, false,
"org.apache.logging.log4j.message.ReusableMessageFactory",
"org.apache.logging.log4j.message.DefaultFlowMessageFactory");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveHierarchyBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveMethodBuildItem;
import io.quarkus.deployment.pkg.builditem.CurateOutcomeBuildItem;
import io.quarkus.gizmo.ClassCreator;
import io.quarkus.gizmo.ClassOutput;
import io.quarkus.gizmo.MethodCreator;
Expand Down Expand Up @@ -113,18 +114,26 @@ void unremovable(Capabilities capabilities, BuildProducer<UnremovableBeanBuildIt

@BuildStep
void register(
CurateOutcomeBuildItem curateOutcomeBuildItem,
BuildProducer<ReflectiveClassBuildItem> reflectiveClass,
BuildProducer<ReflectiveHierarchyBuildItem> reflectiveHierarchyClass,
BuildProducer<ReflectiveMethodBuildItem> reflectiveMethod,
BuildProducer<AdditionalBeanBuildItem> additionalBeans) {
reflectiveClass.produce(
new ReflectiveClassBuildItem(true, false, "com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector",
new ReflectiveClassBuildItem(true, false,
"com.fasterxml.jackson.databind.ser.std.SqlDateSerializer",
"com.fasterxml.jackson.databind.ser.std.SqlTimeSerializer",
"com.fasterxml.jackson.databind.deser.std.DateDeserializers$SqlDateDeserializer",
"com.fasterxml.jackson.databind.deser.std.DateDeserializers$TimestampDeserializer",
"com.fasterxml.jackson.annotation.SimpleObjectIdResolver"));

if (curateOutcomeBuildItem.getApplicationModel().getDependencies().stream().anyMatch(
x -> x.getGroupId().equals("com.fasterxml.jackson.module")
&& x.getArtifactId().equals("jackson-module-jaxb-annotations"))) {
reflectiveClass.produce(
new ReflectiveClassBuildItem(true, false, "com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector"));
}

IndexView index = combinedIndexBuildItem.getIndex();

// TODO: @JsonDeserialize is only supported as a class annotation - we should support the others as well
Expand Down

0 comments on commit 533f315

Please sign in to comment.