[hornetq-commits] JBoss hornetq SVN: r8988 - in trunk: src/main/org/hornetq/core/server and 7 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Sun Mar 28 22:53:40 EDT 2010


Author: clebert.suconic at jboss.com
Date: 2010-03-28 22:53:39 -0400 (Sun, 28 Mar 2010)
New Revision: 8988

Added:
   trunk/tests/src/org/hornetq/tests/integration/jms/cluster/ReplicatedJMSFailoverTest.java
Modified:
   trunk/src/main/org/hornetq/core/replication/ReplicationEndpoint.java
   trunk/src/main/org/hornetq/core/server/HornetQServer.java
   trunk/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java
   trunk/src/main/org/hornetq/jms/persistence/JMSStorageManager.java
   trunk/src/main/org/hornetq/jms/persistence/impl/journal/JournalJMSStorageManagerImpl.java
   trunk/src/main/org/hornetq/jms/persistence/impl/nullpm/NullJMSStorageManagerImpl.java
   trunk/src/main/org/hornetq/jms/server/impl/JMSServerManagerImpl.java
   trunk/tests/src/org/hornetq/tests/integration/jms/cluster/JMSFailoverTest.java
   trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlTest.java
Log:
Replication on JMS journal

Modified: trunk/src/main/org/hornetq/core/replication/ReplicationEndpoint.java
===================================================================
--- trunk/src/main/org/hornetq/core/replication/ReplicationEndpoint.java	2010-03-28 21:01:50 UTC (rev 8987)
+++ trunk/src/main/org/hornetq/core/replication/ReplicationEndpoint.java	2010-03-29 02:53:39 UTC (rev 8988)
@@ -14,6 +14,7 @@
 package org.hornetq.core.replication;
 
 import org.hornetq.api.core.HornetQException;
+import org.hornetq.core.journal.Journal;
 import org.hornetq.core.journal.JournalLoadInformation;
 import org.hornetq.core.protocol.core.Channel;
 import org.hornetq.core.protocol.core.ChannelHandler;
@@ -35,4 +36,6 @@
 
    void compareJournalInformation(JournalLoadInformation[] journalInformation) throws HornetQException;
 
+   void registerJournal(final byte id, final Journal journal);
+
 }

Modified: trunk/src/main/org/hornetq/core/server/HornetQServer.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/HornetQServer.java	2010-03-28 21:01:50 UTC (rev 8987)
+++ trunk/src/main/org/hornetq/core/server/HornetQServer.java	2010-03-29 02:53:39 UTC (rev 8988)
@@ -26,6 +26,7 @@
 import org.hornetq.core.protocol.core.Channel;
 import org.hornetq.core.remoting.server.RemotingService;
 import org.hornetq.core.replication.ReplicationEndpoint;
+import org.hornetq.core.replication.ReplicationManager;
 import org.hornetq.core.security.Role;
 import org.hornetq.core.server.cluster.ClusterManager;
 import org.hornetq.core.server.group.GroupingHandler;
@@ -135,6 +136,10 @@
    void setGroupingHandler(GroupingHandler groupingHandler);
 
    GroupingHandler getGroupingHandler();
+   
+   ReplicationEndpoint getReplicationEndpoint();
+   
+   ReplicationManager getReplicationManager();
 
    boolean checkActivate() throws Exception;
 }

Modified: trunk/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java	2010-03-28 21:01:50 UTC (rev 8987)
+++ trunk/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java	2010-03-29 02:53:39 UTC (rev 8988)
@@ -750,15 +750,19 @@
       return groupingHandler;
    }
 
-   // Public
-   // ---------------------------------------------------------------------------------------
-
-   /** For tests only */
    public ReplicationEndpoint getReplicationEndpoint()
    {
       return replicationEndpoint;
    }
+   
+   public ReplicationManager getReplicationManager()
+   {
+      return replicationManager;
+   }
 
+   // Public
+   // ---------------------------------------------------------------------------------------
+
    // Package protected
    // ----------------------------------------------------------------------------
 

