From 0a6d90945ef528d30dbe0800f28b08c81f87d347 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Tue, 13 Jun 2023 16:57:28 +0200 Subject: [PATCH] Ensure Panache class transformers run before Arc's static method transformers Fixes #34005 Because static method transformers end up essentially changing the name of static methods (renaming them to *_orig and generating another method in their place), which can cause issues when Panache looks up the new name of transformed methods in Jandex (*_orig methods won't be in the index). --- .../panache/deployment/PanacheHibernateResourceProcessor.java | 2 ++ .../common/deployment/PanacheHibernateResourceProcessor.java | 2 ++ .../panache/deployment/BasePanacheMongoResourceProcessor.java | 4 ++++ .../deployment/PanacheHibernateCommonResourceProcessor.java | 2 ++ 4 files changed, 10 insertions(+) diff --git a/extensions/panache/hibernate-orm-panache/deployment/src/main/java/io/quarkus/hibernate/orm/panache/deployment/PanacheHibernateResourceProcessor.java b/extensions/panache/hibernate-orm-panache/deployment/src/main/java/io/quarkus/hibernate/orm/panache/deployment/PanacheHibernateResourceProcessor.java index 7edb7fcddba0b..82ff8080397b6 100644 --- a/extensions/panache/hibernate-orm-panache/deployment/src/main/java/io/quarkus/hibernate/orm/panache/deployment/PanacheHibernateResourceProcessor.java +++ b/extensions/panache/hibernate-orm-panache/deployment/src/main/java/io/quarkus/hibernate/orm/panache/deployment/PanacheHibernateResourceProcessor.java @@ -21,6 +21,7 @@ import io.quarkus.arc.deployment.UnremovableBeanBuildItem; import io.quarkus.arc.deployment.ValidationPhaseBuildItem; +import io.quarkus.arc.deployment.staticmethods.InterceptedStaticMethodsTransformersRegisteredBuildItem; import io.quarkus.builder.BuildException; import io.quarkus.deployment.Feature; import io.quarkus.deployment.annotations.BuildProducer; @@ -92,6 +93,7 @@ void collectEntityClasses(CombinedIndexBuildItem index, BuildProducer transformers, diff --git a/extensions/panache/hibernate-reactive-panache/deployment/src/main/java/io/quarkus/hibernate/reactive/panache/common/deployment/PanacheHibernateResourceProcessor.java b/extensions/panache/hibernate-reactive-panache/deployment/src/main/java/io/quarkus/hibernate/reactive/panache/common/deployment/PanacheHibernateResourceProcessor.java index 194f123bf06e5..68a4e402578d6 100644 --- a/extensions/panache/hibernate-reactive-panache/deployment/src/main/java/io/quarkus/hibernate/reactive/panache/common/deployment/PanacheHibernateResourceProcessor.java +++ b/extensions/panache/hibernate-reactive-panache/deployment/src/main/java/io/quarkus/hibernate/reactive/panache/common/deployment/PanacheHibernateResourceProcessor.java @@ -18,6 +18,7 @@ import io.quarkus.arc.deployment.UnremovableBeanBuildItem; import io.quarkus.arc.deployment.ValidationPhaseBuildItem; +import io.quarkus.arc.deployment.staticmethods.InterceptedStaticMethodsTransformersRegisteredBuildItem; import io.quarkus.builder.BuildException; import io.quarkus.deployment.Feature; import io.quarkus.deployment.annotations.BuildProducer; @@ -90,6 +91,7 @@ void collectEntityClasses(CombinedIndexBuildItem index, BuildProducer transformers, List entityClasses, diff --git a/extensions/panache/mongodb-panache-common/deployment/src/main/java/io/quarkus/mongodb/panache/deployment/BasePanacheMongoResourceProcessor.java b/extensions/panache/mongodb-panache-common/deployment/src/main/java/io/quarkus/mongodb/panache/deployment/BasePanacheMongoResourceProcessor.java index 199f8fae50735..f99d26b341823 100644 --- a/extensions/panache/mongodb-panache-common/deployment/src/main/java/io/quarkus/mongodb/panache/deployment/BasePanacheMongoResourceProcessor.java +++ b/extensions/panache/mongodb-panache-common/deployment/src/main/java/io/quarkus/mongodb/panache/deployment/BasePanacheMongoResourceProcessor.java @@ -30,11 +30,13 @@ import io.quarkus.arc.deployment.UnremovableBeanBuildItem; import io.quarkus.arc.deployment.ValidationPhaseBuildItem; +import io.quarkus.arc.deployment.staticmethods.InterceptedStaticMethodsTransformersRegisteredBuildItem; import io.quarkus.bootstrap.classloading.ClassPathElement; import io.quarkus.bootstrap.classloading.QuarkusClassLoader; import io.quarkus.builder.BuildException; import io.quarkus.deployment.annotations.BuildProducer; import io.quarkus.deployment.annotations.BuildStep; +import io.quarkus.deployment.annotations.Consume; import io.quarkus.deployment.annotations.ExecutionTime; import io.quarkus.deployment.annotations.Record; import io.quarkus.deployment.bean.JavaBeanUtil; @@ -76,6 +78,7 @@ public abstract class BasePanacheMongoResourceProcessor { public static final String BSON_PACKAGE = "org.bson."; @BuildStep + @Consume(InterceptedStaticMethodsTransformersRegisteredBuildItem.class) public void buildImperative(CombinedIndexBuildItem index, BuildProducer transformers, BuildProducer reflectiveClass, @@ -94,6 +97,7 @@ public void buildImperative(CombinedIndexBuildItem index, } @BuildStep + @Consume(InterceptedStaticMethodsTransformersRegisteredBuildItem.class) public void buildReactive(CombinedIndexBuildItem index, BuildProducer reflectiveClass, BuildProducer reflectiveHierarchy, diff --git a/extensions/panache/panache-hibernate-common/deployment/src/main/java/io/quarkus/panache/common/deployment/PanacheHibernateCommonResourceProcessor.java b/extensions/panache/panache-hibernate-common/deployment/src/main/java/io/quarkus/panache/common/deployment/PanacheHibernateCommonResourceProcessor.java index 82cf77985d58c..656c2c1e3a8a6 100644 --- a/extensions/panache/panache-hibernate-common/deployment/src/main/java/io/quarkus/panache/common/deployment/PanacheHibernateCommonResourceProcessor.java +++ b/extensions/panache/panache-hibernate-common/deployment/src/main/java/io/quarkus/panache/common/deployment/PanacheHibernateCommonResourceProcessor.java @@ -14,6 +14,7 @@ import org.jboss.jandex.DotName; import org.jboss.jandex.FieldInfo; +import io.quarkus.arc.deployment.staticmethods.InterceptedStaticMethodsTransformersRegisteredBuildItem; import io.quarkus.bootstrap.classloading.ClassPathElement; import io.quarkus.bootstrap.classloading.QuarkusClassLoader; import io.quarkus.deployment.annotations.BuildProducer; @@ -81,6 +82,7 @@ void findEntityClasses(CombinedIndexBuildItem index, @BuildStep @Consume(HibernateEnhancersRegisteredBuildItem.class) + @Consume(InterceptedStaticMethodsTransformersRegisteredBuildItem.class) void replaceFieldAccesses(CombinedIndexBuildItem index, ApplicationArchivesBuildItem applicationArchivesBuildItem, Optional modelInfoBuildItem,