Polish contribution
See gh-31248
This commit is contained in:
@@ -31,14 +31,14 @@ import org.springframework.util.CollectionUtils;
|
||||
/**
|
||||
* Abstract {@link ConnectionFactory} implementation that routes
|
||||
* {@link #create()} calls to one of various target
|
||||
* {@link ConnectionFactory factories} based on a lookup key.
|
||||
* {@linkplain ConnectionFactory factories} based on a lookup key.
|
||||
* The latter is typically (but not necessarily) determined from some
|
||||
* subscriber context.
|
||||
*
|
||||
* <p> Allows to configure a {@link #setDefaultTargetConnectionFactory(Object)
|
||||
* default ConnectionFactory} as fallback.
|
||||
* <p>Allows to configure a default target {@link #setDefaultTargetConnectionFactory(Object)
|
||||
* ConnectionFactory} as a fallback.
|
||||
*
|
||||
* <p> Calls to {@link #getMetadata()} are routed to the
|
||||
* <p>Calls to {@link #getMetadata()} are routed to the
|
||||
* {@link #setDefaultTargetConnectionFactory(Object) default ConnectionFactory}
|
||||
* if configured.
|
||||
*
|
||||
@@ -125,14 +125,22 @@ public abstract class AbstractRoutingConnectionFactory implements ConnectionFact
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Delegates to {@link #initialize()}.
|
||||
*/
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
initialize();
|
||||
}
|
||||
|
||||
/**
|
||||
* Synchronizes targetConnectionFactories to resolvedConnectionFactories
|
||||
* and defaultTargetConnectionFactory to resolvedDefaultConnectionFactory.
|
||||
* Initialize the internal state of this {@code AbstractRoutingConnectionFactory}
|
||||
* by resolving the configured target ConnectionFactories.
|
||||
* @throws IllegalArgumentException if the target ConnectionFactories have not
|
||||
* been configured
|
||||
* @since 6.1
|
||||
* @see #setTargetConnectionFactories(Map)
|
||||
* @see #setDefaultTargetConnectionFactory(Object)
|
||||
*/
|
||||
public void initialize() {
|
||||
Assert.notNull(this.targetConnectionFactories, "Property 'targetConnectionFactories' must not be null");
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package org.springframework.r2dbc.connection.lookup;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import io.r2dbc.spi.ConnectionFactory;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@@ -26,7 +28,7 @@ import reactor.core.publisher.Mono;
|
||||
import reactor.test.StepVerifier;
|
||||
import reactor.util.context.Context;
|
||||
|
||||
import static java.util.Collections.singletonMap;
|
||||
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
|
||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
|
||||
/**
|
||||
@@ -36,30 +38,28 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||
* @author Jens Schauder
|
||||
*/
|
||||
@ExtendWith(MockitoExtension.class)
|
||||
public class AbstractRoutingConnectionFactoryUnitTests {
|
||||
class AbstractRoutingConnectionFactoryUnitTests {
|
||||
|
||||
private static final String ROUTING_KEY = "routingKey";
|
||||
|
||||
final DummyRoutingConnectionFactory connectionFactory = new DummyRoutingConnectionFactory();
|
||||
|
||||
@Mock
|
||||
ConnectionFactory defaultConnectionFactory;
|
||||
|
||||
@Mock
|
||||
ConnectionFactory routedConnectionFactory;
|
||||
|
||||
DummyRoutingConnectionFactory connectionFactory;
|
||||
|
||||
|
||||
@BeforeEach
|
||||
public void before() {
|
||||
connectionFactory = new DummyRoutingConnectionFactory();
|
||||
void before() {
|
||||
connectionFactory.setDefaultTargetConnectionFactory(defaultConnectionFactory);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void shouldDetermineRoutedFactory() {
|
||||
connectionFactory.setTargetConnectionFactories(
|
||||
singletonMap("key", routedConnectionFactory));
|
||||
void shouldDetermineRoutedFactory() {
|
||||
connectionFactory.setTargetConnectionFactories(Map.of("key", routedConnectionFactory));
|
||||
connectionFactory.setConnectionFactoryLookup(new MapConnectionFactoryLookup());
|
||||
connectionFactory.afterPropertiesSet();
|
||||
|
||||
@@ -71,9 +71,8 @@ public class AbstractRoutingConnectionFactoryUnitTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldFallbackToDefaultConnectionFactory() {
|
||||
connectionFactory.setTargetConnectionFactories(
|
||||
singletonMap("key", routedConnectionFactory));
|
||||
void shouldFallbackToDefaultConnectionFactory() {
|
||||
connectionFactory.setTargetConnectionFactories(Map.of("key", routedConnectionFactory));
|
||||
connectionFactory.afterPropertiesSet();
|
||||
|
||||
connectionFactory.determineTargetConnectionFactory()
|
||||
@@ -83,29 +82,27 @@ public class AbstractRoutingConnectionFactoryUnitTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void initializationShouldFailUnsupportedLookupKey() {
|
||||
connectionFactory.setTargetConnectionFactories(singletonMap("key", new Object()));
|
||||
void initializationShouldFailUnsupportedLookupKey() {
|
||||
connectionFactory.setTargetConnectionFactories(Map.of("key", new Object()));
|
||||
|
||||
assertThatThrownBy(() -> connectionFactory.afterPropertiesSet())
|
||||
.isInstanceOf(IllegalArgumentException.class);
|
||||
assertThatIllegalArgumentException().isThrownBy(connectionFactory::initialize);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void initializationShouldFailUnresolvableKey() {
|
||||
connectionFactory.setTargetConnectionFactories(singletonMap("key", "value"));
|
||||
void initializationShouldFailUnresolvableKey() {
|
||||
connectionFactory.setTargetConnectionFactories(Map.of("key", "value"));
|
||||
connectionFactory.setConnectionFactoryLookup(new MapConnectionFactoryLookup());
|
||||
|
||||
assertThatThrownBy(() -> connectionFactory.afterPropertiesSet())
|
||||
assertThatThrownBy(connectionFactory::initialize)
|
||||
.isInstanceOf(ConnectionFactoryLookupFailureException.class)
|
||||
.hasMessageContaining("No ConnectionFactory with name 'value' registered");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void unresolvableConnectionFactoryRetrievalShouldFail() {
|
||||
void unresolvableConnectionFactoryRetrievalShouldFail() {
|
||||
connectionFactory.setLenientFallback(false);
|
||||
connectionFactory.setConnectionFactoryLookup(new MapConnectionFactoryLookup());
|
||||
connectionFactory.setTargetConnectionFactories(
|
||||
singletonMap("key", routedConnectionFactory));
|
||||
connectionFactory.setTargetConnectionFactories(Map.of("key", routedConnectionFactory));
|
||||
connectionFactory.afterPropertiesSet();
|
||||
|
||||
connectionFactory.determineTargetConnectionFactory()
|
||||
@@ -115,9 +112,8 @@ public class AbstractRoutingConnectionFactoryUnitTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void connectionFactoryRetrievalWithUnknownLookupKeyShouldReturnDefaultConnectionFactory() {
|
||||
connectionFactory.setTargetConnectionFactories(
|
||||
singletonMap("key", routedConnectionFactory));
|
||||
void connectionFactoryRetrievalWithUnknownLookupKeyShouldReturnDefaultConnectionFactory() {
|
||||
connectionFactory.setTargetConnectionFactories(Map.of("key", routedConnectionFactory));
|
||||
connectionFactory.setDefaultTargetConnectionFactory(defaultConnectionFactory);
|
||||
connectionFactory.afterPropertiesSet();
|
||||
|
||||
@@ -129,9 +125,8 @@ public class AbstractRoutingConnectionFactoryUnitTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void connectionFactoryRetrievalWithoutLookupKeyShouldReturnDefaultConnectionFactory() {
|
||||
connectionFactory.setTargetConnectionFactories(
|
||||
singletonMap("key", routedConnectionFactory));
|
||||
void connectionFactoryRetrievalWithoutLookupKeyShouldReturnDefaultConnectionFactory() {
|
||||
connectionFactory.setTargetConnectionFactories(Map.of("key", routedConnectionFactory));
|
||||
connectionFactory.setDefaultTargetConnectionFactory(defaultConnectionFactory);
|
||||
connectionFactory.setLenientFallback(false);
|
||||
connectionFactory.afterPropertiesSet();
|
||||
@@ -143,12 +138,12 @@ public class AbstractRoutingConnectionFactoryUnitTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldLookupFromMap() {
|
||||
void shouldLookupFromMap() {
|
||||
MapConnectionFactoryLookup lookup =
|
||||
new MapConnectionFactoryLookup("lookup-key", routedConnectionFactory);
|
||||
|
||||
connectionFactory.setConnectionFactoryLookup(lookup);
|
||||
connectionFactory.setTargetConnectionFactories(singletonMap("my-key", "lookup-key"));
|
||||
connectionFactory.setTargetConnectionFactories(Map.of("my-key", "lookup-key"));
|
||||
connectionFactory.afterPropertiesSet();
|
||||
|
||||
connectionFactory.determineTargetConnectionFactory()
|
||||
@@ -159,7 +154,7 @@ public class AbstractRoutingConnectionFactoryUnitTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void shouldAllowModificationsAfterInitialization() {
|
||||
void shouldAllowModificationsAfterInitialization() {
|
||||
MapConnectionFactoryLookup lookup = new MapConnectionFactoryLookup();
|
||||
|
||||
connectionFactory.setConnectionFactoryLookup(lookup);
|
||||
@@ -183,9 +178,8 @@ public class AbstractRoutingConnectionFactoryUnitTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
void testInitialize_shouldDetermineRoutedFactory() {
|
||||
connectionFactory.setTargetConnectionFactories(
|
||||
singletonMap("key", routedConnectionFactory));
|
||||
void initializeShouldDetermineRoutedFactory() {
|
||||
connectionFactory.setTargetConnectionFactories(Map.of("key", routedConnectionFactory));
|
||||
connectionFactory.setConnectionFactoryLookup(new MapConnectionFactoryLookup());
|
||||
connectionFactory.initialize();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user