From e10733ade2ea82442dbadf5b4750a907e71c40ea Mon Sep 17 00:00:00 2001 From: Davide D'Alto Date: Wed, 30 Apr 2025 16:00:14 +0200 Subject: [PATCH 1/4] [#2234] Revert "[#2207] Provide access to the contextual data map" This reverts commit 80a9cfe70b0a54ac7591c74ac05e2f01a4744e4f. --- .../context/impl/ContextualDataStorage.java | 17 +---------------- .../reactive/context/impl/VertxContext.java | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/ContextualDataStorage.java b/hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/ContextualDataStorage.java index bcbfdf5f0..39cb8fa10 100644 --- a/hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/ContextualDataStorage.java +++ b/hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/ContextualDataStorage.java @@ -5,12 +5,6 @@ */ package org.hibernate.reactive.context.impl; -import org.hibernate.reactive.context.Context; - -import io.vertx.core.impl.ContextInternal; -import io.vertx.core.spi.context.storage.AccessMode; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import io.vertx.core.impl.VertxBuilder; @@ -23,18 +17,9 @@ public class ContextualDataStorage implements VertxServiceProvider { @SuppressWarnings("rawtypes") - private final static ContextLocal CONTEXTUAL_DATA_KEY = ContextLocal.registerLocal( ConcurrentMap.class ); + final static ContextLocal CONTEXTUAL_DATA_KEY = ContextLocal.registerLocal( ConcurrentMap.class ); @Override public void init(VertxBuilder vertxBuilder) { } - - @SuppressWarnings({ "unchecked" }) - public static Map, T> contextualDataMap(ContextInternal vertxContext) { - return vertxContext.getLocal( - ContextualDataStorage.CONTEXTUAL_DATA_KEY, - AccessMode.CONCURRENT, - ConcurrentHashMap::new - ); - } } diff --git a/hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/VertxContext.java b/hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/VertxContext.java index 24975a87f..937dc3b1b 100644 --- a/hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/VertxContext.java +++ b/hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/VertxContext.java @@ -6,9 +6,12 @@ package org.hibernate.reactive.context.impl; import java.lang.invoke.MethodHandles; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; import io.vertx.core.Vertx; import io.vertx.core.impl.ContextInternal; +import io.vertx.core.spi.context.storage.AccessMode; import org.hibernate.reactive.context.Context; import org.hibernate.reactive.logging.impl.Log; @@ -17,8 +20,6 @@ import org.hibernate.service.spi.ServiceRegistryAwareService; import org.hibernate.service.spi.ServiceRegistryImplementor; -import static org.hibernate.reactive.context.impl.ContextualDataStorage.contextualDataMap; - /** * An adaptor for the Vert.x {@link io.vertx.core.Context}. * @@ -41,7 +42,7 @@ public void put(Key key, T instance) { final ContextInternal context = ContextInternal.current(); if ( context != null ) { if ( trace ) LOG.tracef( "Putting key,value in context: [%1$s, %2$s]", key, instance ); - ContextualDataStorage.contextualDataMap( context ).put( key, instance ); + VertxContext.contextualDataMap( context ).put( key, instance ); } else { if ( trace ) LOG.tracef( "Context is null for key,value: [%1$s, %2$s]", key, instance ); @@ -53,7 +54,7 @@ public void put(Key key, T instance) { public T get(Key key) { final ContextInternal context = ContextInternal.current(); if ( context != null ) { - T local = ContextualDataStorage.contextualDataMap( context ).get( key ); + T local = VertxContext.contextualDataMap( context ).get( key ); if ( trace ) LOG.tracef( "Getting value %2$s from context for key %1$s", key, local ); return local; } @@ -93,4 +94,13 @@ public void execute(Runnable runnable) { runnable.run(); } } + + @SuppressWarnings({ "unchecked" }) + private static ConcurrentMap, T> contextualDataMap(ContextInternal vertxContext) { + return vertxContext.getLocal( + ContextualDataStorage.CONTEXTUAL_DATA_KEY, + AccessMode.CONCURRENT, + ConcurrentHashMap::new + ); + } } From 7b54fcfe8cf7e9b7ee181eb3a7973a5b8803743e Mon Sep 17 00:00:00 2001 From: Davide D'Alto Date: Wed, 30 Apr 2025 16:00:44 +0200 Subject: [PATCH 2/4] [#2234] Revert "Make CONTEXTUAL_DATA_KEY constant" This reverts commit 156f7c3d97ed105e92a3bc52e6bd1daed67482f0. --- .../hibernate/reactive/context/impl/ContextualDataStorage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/ContextualDataStorage.java b/hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/ContextualDataStorage.java index 39cb8fa10..295b92f4d 100644 --- a/hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/ContextualDataStorage.java +++ b/hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/ContextualDataStorage.java @@ -17,7 +17,7 @@ public class ContextualDataStorage implements VertxServiceProvider { @SuppressWarnings("rawtypes") - final static ContextLocal CONTEXTUAL_DATA_KEY = ContextLocal.registerLocal( ConcurrentMap.class ); + static ContextLocal CONTEXTUAL_DATA_KEY = ContextLocal.registerLocal( ConcurrentMap.class ); @Override public void init(VertxBuilder vertxBuilder) { From c304230f2629ab4aa7012857e3c8b0d5eaf40be1 Mon Sep 17 00:00:00 2001 From: Davide D'Alto Date: Wed, 30 Apr 2025 16:01:29 +0200 Subject: [PATCH 3/4] [#2234] Revert "[#2176] Create custom Vert.x contextual data storage" This reverts commit b4ab6a4b0d09eb0f5d7dc6d750a7609088b28649. --- .../context/impl/ContextualDataStorage.java | 25 ------------------- .../reactive/context/impl/VertxContext.java | 18 +++---------- .../io.vertx.core.spi.VertxServiceProvider | 1 - 3 files changed, 4 insertions(+), 40 deletions(-) delete mode 100644 hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/ContextualDataStorage.java delete mode 100644 hibernate-reactive-core/src/main/resources/META-INF/services/io.vertx.core.spi.VertxServiceProvider diff --git a/hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/ContextualDataStorage.java b/hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/ContextualDataStorage.java deleted file mode 100644 index 295b92f4d..000000000 --- a/hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/ContextualDataStorage.java +++ /dev/null @@ -1,25 +0,0 @@ -/* Hibernate, Relational Persistence for Idiomatic Java - * - * SPDX-License-Identifier: Apache-2.0 - * Copyright: Red Hat Inc. and Hibernate Authors - */ -package org.hibernate.reactive.context.impl; - -import java.util.concurrent.ConcurrentMap; - -import io.vertx.core.impl.VertxBuilder; -import io.vertx.core.spi.VertxServiceProvider; -import io.vertx.core.spi.context.storage.ContextLocal; - -/** - * SPI Implementation for {@link ContextLocal} storage. - */ -public class ContextualDataStorage implements VertxServiceProvider { - - @SuppressWarnings("rawtypes") - static ContextLocal CONTEXTUAL_DATA_KEY = ContextLocal.registerLocal( ConcurrentMap.class ); - - @Override - public void init(VertxBuilder vertxBuilder) { - } -} diff --git a/hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/VertxContext.java b/hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/VertxContext.java index 937dc3b1b..fef172e66 100644 --- a/hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/VertxContext.java +++ b/hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/VertxContext.java @@ -6,12 +6,9 @@ package org.hibernate.reactive.context.impl; import java.lang.invoke.MethodHandles; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; import io.vertx.core.Vertx; import io.vertx.core.impl.ContextInternal; -import io.vertx.core.spi.context.storage.AccessMode; import org.hibernate.reactive.context.Context; import org.hibernate.reactive.logging.impl.Log; @@ -42,7 +39,7 @@ public void put(Key key, T instance) { final ContextInternal context = ContextInternal.current(); if ( context != null ) { if ( trace ) LOG.tracef( "Putting key,value in context: [%1$s, %2$s]", key, instance ); - VertxContext.contextualDataMap( context ).put( key, instance ); + context.localContextData().put( key, instance ); } else { if ( trace ) LOG.tracef( "Context is null for key,value: [%1$s, %2$s]", key, instance ); @@ -54,7 +51,8 @@ public void put(Key key, T instance) { public T get(Key key) { final ContextInternal context = ContextInternal.current(); if ( context != null ) { - T local = VertxContext.contextualDataMap( context ).get( key ); + @SuppressWarnings("unchecked") + T local = (T) context.localContextData().get( key ); if ( trace ) LOG.tracef( "Getting value %2$s from context for key %1$s", key, local ); return local; } @@ -68,7 +66,7 @@ public T get(Key key) { public void remove(Key key) { final ContextInternal context = ContextInternal.current(); if ( context != null ) { - boolean removed = contextualDataMap( context ).remove( key ) != null; + boolean removed = context.localContextData().remove( key ) != null; if ( trace ) LOG.tracef( "Key %s removed from context: %s", key, removed ); } else { @@ -95,12 +93,4 @@ public void execute(Runnable runnable) { } } - @SuppressWarnings({ "unchecked" }) - private static ConcurrentMap, T> contextualDataMap(ContextInternal vertxContext) { - return vertxContext.getLocal( - ContextualDataStorage.CONTEXTUAL_DATA_KEY, - AccessMode.CONCURRENT, - ConcurrentHashMap::new - ); - } } diff --git a/hibernate-reactive-core/src/main/resources/META-INF/services/io.vertx.core.spi.VertxServiceProvider b/hibernate-reactive-core/src/main/resources/META-INF/services/io.vertx.core.spi.VertxServiceProvider deleted file mode 100644 index 80ffcb31c..000000000 --- a/hibernate-reactive-core/src/main/resources/META-INF/services/io.vertx.core.spi.VertxServiceProvider +++ /dev/null @@ -1 +0,0 @@ -org.hibernate.reactive.context.impl.ContextualDataStorage \ No newline at end of file From 5cb1a9ece07643f58ee8986446858c9413f3c404 Mon Sep 17 00:00:00 2001 From: Davide D'Alto Date: Wed, 30 Apr 2025 16:01:42 +0200 Subject: [PATCH 4/4] [#2234] Revert "[#2174] Prepare for Vert.x 5 upgrade in Vert.x Context" This reverts commit 742ab0b5f4aeda833a9463573bf5bcc6abc3eb76. --- .../reactive/context/impl/VertxContext.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/VertxContext.java b/hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/VertxContext.java index fef172e66..4448c9b6c 100644 --- a/hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/VertxContext.java +++ b/hibernate-reactive-core/src/main/java/org/hibernate/reactive/context/impl/VertxContext.java @@ -36,10 +36,10 @@ public void injectServices(ServiceRegistryImplementor serviceRegistry) { @Override public void put(Key key, T instance) { - final ContextInternal context = ContextInternal.current(); + final io.vertx.core.Context context = Vertx.currentContext(); if ( context != null ) { if ( trace ) LOG.tracef( "Putting key,value in context: [%1$s, %2$s]", key, instance ); - context.localContextData().put( key, instance ); + context.putLocal( key, instance ); } else { if ( trace ) LOG.tracef( "Context is null for key,value: [%1$s, %2$s]", key, instance ); @@ -49,10 +49,9 @@ public void put(Key key, T instance) { @Override public T get(Key key) { - final ContextInternal context = ContextInternal.current(); + final io.vertx.core.Context context = Vertx.currentContext(); if ( context != null ) { - @SuppressWarnings("unchecked") - T local = (T) context.localContextData().get( key ); + T local = context.getLocal( key ); if ( trace ) LOG.tracef( "Getting value %2$s from context for key %1$s", key, local ); return local; } @@ -64,9 +63,9 @@ public T get(Key key) { @Override public void remove(Key key) { - final ContextInternal context = ContextInternal.current(); + final io.vertx.core.Context context = Vertx.currentContext(); if ( context != null ) { - boolean removed = context.localContextData().remove( key ) != null; + boolean removed = context.removeLocal( key ); if ( trace ) LOG.tracef( "Key %s removed from context: %s", key, removed ); } else {