Search in sources :

Example 6 with ClusterConnectionConfiguration

use of org.apache.activemq.artemis.core.config.ClusterConnectionConfiguration in project activemq-artemis by apache.

the class FileConfigurationTest method testDefaults.

@Override
@Test
public void testDefaults() {
    // Check they match the values from the test file
    Assert.assertEquals("SomeNameForUseOnTheApplicationServer", conf.getName());
    Assert.assertEquals(false, conf.isPersistenceEnabled());
    Assert.assertEquals(true, conf.isClustered());
    Assert.assertEquals(12345, conf.getScheduledThreadPoolMaxSize());
    Assert.assertEquals(54321, conf.getThreadPoolMaxSize());
    Assert.assertEquals(false, conf.isSecurityEnabled());
    Assert.assertEquals(5423, conf.getSecurityInvalidationInterval());
    Assert.assertEquals(true, conf.isWildcardRoutingEnabled());
    Assert.assertEquals(new SimpleString("Giraffe"), conf.getManagementAddress());
    Assert.assertEquals(new SimpleString("Whatever"), conf.getManagementNotificationAddress());
    Assert.assertEquals("Frog", conf.getClusterUser());
    Assert.assertEquals("Wombat", conf.getClusterPassword());
    Assert.assertEquals(false, conf.isJMXManagementEnabled());
    Assert.assertEquals("gro.qtenroh", conf.getJMXDomain());
    Assert.assertEquals(true, conf.isMessageCounterEnabled());
    Assert.assertEquals(5, conf.getMessageCounterMaxDayHistory());
    Assert.assertEquals(123456, conf.getMessageCounterSamplePeriod());
    Assert.assertEquals(12345, conf.getConnectionTTLOverride());
    Assert.assertEquals(98765, conf.getTransactionTimeout());
    Assert.assertEquals(56789, conf.getTransactionTimeoutScanPeriod());
    Assert.assertEquals(10111213, conf.getMessageExpiryScanPeriod());
    Assert.assertEquals(8, conf.getMessageExpiryThreadPriority());
    Assert.assertEquals(127, conf.getIDCacheSize());
    Assert.assertEquals(true, conf.isPersistIDCache());
    Assert.assertEquals(true, conf.isPersistDeliveryCountBeforeDelivery());
    Assert.assertEquals("pagingdir", conf.getPagingDirectory());
    Assert.assertEquals("somedir", conf.getBindingsDirectory());
    Assert.assertEquals(false, conf.isCreateBindingsDir());
    Assert.assertEquals(true, conf.isAmqpUseCoreSubscriptionNaming());
    Assert.assertEquals("max concurrent io", 17, conf.getPageMaxConcurrentIO());
    Assert.assertEquals("somedir2", conf.getJournalDirectory());
    Assert.assertEquals(false, conf.isCreateJournalDir());
    Assert.assertEquals(JournalType.NIO, conf.getJournalType());
    Assert.assertEquals(10000, conf.getJournalBufferSize_NIO());
    Assert.assertEquals(1000, conf.getJournalBufferTimeout_NIO());
    Assert.assertEquals(56546, conf.getJournalMaxIO_NIO());
    Assert.assertEquals(9876, conf.getJournalFileOpenTimeout());
    Assert.assertEquals(false, conf.isJournalSyncTransactional());
    Assert.assertEquals(true, conf.isJournalSyncNonTransactional());
    Assert.assertEquals(12345678, conf.getJournalFileSize());
    Assert.assertEquals(100, conf.getJournalMinFiles());
    Assert.assertEquals(123, conf.getJournalCompactMinFiles());
    Assert.assertEquals(33, conf.getJournalCompactPercentage());
    Assert.assertEquals(true, conf.isGracefulShutdownEnabled());
    Assert.assertEquals(12345, conf.getGracefulShutdownTimeout());
    Assert.assertEquals(true, conf.isPopulateValidatedUser());
    Assert.assertEquals(98765, conf.getConnectionTtlCheckInterval());
    Assert.assertEquals(1234567, conf.getConfigurationFileRefreshPeriod());
    Assert.assertEquals("127.0.0.1", conf.getNetworkCheckList());
    Assert.assertEquals("some-nick", conf.getNetworkCheckNIC());
    Assert.assertEquals(123, conf.getNetworkCheckPeriod());
    Assert.assertEquals(321, conf.getNetworkCheckTimeout());
    Assert.assertEquals("ping-four", conf.getNetworkCheckPingCommand());
    Assert.assertEquals("ping-six", conf.getNetworkCheckPing6Command());
    Assert.assertEquals("largemessagesdir", conf.getLargeMessagesDirectory());
    Assert.assertEquals(95, conf.getMemoryWarningThreshold());
    Assert.assertEquals(2, conf.getIncomingInterceptorClassNames().size());
    Assert.assertTrue(conf.getIncomingInterceptorClassNames().contains("org.apache.activemq.artemis.tests.unit.core.config.impl.TestInterceptor1"));
    Assert.assertTrue(conf.getIncomingInterceptorClassNames().contains("org.apache.activemq.artemis.tests.unit.core.config.impl.TestInterceptor2"));
    Assert.assertEquals(2, conf.getConnectorConfigurations().size());
    TransportConfiguration tc = conf.getConnectorConfigurations().get("connector1");
    Assert.assertNotNull(tc);
    Assert.assertEquals("org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnectorFactory", tc.getFactoryClassName());
    Assert.assertEquals("mylocal", tc.getParams().get("localAddress"));
    Assert.assertEquals("99", tc.getParams().get("localPort"));
    Assert.assertEquals("localhost1", tc.getParams().get("host"));
    Assert.assertEquals("5678", tc.getParams().get("port"));
    tc = conf.getConnectorConfigurations().get("connector2");
    Assert.assertNotNull(tc);
    Assert.assertEquals("org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnectorFactory", tc.getFactoryClassName());
    Assert.assertEquals("5", tc.getParams().get("serverId"));
    Assert.assertEquals(2, conf.getAcceptorConfigurations().size());
    for (TransportConfiguration ac : conf.getAcceptorConfigurations()) {
        if (ac.getFactoryClassName().equals("org.apache.activemq.artemis.core.remoting.impl.netty.NettyAcceptorFactory")) {
            Assert.assertEquals("456", ac.getParams().get("tcpNoDelay"));
            Assert.assertEquals("44", ac.getParams().get("connectionTtl"));
            Assert.assertEquals("92", ac.getParams().get(TransportConstants.CONNECTIONS_ALLOWED));
        } else {
            Assert.assertEquals("org.apache.activemq.artemis.core.remoting.impl.invm.InVMAcceptorFactory", ac.getFactoryClassName());
            Assert.assertEquals("0", ac.getParams().get("serverId"));
            Assert.assertEquals("87", ac.getParams().get(org.apache.activemq.artemis.core.remoting.impl.invm.TransportConstants.CONNECTIONS_ALLOWED));
        }
    }
    Assert.assertEquals(2, conf.getBroadcastGroupConfigurations().size());
    for (BroadcastGroupConfiguration bc : conf.getBroadcastGroupConfigurations()) {
        UDPBroadcastEndpointFactory udpBc = (UDPBroadcastEndpointFactory) bc.getEndpointFactory();
        if (bc.getName().equals("bg1")) {
            Assert.assertEquals("bg1", bc.getName());
            Assert.assertEquals(10999, udpBc.getLocalBindPort());
            Assert.assertEquals("192.168.0.120", udpBc.getGroupAddress());
            Assert.assertEquals(11999, udpBc.getGroupPort());
            Assert.assertEquals(12345, bc.getBroadcastPeriod());
            Assert.assertEquals("connector1", bc.getConnectorInfos().get(0));
        } else {
            Assert.assertEquals("bg2", bc.getName());
            Assert.assertEquals(12999, udpBc.getLocalBindPort());
            Assert.assertEquals("192.168.0.121", udpBc.getGroupAddress());
            Assert.assertEquals(13999, udpBc.getGroupPort());
            Assert.assertEquals(23456, bc.getBroadcastPeriod());
            Assert.assertEquals("connector2", bc.getConnectorInfos().get(0));
        }
    }
    Assert.assertEquals(2, conf.getDiscoveryGroupConfigurations().size());
    DiscoveryGroupConfiguration dc = conf.getDiscoveryGroupConfigurations().get("dg1");
    Assert.assertEquals("dg1", dc.getName());
    Assert.assertEquals("192.168.0.120", ((UDPBroadcastEndpointFactory) dc.getBroadcastEndpointFactory()).getGroupAddress());
    assertEquals("172.16.8.10", ((UDPBroadcastEndpointFactory) dc.getBroadcastEndpointFactory()).getLocalBindAddress());
    Assert.assertEquals(11999, ((UDPBroadcastEndpointFactory) dc.getBroadcastEndpointFactory()).getGroupPort());
    Assert.assertEquals(12345, dc.getRefreshTimeout());
    dc = conf.getDiscoveryGroupConfigurations().get("dg2");
    Assert.assertEquals("dg2", dc.getName());
    Assert.assertEquals("192.168.0.121", ((UDPBroadcastEndpointFactory) dc.getBroadcastEndpointFactory()).getGroupAddress());
    assertEquals("172.16.8.11", ((UDPBroadcastEndpointFactory) dc.getBroadcastEndpointFactory()).getLocalBindAddress());
    Assert.assertEquals(12999, ((UDPBroadcastEndpointFactory) dc.getBroadcastEndpointFactory()).getGroupPort());
    Assert.assertEquals(23456, dc.getRefreshTimeout());
    Assert.assertEquals(3, conf.getDivertConfigurations().size());
    for (DivertConfiguration dic : conf.getDivertConfigurations()) {
        if (dic.getName().equals("divert1")) {
            Assert.assertEquals("divert1", dic.getName());
            Assert.assertEquals("routing-name1", dic.getRoutingName());
            Assert.assertEquals("address1", dic.getAddress());
            Assert.assertEquals("forwarding-address1", dic.getForwardingAddress());
            Assert.assertEquals("speed > 88", dic.getFilterString());
            Assert.assertEquals("org.foo.Transformer", dic.getTransformerConfiguration().getClassName());
            Assert.assertEquals(true, dic.isExclusive());
        } else if (dic.getName().equals("divert2")) {
            Assert.assertEquals("divert2", dic.getName());
            Assert.assertEquals("routing-name2", dic.getRoutingName());
            Assert.assertEquals("address2", dic.getAddress());
            Assert.assertEquals("forwarding-address2", dic.getForwardingAddress());
            Assert.assertEquals("speed < 88", dic.getFilterString());
            Assert.assertEquals("org.foo.Transformer2", dic.getTransformerConfiguration().getClassName());
            Assert.assertEquals(false, dic.isExclusive());
        } else {
            Assert.assertEquals("divert3", dic.getName());
            Assert.assertEquals("org.foo.DivertTransformer3", dic.getTransformerConfiguration().getClassName());
            Assert.assertEquals("divertTransformerValue1", dic.getTransformerConfiguration().getProperties().get("divertTransformerKey1"));
            Assert.assertEquals("divertTransformerValue2", dic.getTransformerConfiguration().getProperties().get("divertTransformerKey2"));
        }
    }
    Assert.assertEquals(3, conf.getBridgeConfigurations().size());
    for (BridgeConfiguration bc : conf.getBridgeConfigurations()) {
        if (bc.getName().equals("bridge1")) {
            Assert.assertEquals("bridge1", bc.getName());
            Assert.assertEquals("queue1", bc.getQueueName());
            Assert.assertEquals("minLargeMessageSize", 4194304, bc.getMinLargeMessageSize());
            assertEquals("check-period", 31, bc.getClientFailureCheckPeriod());
            assertEquals("connection time-to-live", 370, bc.getConnectionTTL());
            Assert.assertEquals("bridge-forwarding-address1", bc.getForwardingAddress());
            Assert.assertEquals("sku > 1", bc.getFilterString());
            Assert.assertEquals("org.foo.BridgeTransformer", bc.getTransformerConfiguration().getClassName());
            Assert.assertEquals(3, bc.getRetryInterval());
            Assert.assertEquals(0.2, bc.getRetryIntervalMultiplier(), 0.0001);
            assertEquals("max retry interval", 10002, bc.getMaxRetryInterval());
            Assert.assertEquals(2, bc.getReconnectAttempts());
            Assert.assertEquals(true, bc.isUseDuplicateDetection());
            Assert.assertEquals("connector1", bc.getStaticConnectors().get(0));
            Assert.assertEquals(null, bc.getDiscoveryGroupName());
            Assert.assertEquals(444, bc.getProducerWindowSize());
            Assert.assertEquals(1073741824, bc.getConfirmationWindowSize());
        } else if (bc.getName().equals("bridge2")) {
            Assert.assertEquals("bridge2", bc.getName());
            Assert.assertEquals("queue2", bc.getQueueName());
            Assert.assertEquals("bridge-forwarding-address2", bc.getForwardingAddress());
            Assert.assertEquals(null, bc.getFilterString());
            Assert.assertEquals(null, bc.getTransformerConfiguration());
            Assert.assertEquals(null, bc.getStaticConnectors());
            Assert.assertEquals("dg1", bc.getDiscoveryGroupName());
            Assert.assertEquals(568320, bc.getProducerWindowSize());
        } else {
            Assert.assertEquals("bridge3", bc.getName());
            Assert.assertEquals("org.foo.BridgeTransformer3", bc.getTransformerConfiguration().getClassName());
            Assert.assertEquals("bridgeTransformerValue1", bc.getTransformerConfiguration().getProperties().get("bridgeTransformerKey1"));
            Assert.assertEquals("bridgeTransformerValue2", bc.getTransformerConfiguration().getProperties().get("bridgeTransformerKey2"));
        }
    }
    Assert.assertEquals(2, conf.getClusterConfigurations().size());
    HAPolicyConfiguration pc = conf.getHAPolicyConfiguration();
    assertNotNull(pc);
    assertTrue(pc instanceof LiveOnlyPolicyConfiguration);
    LiveOnlyPolicyConfiguration lopc = (LiveOnlyPolicyConfiguration) pc;
    assertNotNull(lopc.getScaleDownConfiguration());
    assertEquals(lopc.getScaleDownConfiguration().getGroupName(), "boo!");
    assertEquals(lopc.getScaleDownConfiguration().getDiscoveryGroup(), "dg1");
    for (ClusterConnectionConfiguration ccc : conf.getClusterConfigurations()) {
        if (ccc.getName().equals("cluster-connection1")) {
            Assert.assertEquals("cluster-connection1", ccc.getName());
            Assert.assertEquals("clusterConnectionConf minLargeMessageSize", 321, ccc.getMinLargeMessageSize());
            assertEquals("check-period", 331, ccc.getClientFailureCheckPeriod());
            assertEquals("connection time-to-live", 3370, ccc.getConnectionTTL());
            Assert.assertEquals("queues1", ccc.getAddress());
            Assert.assertEquals(3, ccc.getRetryInterval());
            Assert.assertEquals(true, ccc.isDuplicateDetection());
            Assert.assertEquals(MessageLoadBalancingType.ON_DEMAND, ccc.getMessageLoadBalancingType());
            Assert.assertEquals(1, ccc.getMaxHops());
            Assert.assertEquals(123, ccc.getCallTimeout());
            Assert.assertEquals(123, ccc.getCallFailoverTimeout());
            assertEquals("multiplier", 0.25, ccc.getRetryIntervalMultiplier(), 0.00001);
            assertEquals("max retry interval", 10000, ccc.getMaxRetryInterval());
            assertEquals(72, ccc.getReconnectAttempts());
            Assert.assertEquals("connector1", ccc.getStaticConnectors().get(0));
            Assert.assertEquals("connector2", ccc.getStaticConnectors().get(1));
            Assert.assertEquals(null, ccc.getDiscoveryGroupName());
            Assert.assertEquals(222, ccc.getProducerWindowSize());
        } else {
            Assert.assertEquals("cluster-connection2", ccc.getName());
            Assert.assertEquals("queues2", ccc.getAddress());
            Assert.assertEquals(4, ccc.getRetryInterval());
            Assert.assertEquals(456, ccc.getCallTimeout());
            Assert.assertEquals(456, ccc.getCallFailoverTimeout());
            Assert.assertEquals(false, ccc.isDuplicateDetection());
            Assert.assertEquals(MessageLoadBalancingType.STRICT, ccc.getMessageLoadBalancingType());
            Assert.assertEquals(2, ccc.getMaxHops());
            Assert.assertEquals(Collections.emptyList(), ccc.getStaticConnectors());
            Assert.assertEquals("dg1", ccc.getDiscoveryGroupName());
            Assert.assertEquals(333, ccc.getProducerWindowSize());
        }
    }
    assertEquals(2, conf.getAddressesSettings().size());
    assertTrue(conf.getAddressesSettings().get("a1") != null);
    assertTrue(conf.getAddressesSettings().get("a2") != null);
    assertEquals("a1.1", conf.getAddressesSettings().get("a1").getDeadLetterAddress().toString());
    assertEquals("a1.2", conf.getAddressesSettings().get("a1").getExpiryAddress().toString());
    assertEquals(1, conf.getAddressesSettings().get("a1").getRedeliveryDelay());
    assertEquals(856686592L, conf.getAddressesSettings().get("a1").getMaxSizeBytes());
    assertEquals(81738173872337L, conf.getAddressesSettings().get("a1").getPageSizeBytes());
    assertEquals(10, conf.getAddressesSettings().get("a1").getPageCacheMaxSize());
    assertEquals(4, conf.getAddressesSettings().get("a1").getMessageCounterHistoryDayLimit());
    assertEquals(10, conf.getAddressesSettings().get("a1").getSlowConsumerThreshold());
    assertEquals(5, conf.getAddressesSettings().get("a1").getSlowConsumerCheckPeriod());
    assertEquals(SlowConsumerPolicy.NOTIFY, conf.getAddressesSettings().get("a1").getSlowConsumerPolicy());
    assertEquals(true, conf.getAddressesSettings().get("a1").isAutoCreateJmsQueues());
    assertEquals(true, conf.getAddressesSettings().get("a1").isAutoDeleteJmsQueues());
    assertEquals(true, conf.getAddressesSettings().get("a1").isAutoCreateJmsTopics());
    assertEquals(true, conf.getAddressesSettings().get("a1").isAutoDeleteJmsTopics());
    assertEquals(false, conf.getAddressesSettings().get("a1").isDefaultPurgeOnNoConsumers());
    assertEquals(5, conf.getAddressesSettings().get("a1").getDefaultMaxConsumers());
    assertEquals(RoutingType.ANYCAST, conf.getAddressesSettings().get("a1").getDefaultQueueRoutingType());
    assertEquals(RoutingType.MULTICAST, conf.getAddressesSettings().get("a1").getDefaultAddressRoutingType());
    assertEquals("a2.1", conf.getAddressesSettings().get("a2").getDeadLetterAddress().toString());
    assertEquals("a2.2", conf.getAddressesSettings().get("a2").getExpiryAddress().toString());
    assertEquals(5, conf.getAddressesSettings().get("a2").getRedeliveryDelay());
    assertEquals(932489234928324L, conf.getAddressesSettings().get("a2").getMaxSizeBytes());
    assertEquals(7126716262626L, conf.getAddressesSettings().get("a2").getPageSizeBytes());
    assertEquals(20, conf.getAddressesSettings().get("a2").getPageCacheMaxSize());
    assertEquals(8, conf.getAddressesSettings().get("a2").getMessageCounterHistoryDayLimit());
    assertEquals(20, conf.getAddressesSettings().get("a2").getSlowConsumerThreshold());
    assertEquals(15, conf.getAddressesSettings().get("a2").getSlowConsumerCheckPeriod());
    assertEquals(SlowConsumerPolicy.KILL, conf.getAddressesSettings().get("a2").getSlowConsumerPolicy());
    assertEquals(false, conf.getAddressesSettings().get("a2").isAutoCreateJmsQueues());
    assertEquals(false, conf.getAddressesSettings().get("a2").isAutoDeleteJmsQueues());
    assertEquals(false, conf.getAddressesSettings().get("a2").isAutoCreateJmsTopics());
    assertEquals(false, conf.getAddressesSettings().get("a2").isAutoDeleteJmsTopics());
    assertEquals(true, conf.getAddressesSettings().get("a2").isDefaultPurgeOnNoConsumers());
    assertEquals(15, conf.getAddressesSettings().get("a2").getDefaultMaxConsumers());
    assertEquals(RoutingType.MULTICAST, conf.getAddressesSettings().get("a2").getDefaultQueueRoutingType());
    assertEquals(RoutingType.ANYCAST, conf.getAddressesSettings().get("a2").getDefaultAddressRoutingType());
    assertTrue(conf.getResourceLimitSettings().containsKey("myUser"));
    assertEquals(104, conf.getResourceLimitSettings().get("myUser").getMaxConnections());
    assertEquals(13, conf.getResourceLimitSettings().get("myUser").getMaxQueues());
    assertEquals(2, conf.getQueueConfigurations().size());
    assertEquals("queue1", conf.getQueueConfigurations().get(0).getName());
    assertEquals("address1", conf.getQueueConfigurations().get(0).getAddress());
    assertEquals("color='red'", conf.getQueueConfigurations().get(0).getFilterString());
    assertEquals(false, conf.getQueueConfigurations().get(0).isDurable());
    assertEquals("queue2", conf.getQueueConfigurations().get(1).getName());
    assertEquals("address2", conf.getQueueConfigurations().get(1).getAddress());
    assertEquals("color='blue'", conf.getQueueConfigurations().get(1).getFilterString());
    assertEquals(false, conf.getQueueConfigurations().get(1).isDurable());
    verifyAddresses();
    Map<String, Set<Role>> roles = conf.getSecurityRoles();
    assertEquals(2, roles.size());
    assertTrue(roles.containsKey("a1"));
    assertTrue(roles.containsKey("a2"));
    Role a1Role = roles.get("a1").toArray(new Role[1])[0];
    assertFalse(a1Role.isSend());
    assertFalse(a1Role.isConsume());
    assertFalse(a1Role.isCreateDurableQueue());
    assertFalse(a1Role.isDeleteDurableQueue());
    assertTrue(a1Role.isCreateNonDurableQueue());
    assertFalse(a1Role.isDeleteNonDurableQueue());
    assertFalse(a1Role.isManage());
    Role a2Role = roles.get("a2").toArray(new Role[1])[0];
    assertFalse(a2Role.isSend());
    assertFalse(a2Role.isConsume());
    assertFalse(a2Role.isCreateDurableQueue());
    assertFalse(a2Role.isDeleteDurableQueue());
    assertFalse(a2Role.isCreateNonDurableQueue());
    assertTrue(a2Role.isDeleteNonDurableQueue());
    assertFalse(a2Role.isManage());
    assertEquals(1234567, conf.getGlobalMaxSize());
    assertEquals(37, conf.getMaxDiskUsage());
    assertEquals(123, conf.getDiskScanPeriod());
    assertEquals(333, conf.getCriticalAnalyzerCheckPeriod());
    assertEquals(777, conf.getCriticalAnalyzerTimeout());
    assertEquals(false, conf.isCriticalAnalyzer());
    assertEquals(CriticalAnalyzerPolicy.HALT, conf.getCriticalAnalyzerPolicy());
    assertEquals(false, conf.isJournalDatasync());
}
Also used : ClusterConnectionConfiguration(org.apache.activemq.artemis.core.config.ClusterConnectionConfiguration) HashSet(java.util.HashSet) Set(java.util.Set) BridgeConfiguration(org.apache.activemq.artemis.core.config.BridgeConfiguration) SimpleString(org.apache.activemq.artemis.api.core.SimpleString) TransportConfiguration(org.apache.activemq.artemis.api.core.TransportConfiguration) DiscoveryGroupConfiguration(org.apache.activemq.artemis.api.core.DiscoveryGroupConfiguration) SimpleString(org.apache.activemq.artemis.api.core.SimpleString) Role(org.apache.activemq.artemis.core.security.Role) HAPolicyConfiguration(org.apache.activemq.artemis.core.config.HAPolicyConfiguration) LiveOnlyPolicyConfiguration(org.apache.activemq.artemis.core.config.ha.LiveOnlyPolicyConfiguration) DivertConfiguration(org.apache.activemq.artemis.core.config.DivertConfiguration) BroadcastGroupConfiguration(org.apache.activemq.artemis.api.core.BroadcastGroupConfiguration) UDPBroadcastEndpointFactory(org.apache.activemq.artemis.api.core.UDPBroadcastEndpointFactory) Test(org.junit.Test)

