diff --git a/artemis-server/src/main/resources/schema/artemis-configuration.xsd b/artemis-server/src/main/resources/schema/artemis-configuration.xsd index 01eee16306..9827ba7fac 100644 --- a/artemis-server/src/main/resources/schema/artemis-configuration.xsd +++ b/artemis-server/src/main/resources/schema/artemis-configuration.xsd @@ -2049,7 +2049,7 @@ - + the name of the policy diff --git a/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/FileConfigurationTest.java b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/FileConfigurationTest.java index bc8fad3ce4..39df6e03de 100644 --- a/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/FileConfigurationTest.java +++ b/artemis-server/src/test/java/org/apache/activemq/artemis/core/config/impl/FileConfigurationTest.java @@ -347,7 +347,7 @@ public void testFileConfiguration() { } } - assertEquals(5, conf.getConnectionRouters().size()); + assertEquals(6, conf.getConnectionRouters().size()); for (ConnectionRouterConfiguration bc : conf.getConnectionRouters()) { if (bc.getName().equals("simple-local")) { assertEquals(bc.getKeyType(), KeyType.CLIENT_ID); @@ -367,6 +367,13 @@ public void testFileConfiguration() { assertFalse(bc.getPoolConfiguration().isLocalTargetEnabled()); assertEquals("connector1", bc.getPoolConfiguration().getStaticConnectors().get(0)); assertNull(bc.getPoolConfiguration().getDiscoveryGroupName()); + } else if (bc.getName().equals("simple-router-connector2")) { + assertEquals(bc.getKeyType(), KeyType.USER_NAME); + assertNull(bc.getLocalTargetFilter()); + assertEquals(bc.getPolicyConfiguration().getName(), FirstElementPolicy.NAME); + assertFalse(bc.getPoolConfiguration().isLocalTargetEnabled()); + assertEquals("connector2", bc.getPoolConfiguration().getStaticConnectors().get(0)); + assertNull(bc.getPoolConfiguration().getDiscoveryGroupName()); } else if (bc.getName().equals("consistent-hash-router")) { assertEquals(bc.getKeyType(), KeyType.SNI_HOST); assertEquals(bc.getKeyFilter(), "^[^.]+"); diff --git a/artemis-server/src/test/java/org/apache/activemq/artemis/core/server/routing/ConnectionRouterManagerTest.java b/artemis-server/src/test/java/org/apache/activemq/artemis/core/server/routing/ConnectionRouterManagerTest.java index 287e1e71db..cdc4f1e4e4 100644 --- a/artemis-server/src/test/java/org/apache/activemq/artemis/core/server/routing/ConnectionRouterManagerTest.java +++ b/artemis-server/src/test/java/org/apache/activemq/artemis/core/server/routing/ConnectionRouterManagerTest.java @@ -100,4 +100,22 @@ public void deployLocalOnlyWithPolicy() throws Exception { underTest.deployConnectionRouter(connectionRouterConfiguration); } + + @Test + public void deploy2LocalOnlyWithSamePolicy() throws Exception { + + ManagementService mockManagementService = Mockito.mock(ManagementService.class); + Mockito.when(mockServer.getManagementService()).thenReturn(mockManagementService); + + ConnectionRouterConfiguration connectionRouterConfiguration = new ConnectionRouterConfiguration(); + connectionRouterConfiguration.setName("partition-local-consistent-hash").setKeyType(KeyType.CLIENT_ID).setLocalTargetFilter(String.valueOf(2)); + NamedPropertyConfiguration policyConfig = new NamedPropertyConfiguration() + .setName(ConsistentHashModuloPolicy.NAME) + .setProperties(Collections.singletonMap(ConsistentHashModuloPolicy.MODULO, String.valueOf(2))); + connectionRouterConfiguration.setPolicyConfiguration(policyConfig); + underTest.deployConnectionRouter(connectionRouterConfiguration); + + connectionRouterConfiguration.setName("partition-local-consistent-hash-bis"); + underTest.deployConnectionRouter(connectionRouterConfiguration); + } } diff --git a/artemis-server/src/test/resources/ConfigurationTest-full-config.xml b/artemis-server/src/test/resources/ConfigurationTest-full-config.xml index c57fcf9af8..7afb7cc824 100644 --- a/artemis-server/src/test/resources/ConfigurationTest-full-config.xml +++ b/artemis-server/src/test/resources/ConfigurationTest-full-config.xml @@ -181,6 +181,15 @@ + + USER_NAME + + + + connector2 + + + SNI_HOST ^[^.]+ diff --git a/artemis-server/src/test/resources/ConfigurationTest-xinclude-config.xml b/artemis-server/src/test/resources/ConfigurationTest-xinclude-config.xml index 9022a6af9f..c0678ae9e2 100644 --- a/artemis-server/src/test/resources/ConfigurationTest-xinclude-config.xml +++ b/artemis-server/src/test/resources/ConfigurationTest-xinclude-config.xml @@ -175,6 +175,15 @@ + + USER_NAME + + + + connector2 + + + SNI_HOST ^[^.]+ diff --git a/artemis-server/src/test/resources/ConfigurationTest-xinclude-schema-config-connection-routers.xml b/artemis-server/src/test/resources/ConfigurationTest-xinclude-schema-config-connection-routers.xml index ad694ebeba..8979209514 100644 --- a/artemis-server/src/test/resources/ConfigurationTest-xinclude-schema-config-connection-routers.xml +++ b/artemis-server/src/test/resources/ConfigurationTest-xinclude-schema-config-connection-routers.xml @@ -37,6 +37,15 @@ + + USER_NAME + + + + connector2 + + + SNI_HOST ^[^.]+