From 503d639c5d5735428073ce3eed2d29a604fe4ba5 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Wed, 24 Mar 2021 09:33:02 +0100 Subject: [PATCH] Make RedisConnectionProxy public. RedisConnectionProxy is now public so it can be used properly for Java proxy creation across different class loaders. Previously, creating a Java proxy from a different class loader failed because of visibility/access restrictions. Closes #2016 --- .../data/redis/core/RedisConnectionUtils.java | 2 +- .../data/redis/core/RedisConnectionUtilsUnitTests.java | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/springframework/data/redis/core/RedisConnectionUtils.java b/src/main/java/org/springframework/data/redis/core/RedisConnectionUtils.java index e91734c43..85ec2fa62 100644 --- a/src/main/java/org/springframework/data/redis/core/RedisConnectionUtils.java +++ b/src/main/java/org/springframework/data/redis/core/RedisConnectionUtils.java @@ -626,7 +626,7 @@ public abstract class RedisConnectionUtils { * @since 2.4.2 * @see RedisConnectionUtils#getTargetConnection(RedisConnection) */ - interface RedisConnectionProxy extends RedisConnection, RawTargetAccess { + public interface RedisConnectionProxy extends RedisConnection, RawTargetAccess { /** * Return the target {@link RedisConnection} of this proxy. diff --git a/src/test/java/org/springframework/data/redis/core/RedisConnectionUtilsUnitTests.java b/src/test/java/org/springframework/data/redis/core/RedisConnectionUtilsUnitTests.java index 4ae5ec54a..1971eede1 100644 --- a/src/test/java/org/springframework/data/redis/core/RedisConnectionUtilsUnitTests.java +++ b/src/test/java/org/springframework/data/redis/core/RedisConnectionUtilsUnitTests.java @@ -104,14 +104,15 @@ class RedisConnectionUtilsUnitTests { assertThat(TransactionSynchronizationManager.hasResource(factoryMock)).isFalse(); } - @Test // DATAREDIS-891 + @Test // DATAREDIS-891, GH-2016 void bindConnectionShouldBindConnectionToOngoingTransactionScope() { TransactionTemplate template = new TransactionTemplate(new DummyTransactionManager()); template.executeWithoutResult(status -> { - assertThat(RedisConnectionUtils.bindConnection(factoryMock, true)).isNotNull(); + assertThat(RedisConnectionUtils.bindConnection(factoryMock, true)) + .isInstanceOf(RedisConnectionUtils.RedisConnectionProxy.class); assertThat(TransactionSynchronizationManager.hasResource(factoryMock)).isTrue(); assertThat(RedisConnectionUtils.getConnection(factoryMock)).isNotNull();