[infinispan-commits] Infinispan SVN: r975 - in trunk/core/src: main/java/org/infinispan/loaders/file and 2 other directories.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Mon Oct 19 16:11:13 EDT 2009


Author: vblagojevic at jboss.com
Date: 2009-10-19 16:11:12 -0400 (Mon, 19 Oct 2009)
New Revision: 975

Modified:
   trunk/core/src/main/java/org/infinispan/config/InfinispanConfiguration.java
   trunk/core/src/main/java/org/infinispan/config/TypedPropertiesAdapter.java
   trunk/core/src/main/java/org/infinispan/loaders/file/FileCacheStore.java
   trunk/core/src/main/java/org/infinispan/remoting/transport/jgroups/CommandAwareRpcDispatcher.java
   trunk/core/src/test/resources/stacks/tcp.xml
   trunk/core/src/test/resources/stacks/udp.xml
Log:
[ISPN-192] - Use JGroups 2.8 feature: flag to override message bundling at the transport level
bundling on

handle MinimalConfigurationParsingTest use case
handle token replacement for <property>


Modified: trunk/core/src/main/java/org/infinispan/config/InfinispanConfiguration.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/InfinispanConfiguration.java	2009-10-19 16:47:11 UTC (rev 974)
+++ trunk/core/src/main/java/org/infinispan/config/InfinispanConfiguration.java	2009-10-19 20:11:12 UTC (rev 975)
@@ -24,8 +24,6 @@
 import org.infinispan.Version;
 import org.infinispan.config.parsing.XmlConfigurationParser;
 import org.infinispan.util.FileLookup;
