Package org.hornetq.tests.integration.persistence

Source Code of org.hornetq.tests.integration.persistence.JMSConnectionFactoryConfigurationStorageTest

/*
* Copyright 2009 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.persistence;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.hornetq.api.core.HornetQBuffer;
import org.hornetq.api.core.HornetQBuffers;
import org.hornetq.api.core.Pair;
import org.hornetq.api.core.TransportConfiguration;
import org.hornetq.core.remoting.impl.netty.NettyConnectorFactory;
import org.hornetq.core.remoting.impl.netty.TransportConstants;
import org.hornetq.jms.persistence.config.PersistedConnectionFactory;
import org.hornetq.jms.server.config.ConnectionFactoryConfiguration;
import org.hornetq.jms.server.config.impl.ConnectionFactoryConfigurationImpl;
import org.hornetq.tests.util.RandomUtil;

/**
* A JMSConnectionFactoryConfigurationStorageTest
*
* @author <mailto:clebert.suconic@jboss.org">Clebert Suconic</a>
*
*
*/
public class JMSConnectionFactoryConfigurationStorageTest extends StorageManagerTestBase
{

   private Map<String, PersistedConnectionFactory> mapExpectedCFs;

   @Override
   protected void setUp() throws Exception
   {
      super.setUp();

      mapExpectedCFs = new HashMap<String, PersistedConnectionFactory>();
   }

   @Override
   protected void tearDown() throws Exception
   {
      mapExpectedCFs = null;

      super.tearDown();
   }

   protected void addSetting(PersistedConnectionFactory setting) throws Exception
   {
      mapExpectedCFs.put(setting.getName(), setting);
      jmsJournal.storeConnectionFactory(setting);
   }

   public void testSettings() throws Exception
   {

      createJMSStorage();
     
      List<Pair<TransportConfiguration, TransportConfiguration>> transportConfigs = new ArrayList<Pair<TransportConfiguration, TransportConfiguration>>();
     
      for (int i = 0 ; i < 5; i++)
      {
         TransportConfiguration config1 = new TransportConfiguration("c1-" + i);
         TransportConfiguration config2 = new TransportConfiguration("c2-" + i);
         transportConfigs.add(new Pair<TransportConfiguration, TransportConfiguration>(config1, config2));
      }
     

      ConnectionFactoryConfiguration config = new ConnectionFactoryConfigurationImpl("some-name", transportConfigs);

      addSetting(new PersistedConnectionFactory(config));

      jmsJournal.stop();

      createJMSStorage();

      List<PersistedConnectionFactory> cfs = jmsJournal.recoverConnectionFactories();

      assertEquals(1, cfs.size());

      assertEquals("some-name", cfs.get(0).getName());
     
      PersistedConnectionFactory cf1 = cfs.get(0);
     
      assertEquals(5, cf1.getConfig().getConnectorConfigs().size());
     
      int i = 0 ;
      for (Pair<TransportConfiguration, TransportConfiguration> itemCf : cf1.getConfig().getConnectorConfigs())
      {
        
         assertEquals(itemCf.a.toString(), "c1-" + i);
         assertEquals(itemCf.b.toString(), "c2-" + i);
         i++;
      }
   }

   public void testSizeOfCF() throws Exception
   {

      String str[] = new String[5];
      for (int i = 0; i < 5; i++)
      {
         str[i] = "str" + i;
      }

      ConnectionFactoryConfiguration config = new ConnectionFactoryConfigurationImpl("some-name", str);

      int size = config.getEncodeSize();

      HornetQBuffer buffer = HornetQBuffers.fixedBuffer(size);

      config.encode(buffer);

      assertEquals(size, buffer.writerIndex());
     
      PersistedConnectionFactory persistedCF = new PersistedConnectionFactory(config);
     
      size = persistedCF.getEncodeSize();

      buffer = HornetQBuffers.fixedBuffer(size);
     
      persistedCF.encode(buffer);
     
      assertEquals(size, buffer.writerIndex());
     
   }
  
   public void testSettingsWithConnectorConfigs() throws Exception
   {

      createJMSStorage();

      String str[] = new String[5];
      for (int i = 0; i < 5; i++)
      {
         str[i] = "str" + i;
      }

      ConnectionFactoryConfiguration config = new ConnectionFactoryConfigurationImpl("some-name", str);
      List<Pair<TransportConfiguration, TransportConfiguration>> connectorConfigs = new ArrayList<Pair<TransportConfiguration,TransportConfiguration>>();
      Map<String, Object> liveParams = new HashMap<String, Object>();
      liveParams.put(TransportConstants.PORT_PROP_NAME, 5665);
      TransportConfiguration live1 = new TransportConfiguration(NettyConnectorFactory.class.getName(), liveParams );
      Map<String, Object> backupParams = new HashMap<String, Object>();
      backupParams.put(TransportConstants.PORT_PROP_NAME, 5775);
      TransportConfiguration backup1 = new TransportConfiguration(NettyConnectorFactory.class.getName(), backupParams);
      Map<String, Object> liveParams2 = new HashMap<String, Object>();
      liveParams2.put(TransportConstants.PORT_PROP_NAME, 6665);
      TransportConfiguration live2 = new TransportConfiguration(NettyConnectorFactory.class.getName(), liveParams2);
     
      connectorConfigs.add(new Pair<TransportConfiguration, TransportConfiguration>(live1, backup1));
      connectorConfigs.add(new Pair<TransportConfiguration, TransportConfiguration>(live2, null));

      config.setConnectorConfigs(connectorConfigs );
      List<Pair<String, String>> connectors = new ArrayList<Pair<String,String>>();
      connectors.add(new Pair<String, String>(RandomUtil.randomString(), null));
      config.setConnectorNames(connectors);
      config.setCallTimeout(RandomUtil.randomPositiveLong());
     
      addSetting(new PersistedConnectionFactory(config));

      jmsJournal.stop();

      createJMSStorage();

      List<PersistedConnectionFactory> cfs = jmsJournal.recoverConnectionFactories();

      assertEquals(1, cfs.size());

      assertEquals("some-name", cfs.get(0).getName());

      assertEquals(config.getCallTimeout(), cfs.get(0).getConfig().getCallTimeout());
   }

   /**
    * @param journal
    * @throws Exception
    */
   private void checkSettings() throws Exception
   {
      List<PersistedConnectionFactory> listSetting = jmsJournal.recoverConnectionFactories();

      assertEquals(mapExpectedCFs.size(), listSetting.size());

      for (PersistedConnectionFactory el : listSetting)
      {
         PersistedConnectionFactory el2 = mapExpectedCFs.get(el.getName());

         assertEquals(el, el2);
      }
   }

}
TOP

Related Classes of org.hornetq.tests.integration.persistence.JMSConnectionFactoryConfigurationStorageTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.