From 78c56330ecb4355e948b55f78ecf13de57759dd6 Mon Sep 17 00:00:00 2001 From: Mayank Kunwar Date: Mon, 22 Mar 2021 12:43:43 +0530 Subject: [PATCH] Initializing SocketProcessId at run time --- .../narayana/stm/deployment/NarayanaSTMProcessor.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/extensions/narayana-stm/deployment/src/main/java/io/quarkus/narayana/stm/deployment/NarayanaSTMProcessor.java b/extensions/narayana-stm/deployment/src/main/java/io/quarkus/narayana/stm/deployment/NarayanaSTMProcessor.java index b23e3d0b602fa..bb2082d8e3bcf 100644 --- a/extensions/narayana-stm/deployment/src/main/java/io/quarkus/narayana/stm/deployment/NarayanaSTMProcessor.java +++ b/extensions/narayana-stm/deployment/src/main/java/io/quarkus/narayana/stm/deployment/NarayanaSTMProcessor.java @@ -18,6 +18,7 @@ import com.arjuna.ats.internal.arjuna.coordinator.CheckedActionFactoryImple; import com.arjuna.ats.internal.arjuna.objectstore.ShadowNoFileLockStore; +import com.arjuna.ats.internal.arjuna.utils.SocketProcessId; import com.arjuna.ats.txoj.Lock; import io.quarkus.deployment.Feature; @@ -30,6 +31,7 @@ import io.quarkus.deployment.builditem.nativeimage.NativeImageSystemPropertyBuildItem; import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem; import io.quarkus.deployment.builditem.nativeimage.ReflectiveHierarchyBuildItem; +import io.quarkus.deployment.builditem.nativeimage.RuntimeInitializedClassBuildItem; import io.quarkus.narayana.stm.runtime.NarayanaSTMRecorder; class NarayanaSTMProcessor { @@ -60,8 +62,11 @@ public NativeImageSystemPropertyBuildItem substrateSystemPropertyBuildItem() { // so disable it at runtime @BuildStep() @Record(RUNTIME_INIT) - public void configureRuntimeProperties(NarayanaSTMRecorder recorder) { + public void configureRuntimeProperties(NarayanaSTMRecorder recorder, + BuildProducer runtimeInit) { recorder.disableTransactionStatusManager(); + runtimeInit.produce(new RuntimeInitializedClassBuildItem(SocketProcessId.class.getName())); + runtimeInit.produce(new RuntimeInitializedClassBuildItem(Lock.class.getName())); } // register STM dynamic proxies