Modified: trunk/src/main/org/hornetq/jms/persistence/JMSStorageManager.java
===================================================================
--- trunk/src/main/org/hornetq/jms/persistence/JMSStorageManager.java	2010-03-28 21:01:50 UTC (rev 8987)
+++ trunk/src/main/org/hornetq/jms/persistence/JMSStorageManager.java	2010-03-29 02:53:39 UTC (rev 8988)
@@ -15,6 +15,7 @@
 
 import java.util.List;
 
+import org.hornetq.core.replication.ReplicationEndpoint;
 import org.hornetq.core.server.HornetQComponent;
 import org.hornetq.jms.persistence.config.PersistedConnectionFactory;
 import org.hornetq.jms.persistence.config.PersistedDestination;
@@ -40,7 +41,9 @@
    // Constructors --------------------------------------------------
 
    // Public --------------------------------------------------------
-
+   
+   void load() throws Exception;
+  
    void storeDestination(PersistedDestination destination) throws Exception;
 
    void deleteDestination(PersistedType type, String name) throws Exception;
@@ -68,4 +71,11 @@
    void deleteJNDI(PersistedType type, String name, String address) throws Exception;
    
    void deleteJNDI(PersistedType type, String name) throws Exception;
+
+   /**
+    * Add the journal here to the replication endpoint
+    * @param replicationEndpoint
+    * @throws Exception 
+    */
+   void installReplication(ReplicationEndpoint replicationEndpoint) throws Exception;
 }

Modified: trunk/src/main/org/hornetq/jms/persistence/impl/journal/JournalJMSStorageManagerImpl.java
===================================================================
--- trunk/src/main/org/hornetq/jms/persistence/impl/journal/JournalJMSStorageManagerImpl.java	2010-03-28 21:01:50 UTC (rev 8987)
+++ trunk/src/main/org/hornetq/jms/persistence/impl/journal/JournalJMSStorageManagerImpl.java	2010-03-29 02:53:39 UTC (rev 8988)
@@ -22,7 +22,6 @@
 import org.hornetq.api.core.HornetQBuffer;
 import org.hornetq.api.core.HornetQBuffers;
 import org.hornetq.api.core.Pair;
-import org.hornetq.api.core.SimpleString;
 import org.hornetq.core.config.Configuration;
 import org.hornetq.core.journal.Journal;
 import org.hornetq.core.journal.PreparedTransactionInfo;
@@ -30,6 +29,7 @@
 import org.hornetq.core.journal.SequentialFileFactory;
 import org.hornetq.core.journal.impl.JournalImpl;
 import org.hornetq.core.journal.impl.NIOSequentialFileFactory;
+import org.hornetq.core.replication.ReplicationEndpoint;
 import org.hornetq.core.replication.ReplicationManager;
 import org.hornetq.core.replication.impl.ReplicatedJournal;
 import org.hornetq.core.server.JournalType;
@@ -38,7 +38,6 @@
 import org.hornetq.jms.persistence.config.PersistedDestination;
 import org.hornetq.jms.persistence.config.PersistedJNDI;
 import org.hornetq.jms.persistence.config.PersistedType;
-import org.hornetq.jms.server.config.ConnectionFactoryConfiguration;
 import org.hornetq.utils.IDGenerator;
 
 /**
@@ -290,27 +289,31 @@
 
       jmsJournal.start();
       
-      load();
-      
       started = true;
    }
 
 
+
    /* (non-Javadoc)
+    * @see org.hornetq.jms.persistence.JMSStorageManager#installReplication(org.hornetq.core.replication.ReplicationEndpoint)
+    */
+   public void installReplication(ReplicationEndpoint replicationEndpoint) throws Exception
+   {
+      jmsJournal.loadInternalOnly();
+      replicationEndpoint.registerJournal((byte)2, this.jmsJournal);
+   }
+
+   
+   /* (non-Javadoc)
     * @see org.hornetq.core.server.HornetQComponent#stop()
     */
    public void stop() throws Exception
    {
+      this.started = false;
       jmsJournal.stop();
    }
 