Example 7 with ClusterConnectionConfiguration

use of org.apache.activemq.artemis.core.config.ClusterConnectionConfiguration in project activemq-artemis by apache.

the class ClusterTestBase method setupClusterConnection.

protected void setupClusterConnection(final String name, final String address, final MessageLoadBalancingType messageLoadBalancingType, final int maxHops, final boolean netty, final ClusterConfigCallback cb, final int nodeFrom, final int... nodesTo) {
    ActiveMQServer serverFrom = servers[nodeFrom];
    if (serverFrom == null) {
        throw new IllegalStateException("No server at node " + nodeFrom);
    }
    TransportConfiguration connectorFrom = createTransportConfiguration(netty, false, generateParams(nodeFrom, netty));
    serverFrom.getConfiguration().getConnectorConfigurations().put(connectorFrom.getName(), connectorFrom);
    List<String> pairs = new ArrayList<>();
    for (int element : nodesTo) {
        TransportConfiguration serverTotc = createTransportConfiguration(netty, false, generateParams(element, netty));
        serverFrom.getConfiguration().getConnectorConfigurations().put(serverTotc.getName(), serverTotc);
        pairs.add(serverTotc.getName());
    }
    Configuration config = serverFrom.getConfiguration();
    ClusterConnectionConfiguration clusterConf = createClusterConfig(name, address, messageLoadBalancingType, maxHops, connectorFrom, pairs);
    if (cb != null) {
        cb.configure(clusterConf);
    }
    config.getClusterConfigurations().add(clusterConf);
}
Also used : ClusterConnectionConfiguration(org.apache.activemq.artemis.core.config.ClusterConnectionConfiguration) ActiveMQServer(org.apache.activemq.artemis.core.server.ActiveMQServer) GroupingHandlerConfiguration(org.apache.activemq.artemis.core.server.group.impl.GroupingHandlerConfiguration) TransportConfiguration(org.apache.activemq.artemis.api.core.TransportConfiguration) Configuration(org.apache.activemq.artemis.core.config.Configuration) SharedStoreMasterPolicyConfiguration(org.apache.activemq.artemis.core.config.ha.SharedStoreMasterPolicyConfiguration) ActiveMQDefaultConfiguration(org.apache.activemq.artemis.api.config.ActiveMQDefaultConfiguration) ClusterConnectionConfiguration(org.apache.activemq.artemis.core.config.ClusterConnectionConfiguration) LiveOnlyPolicyConfiguration(org.apache.activemq.artemis.core.config.ha.LiveOnlyPolicyConfiguration) ReplicatedPolicyConfiguration(org.apache.activemq.artemis.core.config.ha.ReplicatedPolicyConfiguration) ReplicaPolicyConfiguration(org.apache.activemq.artemis.core.config.ha.ReplicaPolicyConfiguration) SharedStoreSlavePolicyConfiguration(org.apache.activemq.artemis.core.config.ha.SharedStoreSlavePolicyConfiguration) DiscoveryGroupConfiguration(org.apache.activemq.artemis.api.core.DiscoveryGroupConfiguration) HAPolicyConfiguration(org.apache.activemq.artemis.core.config.HAPolicyConfiguration) BroadcastGroupConfiguration(org.apache.activemq.artemis.api.core.BroadcastGroupConfiguration) ArrayList(java.util.ArrayList) TransportConfiguration(org.apache.activemq.artemis.api.core.TransportConfiguration) SimpleString(org.apache.activemq.artemis.api.core.SimpleString)

