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();
 

Reply via email to