[jbosscache-commits] JBoss Cache SVN: r4691 - in core/trunk/src: main/java/org/jboss/cache/config and 2 other directories.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Fri Oct 26 08:15:22 EDT 2007


Author: manik.surtani at jboss.com
Date: 2007-10-26 08:15:22 -0400 (Fri, 26 Oct 2007)
New Revision: 4691

Modified:
   core/trunk/src/main/java/org/jboss/cache/CacheImpl.java
   core/trunk/src/main/java/org/jboss/cache/config/Configuration.java
   core/trunk/src/test/java/org/jboss/cache/factories/UnitTestCacheConfigurationFactory.java
   core/trunk/src/test/java/org/jboss/cache/replicated/ExceptionTest.java
Log:
Updated cfg to use jgroups flush-udp.xml file by default, and added helpers to UnitTestCacheConfigurationFactory to inject delays.

Modified: core/trunk/src/main/java/org/jboss/cache/CacheImpl.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/CacheImpl.java	2007-10-26 10:46:14 UTC (rev 4690)
+++ core/trunk/src/main/java/org/jboss/cache/CacheImpl.java	2007-10-26 12:15:22 UTC (rev 4691)
@@ -4273,28 +4273,32 @@
             if (log.isDebugEnabled())
             {
                log.debug("Created Multiplexer Channel for cache cluster " + configuration.getClusterName() +
-                       " using stack " + configuration.getMultiplexerStack());
+                         " using stack " + configuration.getMultiplexerStack());
             }
          }
          else
          {
-            if (configuration.getClusterConfig() == null)
-            {
-               log.debug("setting cluster properties to default value");
-               configuration.setClusterConfig(configuration.getDefaultClusterConfig());
-            }
+
             try
             {
-               channel = new JChannel(configuration.getClusterConfig());
+               if (configuration.getClusterConfig() == null)
+               {
+                  log.debug("setting cluster properties to default value");
+                  channel = new JChannel(configuration.getDefaultClusterConfig());
+               }
+               else
+               {
+                  if (log.isTraceEnabled())
+                  {
+                     log.trace("Cache cluster properties: " + configuration.getClusterConfig());
+                  }
+                  channel = new JChannel(configuration.getClusterConfig());
+               }
             }
-            catch (Exception e)
+            catch (ChannelException el)
             {
-               throw new CacheException("Unable to create JGroups channel", e);
+               el.printStackTrace();
             }
-            if (log.isTraceEnabled())
-            {
-               log.trace("cache properties: " + configuration.getClusterConfig());
-            }
          }
 
          configuration.getRuntimeConfig().setChannel(channel);

Modified: core/trunk/src/main/java/org/jboss/cache/config/Configuration.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/config/Configuration.java	2007-10-26 10:46:14 UTC (rev 4690)
+++ core/trunk/src/main/java/org/jboss/cache/config/Configuration.java	2007-10-26 12:15:22 UTC (rev 4691)
@@ -12,6 +12,7 @@
 import org.jboss.cache.lock.IsolationLevel;
 import org.w3c.dom.Element;
 
+import java.net.URL;
 import java.util.Locale;
 
 /**
@@ -629,23 +630,14 @@
    }
 
    /**
-    * Returns the default JGroup properties.
+    * Returns a {@link java.net.URL} to a default JGroups configuration file.
+    * @return a default JGroups config file
     */
-   public String getDefaultClusterConfig()
+   public URL getDefaultClusterConfig()
    {
-      return "UDP(mcast_addr=224.0.0.36;mcast_port=55566;ip_ttl=32;" +
-              "mcast_send_buf_size=150000;mcast_recv_buf_size=80000):" +
-              "PING(timeout=1000;num_initial_members=2):" +
-              "MERGE2(min_interval=5000;max_interval=10000):" +
-              "FD_SOCK:" +
-              "VERIFY_SUSPECT(timeout=1500):" +
-              "pbcast.NAKACK(gc_lag=50;retransmit_timeout=600,1200,2400,4800):" +
-              "UNICAST(timeout=600,1200,2400,4800):" +
-              "pbcast.STABLE(desired_avg_gossip=20000):" +
-              "FRAG(frag_size=8192):" +
-              "pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;" +
-              "shun=false;print_local_addr=true):" +
-              "pbcast.STATE_TRANSFER";
+      URL url = getClass().getClassLoader().getResource("flush-udp.xml");
+      if (log.isTraceEnabled()) log.trace("Using default JGroups configuration file " + url);
+      return url;
    }
 
 