Example 8 with ClusterConnectionConfiguration

use of org.apache.activemq.artemis.core.config.ClusterConnectionConfiguration in project activemq-artemis by apache.

the class ClusterTestBase method setupClusterConnection.

protected void setupClusterConnection(final String name, final int nodeFrom, final int nodeTo, final String address, final MessageLoadBalancingType messageLoadBalancingType, final int maxHops, final boolean netty, final boolean allowDirectConnectionsOnly) {
    ActiveMQServer serverFrom = servers[nodeFrom];
    if (serverFrom == null) {
        throw new IllegalStateException("No server at node " + nodeFrom);
    }
    TransportConfiguration connectorFrom = createTransportConfiguration(netty, false, generateParams(nodeFrom, netty));
    serverFrom.getConfiguration().getConnectorConfigurations().put(name, connectorFrom);
    List<String> pairs = null;
    if (nodeTo != -1) {
        TransportConfiguration serverTotc = createTransportConfiguration(netty, false, generateParams(nodeTo, netty));
        serverFrom.getConfiguration().getConnectorConfigurations().put(serverTotc.getName(), serverTotc);
        pairs = new ArrayList<>();
        pairs.add(serverTotc.getName());
    }
    Configuration config = serverFrom.getConfiguration();
    ClusterConnectionConfiguration clusterConf = new ClusterConnectionConfiguration().setName(name).setAddress(address).setConnectorName(name).setRetryInterval(100).setMessageLoadBalancingType(messageLoadBalancingType).setMaxHops(maxHops).setConfirmationWindowSize(1024).setStaticConnectors(pairs).setAllowDirectConnectionsOnly(allowDirectConnectionsOnly);
    config.getClusterConfigurations().add(clusterConf);
}
Also used : ClusterConnectionConfiguration(org.apache.activemq.artemis.core.config.ClusterConnectionConfiguration) ActiveMQServer(org.apache.activemq.artemis.core.server.ActiveMQServer) GroupingHandlerConfiguration(org.apache.activemq.artemis.core.server.group.impl.GroupingHandlerConfiguration) TransportConfiguration(org.apache.activemq.artemis.api.core.TransportConfiguration) Configuration(org.apache.activemq.artemis.core.config.Configuration) SharedStoreMasterPolicyConfiguration(org.apache.activemq.artemis.core.config.ha.SharedStoreMasterPolicyConfiguration) ActiveMQDefaultConfiguration(org.apache.activemq.artemis.api.config.ActiveMQDefaultConfiguration) ClusterConnectionConfiguration(org.apache.activemq.artemis.core.config.ClusterConnectionConfiguration) LiveOnlyPolicyConfiguration(org.apache.activemq.artemis.core.config.ha.LiveOnlyPolicyConfiguration) ReplicatedPolicyConfiguration(org.apache.activemq.artemis.core.config.ha.ReplicatedPolicyConfiguration) ReplicaPolicyConfiguration(org.apache.activemq.artemis.core.config.ha.ReplicaPolicyConfiguration) SharedStoreSlavePolicyConfiguration(org.apache.activemq.artemis.core.config.ha.SharedStoreSlavePolicyConfiguration) DiscoveryGroupConfiguration(org.apache.activemq.artemis.api.core.DiscoveryGroupConfiguration) HAPolicyConfiguration(org.apache.activemq.artemis.core.config.HAPolicyConfiguration) BroadcastGroupConfiguration(org.apache.activemq.artemis.api.core.BroadcastGroupConfiguration) TransportConfiguration(org.apache.activemq.artemis.api.core.TransportConfiguration) SimpleString(org.apache.activemq.artemis.api.core.SimpleString)