-   // Package protected ---------------------------------------------
-
-   // Protected -----------------------------------------------------
-
-   // Private -------------------------------------------------------
-
-   private void load() throws Exception
+   public void load() throws Exception
    {
       mapFactories.clear();
       
@@ -359,6 +362,13 @@
       
    }
 
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+
    private void checkAndCreateDir(final String dir, final boolean create)
    {
       File f = new File(dir);
@@ -380,6 +390,7 @@
    }
 
 
+
    // Inner classes -------------------------------------------------
 
 }

Modified: trunk/src/main/org/hornetq/jms/persistence/impl/nullpm/NullJMSStorageManagerImpl.java
===================================================================
--- trunk/src/main/org/hornetq/jms/persistence/impl/nullpm/NullJMSStorageManagerImpl.java	2010-03-28 21:01:50 UTC (rev 8987)
+++ trunk/src/main/org/hornetq/jms/persistence/impl/nullpm/NullJMSStorageManagerImpl.java	2010-03-29 02:53:39 UTC (rev 8988)
@@ -16,6 +16,7 @@
 import java.util.Collections;
 import java.util.List;
 
+import org.hornetq.core.replication.ReplicationEndpoint;
 import org.hornetq.jms.persistence.JMSStorageManager;
 import org.hornetq.jms.persistence.config.PersistedConnectionFactory;
 import org.hornetq.jms.persistence.config.PersistedDestination;
@@ -136,6 +137,20 @@
       return Collections.emptyList();
    }
 
+   /* (non-Javadoc)
+    * @see org.hornetq.jms.persistence.JMSStorageManager#installReplication(org.hornetq.core.replication.ReplicationEndpoint)
+    */
+   public void installReplication(ReplicationEndpoint replicationEndpoint) throws Exception
+   {
+   }
+
+   /* (non-Javadoc)
+    * @see org.hornetq.jms.persistence.JMSStorageManager#load()
+    */
+   public void load() throws Exception
+   {
+   }
+
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------

Modified: trunk/src/main/org/hornetq/jms/server/impl/JMSServerManagerImpl.java
===================================================================
--- trunk/src/main/org/hornetq/jms/server/impl/JMSServerManagerImpl.java	2010-03-28 21:01:50 UTC (rev 8987)
+++ trunk/src/main/org/hornetq/jms/server/impl/JMSServerManagerImpl.java	2010-03-29 02:53:39 UTC (rev 8988)
@@ -13,7 +13,14 @@
 
 package org.hornetq.jms.server.impl;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 import javax.naming.Context;
 import javax.naming.InitialContext;
@@ -33,7 +40,6 @@
 import org.hornetq.core.deployers.impl.FileDeploymentManager;
 import org.hornetq.core.deployers.impl.XmlDeployer;
 import org.hornetq.core.logging.Logger;
-import org.hornetq.core.persistence.impl.journal.JournalStorageManager;
 import org.hornetq.core.postoffice.Binding;
 import org.hornetq.core.postoffice.BindingType;
 import org.hornetq.core.security.Role;
@@ -125,12 +131,16 @@
    {
       this.server = server;
       
+      this.coreConfig = server.getConfiguration();
+      
       configFileName = null;
    }
 
    public JMSServerManagerImpl(final HornetQServer server, final String configFileName) throws Exception
    {
       this.server = server;
+      
+      this.coreConfig = server.getConfiguration();
 
       this.configFileName = configFileName;
    }
@@ -138,6 +148,8 @@
    public JMSServerManagerImpl(final HornetQServer server, final JMSConfiguration configuration) throws Exception
    {
       this.server = server;
+      
+      this.coreConfig = server.getConfiguration();
 
       configFileName = null;
 
@@ -213,9 +225,16 @@
       deploymentManager = new FileDeploymentManager(server.getConfiguration().getFileDeployerScanPeriod());
 
       server.registerActivateCallback(this);
-
+      
       server.start();
 
+
+      if (server.getReplicationEndpoint() != null)
+      {
+         createJournal();
+         storage.installReplication(server.getReplicationEndpoint());
+      }
+      
       started = true;
    }
 
@@ -235,11 +254,18 @@
       {
          deploymentManager.stop();
       }
+      
+      // Storage could be null on a shared store backup server before initialization
+      if (storage != null)
+      {
+         storage.stop();
+      }
+      
+      unbindJNDI(queueJNDI);
 
