Package org.jboss.test.cluster.web

Source Code of org.jboss.test.cluster.web.TestConfigurationAdder

/*
* JBoss, Home of Professional Open Source.
* Copyright 2008, Red Hat Middleware LLC, and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
* distribution for a full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/

package org.jboss.test.cluster.web;

import org.jboss.cache.config.Configuration;
import org.jboss.cache.config.Configuration.CacheMode;
import org.jboss.cache.config.ConfigurationRegistry;

/**
* Utility that analyzes the set of available cache configurations in
* a ConfigurationRegistry and adds alternatives with different CacheMode
* and buddy replication settings
*
* @author Brian Stansberry
*/
public class TestConfigurationAdder
{
   public static final String DEFAULT_STD_SESSION_CFG = "standard-session-cache";
   public static final String DEFAULT_FIELD_SESSION_CFG = "field-granularity-session-cache";
  
   private ConfigurationRegistry configurationRegistry;
   private String standardSessionConfig = DEFAULT_STD_SESSION_CFG;
   private String fieldSessionConfig = DEFAULT_FIELD_SESSION_CFG;
   private boolean addAlternateCacheMode;
   private boolean addAlternateBuddyReplication;
  
   public void start() throws Exception
   {
      createAlternates(standardSessionConfig, configurationRegistry.getConfiguration(standardSessionConfig));     
      createAlternates(fieldSessionConfig, configurationRegistry.getConfiguration(fieldSessionConfig));     
   }

   private void createAlternates(String stdName, Configuration std) throws Exception
   {
      CacheMode altCacheMode = (std.getCacheMode() == CacheMode.REPL_ASYNC) ? CacheMode.REPL_SYNC : CacheMode.REPL_ASYNC;
      String altCacheModeTag = (altCacheMode == CacheMode.REPL_ASYNC ? "async" : "sync");
      boolean brEnabled = !std.getBuddyReplicationConfig().isEnabled();
      String altBrTag = (brEnabled ? "br-enabled" : "br-disabled");
     
      String altModeName = altCacheModeTag + "-" + stdName;
      if (configurationRegistry.getConfigurationNames().contains(altModeName) == false)
      {
         Configuration altMode = std.clone();
         altMode.setCacheMode(altCacheMode);
         altMode.setClusterName(altModeName);
         configurationRegistry.registerConfiguration(altModeName, altMode);
      }
     
      String altBrName = altBrTag + "-" + stdName;
      if (configurationRegistry.getConfigurationNames().contains(altBrName) == false)
      {
         Configuration altBr = std.clone();
         altBr.getBuddyReplicationConfig().setEnabled(brEnabled);
         altBr.setClusterName(altBrName);
         configurationRegistry.registerConfiguration(altBrName, altBr);
      }
     
      String altCombinedName = altBrTag + "-" + altCacheModeTag + "-" + stdName;
      if (configurationRegistry.getConfigurationNames().contains(altCombinedName) == false)
      {
         Configuration altCombined = std.clone();
         altCombined.setCacheMode(altCacheMode);
         altCombined.getBuddyReplicationConfig().setEnabled(brEnabled);
         altCombined.setClusterName(altCombinedName);
         configurationRegistry.registerConfiguration(altCombinedName, altCombined);
      }
   }


   public ConfigurationRegistry getConfigurationRegistry()
   {
      return configurationRegistry;
   }
   public void setConfigurationRegistry(ConfigurationRegistry configurationRegistry)
   {
      this.configurationRegistry = configurationRegistry;
   }
   public String getStandardSessionConfig()
   {
      return standardSessionConfig;
   }
   public void setStandardSessionConfig(String standardSessionConfig)
   {
      this.standardSessionConfig = standardSessionConfig;
   }
   public String getFieldSessionConfig()
   {
      return fieldSessionConfig;
   }
   public void setFieldSessionConfig(String fieldSessionConfig)
   {
      this.fieldSessionConfig = fieldSessionConfig;
   }
   public boolean isAddAlternateCacheMode()
   {
      return addAlternateCacheMode;
   }
   public void setAddAlternateCacheMode(boolean addAlternateCacheMode)
   {
      this.addAlternateCacheMode = addAlternateCacheMode;
   }
   public boolean isAddAlternateBuddyReplication()
   {
      return addAlternateBuddyReplication;
   }
   public void setAddAlternateBuddyReplication(boolean addAlternateBuddyReplication)
   {
      this.addAlternateBuddyReplication = addAlternateBuddyReplication;
   }
  
  

}
TOP

Related Classes of org.jboss.test.cluster.web.TestConfigurationAdder

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.