Example 9 with ClusterConnectionConfiguration

use of org.apache.activemq.artemis.core.config.ClusterConnectionConfiguration in project activemq-artemis by apache.

the class ClusterTestBase method setupBackupServer.

/**
 * Server lacks a {@link ClusterConnectionConfiguration} necessary for the remote (replicating)
 * backup case.
 * <br>
 * Use
 * {@link #setupClusterConnectionWithBackups(String, String, org.apache.activemq.artemis.core.server.cluster.impl.MessageLoadBalancingType, int, boolean, int, int[])}
 * to add it.
 *
 * @param node
 * @param liveNode
 * @param fileStorage
 * @param sharedStorage
 * @param netty
 * @throws Exception
 */
protected void setupBackupServer(final int node, final int liveNode, final boolean fileStorage, final boolean sharedStorage, final boolean netty) throws Exception {
    if (servers[node] != null) {
        throw new IllegalArgumentException("Already a server at node " + node);
    }
    TransportConfiguration liveConfig = createTransportConfiguration(netty, false, generateParams(liveNode, netty));
    TransportConfiguration backupConfig = createTransportConfiguration(netty, false, generateParams(node, netty));
    TransportConfiguration acceptorConfig = createTransportConfiguration(netty, true, generateParams(node, netty));
    Configuration configuration = createBasicConfig(sharedStorage ? liveNode : node).clearAcceptorConfigurations().addAcceptorConfiguration(acceptorConfig).addConnectorConfiguration(liveConfig.getName(), liveConfig).addConnectorConfiguration(backupConfig.getName(), backupConfig).setHAPolicyConfiguration(sharedStorage ? new SharedStoreSlavePolicyConfiguration() : new ReplicaPolicyConfiguration());
    ActiveMQServer server;
    if (sharedStorage) {
        server = createInVMFailoverServer(true, configuration, nodeManagers[liveNode], liveNode);
    } else {
        boolean enablePersistency = fileStorage ? true : configuration.isPersistenceEnabled();
        server = addServer(ActiveMQServers.newActiveMQServer(configuration, enablePersistency));
    }
    server.setIdentity(this.getClass().getSimpleName() + "/Backup(" + node + " of live " + liveNode + ")");
    servers[node] = addServer(server);
}
Also used : ActiveMQServer(org.apache.activemq.artemis.core.server.ActiveMQServer) GroupingHandlerConfiguration(org.apache.activemq.artemis.core.server.group.impl.GroupingHandlerConfiguration) TransportConfiguration(org.apache.activemq.artemis.api.core.TransportConfiguration) Configuration(org.apache.activemq.artemis.core.config.Configuration) SharedStoreMasterPolicyConfiguration(org.apache.activemq.artemis.core.config.ha.SharedStoreMasterPolicyConfiguration) ActiveMQDefaultConfiguration(org.apache.activemq.artemis.api.config.ActiveMQDefaultConfiguration) ClusterConnectionConfiguration(org.apache.activemq.artemis.core.config.ClusterConnectionConfiguration) LiveOnlyPolicyConfiguration(org.apache.activemq.artemis.core.config.ha.LiveOnlyPolicyConfiguration) ReplicatedPolicyConfiguration(org.apache.activemq.artemis.core.config.ha.ReplicatedPolicyConfiguration) ReplicaPolicyConfiguration(org.apache.activemq.artemis.core.config.ha.ReplicaPolicyConfiguration) SharedStoreSlavePolicyConfiguration(org.apache.activemq.artemis.core.config.ha.SharedStoreSlavePolicyConfiguration) DiscoveryGroupConfiguration(org.apache.activemq.artemis.api.core.DiscoveryGroupConfiguration) HAPolicyConfiguration(org.apache.activemq.artemis.core.config.HAPolicyConfiguration) BroadcastGroupConfiguration(org.apache.activemq.artemis.api.core.BroadcastGroupConfiguration) SharedStoreSlavePolicyConfiguration(org.apache.activemq.artemis.core.config.ha.SharedStoreSlavePolicyConfiguration) TransportConfiguration(org.apache.activemq.artemis.api.core.TransportConfiguration) ReplicaPolicyConfiguration(org.apache.activemq.artemis.core.config.ha.ReplicaPolicyConfiguration)