-      // for (String destination : destinationBindings.keySet())
-      // {
-      // undeployDestination(destination);
-      // }
+      unbindJNDI(topicJNDI);
+      
+      unbindJNDI(connectionFactoryJNDI);
 
       for (String connectionFactory : new HashSet<String>(connectionFactories.keySet()))
       {
@@ -255,10 +281,14 @@
          context.close();
       }
 
-      jmsManagementService.unregisterJMSServer();
-
-      jmsManagementService.stop();
-
+      // it could be null if a backup
+      if (jmsManagementService != null)
+      {
+         jmsManagementService.unregisterJMSServer();
+   
+         jmsManagementService.stop();
+      }
+      
       server.stop();
 
       started = false;
@@ -1338,27 +1368,38 @@
    }
 
    /**
-    * @param server
+    * @param param
     */
-   private void initJournal() throws Exception
+   private void unbindJNDI(Map<String, List<String>> param)
    {
-      this.coreConfig = server.getConfiguration();
-
-      if (storage == null)
+      for (List<String> elementList : param.values())
       {
-         if (coreConfig.isPersistenceEnabled())
+         for (String key : elementList)
          {
-            // TODO: replication
-            storage = new JournalJMSStorageManagerImpl(new TimeAndCounterIDGenerator(), coreConfig, null);
+            try
+            {
+               context.unbind(key);
+            }
+            catch (Exception e)
+            {
+               log.warn("Impossible to unbind key " + key + " from JNDI");
+            }
          }
-         else
-         {
-            storage = new NullJMSStorageManagerImpl();
-         }
       }
+   }
 
-      storage.start();
+   /**
+    * @param server
+    */
+   private void initJournal() throws Exception
+   {
+      this.coreConfig = server.getConfiguration();
+      
 
+      createJournal();
+      
+      storage.load();
+
       List<PersistedConnectionFactory> cfs = storage.recoverConnectionFactories();
 
       for (PersistedConnectionFactory cf : cfs)
@@ -1428,6 +1469,33 @@
       }
    }
 
