http://git-wip-us.apache.org/repos/asf/activemq-6/blob/177e6820/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/client/StoreConfigTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/client/StoreConfigTest.java b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/client/StoreConfigTest.java index d120b57..1cfb83e 100644 --- a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/client/StoreConfigTest.java +++ b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/client/StoreConfigTest.java @@ -55,13 +55,16 @@ public class StoreConfigTest extends JMSTestBase List<String> transportConfigurations = new ArrayList<String>(); transportConfigurations.add("tst"); - ConnectionFactoryConfigurationImpl factCFG = new ConnectionFactoryConfigurationImpl("tst", false, transportConfigurations); + ConnectionFactoryConfigurationImpl factCFG = (ConnectionFactoryConfigurationImpl) new ConnectionFactoryConfigurationImpl() + .setName("tst") + .setConnectorNames(transportConfigurations); jmsServer.createConnectionFactory(true, factCFG, "/someCF", "/someCF2" ); - ConnectionFactoryConfigurationImpl nonPersisted = new ConnectionFactoryConfigurationImpl("np", false, transportConfigurations); - + ConnectionFactoryConfigurationImpl nonPersisted = (ConnectionFactoryConfigurationImpl) new ConnectionFactoryConfigurationImpl() + .setName("np") + .setConnectorNames(transportConfigurations); jmsServer.createConnectionFactory(false, nonPersisted, "/nonPersisted" ); @@ -130,7 +133,9 @@ public class StoreConfigTest extends JMSTestBase List<String> transportConfigurations = new ArrayList<String>(); transportConfigurations.add("tst"); - ConnectionFactoryConfigurationImpl factCFG = new ConnectionFactoryConfigurationImpl("tst", false, transportConfigurations); + ConnectionFactoryConfigurationImpl factCFG = (ConnectionFactoryConfigurationImpl) new ConnectionFactoryConfigurationImpl() + .setName("tst") + .setConnectorNames(transportConfigurations); jmsServer.createConnectionFactory(true, factCFG, "/someCF"); @@ -243,8 +248,9 @@ public class StoreConfigTest extends JMSTestBase List<String> transportConfigurations = new ArrayList<String>(); transportConfigurations.add("tst"); - ConnectionFactoryConfigurationImpl factCFG = new ConnectionFactoryConfigurationImpl("tst", false, transportConfigurations); - + ConnectionFactoryConfigurationImpl factCFG = (ConnectionFactoryConfigurationImpl) new ConnectionFactoryConfigurationImpl() + .setName("tst") + .setConnectorNames(transportConfigurations); jmsServer.createConnectionFactory(true, factCFG, "/someCF");
http://git-wip-us.apache.org/repos/asf/activemq-6/blob/177e6820/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/client/TopicCleanupTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/client/TopicCleanupTest.java b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/client/TopicCleanupTest.java index ca2633b..8a20a4e 100644 --- a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/client/TopicCleanupTest.java +++ b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/client/TopicCleanupTest.java @@ -76,9 +76,9 @@ public class TopicCleanupTest extends JMSTestBase for (int i = 0; i < 100; i++) { - long txid = storage.generateUniqueID(); + long txid = storage.generateID(); - final Queue queue = new QueueImpl(storage.generateUniqueID(), SimpleString.toSimpleString("jms.topic.topic"), SimpleString.toSimpleString("jms.topic.topic"), FilterImpl.createFilter(HornetQServerImpl.GENERIC_IGNORED_FILTER), true, false, server.getScheduledPool(), server.getPostOffice(), + final Queue queue = new QueueImpl(storage.generateID(), SimpleString.toSimpleString("jms.topic.topic"), SimpleString.toSimpleString("jms.topic.topic"), FilterImpl.createFilter(HornetQServerImpl.GENERIC_IGNORED_FILTER), true, false, server.getScheduledPool(), server.getPostOffice(), storage, server.getAddressSettingsRepository(), server.getExecutorFactory().getExecutor()); LocalQueueBinding binding = new LocalQueueBinding(queue.getAddress(), queue, server.getNodeID()); http://git-wip-us.apache.org/repos/asf/activemq-6/blob/177e6820/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/BindingsClusterTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/BindingsClusterTest.java b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/BindingsClusterTest.java index 6106ba5..b4313e3 100644 --- a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/BindingsClusterTest.java +++ b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/BindingsClusterTest.java @@ -54,7 +54,7 @@ public class BindingsClusterTest extends JMSClusteredTestBase this.crash = crash; } - @Parameterized.Parameters + @Parameterized.Parameters(name = "crash={0}") public static Collection getParameters() { return Arrays.asList(new Object[][]{{true}, {false}}); @@ -63,11 +63,10 @@ public class BindingsClusterTest extends JMSClusteredTestBase @Before public void setUp() throws Exception { + //todo fix if needed super.setUp(); jmsServer1.getHornetQServer().setIdentity("Server 1"); - jmsServer1.getHornetQServer().getConfiguration().getHAPolicy().setFailoverOnServerShutdown(true); jmsServer2.getHornetQServer().setIdentity("Server 2"); - jmsServer2.getHornetQServer().getConfiguration().getHAPolicy().setFailoverOnServerShutdown(true); } @Override http://git-wip-us.apache.org/repos/asf/activemq-6/blob/177e6820/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/JMSFailoverListenerTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/JMSFailoverListenerTest.java b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/JMSFailoverListenerTest.java index 73defd5..73efc4f 100644 --- a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/JMSFailoverListenerTest.java +++ b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/JMSFailoverListenerTest.java @@ -21,7 +21,9 @@ import javax.jms.Queue; import javax.jms.Session; import javax.jms.TextMessage; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; +import java.util.List; import java.util.Map; import org.hornetq.api.core.SimpleString; @@ -32,11 +34,12 @@ import org.hornetq.api.core.client.FailoverEventType; import org.hornetq.api.jms.HornetQJMSClient; import org.hornetq.api.jms.JMSFactoryType; import org.hornetq.core.config.Configuration; +import org.hornetq.core.config.ha.SharedStoreMasterPolicyConfiguration; +import org.hornetq.core.config.ha.SharedStoreSlavePolicyConfiguration; import org.hornetq.core.remoting.impl.invm.InVMRegistry; import org.hornetq.core.remoting.impl.invm.TransportConstants; import org.hornetq.core.server.HornetQServer; import org.hornetq.core.server.NodeManager; -import org.hornetq.core.server.cluster.ha.HAPolicy; import org.hornetq.core.server.impl.InVMNodeManager; import org.hornetq.jms.client.HornetQConnection; import org.hornetq.jms.client.HornetQConnectionFactory; @@ -163,7 +166,7 @@ public class JMSFailoverListenerTest extends ServiceTestBase JMSUtil.crash(liveService, ((HornetQSession) sess).getCoreSession()); - Assert.assertEquals(FailoverEventType.FAILURE_DETECTED, listener.getEventTypeList().get(0)); + Assert.assertEquals(FailoverEventType.FAILURE_DETECTED, listener.get(0)); for (int i = 0; i < numMessages; i++) { JMSFailoverListenerTest.log.info("got message " + i); @@ -178,10 +181,10 @@ public class JMSFailoverListenerTest extends ServiceTestBase TextMessage tm = (TextMessage) consumer.receiveNoWait(); Assert.assertNull(tm); - Assert.assertEquals(FailoverEventType.FAILOVER_COMPLETED, listener.getEventTypeList().get(1)); + Assert.assertEquals(FailoverEventType.FAILOVER_COMPLETED, listener.get(1)); conn.close(); - Assert.assertEquals("Expected 2 FailoverEvents to be triggered", 2, listener.getEventTypeList().size()); + Assert.assertEquals("Expected 2 FailoverEvents to be triggered", 2, listener.size()); } @Test @@ -233,7 +236,7 @@ public class JMSFailoverListenerTest extends ServiceTestBase // Note we block on P send to make sure all messages get to server before failover JMSUtil.crash(liveService, coreSessionLive); - Assert.assertEquals(FailoverEventType.FAILURE_DETECTED, listener.getEventTypeList().get(0)); + Assert.assertEquals(FailoverEventType.FAILURE_DETECTED, listener.get(0)); connLive.close(); // Now recreate on backup @@ -256,8 +259,8 @@ public class JMSFailoverListenerTest extends ServiceTestBase } TextMessage tm = (TextMessage) consumerBackup.receiveNoWait(); - Assert.assertEquals(FailoverEventType.FAILOVER_FAILED, listener.getEventTypeList().get(1)); - Assert.assertEquals("Expected 2 FailoverEvents to be triggered", 2, listener.getEventTypeList().size()); + Assert.assertEquals(FailoverEventType.FAILOVER_FAILED, listener.get(1)); + Assert.assertEquals("Expected 2 FailoverEvents to be triggered", 2, listener.size()); Assert.assertNull(tm); connBackup.close(); @@ -285,27 +288,25 @@ public class JMSFailoverListenerTest extends ServiceTestBase livetc = new TransportConfiguration(INVM_CONNECTOR_FACTORY); liveAcceptortc = new TransportConfiguration(INVM_ACCEPTOR_FACTORY); - backupAcceptortc = new TransportConfiguration(INVM_ACCEPTOR_FACTORY, backupParams); - backupConf = createBasicConfig(0); + backupParams.put(TransportConstants.SERVER_ID_PROP_NAME, 1); - backupConf.getAcceptorConfigurations().add(backupAcceptortc); - backupConf.getConnectorConfigurations().put(livetc.getName(), livetc); - backupConf.getConnectorConfigurations().put(backuptc.getName(), backuptc); - basicClusterConnectionConfig(backupConf, backuptc.getName(), livetc.getName()); + backupConf = createBasicConfig(0) + .addAcceptorConfiguration(backupAcceptortc) + .addConnectorConfiguration(livetc.getName(), livetc) + .addConnectorConfiguration(backuptc.getName(), backuptc) + .setJournalType(getDefaultJournalType()) + .addAcceptorConfiguration(new TransportConfiguration(INVM_ACCEPTOR_FACTORY, backupParams)) + .setBindingsDirectory(getBindingsDir()) + .setJournalMinFiles(2) + .setJournalDirectory(getJournalDir()) + .setPagingDirectory(getPageDir()) + .setLargeMessagesDirectory(getLargeMessagesDir()) + .setPersistenceEnabled(true) + .setHAPolicyConfiguration(new SharedStoreSlavePolicyConfiguration()) + .addClusterConfiguration(basicClusterConnectionConfig(backuptc.getName(), livetc.getName())); - backupConf.setSecurityEnabled(false); - backupConf.setJournalType(getDefaultJournalType()); - backupParams.put(TransportConstants.SERVER_ID_PROP_NAME, 1); - backupConf.getAcceptorConfigurations().add(new TransportConfiguration(INVM_ACCEPTOR_FACTORY, backupParams)); - backupConf.getHAPolicy().setPolicyType(HAPolicy.POLICY_TYPE.BACKUP_SHARED_STORE); - backupConf.setBindingsDirectory(getBindingsDir()); - backupConf.setJournalMinFiles(2); - backupConf.setJournalDirectory(getJournalDir()); - backupConf.setPagingDirectory(getPageDir()); - backupConf.setLargeMessagesDirectory(getLargeMessagesDir()); - backupConf.setPersistenceEnabled(true); backupService = new InVMNodeManagerServer(backupConf, nodeManager); backupJMSService = new JMSServerManagerImpl(backupService); @@ -316,23 +317,21 @@ public class JMSFailoverListenerTest extends ServiceTestBase log.info("Starting backup"); backupJMSService.start(); - liveConf = createBasicConfig(0); - - liveConf.setJournalDirectory(getJournalDir()); - liveConf.setBindingsDirectory(getBindingsDir()); - - liveConf.setSecurityEnabled(false); - liveConf.getAcceptorConfigurations().add(liveAcceptortc); - basicClusterConnectionConfig(liveConf, livetc.getName()); - liveConf.getHAPolicy().setPolicyType(HAPolicy.POLICY_TYPE.SHARED_STORE); - liveConf.setJournalType(getDefaultJournalType()); - liveConf.setBindingsDirectory(getBindingsDir()); - liveConf.setJournalMinFiles(2); - liveConf.setJournalDirectory(getJournalDir()); - liveConf.setPagingDirectory(getPageDir()); - liveConf.setLargeMessagesDirectory(getLargeMessagesDir()); - liveConf.getConnectorConfigurations().put(livetc.getName(), livetc); - liveConf.setPersistenceEnabled(true); + liveConf = createBasicConfig(0) + .setJournalDirectory(getJournalDir()) + .setBindingsDirectory(getBindingsDir()) + .addAcceptorConfiguration(liveAcceptortc) + .setJournalType(getDefaultJournalType()) + .setBindingsDirectory(getBindingsDir()) + .setJournalMinFiles(2) + .setJournalDirectory(getJournalDir()) + .setPagingDirectory(getPageDir()) + .setLargeMessagesDirectory(getLargeMessagesDir()) + .addConnectorConfiguration(livetc.getName(), livetc) + .setPersistenceEnabled(true) + .setHAPolicyConfiguration(new SharedStoreMasterPolicyConfiguration()) + .addClusterConfiguration(basicClusterConnectionConfig(livetc.getName())); + liveService = new InVMNodeManagerServer(liveConf, nodeManager); liveJMSService = new JMSServerManagerImpl(liveService); @@ -381,17 +380,41 @@ public class JMSFailoverListenerTest extends ServiceTestBase private static class MyFailoverListener implements FailoverEventListener { - private ArrayList<FailoverEventType> eventTypeList = new ArrayList<FailoverEventType>(); + private List<FailoverEventType> eventTypeList = Collections.synchronizedList(new ArrayList<FailoverEventType>()); + + + public FailoverEventType get(int element) + { + waitForElements(element + 1); + return eventTypeList.get(element); + } + + public int size() + { + return eventTypeList.size(); + } - public ArrayList<FailoverEventType> getEventTypeList() + private void waitForElements(int elements) { - return eventTypeList; + long timeout = System.currentTimeMillis() + 5000; + while (timeout > System.currentTimeMillis() && eventTypeList.size() < elements) + { + try + { + Thread.sleep(1); + } + catch (Throwable e) + { + fail(e.getMessage()); + } + } + + Assert.assertTrue(eventTypeList.size() >= elements); } public void failoverEvent(FailoverEventType eventType) { eventTypeList.add(eventType); - log.info("Failover event just happened : " + eventType.toString()); } } } http://git-wip-us.apache.org/repos/asf/activemq-6/blob/177e6820/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/JMSFailoverTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/JMSFailoverTest.java b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/JMSFailoverTest.java index 79b9e28..ec7b768 100644 --- a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/JMSFailoverTest.java +++ b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/JMSFailoverTest.java @@ -37,13 +37,16 @@ import org.hornetq.api.jms.HornetQJMSClient; import org.hornetq.api.jms.JMSFactoryType; import org.hornetq.core.client.impl.ClientSessionInternal; import org.hornetq.core.config.Configuration; +import org.hornetq.core.config.ha.ReplicaPolicyConfiguration; +import org.hornetq.core.config.ha.ReplicatedPolicyConfiguration; +import org.hornetq.core.config.ha.SharedStoreMasterPolicyConfiguration; +import org.hornetq.core.config.ha.SharedStoreSlavePolicyConfiguration; import org.hornetq.core.protocol.core.Packet; import org.hornetq.core.protocol.core.impl.wireformat.SessionReceiveContinuationMessage; import org.hornetq.core.remoting.impl.invm.InVMRegistry; import org.hornetq.core.remoting.impl.invm.TransportConstants; import org.hornetq.core.server.HornetQServer; import org.hornetq.core.server.NodeManager; -import org.hornetq.core.server.cluster.ha.HAPolicy; import org.hornetq.core.server.impl.InVMNodeManager; import org.hornetq.jms.client.HornetQConnectionFactory; import org.hornetq.jms.client.HornetQDestination; @@ -514,29 +517,24 @@ public class JMSFailoverTest extends ServiceTestBase backupAcceptortc = new TransportConfiguration(INVM_ACCEPTOR_FACTORY, backupParams); - backupConf = createBasicConfig(0); + backupParams.put(TransportConstants.SERVER_ID_PROP_NAME, 1); - backupConf.getAcceptorConfigurations().add(backupAcceptortc); - backupConf.getConnectorConfigurations().put(livetc.getName(), livetc); - backupConf.getConnectorConfigurations().put(backuptc.getName(), backuptc); - basicClusterConnectionConfig(backupConf, backuptc.getName(), livetc.getName()); + backupConf = createBasicConfig(0) + .addAcceptorConfiguration(backupAcceptortc) + .addConnectorConfiguration(livetc.getName(), livetc) + .addConnectorConfiguration(backuptc.getName(), backuptc) + .setSecurityEnabled(false) + .setJournalType(getDefaultJournalType()) + .addAcceptorConfiguration(new TransportConfiguration(INVM_ACCEPTOR_FACTORY, backupParams)) + .setBindingsDirectory(getBindingsDir()) + .setJournalMinFiles(2) + .setJournalDirectory(getJournalDir()) + .setPagingDirectory(getPageDir()) + .setLargeMessagesDirectory(getLargeMessagesDir()) + .setPersistenceEnabled(true) + .setHAPolicyConfiguration(sharedStore ? new SharedStoreSlavePolicyConfiguration() : new ReplicaPolicyConfiguration()) + .addClusterConfiguration(basicClusterConnectionConfig(backuptc.getName(), livetc.getName())); - backupConf.setSecurityEnabled(false); - backupConf.setJournalType(getDefaultJournalType()); - backupParams.put(TransportConstants.SERVER_ID_PROP_NAME, 1); - backupConf.getAcceptorConfigurations().add(new TransportConfiguration(INVM_ACCEPTOR_FACTORY, backupParams)); - - if (sharedStore) - backupConf.getHAPolicy().setPolicyType(HAPolicy.POLICY_TYPE.BACKUP_SHARED_STORE); - else - backupConf.getHAPolicy().setPolicyType(HAPolicy.POLICY_TYPE.BACKUP_REPLICATED); - - backupConf.setBindingsDirectory(getBindingsDir()); - backupConf.setJournalMinFiles(2); - backupConf.setJournalDirectory(getJournalDir()); - backupConf.setPagingDirectory(getPageDir()); - backupConf.setLargeMessagesDirectory(getLargeMessagesDir()); - backupConf.setPersistenceEnabled(true); backupService = new InVMNodeManagerServer(backupConf, nodeManager); backupJMSService = new JMSServerManagerImpl(backupService); @@ -547,28 +545,22 @@ public class JMSFailoverTest extends ServiceTestBase log.info("Starting backup"); backupJMSService.start(); - liveConf = createBasicConfig(0); - - liveConf.setJournalDirectory(getJournalDir()); - liveConf.setBindingsDirectory(getBindingsDir()); - - liveConf.setSecurityEnabled(false); - liveConf.getAcceptorConfigurations().add(liveAcceptortc); - basicClusterConnectionConfig(liveConf, livetc.getName()); - - if (sharedStore) - liveConf.getHAPolicy().setPolicyType(HAPolicy.POLICY_TYPE.SHARED_STORE); - else - liveConf.getHAPolicy().setPolicyType(HAPolicy.POLICY_TYPE.REPLICATED); + liveConf = createBasicConfig(0) + .setJournalDirectory(getJournalDir()) + .setBindingsDirectory(getBindingsDir()) + .setSecurityEnabled(false) + .addAcceptorConfiguration(liveAcceptortc) + .setJournalType(getDefaultJournalType()) + .setBindingsDirectory(getBindingsDir()) + .setJournalMinFiles(2) + .setJournalDirectory(getJournalDir()) + .setPagingDirectory(getPageDir()) + .setLargeMessagesDirectory(getLargeMessagesDir()) + .addConnectorConfiguration(livetc.getName(), livetc) + .setPersistenceEnabled(true) + .setHAPolicyConfiguration(sharedStore ? new SharedStoreMasterPolicyConfiguration() : new ReplicatedPolicyConfiguration()) + .addClusterConfiguration(basicClusterConnectionConfig(livetc.getName())); - liveConf.setJournalType(getDefaultJournalType()); - liveConf.setBindingsDirectory(getBindingsDir()); - liveConf.setJournalMinFiles(2); - liveConf.setJournalDirectory(getJournalDir()); - liveConf.setPagingDirectory(getPageDir()); - liveConf.setLargeMessagesDirectory(getLargeMessagesDir()); - liveConf.getConnectorConfigurations().put(livetc.getName(), livetc); - liveConf.setPersistenceEnabled(true); liveService = new InVMNodeManagerServer(liveConf, nodeManager); liveJMSService = new JMSServerManagerImpl(liveService); http://git-wip-us.apache.org/repos/asf/activemq-6/blob/177e6820/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/JMSReconnectTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/JMSReconnectTest.java b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/JMSReconnectTest.java index 9c64e46..25eb15c 100644 --- a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/JMSReconnectTest.java +++ b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/JMSReconnectTest.java @@ -323,16 +323,14 @@ public class JMSReconnectTest extends UnitTestCase { super.setUp(); - Configuration liveConf = createBasicConfig(); - liveConf.setSecurityEnabled(false); - liveConf.setJournalType(getDefaultJournalType()); - liveConf.getAcceptorConfigurations() - .add(new TransportConfiguration("org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory")); - liveConf.setBindingsDirectory(getBindingsDir()); - liveConf.setJournalMinFiles(2); - liveConf.setJournalDirectory(getJournalDir()); - liveConf.setPagingDirectory(getPageDir()); - liveConf.setLargeMessagesDirectory(getLargeMessagesDir()); + Configuration liveConf = createBasicConfig() + .setJournalType(getDefaultJournalType()) + .addAcceptorConfiguration(new TransportConfiguration("org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory")) + .setBindingsDirectory(getBindingsDir()) + .setJournalMinFiles(2) + .setJournalDirectory(getJournalDir()) + .setPagingDirectory(getPageDir()) + .setLargeMessagesDirectory(getLargeMessagesDir()); liveService = HornetQServers.newHornetQServer(liveConf, true); liveService.start(); http://git-wip-us.apache.org/repos/asf/activemq-6/blob/177e6820/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/ReplicatedJMSFailoverTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/ReplicatedJMSFailoverTest.java b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/ReplicatedJMSFailoverTest.java index 70ee8ba..f1cd191 100644 --- a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/ReplicatedJMSFailoverTest.java +++ b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/cluster/ReplicatedJMSFailoverTest.java @@ -13,9 +13,10 @@ package org.hornetq.tests.integration.jms.cluster; import org.hornetq.api.core.TransportConfiguration; +import org.hornetq.core.config.ha.ReplicaPolicyConfiguration; +import org.hornetq.core.config.ha.ReplicatedPolicyConfiguration; import org.hornetq.core.remoting.impl.invm.TransportConstants; import org.hornetq.core.server.HornetQServers; -import org.hornetq.core.server.cluster.ha.HAPolicy; import org.hornetq.jms.server.impl.JMSServerManagerImpl; /** @@ -34,17 +35,18 @@ public class ReplicatedJMSFailoverTest extends JMSFailoverTest @Override protected void startServers() throws Exception { - backupConf = createBasicConfig(); - backupConf.setJournalType(getDefaultJournalType()); - backupConf.setSecurityEnabled(false); backupParams.put(TransportConstants.SERVER_ID_PROP_NAME, 1); - backupConf.getAcceptorConfigurations().add(new TransportConfiguration(INVM_ACCEPTOR_FACTORY, backupParams)); - backupConf.getHAPolicy().setPolicyType(HAPolicy.POLICY_TYPE.BACKUP_REPLICATED); - backupConf.setBindingsDirectory(getBindingsDir(0, true)); - backupConf.setJournalMinFiles(2); - backupConf.setJournalDirectory(getJournalDir(0, true)); - backupConf.setPagingDirectory(getPageDir(0, true)); - backupConf.setLargeMessagesDirectory(getLargeMessagesDir(0, true)); + + backupConf = createBasicConfig() + .setJournalType(getDefaultJournalType()) + .addAcceptorConfiguration(new TransportConfiguration(INVM_ACCEPTOR_FACTORY, backupParams)) + .setBindingsDirectory(getBindingsDir(0, true)) + .setJournalMinFiles(2) + .setJournalDirectory(getJournalDir(0, true)) + .setPagingDirectory(getPageDir(0, true)) + .setLargeMessagesDirectory(getLargeMessagesDir(0, true)) + .setHAPolicyConfiguration(new ReplicaPolicyConfiguration()); + backupService = HornetQServers.newHornetQServer(backupConf, true); backupJMSService = new JMSServerManagerImpl(backupService); @@ -53,23 +55,16 @@ public class ReplicatedJMSFailoverTest extends JMSFailoverTest backupJMSService.start(); - - - liveConf = createBasicConfig(); - liveConf.setSecurityEnabled(false); - liveConf.setJournalType(getDefaultJournalType()); - - liveConf.getConnectorConfigurations().put("toBackup", new TransportConfiguration(INVM_CONNECTOR_FACTORY, backupParams)); - //liveConf.setBackupConnectorName("toBackup"); - - liveConf.getAcceptorConfigurations() - .add(new TransportConfiguration("org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory")); - liveConf.getHAPolicy().setPolicyType(HAPolicy.POLICY_TYPE.REPLICATED); - liveConf.setBindingsDirectory(getBindingsDir(0, false)); - liveConf.setJournalMinFiles(2); - liveConf.setJournalDirectory(getJournalDir(0, false)); - liveConf.setPagingDirectory(getPageDir(0, false)); - liveConf.setLargeMessagesDirectory(getLargeMessagesDir(0, false)); + liveConf = createBasicConfig() + .setJournalType(getDefaultJournalType()) + .addConnectorConfiguration("toBackup", new TransportConfiguration(INVM_CONNECTOR_FACTORY, backupParams)) + .addAcceptorConfiguration(new TransportConfiguration("org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory")) + .setBindingsDirectory(getBindingsDir(0, false)) + .setJournalMinFiles(2) + .setJournalDirectory(getJournalDir(0, false)) + .setPagingDirectory(getPageDir(0, false)) + .setLargeMessagesDirectory(getLargeMessagesDir(0, false)) + .setHAPolicyConfiguration(new ReplicatedPolicyConfiguration()); liveService = HornetQServers.newHornetQServer(liveConf, true); @@ -78,7 +73,6 @@ public class ReplicatedJMSFailoverTest extends JMSFailoverTest liveJMSService.setContext(ctx1); liveJMSService.start(); - } // Private ------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq-6/blob/177e6820/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/connection/ConnectionFactorySerializationTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/connection/ConnectionFactorySerializationTest.java b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/connection/ConnectionFactorySerializationTest.java index c26ffd0..af11610 100644 --- a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/connection/ConnectionFactorySerializationTest.java +++ b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/connection/ConnectionFactorySerializationTest.java @@ -59,9 +59,17 @@ public class ConnectionFactorySerializationTest extends JMSTestBase final int port = getUDPDiscoveryPort(); String localBindAddress = getLocalHost().getHostAddress(); - UDPBroadcastGroupConfiguration config = new UDPBroadcastGroupConfiguration(groupAddress, port, localBindAddress, 8580); - - DiscoveryGroupConfiguration dcConfig = new DiscoveryGroupConfiguration("dg1", 5000, 5000, config); + UDPBroadcastGroupConfiguration config = new UDPBroadcastGroupConfiguration() + .setGroupAddress(groupAddress) + .setGroupPort(port) + .setLocalBindAddress(localBindAddress) + .setLocalBindPort(8580); + + DiscoveryGroupConfiguration dcConfig = new DiscoveryGroupConfiguration() + .setName("dg1") + .setRefreshTimeout(5000) + .setDiscoveryInitialWaitTimeout(5000) + .setBroadcastEndpointFactoryConfiguration(config); jmsServer.getHornetQServer().getConfiguration().getDiscoveryGroupConfigurations().put(dcConfig.getName(), dcConfig); http://git-wip-us.apache.org/repos/asf/activemq-6/blob/177e6820/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/connection/ConnectionFactoryWithJGroupsSerializationTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/connection/ConnectionFactoryWithJGroupsSerializationTest.java b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/connection/ConnectionFactoryWithJGroupsSerializationTest.java new file mode 100644 index 0000000..ae63232 --- /dev/null +++ b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/connection/ConnectionFactoryWithJGroupsSerializationTest.java @@ -0,0 +1,192 @@ +/* + * Copyright 2005-2014 Red Hat, Inc. + * Red Hat licenses this file to you under the Apache License, version + * 2.0 (the "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing + * permissions and limitations under the License. + */ +package org.hornetq.tests.integration.jms.connection; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.Serializable; + +import javax.jms.Queue; + +import org.hornetq.api.core.BroadcastEndpointFactoryConfiguration; +import org.hornetq.api.core.DiscoveryGroupConfiguration; +import org.hornetq.api.core.JGroupsBroadcastGroupConfiguration; +import org.hornetq.api.jms.JMSFactoryType; +import org.hornetq.jms.client.HornetQConnectionFactory; +import org.hornetq.tests.util.JMSTestBase; +import org.jgroups.JChannel; +import org.jgroups.conf.PlainConfigurator; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class ConnectionFactoryWithJGroupsSerializationTest extends JMSTestBase +{ + + protected static HornetQConnectionFactory jmsCf1; + protected static HornetQConnectionFactory jmsCf2; + + private final String jgroupsConfigString = "UDP(oob_thread_pool.max_threads=300;" + + "bind_addr=127.0.0.1;oob_thread_pool.keep_alive_time=1000;" + + "max_bundle_size=31k;mcast_send_buf_size=640000;" + + "internal_thread_pool.keep_alive_time=60000;" + + "internal_thread_pool.rejection_policy=discard;" + + "mcast_recv_buf_size=25000000;bind_port=55200;" + + "internal_thread_pool.queue_max_size=100;" + + "mcast_port=45688;thread_pool.min_threads=20;" + + "oob_thread_pool.rejection_policy=discard;" + + "thread_pool.max_threads=300;enable_diagnostics=false;" + + "thread_pool.enabled=true;internal_thread_pool.queue_enabled=true;" + + "ucast_recv_buf_size=20000000;ucast_send_buf_size=640000;" + + "internal_thread_pool.enabled=true;oob_thread_pool.enabled=true;" + + "ip_ttl=2;thread_pool.rejection_policy=discard;thread_pool.keep_alive_time=5000;" + + "internal_thread_pool.max_threads=10;thread_pool.queue_enabled=true;" + + "mcast_addr=230.0.0.4;singleton_name=udp;max_bundle_timeout=30;" + + "oob_thread_pool.queue_enabled=false;internal_thread_pool.min_threads=1;" + + "bundler_type=old;oob_thread_pool.min_threads=20;" + + "thread_pool.queue_max_size=1000):PING(num_initial_members=3;" + + "timeout=2000):MERGE3(min_interval=20000;max_interval=100000)" + + ":FD_SOCK(bind_addr=127.0.0.1;start_port=54200):FD_ALL(interval=3000;" + + "timeout=15000):VERIFY_SUSPECT(bind_addr=127.0.0.1;" + + "timeout=1500):pbcast.NAKACK2(max_msg_batch_size=100;" + + "xmit_table_msgs_per_row=10000;xmit_table_max_compaction_time=10000;" + + "xmit_table_num_rows=100;xmit_interval=1000):UNICAST3(xmit_table_msgs_per_row=10000;" + + "xmit_table_max_compaction_time=10000;xmit_table_num_rows=20)" + + ":pbcast.STABLE(desired_avg_gossip=50000;max_bytes=400000;" + + "stability_delay=1000):pbcast.GMS(print_local_addr=true;" + + "view_bundling=true;join_timeout=3000;view_ack_collection_timeout=5000;" + + "resume_task_timeout=7500):UFC(max_credits=1m;min_threshold=0.40)" + + ":MFC(max_credits=1m;min_threshold=0.40):FRAG2(frag_size=30k)" + + ":RSVP(resend_interval=500;ack_on_delivery=false;timeout=60000)"; + + JChannel channel = null; + Queue testQueue = null; + + @Override + @Before + public void setUp() throws Exception + { + try + { + super.setUp(); + + PlainConfigurator configurator = new PlainConfigurator(jgroupsConfigString); + channel = new JChannel(configurator); + + String channelName1 = "channel1"; + String channelName2 = "channel2"; + + JGroupsBroadcastGroupConfiguration jgroupsBroadcastCfg1 = new JGroupsBroadcastGroupConfiguration(channel, channelName1); + JGroupsBroadcastGroupConfiguration jgroupsBroadcastCfg2 = new JGroupsBroadcastGroupConfiguration(jgroupsConfigString, channelName2); + + DiscoveryGroupConfiguration dcConfig1 = new DiscoveryGroupConfiguration() + .setName("dg1") + .setRefreshTimeout(5000) + .setDiscoveryInitialWaitTimeout(5000) + .setBroadcastEndpointFactoryConfiguration(jgroupsBroadcastCfg1); + + DiscoveryGroupConfiguration dcConfig2 = new DiscoveryGroupConfiguration() + .setName("dg2") + .setRefreshTimeout(5000) + .setDiscoveryInitialWaitTimeout(5000) + .setBroadcastEndpointFactoryConfiguration(jgroupsBroadcastCfg2); + + jmsServer.getHornetQServer().getConfiguration().getDiscoveryGroupConfigurations().put(dcConfig1.getName(), dcConfig1); + jmsServer.getHornetQServer().getConfiguration().getDiscoveryGroupConfigurations().put(dcConfig2.getName(), dcConfig2); + + jmsServer.createConnectionFactory("ConnectionFactory1", + false, + JMSFactoryType.CF, + dcConfig1.getName(), + "/ConnectionFactory1"); + + + jmsServer.createConnectionFactory("ConnectionFactory2", + false, + JMSFactoryType.CF, + dcConfig2.getName(), + "/ConnectionFactory2"); + + testQueue = createQueue("testQueueFor1389"); + } + catch (Exception e) + { + e.printStackTrace(); + throw e; + } + } + + // Public -------------------------------------------------------- + + //HORNETQ-1389 + //Here we deploy two Connection Factories with JGroups discovery groups. + //The first one uses a runtime JChannel object, which is the case before the fix. + //The second one uses the raw jgroups config string, which is the case after fix. + //So the first one will get serialization exception in the test + //while the second will not. + @Test + public void testSerialization() throws Exception + { + jmsCf1 = (HornetQConnectionFactory) namingContext.lookup("/ConnectionFactory1"); + jmsCf2 = (HornetQConnectionFactory) namingContext.lookup("/ConnectionFactory2"); + + try + { + serialize(jmsCf1); + } + catch (java.io.NotSerializableException e) + { + //this is expected + } + + //now cf2 should be OK + byte[] x = serialize(jmsCf2); + HornetQConnectionFactory jmsCf2Copy = deserialize(x, HornetQConnectionFactory.class); + assertNotNull(jmsCf2Copy); + BroadcastEndpointFactoryConfiguration broadcastEndpoint = jmsCf2Copy.getDiscoveryGroupConfiguration().getBroadcastEndpointFactoryConfiguration(); + assertTrue(broadcastEndpoint instanceof JGroupsBroadcastGroupConfiguration); + } + + @Override + @After + public void tearDown() throws Exception + { + if (channel != null) + { + channel.close(); + } + + super.tearDown(); + } + + private static <T extends Serializable> byte[] serialize(T obj) throws IOException + { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + ObjectOutputStream oos = new ObjectOutputStream(baos); + oos.writeObject(obj); + oos.close(); + return baos.toByteArray(); + } + + private static <T extends Serializable> T deserialize(byte[] b, Class<T> cl) throws IOException, ClassNotFoundException + { + ByteArrayInputStream bais = new ByteArrayInputStream(b); + ObjectInputStream ois = new ObjectInputStream(bais); + Object o = ois.readObject(); + return cl.cast(o); + } + +} http://git-wip-us.apache.org/repos/asf/activemq-6/blob/177e6820/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/connection/ExceptionListenerTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/connection/ExceptionListenerTest.java b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/connection/ExceptionListenerTest.java index a588911..82589a7 100644 --- a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/connection/ExceptionListenerTest.java +++ b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/connection/ExceptionListenerTest.java @@ -65,11 +65,8 @@ public class ExceptionListenerTest extends UnitTestCase { super.setUp(); - Configuration conf = createBasicConfig(); - conf.setSecurityEnabled(false); - conf.setJMXManagementEnabled(true); - conf.getAcceptorConfigurations() - .add(new TransportConfiguration("org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory")); + Configuration conf = createBasicConfig() + .addAcceptorConfiguration(new TransportConfiguration("org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory")); server = addServer(HornetQServers.newHornetQServer(conf, false)); jmsServer = new JMSServerManagerImpl(server); jmsServer.setContext(new NullInitialContext()); http://git-wip-us.apache.org/repos/asf/activemq-6/blob/177e6820/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/consumer/ConsumerTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/consumer/ConsumerTest.java b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/consumer/ConsumerTest.java index 6038858..61be8db 100644 --- a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/consumer/ConsumerTest.java +++ b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/consumer/ConsumerTest.java @@ -24,6 +24,7 @@ import javax.jms.MessageProducer; import javax.jms.QueueBrowser; import javax.jms.Session; import javax.jms.TextMessage; + import java.util.Enumeration; import java.util.concurrent.atomic.AtomicInteger; @@ -87,6 +88,47 @@ public class ConsumerTest extends JMSTestBase } @Test + public void testTransactionalSessionRollback() throws Exception + { + conn = cf.createConnection(); + Session sess = conn.createSession(true, Session.SESSION_TRANSACTED); + + MessageProducer prod = sess.createProducer(topic); + MessageConsumer cons = sess.createConsumer(topic); + + conn.start(); + + TextMessage msg1 = sess.createTextMessage("m1"); + TextMessage msg2 = sess.createTextMessage("m2"); + TextMessage msg3 = sess.createTextMessage("m3"); + + prod.send(msg1); + sess.commit(); + + prod.send(msg2); + sess.rollback(); + + prod.send(msg3); + sess.commit(); + + TextMessage m1 = (TextMessage) cons.receive(2000); + assertNotNull(m1); + assertEquals("m1", m1.getText()); + + TextMessage m2 = (TextMessage) cons.receive(2000); + assertNotNull(m2); + assertEquals("m3", m2.getText()); + + TextMessage m3 = (TextMessage) cons.receive(2000); + assertNull("m3 should be null", m3); + + System.out.println("received m1: " + m1.getText()); + System.out.println("received m2: " + m2.getText()); + System.out.println("received m3: " + m3); + sess.commit(); + } + + @Test public void testPreCommitAcks() throws Exception { conn = cf.createConnection(); @@ -108,8 +150,8 @@ public class ConsumerTest extends JMSTestBase } SimpleString queueName = new SimpleString(HornetQDestination.JMS_QUEUE_ADDRESS_PREFIX + ConsumerTest.Q_NAME); - Assert.assertEquals(0, ((Queue) server.getPostOffice().getBinding(queueName).getBindable()).getDeliveringCount()); - Assert.assertEquals(0, ((Queue) server.getPostOffice().getBinding(queueName).getBindable()).getMessageCount()); + Assert.assertEquals(0, getMessageCount((Queue) server.getPostOffice().getBinding(queueName).getBindable())); + Assert.assertEquals(0, getMessageCount((Queue) server.getPostOffice().getBinding(queueName).getBindable())); } @Test @@ -161,7 +203,7 @@ public class ConsumerTest extends JMSTestBase SimpleString queueName = new SimpleString(HornetQDestination.JMS_QUEUE_ADDRESS_PREFIX + ConsumerTest.Q_NAME); Assert.assertEquals(0, ((Queue) server.getPostOffice().getBinding(queueName).getBindable()).getDeliveringCount()); - Assert.assertEquals(0, ((Queue) server.getPostOffice().getBinding(queueName).getBindable()).getMessageCount()); + Assert.assertEquals(0, getMessageCount((Queue) server.getPostOffice().getBinding(queueName).getBindable())); conn.close(); } @@ -246,7 +288,7 @@ public class ConsumerTest extends JMSTestBase SimpleString queueName = new SimpleString(HornetQDestination.JMS_QUEUE_ADDRESS_PREFIX + ConsumerTest.Q_NAME); Assert.assertEquals(0, ((Queue) server.getPostOffice().getBinding(queueName).getBindable()).getDeliveringCount()); - Assert.assertEquals(0, ((Queue) server.getPostOffice().getBinding(queueName).getBindable()).getMessageCount()); + Assert.assertEquals(0, getMessageCount((Queue) server.getPostOffice().getBinding(queueName).getBindable())); conn.close(); } @@ -276,7 +318,7 @@ public class ConsumerTest extends JMSTestBase // Messages should all have been acked since we set pre ack on the cf SimpleString queueName = new SimpleString(HornetQDestination.JMS_QUEUE_ADDRESS_PREFIX + ConsumerTest.Q_NAME); Assert.assertEquals(0, ((Queue) server.getPostOffice().getBinding(queueName).getBindable()).getDeliveringCount()); - Assert.assertEquals(0, ((Queue) server.getPostOffice().getBinding(queueName).getBindable()).getMessageCount()); + Assert.assertEquals(0, getMessageCount((Queue) server.getPostOffice().getBinding(queueName).getBindable())); } @Test http://git-wip-us.apache.org/repos/asf/activemq-6/blob/177e6820/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/divert/DivertAndACKClientTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/divert/DivertAndACKClientTest.java b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/divert/DivertAndACKClientTest.java index 627a592..c92995d 100644 --- a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/divert/DivertAndACKClientTest.java +++ b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/divert/DivertAndACKClientTest.java @@ -104,13 +104,12 @@ public class DivertAndACKClientTest extends JMSTestBase { Configuration config = super.createDefaultConfig(netty); - DivertConfiguration divert = new DivertConfiguration("local-divert", - "some-name", - "jms.queue.Source", - "jms.queue.Dest", - true, - null, - null); + DivertConfiguration divert = new DivertConfiguration() + .setName("local-divert") + .setRoutingName("some-name") + .setAddress("jms.queue.Source") + .setForwardingAddress("jms.queue.Dest") + .setExclusive(true); ArrayList<DivertConfiguration> divertList = new ArrayList<DivertConfiguration>(); divertList.add(divert); http://git-wip-us.apache.org/repos/asf/activemq-6/blob/177e6820/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/jms2client/JmsProducerCompletionListenerTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/jms2client/JmsProducerCompletionListenerTest.java b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/jms2client/JmsProducerCompletionListenerTest.java index b402147..f80c559 100644 --- a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/jms2client/JmsProducerCompletionListenerTest.java +++ b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/jms2client/JmsProducerCompletionListenerTest.java @@ -38,7 +38,6 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; -import org.junit.runners.Parameterized.Parameters; @RunWith(Parameterized.class) public class JmsProducerCompletionListenerTest extends JMSTestBase @@ -51,7 +50,7 @@ public class JmsProducerCompletionListenerTest extends JMSTestBase private final int confirmationWindowSize; - @Parameters(name = "confirmationWindowSize={0}") + @Parameterized.Parameters(name = "confirmationWindowSize={0}") public static Iterable<Object[]> data() { return Arrays.asList(new Object[][]{{-1}, {0}, {10}, {1000}}); http://git-wip-us.apache.org/repos/asf/activemq-6/blob/177e6820/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/ColocatedJMSServerStartStopTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/ColocatedJMSServerStartStopTest.java b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/ColocatedJMSServerStartStopTest.java deleted file mode 100644 index c3ce272..0000000 --- a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/ColocatedJMSServerStartStopTest.java +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright 2005-2014 Red Hat, Inc. - * Red Hat licenses this file to you under the Apache License, version - * 2.0 (the "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * http://www.apache.org/licenses/LICENSE-2.0 - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - * implied. See the License for the specific language governing - * permissions and limitations under the License. - */ -package org.hornetq.tests.integration.jms.server; - -import org.hornetq.api.core.TransportConfiguration; -import org.hornetq.api.jms.HornetQJMSClient; -import org.hornetq.api.jms.JMSFactoryType; -import org.hornetq.core.config.impl.FileConfiguration; -import org.hornetq.core.server.HornetQServer; -import org.hornetq.core.server.NodeManager; -import org.hornetq.core.server.impl.InVMNodeManager; -import org.hornetq.jms.client.HornetQConnectionFactory; -import org.hornetq.jms.client.HornetQJMSContext; -import org.hornetq.jms.client.HornetQSession; -import org.hornetq.jms.server.JMSServerManager; -import org.hornetq.jms.server.impl.JMSServerManagerImpl; -import org.hornetq.spi.core.security.HornetQSecurityManager; -import org.hornetq.spi.core.security.HornetQSecurityManagerImpl; -import org.hornetq.tests.integration.IntegrationTestLogger; -import org.hornetq.tests.integration.cluster.util.SameProcessHornetQServer; -import org.hornetq.tests.integration.cluster.util.TestableServer; -import org.hornetq.tests.integration.jms.server.management.JMSUtil; -import org.hornetq.tests.util.ColocatedHornetQServer; -import org.hornetq.tests.util.UnitTestCase; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -import javax.jms.JMSConsumer; -import javax.jms.JMSContext; -import javax.jms.Queue; -import java.io.File; - -/** - * - * A JMSServerStartStopTest - * - * @author <a href="mailto:[email protected]">Tim Fox</a> - */ -public class ColocatedJMSServerStartStopTest extends UnitTestCase -{ - private static final IntegrationTestLogger log = IntegrationTestLogger.LOGGER; - - private JMSServerManager liveJMSServer; - - private JMSServerManager liveJMSServer2; - - private TestableServer testableServerlive1; - - private HornetQJMSContext context; - - @Test - public void testStopStart1() throws Exception - { - start(); - JMSUtil.waitForFailoverTopology(5000, ((ColocatedHornetQServer)liveJMSServer2.getHornetQServer()).backupServer, liveJMSServer.getHornetQServer()); - JMSUtil.waitForFailoverTopology(5000, ((ColocatedHornetQServer)liveJMSServer.getHornetQServer()).backupServer, liveJMSServer2.getHornetQServer()); - HornetQConnectionFactory connectionFactory = HornetQJMSClient.createConnectionFactoryWithHA(JMSFactoryType.CF, - new TransportConfiguration(NETTY_CONNECTOR_FACTORY)); - connectionFactory.setReconnectAttempts(-1); - context = (HornetQJMSContext) connectionFactory.createContext(JMSContext.AUTO_ACKNOWLEDGE); - Queue queue = HornetQJMSClient.createQueue("myJMSQueue"); - JMSConsumer consumer = context.createConsumer(queue); - - for (int i = 0; i < 100; i++) - { - String body = "message:" + i; - context.createProducer().send(queue, body); - System.out.println(body); - } - - for (int i = 0; i < 50; i++) - { - String msg = consumer.receiveBody(String.class); - System.out.println("msg = " + msg); - } - - testableServerlive1.crash(true, ((HornetQSession) context.getSession()).getCoreSession()); - - for (int i = 0; i < 50; i++) - { - String msg = consumer.receiveBody(String.class, 5000); - assertNotNull(msg); - System.out.println("msg = " + msg); - } - stop(); - } - - @Override - @Before - public void setUp() throws Exception - { - File tmp = new File("/tmp/hornetq-unit-test"); - deleteDirectory(tmp); - super.setUp(); - } - - @Override - @After - public void tearDown() throws Exception - { - if (context != null) - context.close(); - if (liveJMSServer != null) - liveJMSServer.stop(); - liveJMSServer = null; - if (liveJMSServer2 != null) - liveJMSServer2.stop(); - liveJMSServer2 = null; - super.tearDown(); - } - - // Private ------------------------------------------------------- - - private void stop() throws Exception - { - liveJMSServer.stop(); - } - - private void start() throws Exception - { - NodeManager nodeManagerLive1 = new InVMNodeManager(false); - NodeManager nodeManagerLive2 = new InVMNodeManager(false); - FileConfiguration fc = new FileConfiguration("colocated-server-start-stop-config1.xml"); - - fc.start(); - - HornetQSecurityManager sm = new HornetQSecurityManagerImpl(); - - HornetQServer liveServer = addServer(new ColocatedHornetQServer(fc, sm, nodeManagerLive1, nodeManagerLive2)); - testableServerlive1 = new SameProcessHornetQServer(liveServer); - - liveJMSServer = new JMSServerManagerImpl(liveServer, "colocated-server-start-stop-jms-config1.xml"); - addHornetQComponent(liveJMSServer); - liveJMSServer.setContext(null); - - liveJMSServer.start(); - - FileConfiguration fc2 = new FileConfiguration("colocated-server-start-stop-config2.xml"); - - fc2.start(); - - HornetQSecurityManager sm2 = new HornetQSecurityManagerImpl(); - - HornetQServer liveServer2 = addServer(new ColocatedHornetQServer(fc2, sm2, nodeManagerLive2, nodeManagerLive1)); - - liveJMSServer2 = new JMSServerManagerImpl(liveServer2, "colocated-server-start-stop-jms-config2.xml"); - addHornetQComponent(liveJMSServer); - liveJMSServer2.setContext(null); - - liveJMSServer2.start(); - } - - // Inner classes ------------------------------------------------- - -} http://git-wip-us.apache.org/repos/asf/activemq-6/blob/177e6820/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/JMSServerDeployerTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/JMSServerDeployerTest.java b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/JMSServerDeployerTest.java index f788b52..73605e4 100644 --- a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/JMSServerDeployerTest.java +++ b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/JMSServerDeployerTest.java @@ -337,15 +337,19 @@ public class JMSServerDeployerTest extends ServiceTestBase { super.setUp(); - config = createBasicConfig(); - config.getConnectorConfigurations().put("netty", - new TransportConfiguration(NettyConnectorFactory.class.getName())); - - DiscoveryGroupConfiguration dcg = new DiscoveryGroupConfiguration("mygroup", - 5432, 5432, - new UDPBroadcastGroupConfiguration("243.7.7.7", 12345, - "172.16.8.10", -1)); - config.getDiscoveryGroupConfigurations().put("mygroup", dcg); + DiscoveryGroupConfiguration dcg = new DiscoveryGroupConfiguration() + .setName("mygroup") + .setRefreshTimeout(5432) + .setDiscoveryInitialWaitTimeout(5432) + .setBroadcastEndpointFactoryConfiguration(new UDPBroadcastGroupConfiguration() + .setGroupAddress("243.7.7.7") + .setGroupPort(12345) + .setLocalBindAddress("172.16.8.10")); + + config = createBasicConfig() + .addConnectorConfiguration("netty", new TransportConfiguration(NettyConnectorFactory.class.getName())) + .addDiscoveryGroupConfiguration("mygroup", dcg); + HornetQServer server = createServer(false, config); deploymentManager = new FileDeploymentManager(config.getFileDeployerScanPeriod()); @@ -354,7 +358,6 @@ public class JMSServerDeployerTest extends ServiceTestBase context = new InVMNamingContext(); jmsServer.setContext(context); jmsServer.start(); - } @Override http://git-wip-us.apache.org/repos/asf/activemq-6/blob/177e6820/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/config/JMSConfigurationTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/config/JMSConfigurationTest.java b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/config/JMSConfigurationTest.java index ca823ea..b36463c 100644 --- a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/config/JMSConfigurationTest.java +++ b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/config/JMSConfigurationTest.java @@ -66,21 +66,25 @@ public class JMSConfigurationTest extends ServiceTestBase TransportConfiguration connectorConfig = new TransportConfiguration(InVMConnectorFactory.class.getName()); List<TransportConfiguration> transportConfigs = new ArrayList<TransportConfiguration>(); transportConfigs.add(connectorConfig); - ConnectionFactoryConfiguration cfConfig = new ConnectionFactoryConfigurationImpl(RandomUtil.randomString(), - false, - registerConnectors(coreServer, transportConfigs), - "/cf/binding1", - "/cf/binding2"); + + ConnectionFactoryConfiguration cfConfig = new ConnectionFactoryConfigurationImpl() + .setName(RandomUtil.randomString()) + .setConnectorNames(registerConnectors(coreServer, transportConfigs)) + .setBindings("/cf/binding1", "/cf/binding2"); + jmsConfiguration.getConnectionFactoryConfigurations().add(cfConfig); - JMSQueueConfigurationImpl queueConfig = new JMSQueueConfigurationImpl(RandomUtil.randomString(), - null, - false, - "/queue/binding1", - "/queue/binding2"); + JMSQueueConfigurationImpl queueConfig = new JMSQueueConfigurationImpl() + .setName(RandomUtil.randomString()) + .setDurable(false) + .setBindings( + "/queue/binding1", + "/queue/binding2"); jmsConfiguration.getQueueConfigurations().add(queueConfig); - TopicConfiguration topicConfig = new TopicConfigurationImpl(RandomUtil.randomString(), - "/topic/binding1", - "/topic/binding2"); + TopicConfiguration topicConfig = new TopicConfigurationImpl() + .setName(RandomUtil.randomString()) + .setBindings( + "/topic/binding1", + "/topic/binding2"); jmsConfiguration.getTopicConfigurations().add(topicConfig); JMSServerManager server = new JMSServerManagerImpl(coreServer, jmsConfiguration); http://git-wip-us.apache.org/repos/asf/activemq-6/blob/177e6820/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/config/JMSServerConfigParserTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/config/JMSServerConfigParserTest.java b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/config/JMSServerConfigParserTest.java index 4dfdc5b..3cf9587 100644 --- a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/config/JMSServerConfigParserTest.java +++ b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/config/JMSServerConfigParserTest.java @@ -51,10 +51,9 @@ public class JMSServerConfigParserTest extends ServiceTestBase @Test public void testParsing() throws Exception { - Configuration config = createDefaultConfig(); - - // anything so the parsing will work - config.getConnectorConfigurations().put("netty", new TransportConfiguration()); + Configuration config = createDefaultConfig() + // anything so the parsing will work + .addConnectorConfiguration("netty", new TransportConfiguration()); JMSServerConfigParser parser = new JMSServerConfigParserImpl(); http://git-wip-us.apache.org/repos/asf/activemq-6/blob/177e6820/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/management/ConnectionFactoryControlTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/management/ConnectionFactoryControlTest.java b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/management/ConnectionFactoryControlTest.java index 2945f70..89e12d0 100644 --- a/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/management/ConnectionFactoryControlTest.java +++ b/tests/integration-tests/src/test/java/org/hornetq/tests/integration/jms/server/management/ConnectionFactoryControlTest.java @@ -11,12 +11,17 @@ * permissions and limitations under the License. */ package org.hornetq.tests.integration.jms.server.management; +import java.util.ArrayList; +import java.util.List; + +import javax.management.Notification; + import org.junit.Before; import org.junit.After; - import org.junit.Test; - import org.hornetq.api.core.TransportConfiguration; +import org.hornetq.api.core.management.ObjectNameBuilder; +import org.hornetq.api.jms.JMSFactoryType; import org.hornetq.api.jms.management.ConnectionFactoryControl; import org.hornetq.api.jms.management.JMSServerControl; import org.hornetq.core.config.Configuration; @@ -24,6 +29,7 @@ import org.hornetq.core.server.HornetQServer; import org.hornetq.core.server.HornetQServers; import org.hornetq.jms.client.HornetQConnectionFactory; import org.hornetq.jms.server.impl.JMSServerManagerImpl; +import org.hornetq.jms.server.management.JMSNotificationType; import org.hornetq.tests.integration.management.ManagementControlHelper; import org.hornetq.tests.integration.management.ManagementTestBase; import org.hornetq.tests.unit.util.InVMNamingContext; @@ -84,6 +90,51 @@ public class ConnectionFactoryControlTest extends ManagementTestBase } + //make sure notifications are always received no matter whether + //a CF is created via JMSServerControl or by JMSServerManager directly. + @Test + public void testCreateCFNotification() throws Exception + { + JMSUtil.JMXListener listener = new JMSUtil.JMXListener(); + this.mbeanServer.addNotificationListener(ObjectNameBuilder.DEFAULT.getJMSServerObjectName(), listener, null, null); + + List<String> connectors = new ArrayList<String>(); + connectors.add("invm"); + + this.serverManager.createConnectionFactory("NewCF", + false, + JMSFactoryType.CF, + connectors, + "/NewConnectionFactory"); + + Notification notif = listener.getNotification(); + + assertEquals(JMSNotificationType.CONNECTION_FACTORY_CREATED.toString(), notif.getType()); + assertEquals("NewCF", notif.getMessage()); + + this.serverManager.destroyConnectionFactory("NewCF"); + + notif = listener.getNotification(); + assertEquals(JMSNotificationType.CONNECTION_FACTORY_DESTROYED.toString(), notif.getType()); + assertEquals("NewCF", notif.getMessage()); + + JMSServerControl control = createJMSControl(); + + control.createConnectionFactory("test", false, false, 0, "invm", "test"); + + notif = listener.getNotification(); + assertEquals(JMSNotificationType.CONNECTION_FACTORY_CREATED.toString(), notif.getType()); + assertEquals("test", notif.getMessage()); + + control.destroyConnectionFactory("test"); + + notif = listener.getNotification(); + assertEquals(JMSNotificationType.CONNECTION_FACTORY_DESTROYED.toString(), notif.getType()); + assertEquals("test", notif.getMessage()); + } + + + // Package protected --------------------------------------------- // Protected ----------------------------------------------------- @@ -103,11 +154,11 @@ public class ConnectionFactoryControlTest extends ManagementTestBase */ protected void startServer() throws Exception { - Configuration conf = createDefaultConfig(false); - conf.getConnectorConfigurations().put("invm", new TransportConfiguration(INVM_CONNECTOR_FACTORY)); - conf.setSecurityEnabled(false); - conf.setJMXManagementEnabled(true); - conf.getAcceptorConfigurations().add(new TransportConfiguration(INVM_ACCEPTOR_FACTORY)); + Configuration conf = createDefaultConfig(false) + .addConnectorConfiguration("invm", new TransportConfiguration(INVM_CONNECTOR_FACTORY)) + .setSecurityEnabled(false) + .setJMXManagementEnabled(true) + .addAcceptorConfiguration(new TransportConfiguration(INVM_ACCEPTOR_FACTORY)); server = HornetQServers.newHornetQServer(conf, mbeanServer, true); server.start();