Example 10 with ClusterConnectionConfiguration

use of org.apache.activemq.artemis.core.config.ClusterConnectionConfiguration in project activemq-artemis by apache.

the class ActiveMQTestBase method basicClusterConnectionConfig.

protected static final ClusterConnectionConfiguration basicClusterConnectionConfig(String connectorName, String... connectors) {
    ArrayList<String> connectors0 = new ArrayList<>();
    for (String c : connectors) {
        connectors0.add(c);
    }
    ClusterConnectionConfiguration clusterConnectionConfiguration = new ClusterConnectionConfiguration().setName("cluster1").setAddress("jms").setConnectorName(connectorName).setRetryInterval(1000).setDuplicateDetection(false).setMaxHops(1).setConfirmationWindowSize(1).setMessageLoadBalancingType(MessageLoadBalancingType.STRICT).setStaticConnectors(connectors0);
    return clusterConnectionConfiguration;
}
Also used : ClusterConnectionConfiguration(org.apache.activemq.artemis.core.config.ClusterConnectionConfiguration) ArrayList(java.util.ArrayList) SimpleString(org.apache.activemq.artemis.api.core.SimpleString)

Aggregations

ClusterConnectionConfiguration (org.apache.activemq.artemis.core.config.ClusterConnectionConfiguration)36 TransportConfiguration (org.apache.activemq.artemis.api.core.TransportConfiguration)18 Configuration (org.apache.activemq.artemis.core.config.Configuration)18 ArrayList (java.util.ArrayList)12 ReplicaPolicyConfiguration (org.apache.activemq.artemis.core.config.ha.ReplicaPolicyConfiguration)11 SimpleString (org.apache.activemq.artemis.api.core.SimpleString)10 ReplicatedPolicyConfiguration (org.apache.activemq.artemis.core.config.ha.ReplicatedPolicyConfiguration)10 SharedStoreSlavePolicyConfiguration (org.apache.activemq.artemis.core.config.ha.SharedStoreSlavePolicyConfiguration)10 ActiveMQServer (org.apache.activemq.artemis.core.server.ActiveMQServer)10 DiscoveryGroupConfiguration (org.apache.activemq.artemis.api.core.DiscoveryGroupConfiguration)9 SharedStoreMasterPolicyConfiguration (org.apache.activemq.artemis.core.config.ha.SharedStoreMasterPolicyConfiguration)9 BroadcastGroupConfiguration (org.apache.activemq.artemis.api.core.BroadcastGroupConfiguration)8 Test (org.junit.Test)8 URI (java.net.URI)7 ActiveMQDefaultConfiguration (org.apache.activemq.artemis.api.config.ActiveMQDefaultConfiguration)7 HAPolicyConfiguration (org.apache.activemq.artemis.core.config.HAPolicyConfiguration)7 LiveOnlyPolicyConfiguration (org.apache.activemq.artemis.core.config.ha.LiveOnlyPolicyConfiguration)7 GroupingHandlerConfiguration (org.apache.activemq.artemis.core.server.group.impl.GroupingHandlerConfiguration)6 HashMap (java.util.HashMap)4 UDPBroadcastEndpointFactory (org.apache.activemq.artemis.api.core.UDPBroadcastEndpointFactory)3