Modified: core/trunk/src/test/java/org/jboss/cache/factories/UnitTestCacheConfigurationFactory.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/factories/UnitTestCacheConfigurationFactory.java	2007-10-26 10:46:14 UTC (rev 4690)
+++ core/trunk/src/test/java/org/jboss/cache/factories/UnitTestCacheConfigurationFactory.java	2007-10-26 12:15:22 UTC (rev 4691)
@@ -12,10 +12,12 @@
 import org.jboss.cache.config.ConfigurationException;
 import org.jboss.cache.transaction.TransactionSetup;
 import org.jboss.cache.xml.XmlHelper;
+import org.jgroups.conf.XmlConfigurator;
 import org.w3c.dom.Element;
 import org.w3c.dom.NodeList;
 
 import java.io.InputStream;
+import java.net.URL;
 
 /**
  * Cache configuration factory used by unit tests.
@@ -89,6 +91,47 @@
       return XmlConfigurationParser.parseCacheLoaderConfig(element);
    }
 
+   /**
+    * Helper method that takes a <b>JGroups</b> configuration file and creates an old-style JGroups config {@link String} that can be used
+    * in {@link org.jboss.cache.config.Configuration#setClusterConfig(String)}.  Note that expressions
+    * in the file - such as <tt>${jgroups.udp.mcast_port:45588}</tt> are expanded out accordingly.
+    * @param url url to the cfg file
+    * @return a String
+    */
+   public static String getClusterConfigFromFile(URL url)
+   {
+      try
+      {
+         XmlConfigurator conf = XmlConfigurator.getInstance(url);
+         String tmp = conf.getProtocolStackString();
+         // parse this string for ${} substitutions
+         // Highly crappy approach!!
+         tmp = tmp.replace("${jgroups.udp.mcast_addr:228.10.10.10}", "228.10.10.10");
+         tmp = tmp.replace("${jgroups.udp.mcast_port:45588}", "45588");
+         tmp = tmp.replace("${jgroups.udp.ip_ttl:2}", "2");
+         System.out.println("config string: " + tmp);
+         return tmp;
+
+      }
+      catch (Exception e)
+      {
+         throw new RuntimeException("Problems with url " + url, e);
+      }
+   }
+
+   /**
+    * Takes a JGroups configuration "old-style" String and injects the "DELAY" protcol.
+    * @param jgroupsConfigString JGroups config string
+    * @param incomingDelay incoming delay
+    * @param outgoingDelay outgoing delay
+    * @return new string
+    */
+   public static String injectDelay(String jgroupsConfigString, int incomingDelay, int outgoingDelay)
+   {
+      String delay = ":DELAY(in_delay=" +incomingDelay+ ";out_delay="+outgoingDelay+")";
+      return jgroupsConfigString.substring(0, jgroupsConfigString.indexOf(":")) + delay + jgroupsConfigString.substring(jgroupsConfigString.indexOf(":"));
+   }
+
    private static class UnitTestXmlConfigurationParser extends XmlConfigurationParser
    {
 

Modified: core/trunk/src/test/java/org/jboss/cache/replicated/ExceptionTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/replicated/ExceptionTest.java	2007-10-26 10:46:14 UTC (rev 4690)
+++ core/trunk/src/test/java/org/jboss/cache/replicated/ExceptionTest.java	2007-10-26 12:15:22 UTC (rev 4691)
@@ -1,11 +1,11 @@
 package org.jboss.cache.replicated;
 
 import org.jboss.cache.Cache;
-import org.jboss.cache.CacheImpl;
 import org.jboss.cache.DefaultCacheFactory;
 import org.jboss.cache.Fqn;
 import org.jboss.cache.ReplicationException;
 import org.jboss.cache.config.Configuration;
+import org.jboss.cache.factories.UnitTestCacheConfigurationFactory;
 import org.jboss.cache.lock.TimeoutException;
 import org.jboss.cache.misc.TestingUtil;
 import org.jboss.cache.transaction.DummyTransactionManagerLookup;
@@ -58,11 +58,9 @@
    {
       cache1.getConfiguration().setSyncReplTimeout(1); // 1ms.  this is *bound* to fail.
       cache2.getConfiguration().setSyncReplTimeout(1);
+      String s = UnitTestCacheConfigurationFactory.getClusterConfigFromFile(cache1.getConfiguration().getDefaultClusterConfig());
+      String newCfg = UnitTestCacheConfigurationFactory.injectDelay(s, 100, 100);
 
-      String jgroupsCfg = cache1.getConfiguration().getDefaultClusterConfig();
-      String delay = ":DELAY(in_delay=100;out_delay=100)";
-      String newCfg = jgroupsCfg.substring(0, jgroupsCfg.indexOf(":")) + delay + jgroupsCfg.substring(jgroupsCfg.indexOf(":"));
-
       cache1.getConfiguration().setClusterConfig(newCfg);
       cache2.getConfiguration().setClusterConfig(newCfg);
 




More information about the jbosscache-commits mailing list