-import org.infinispan.util.logging.Log;
-import org.infinispan.util.logging.LogFactory;
 
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.Unmarshaller;
@@ -41,7 +39,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
-import java.util.Collections;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -67,8 +65,6 @@
 @XmlAccessorType(XmlAccessType.FIELD)
 public class InfinispanConfiguration implements XmlConfigurationParser {
 
-   private static Log log = LogFactory.getLog(InfinispanConfiguration.class);
-
    public static final String VALIDATING_SYSTEM_PROPERTY = "infinispan.config.validate";
 
    public static final String SCHEMA_SYSTEM_PROPERTY = "infinispan.config.schema";
@@ -80,13 +76,13 @@
    private static final String DEFAULT_SCHEMA_URL = "http://www.jboss.org/infinispan/infinispan-config-" + Version.getMajorVersion() + ".xsd";
 
    @XmlElement
-   private GlobalConfiguration global;
+   private final GlobalConfiguration global = new GlobalConfiguration();
 
    @XmlElement(name = "default")
-   private Configuration defaultConfiguration;
+   private final Configuration defaultConfiguration = new Configuration();
 
    @XmlElement(name = "namedCache")
-   private List<Configuration> namedCaches;
+   private final List<Configuration> namedCaches = new ArrayList<Configuration>();
 
    /**
     * Factory method to create an instance of Infinispan configuration. If users want to verify configuration file
@@ -207,7 +203,6 @@
          InfinispanConfiguration ic = (InfinispanConfiguration) u.unmarshal(config);     
          // legacy, don't ask
          GlobalConfiguration gconf = ic.parseGlobalConfiguration();
-         if (gconf == null) throw new ConfigurationException("Unable to parse configuration file.  Possibly an old or invalid configuration file?");
          gconf.setDefaultConfiguration(ic.parseDefaultConfiguration());
          if (cbv != null) {
             ic.accept(cbv);
@@ -272,12 +267,10 @@
    
    public void accept(ConfigurationBeanVisitor v) {
       global.accept(v);
-      defaultConfiguration.accept(v);
-      if (namedCaches != null) {
-         for (Configuration c : namedCaches) {
-            c.accept(v);
-         }
-      }      
+      defaultConfiguration.accept(v);      
+      for (Configuration c : namedCaches) {
+         c.accept(v);
+      }            
       v.visitInfinispanConfiguration(this);
    }
 
@@ -300,8 +293,7 @@
       return global;
    }
 
-   public Map<String, Configuration> parseNamedConfigurations() throws ConfigurationException {
-      if (namedCaches == null) return Collections.emptyMap();
+   public Map<String, Configuration> parseNamedConfigurations() throws ConfigurationException {      
       Map<String, Configuration> map = new HashMap<String, Configuration>(7);
       for (Configuration conf : namedCaches) {
          map.put(conf.getName(), conf);

Modified: trunk/core/src/main/java/org/infinispan/config/TypedPropertiesAdapter.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/TypedPropertiesAdapter.java	2009-10-19 16:47:11 UTC (rev 974)
+++ trunk/core/src/main/java/org/infinispan/config/TypedPropertiesAdapter.java	2009-10-19 20:11:12 UTC (rev 975)
@@ -21,7 +21,11 @@
  */
 package org.infinispan.config;
 
+import org.infinispan.loaders.file.FileCacheStore;
 import org.infinispan.util.TypedProperties;
+import org.infinispan.util.logging.Log;
+import org.infinispan.util.logging.LogFactory;
+import org.jboss.util.StringPropertyReplacer;
 
 import javax.xml.bind.annotation.adapters.XmlAdapter;
 import java.util.Map.Entry;
@@ -33,6 +37,8 @@
  * @since 4.0
  */
 public class TypedPropertiesAdapter extends XmlAdapter<PropertiesType, TypedProperties> {
+   
+   private static final Log log = LogFactory.getLog(TypedPropertiesAdapter.class);
 
    @Override
    public PropertiesType marshal(TypedProperties tp) throws Exception {
@@ -55,6 +61,19 @@
       TypedProperties tp = new TypedProperties();
       if (props != null && props.properties != null) {
          for (Property p : props.properties) {
+            if (p.value != null) {
+               String originalValue = p.value;
+               boolean needsTokenReplacement = originalValue.indexOf('$') >= 0
+                        && originalValue.indexOf('{') > 0 && originalValue.indexOf('}') > 0;
+
+               if (needsTokenReplacement) {
+                  p.value = StringPropertyReplacer.replaceProperties(originalValue);
+                  if (originalValue.equals(p.value)) {
+                     log.warn("Property " + p.name + " with value " + originalValue
+                              + " could not be replaced as intended!");
+                  }
+               }
+            }
             tp.put(p.name, p.value);
          }
       }

Modified: trunk/core/src/main/java/org/infinispan/loaders/file/FileCacheStore.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/loaders/file/FileCacheStore.java	2009-10-19 16:47:11 UTC (rev 974)
+++ trunk/core/src/main/java/org/infinispan/loaders/file/FileCacheStore.java	2009-10-19 20:11:12 UTC (rev 975)
@@ -215,8 +215,10 @@
          location = "Infinispan-FileCacheStore"; // use relative path!
       location += File.separator + cache.getName();
       root = new File(location);
-      if (!root.mkdirs()) {
-         log.warn("Problems creting the directory: " + root);  
+      if(!root.exists()) {
+         if (!root.mkdirs()) {
+            log.warn("Problems creating the directory: " + root);  
+         }
       }
       if (!root.exists()) {
          throw new ConfigurationException("Directory " + root.getAbsolutePath() + " does not exist and cannot be created!");

Modified: trunk/core/src/main/java/org/infinispan/remoting/transport/jgroups/CommandAwareRpcDispatcher.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/remoting/transport/jgroups/CommandAwareRpcDispatcher.java	2009-10-19 16:47:11 UTC (rev 974)
+++ trunk/core/src/main/java/org/infinispan/remoting/transport/jgroups/CommandAwareRpcDispatcher.java	2009-10-19 20:11:12 UTC (rev 975)
@@ -228,7 +228,14 @@
          // if there is a JOIN in progress, wait for this to complete.
          // See ISPN-83 for more details.  Once ISPN-83 is addressed, this may no longer be needed.
          distributedSync.blockUntilNoJoinsInProgress();
-
+         
+         //Use JGroups 2.8 feature Message.DONT_BUNDLE flag to override message bundling at the transport level
+         //for asynchronous calls
+         //See ISPN-192 for more details
+         if (mode != GroupRequest.GET_NONE) {
+            msg.setFlag(Message.DONT_BUNDLE);
+         }
+         
          RspList retval = castMessage(dests, msg, mode, timeout, anycasting, filter);
          if (trace) log.trace("responses: {0}", retval);
 
@@ -254,6 +261,10 @@
             }
 
             if (replay && ignorers.size() > 0) {
+               //Since we are making a sync call make sure we don't bundle
+               //See ISPN-192 for more details               
+               msg.setFlag(Message.DONT_BUNDLE);
+               
                if (trace)
                   log.trace("Replaying message to ignoring senders: " + ignorers);
                RspList responses = castMessage(ignorers, msg, GroupRequest.GET_ALL, timeout, anycasting, filter);

Modified: trunk/core/src/test/resources/stacks/tcp.xml
===================================================================
--- trunk/core/src/test/resources/stacks/tcp.xml	2009-10-19 16:47:11 UTC (rev 974)
+++ trunk/core/src/test/resources/stacks/tcp.xml	2009-10-19 20:11:12 UTC (rev 975)
@@ -9,27 +9,27 @@
         discard_incompatible_packets="true"
         max_bundle_size="64000"
         max_bundle_timeout="30"
-        enable_bundling="false"
-        use_send_queues="false"
+        enable_bundling="true"
+        use_send_queues="true"
         sock_conn_timeout="300"
         enable_diagnostics="false"
         skip_suspected_members="true"
  
         thread_pool.enabled="true"
-        thread_pool.min_threads="1"
-        thread_pool.max_threads="25"
+        thread_pool.min_threads="2"
+        thread_pool.max_threads="8"
         thread_pool.keep_alive_time="5000"
         thread_pool.queue_enabled="false"
         thread_pool.queue_max_size="100"
-        thread_pool.rejection_policy="run"
+        thread_pool.rejection_policy="Run"
 
         oob_thread_pool.enabled="true"
-        oob_thread_pool.min_threads="1"
+        oob_thread_pool.min_threads="2"
         oob_thread_pool.max_threads="8"
         oob_thread_pool.keep_alive_time="5000"
         oob_thread_pool.queue_enabled="false"
         oob_thread_pool.queue_max_size="100"
-        oob_thread_pool.rejection_policy="run"/>
+        oob_thread_pool.rejection_policy="Run"/>
 
    <TCPPING timeout="3000"
             initial_hosts="localhost[7800],localhost[7801]}"

Modified: trunk/core/src/test/resources/stacks/udp.xml
===================================================================
--- trunk/core/src/test/resources/stacks/udp.xml	2009-10-19 16:47:11 UTC (rev 974)
+++ trunk/core/src/test/resources/stacks/udp.xml	2009-10-19 20:11:12 UTC (rev 975)
@@ -14,7 +14,7 @@
          max_bundle_size="64000"
          max_bundle_timeout="30"
          ip_ttl="${jgroups.udp.ip_ttl:0}"
-         enable_bundling="false"
+         enable_bundling="true"
          enable_diagnostics="false"
  
          thread_naming_pattern="pl"
@@ -28,7 +28,7 @@
          thread_pool.rejection_policy="Run"
 
          oob_thread_pool.enabled="true"
-         oob_thread_pool.min_threads="1"
+         oob_thread_pool.min_threads="2"
          oob_thread_pool.max_threads="8"
          oob_thread_pool.keep_alive_time="5000"
          oob_thread_pool.queue_enabled="false"



More information about the infinispan-commits mailing list