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..bcbfdf5f0 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,6 +5,12 @@ */ 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; @@ -17,9 +23,18 @@ public class ContextualDataStorage implements VertxServiceProvider { @SuppressWarnings("rawtypes") - final static ContextLocal CONTEXTUAL_DATA_KEY = ContextLocal.registerLocal( ConcurrentMap.class ); + private 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 937dc3b1b..24975a87f 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; @@ -20,6 +17,8 @@ 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}. * @@ -42,7 +41,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 ); + ContextualDataStorage.contextualDataMap( context ).put( key, instance ); } else { if ( trace ) LOG.tracef( "Context is null for key,value: [%1$s, %2$s]", key, instance ); @@ -54,7 +53,7 @@ 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 ); + T local = ContextualDataStorage.contextualDataMap( context ).get( key ); if ( trace ) LOG.tracef( "Getting value %2$s from context for key %1$s", key, local ); return local; } @@ -94,13 +93,4 @@ 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 - ); - } }