+   /**
+    * @throws Exception
+    */
+   private void createJournal() throws Exception
+   {
+      if (storage == null)
+      {
+         if (coreConfig.isPersistenceEnabled())
+         {
+            storage = new JournalJMSStorageManagerImpl(new TimeAndCounterIDGenerator(), server.getConfiguration(), server.getReplicationManager());
+         }
+         else
+         {
+            storage = new NullJMSStorageManagerImpl();
+         }
+      }
+      else
+      {
+         if (storage.isStarted())
+         {
+            storage.stop();
+         }
+      }
+
+      storage.start();
+   }
+
    private synchronized boolean removeFromJNDI(final Map<String, List<String>> jndiMap, final String name) throws Exception
    {
       checkInitialised();

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/cluster/JMSFailoverTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/cluster/JMSFailoverTest.java	2010-03-28 21:01:50 UTC (rev 8987)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/cluster/JMSFailoverTest.java	2010-03-29 02:53:39 UTC (rev 8988)
@@ -26,6 +26,7 @@
 import javax.jms.Queue;
 import javax.jms.Session;
 import javax.jms.TextMessage;
+import javax.naming.NamingException;
 
 import junit.framework.Assert;
 
@@ -45,7 +46,10 @@
 import org.hornetq.jms.client.HornetQConnectionFactory;
 import org.hornetq.jms.client.HornetQDestination;
 import org.hornetq.jms.client.HornetQSession;
+import org.hornetq.jms.server.JMSServerManager;
+import org.hornetq.jms.server.impl.JMSServerManagerImpl;
 import org.hornetq.spi.core.protocol.RemotingConnection;
+import org.hornetq.tests.unit.util.InVMContext;
 import org.hornetq.tests.util.RandomUtil;
 import org.hornetq.tests.util.UnitTestCase;
 
@@ -69,12 +73,24 @@
    // Constants -----------------------------------------------------
 
    // Attributes ----------------------------------------------------
+   
+   protected InVMContext ctx1 = new InVMContext();
+   
+   protected InVMContext ctx2 = new InVMContext();
+   
+   protected Configuration backupConf;
+   
+   protected Configuration liveConf;
+   
+   protected JMSServerManager liveJMSService;
 
-   private HornetQServer liveService;
+   protected HornetQServer liveService;
+   
+   protected JMSServerManager backupJMSService;
 
-   private HornetQServer backupService;
+   protected HornetQServer backupService;
 
-   private Map<String, Object> backupParams = new HashMap<String, Object>();
+   protected Map<String, Object> backupParams = new HashMap<String, Object>();
 
    // Static --------------------------------------------------------
 
@@ -82,6 +98,63 @@
 
    // Public --------------------------------------------------------
 
+   public void testCreateQueue() throws Exception
+   {
+      liveJMSService.createQueue("queue1", null, true, "/queue/queue1");
+      assertNotNull(ctx1.lookup("/queue/queue1"));
+      liveJMSService.stop();
+
+      Object obj = null;
+
+      try
+      {
+         obj = ctx1.lookup("/queue/queue1");
+      }
+      catch (NamingException expected)
+      {
+
+      }
+
+      assertNull(obj);
+
+      backupJMSService.stop();
+
+      backupConf.setBackup(false);
+
+      backupJMSService.start();
+
+      assertNotNull(ctx2.lookup("/queue/queue1"));
+   }
+
+
+   public void testCreateTopic() throws Exception
+   {
+      liveJMSService.createTopic("topic", "/topic/t1");
+      assertNotNull(ctx1.lookup("//topic/t1"));
+      liveJMSService.stop();
+
+      Object obj = null;
+
+      try
+      {
+         obj = ctx1.lookup("//topic/t1");
+      }
+      catch (NamingException expected)
+      {
+
+      }
+
+      assertNull(obj);
+
+      backupJMSService.stop();
+
+      backupConf.setBackup(false);
+
+      backupJMSService.start();
+
+      assertNotNull(ctx2.lookup("/topic/t1"));
+   }
+
    public void testAutomaticFailover() throws Exception
    {
       HornetQConnectionFactory jbcf = (HornetQConnectionFactory) HornetQJMSClient.createConnectionFactory(new TransportConfiguration("org.hornetq.core.remoting.impl.invm.InVMConnectorFactory"),
@@ -258,7 +331,15 @@
    {
       super.setUp();
 
-      Configuration backupConf = new ConfigurationImpl();
+      startServers();
+   }
+
+   /**
+    * @throws Exception
+    */
+   protected void startServers() throws Exception
+   {
+      backupConf = new ConfigurationImpl();
       backupConf.setSecurityEnabled(false);
       backupParams.put(TransportConstants.SERVER_ID_PROP_NAME, 1);
       backupConf.getAcceptorConfigurations()
@@ -271,9 +352,16 @@
       backupConf.setPagingDirectory(getPageDir());
       backupConf.setLargeMessagesDirectory(getLargeMessagesDir());
       backupService = HornetQServers.newHornetQServer(backupConf, true);
-      backupService.start();
 
-      Configuration liveConf = new ConfigurationImpl();
+      backupJMSService = new JMSServerManagerImpl(backupService);
+      
+      backupJMSService.setContext(ctx2);
+      
+      backupJMSService.start();
+      
+
+
+      liveConf = new ConfigurationImpl();
       liveConf.setSecurityEnabled(false);
       liveConf.getAcceptorConfigurations()
               .add(new TransportConfiguration("org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory"));
@@ -285,19 +373,33 @@
       liveConf.setLargeMessagesDirectory(getLargeMessagesDir());
 
       liveService = HornetQServers.newHornetQServer(liveConf, true);
-      liveService.start();
+      
+      liveJMSService = new JMSServerManagerImpl(liveService);
+      
+      liveJMSService.setContext(ctx1);
+
+      liveJMSService.start();
+
    }
 
    @Override
    protected void tearDown() throws Exception
    {
-      backupService.stop();
+      backupJMSService.stop();
 
-      liveService.stop();
+      liveJMSService.stop();
 
       Assert.assertEquals(0, InVMRegistry.instance.size());
 
       liveService = null;
+      
+      liveJMSService = null;
+      
+      backupJMSService = null;
+      
+      ctx1 = null;
+      
+      ctx2 = null;
 
       backupService = null;
 

Added: trunk/tests/src/org/hornetq/tests/integration/jms/cluster/ReplicatedJMSFailoverTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/cluster/ReplicatedJMSFailoverTest.java	                        (rev 0)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/cluster/ReplicatedJMSFailoverTest.java	2010-03-29 02:53:39 UTC (rev 8988)
@@ -0,0 +1,102 @@
+/*
+ * Copyright 2010 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.cluster;
+
+import org.hornetq.api.core.TransportConfiguration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
+import org.hornetq.core.remoting.impl.invm.TransportConstants;
+import org.hornetq.core.server.HornetQServers;
+import org.hornetq.jms.server.impl.JMSServerManagerImpl;
+
+/**
+ * A ReplicatedJMSFailoverTest
+ *
+ * @author <mailto:clebert.suconic at jboss.org">Clebert Suconic</a>
+ *
+ *
+ */
+public class ReplicatedJMSFailoverTest extends JMSFailoverTest
+{
+
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+   /**
+    * @throws Exception
+    */
+   @Override
+   protected void startServers() throws Exception
+   {
+      backupConf = new ConfigurationImpl();
+      backupConf.setSecurityEnabled(false);
+      backupParams.put(TransportConstants.SERVER_ID_PROP_NAME, 1);
+      backupConf.getAcceptorConfigurations()
+                .add(new TransportConfiguration("org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory", backupParams));
+      backupConf.setBackup(true);
+      backupConf.setSharedStore(false);
+      backupConf.setBindingsDirectory(getBindingsDir(0, true));
+      backupConf.setJournalMinFiles(2);
+      backupConf.setJournalDirectory(getJournalDir(0, true));
+      backupConf.setPagingDirectory(getPageDir(0, true));
+      backupConf.setLargeMessagesDirectory(getLargeMessagesDir(0, true));
+      backupService = HornetQServers.newHornetQServer(backupConf, true);
+      
+      backupJMSService = new JMSServerManagerImpl(backupService);
+      
+      backupJMSService.setContext(ctx2);
+
+      backupJMSService.start();
+      
+
+
+      liveConf = new ConfigurationImpl();
+      liveConf.setSecurityEnabled(false);
+      
+      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.setSharedStore(false);
+      liveConf.setBindingsDirectory(getBindingsDir(0, false));
+      liveConf.setJournalMinFiles(2);
+      liveConf.setJournalDirectory(getJournalDir(0, false));
+      liveConf.setPagingDirectory(getPageDir(0, false));
+      liveConf.setLargeMessagesDirectory(getLargeMessagesDir(0, false));
+
+      liveService = HornetQServers.newHornetQServer(liveConf, true);
+      
+      liveJMSService = new JMSServerManagerImpl(liveService);
+      
+      liveJMSService.setContext(ctx1);
+
+      liveJMSService.start();
+
+   }
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+
+}

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlTest.java	2010-03-28 21:01:50 UTC (rev 8987)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlTest.java	2010-03-29 02:53:39 UTC (rev 8988)
@@ -35,6 +35,7 @@
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.remoting.impl.invm.TransportConstants;
+import org.hornetq.core.replication.ReplicationEndpoint;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.core.server.HornetQServers;
 import org.hornetq.jms.client.HornetQConnectionFactory;
@@ -599,6 +600,20 @@
       {
          return false;  //To change body of implemented methods use File | Settings | File Templates.
       }
+
+      /* (non-Javadoc)
+       * @see org.hornetq.jms.persistence.JMSStorageManager#installReplication(org.hornetq.core.replication.ReplicationEndpoint)
+       */
+      public void installReplication(ReplicationEndpoint replicationEndpoint) throws Exception
+      {
+      }
+
+      /* (non-Javadoc)
+       * @see org.hornetq.jms.persistence.JMSStorageManager#load()
+       */
+      public void load() throws Exception
+      {
+      }
    }
 
 }
\ No newline at end of file



More information about the hornetq-commits mailing list