[exo-jcr-commits] exo-jcr SVN: r5955 - in kernel/trunk: exo.kernel.component.ext.cache.impl.infinispan.v5 and 6 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Mon Mar 26 03:27:50 EDT 2012


Author: dkuleshov
Date: 2012-03-26 03:27:46 -0400 (Mon, 26 Mar 2012)
New Revision: 5955

Added:
   kernel/trunk/exo.kernel.container/src/test/resources/tsm-excludes.properties
Modified:
   kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/pom.xml
   kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/src/main/java/org/exoplatform/services/cache/impl/infinispan/ExoCacheFactoryImpl.java
   kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/src/main/java/org/exoplatform/services/ispn/DistributedCacheManager.java
   kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/src/test/java/org/exoplatform/services/cache/impl/infinispan/distributed/TestDistributedExoCache.java
   kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/xml/Configuration.java
   kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/TestPortalContainer.java
   kernel/trunk/pom.xml
Log:
EXOJCR-1739: ported issues:
* EXOJCR-1715
* EXOJCR-1736
* EXOJCR-1789
* EXOJCR-1800

Modified: kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/pom.xml
===================================================================
--- kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/pom.xml	2012-03-23 16:08:49 UTC (rev 5954)
+++ kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/pom.xml	2012-03-26 07:27:46 UTC (rev 5955)
@@ -34,7 +34,7 @@
 		<dependency>
 			<groupId>org.jgroups</groupId>
 			<artifactId>jgroups</artifactId>
-			<version>3.0.2.Final</version>
+         <version>3.0.6.Final</version>
 		</dependency>
 		<dependency>
 			<groupId>org.slf4j</groupId>

Modified: kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/src/main/java/org/exoplatform/services/cache/impl/infinispan/ExoCacheFactoryImpl.java
===================================================================
--- kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/src/main/java/org/exoplatform/services/cache/impl/infinispan/ExoCacheFactoryImpl.java	2012-03-23 16:08:49 UTC (rev 5954)
+++ kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/src/main/java/org/exoplatform/services/cache/impl/infinispan/ExoCacheFactoryImpl.java	2012-03-26 07:27:46 UTC (rev 5955)
@@ -41,12 +41,9 @@
 import org.infinispan.configuration.global.GlobalConfigurationBuilder;
 import org.infinispan.configuration.parsing.ConfigurationBuilderHolder;
 import org.infinispan.configuration.parsing.Parser;
-import org.infinispan.distribution.ch.ConsistentHash;
-import org.infinispan.distribution.ch.DefaultConsistentHash;
 import org.infinispan.eviction.EvictionStrategy;
 import org.infinispan.jmx.MBeanServerLookup;
 import org.infinispan.manager.DefaultCacheManager;
-import org.infinispan.util.Util;
 
 import java.io.InputStream;
 import java.io.Serializable;
@@ -55,6 +52,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.Properties;
 import java.util.Set;
 import java.util.concurrent.Callable;
@@ -168,9 +166,6 @@
       }
       // Initialize the main cache manager
       this.cacheManager = initCacheManager(cacheConfigTemplate);
-      // Register the main cache manager
-      mappingGlobalConfigCacheManager.put(cacheManager.getCacheManagerConfiguration().transport().clusterName(),
-         cacheManager);
    }
 
    /**
@@ -216,10 +211,11 @@
                   throw new ExoCacheInitException("Cannot parse the configuration '" + cacheConfigTemplate + "'", e);
                }
                configureCacheManager(configBuilder);
+               DefaultCacheManager cacheManager;
                try
                {
                   // Create the CacheManager from the new configuration
-                  return new DefaultCacheManager(configBuilder.build(), config);
+                  cacheManager = new DefaultCacheManager(configBuilder.build(), config);
                }
                catch (RuntimeException e) //NOSONAR
                {
@@ -227,6 +223,10 @@
                      "Cannot initialize the CacheManager corresponding to the configuration '" + cacheConfigTemplate
                         + "'", e);
                }
+               // Register the main cache manager
+               mappingGlobalConfigCacheManager.put(cacheManager.getCacheManagerConfiguration().transport().clusterName(),
+                  cacheManager);
+               return cacheManager;
             }
          });
       }
@@ -344,10 +344,9 @@
                            currentCacheManager =
                               new DefaultCacheManager(configBuilder.build(), holder.getDefaultConfigurationBuilder()
                                  .build(), false);
-                           for (ConfigurationBuilder b : holder.getConfigurationBuilders())
+                           for (Entry<String, ConfigurationBuilder> entry : holder.getNamedConfigurationBuilders().entrySet())
                            {
-                              Configuration c = b.build();
-                              currentCacheManager.defineConfiguration(c.name(), c);
+                              currentCacheManager.defineConfiguration(entry.getKey(), entry.getValue().build());
                            }
                            currentCacheManager.start();
                            // We register this new cache manager
@@ -370,15 +369,6 @@
                }
             }
             confBuilder.read(cacheManager.getDefaultCacheConfiguration());
-            //TODO remove it once ISPN-1687 will be fixed
-            confBuilder.storeAsBinary().enabled(false);
-            //TODO remove it once ISPN-1689 will be fixed
-            confBuilder
-               .clustering()
-               .hash()
-               .consistentHash(
-                  Util.<ConsistentHash> getInstance(DefaultConsistentHash.class.getName(), Thread.currentThread()
-                     .getContextClassLoader()));
          }
          else if (config.isDistributed())
          {
@@ -399,15 +389,6 @@
             if (LOG.isInfoEnabled())
                LOG.info("The configuration template will be used for the the cache '" + region + "'.");
             confBuilder.read(cacheManager.getDefaultCacheConfiguration());
-            //TODO remove it once ISPN-1687 will be fixed
-            confBuilder.storeAsBinary().enabled(false);
-            //TODO remove it once ISPN-1689 will be fixed
-            confBuilder
-               .clustering()
-               .hash()
-               .consistentHash(
-                  Util.<ConsistentHash> getInstance(DefaultConsistentHash.class.getName(), Thread.currentThread()
-                     .getContextClassLoader()));
             if (!config.isRepicated())
             {
                // The cache is local

Modified: kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/src/main/java/org/exoplatform/services/ispn/DistributedCacheManager.java
===================================================================
--- kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/src/main/java/org/exoplatform/services/ispn/DistributedCacheManager.java	2012-03-23 16:08:49 UTC (rev 5954)
+++ kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/src/main/java/org/exoplatform/services/ispn/DistributedCacheManager.java	2012-03-26 07:27:46 UTC (rev 5955)
@@ -29,21 +29,18 @@
 import org.exoplatform.services.log.Log;
 import org.exoplatform.services.transaction.TransactionService;
 import org.infinispan.Cache;
-import org.infinispan.configuration.cache.Configuration;
 import org.infinispan.configuration.cache.ConfigurationBuilder;
 import org.infinispan.configuration.global.GlobalConfigurationBuilder;
 import org.infinispan.configuration.parsing.ConfigurationBuilderHolder;
 import org.infinispan.configuration.parsing.Parser;
-import org.infinispan.distribution.ch.ConsistentHash;
-import org.infinispan.distribution.ch.DefaultConsistentHash;
 import org.infinispan.manager.DefaultCacheManager;
 import org.infinispan.manager.EmbeddedCacheManager;
 import org.infinispan.transaction.lookup.TransactionManagerLookup;
-import org.infinispan.util.Util;
 import org.picocontainer.Startable;
 
 import java.security.PrivilegedExceptionAction;
 import java.util.Map;
+import java.util.Map.Entry;
 
 import javax.transaction.TransactionManager;
 
@@ -143,8 +140,7 @@
             LOG.debug("The configuration file of the DistributedCacheManager will be loaded from " + configurationFile);
          }
          final TemplateConfigurationHelper helper =
-            new TemplateConfigurationHelper(new String[]{"^jgroups-configuration", "^infinispan-.*"},
-               new String[]{"^infinispan-configuration"}, configManager);
+            new TemplateConfigurationHelper(new String[]{"^.*"}, new String[]{}, configManager);
          if (LOG.isDebugEnabled() && parameters != null && !parameters.isEmpty())
          {
             LOG.debug("The parameters to use while processing the configuration file are " + parameters);
@@ -168,21 +164,15 @@
                      return tm;
                   }
                };
-               for (ConfigurationBuilder b : holder.getConfigurationBuilders())
+               for (Entry<String, ConfigurationBuilder> entry : holder.getNamedConfigurationBuilders().entrySet())
                {
+                  ConfigurationBuilder b = entry.getValue();
                   if (tm != null)
                   {
-                     b.transaction().transactionManagerLookup(tml);                     
+                     b.transaction().transactionManagerLookup(tml);
                   }
-                  //TODO remove it once ISPN-1689 will be fixed
-                  b.clustering()
-                     .hash()
-                     .consistentHash(
-                        Util.<ConsistentHash> getInstance(DefaultConsistentHash.class.getName(), Thread.currentThread()
-                           .getContextClassLoader()));
-                  Configuration c = b.build();
-                  manager.defineConfiguration(c.name(), c);
-                  manager.getCache(c.name());
+                  manager.defineConfiguration(entry.getKey(), b.build());
+                  manager.getCache(entry.getKey());
                }
                return manager;
             }
@@ -190,8 +180,8 @@
       }
       catch (Exception e)//NOSONAR
       {
-         throw new IllegalStateException("Could not initialize the cache manager corresponding to the configuration file "
-            + configurationFile, e);
+         throw new IllegalStateException(
+            "Could not initialize the cache manager corresponding to the configuration file " + configurationFile, e);
       }
    }
 

Modified: kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/src/test/java/org/exoplatform/services/cache/impl/infinispan/distributed/TestDistributedExoCache.java
===================================================================
--- kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/src/test/java/org/exoplatform/services/cache/impl/infinispan/distributed/TestDistributedExoCache.java	2012-03-23 16:08:49 UTC (rev 5954)
+++ kernel/trunk/exo.kernel.component.ext.cache.impl.infinispan.v5/src/test/java/org/exoplatform/services/cache/impl/infinispan/distributed/TestDistributedExoCache.java	2012-03-26 07:27:46 UTC (rev 5955)
@@ -510,7 +510,7 @@
       }
    }
 
-   public static class MyKeyGenerator implements KeyGenerator<DistributedExoCache.CacheKey<MyKey>>
+   public static class MyKeyGenerator implements KeyGenerator<DistributedExoCache.CacheKey<Serializable>>
    {
 
       public static final Random rnd = new Random();
@@ -523,9 +523,9 @@
       }
 
       @Override
-      public DistributedExoCache.CacheKey<MyKey> getKey()
+      public DistributedExoCache.CacheKey<Serializable> getKey()
       {
-         return new DistributedExoCache.CacheKey<MyKey>(fullName, new MyKey(rnd.nextLong()));
+         return new DistributedExoCache.CacheKey<Serializable>(fullName, new MyKey(rnd.nextLong()));
       }
    }
 

Modified: kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/xml/Configuration.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/xml/Configuration.java	2012-03-23 16:08:49 UTC (rev 5954)
+++ kernel/trunk/exo.kernel.container/src/main/java/org/exoplatform/container/xml/Configuration.java	2012-03-26 07:27:46 UTC (rev 5955)
@@ -257,16 +257,8 @@
          }
          else if (result == null)
          {
-            try
-            {
-               // Initialize with the clone of the first non null configuration 
-               result = (Configuration)conf.clone();
-            }
-            catch (CloneNotSupportedException e)
-            {
-               LOG.warn("Could not clone the configuration", e);
-               break;
-            }
+            // Initialize with the clone of the first non null configuration 
+            result = (Configuration)conf.clone();
          }
          else
          {
@@ -276,6 +268,42 @@
       }
       return result;
    }
+   
+   /**
+    * {@inheritDoc}
+    */
+   @SuppressWarnings("unchecked")
+   @Override
+   protected Object clone()
+   {
+      try
+      {
+         Configuration conf = (Configuration)super.clone();
+         conf.component_ = (Map<String, Component>)((HashMap<String, Component>)component_).clone();
+         conf.componentLifecyclePlugin_ =
+            (Map<String, ComponentLifecyclePlugin>)((HashMap<String, ComponentLifecyclePlugin>)componentLifecyclePlugin_)
+               .clone();
+         conf.containerLifecyclePlugin_ =
+            (Map<String, ContainerLifecyclePlugin>)((HashMap<String, ContainerLifecyclePlugin>)containerLifecyclePlugin_)
+               .clone();
+         conf.externalComponentPlugins_ =
+            (Map<String, ExternalComponentPlugins>)((HashMap<String, ExternalComponentPlugins>)externalComponentPlugins_)
+               .clone();
+         if (imports_ != null)
+         {
+            conf.imports_ = (ArrayList<String>)imports_.clone();
+         }
+         if (removeConfiguration_ != null)
+         {
+            conf.removeConfiguration_ = (ArrayList<String>)removeConfiguration_.clone();
+         }
+         return conf;
+      }
+      catch (CloneNotSupportedException e)
+      {
+         throw new AssertionError("Could not clone the configuration");
+      }
+   }
 
    /**
     * Dumps the configuration in XML format into the given {@link Writer}

Modified: kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/TestPortalContainer.java
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/TestPortalContainer.java	2012-03-23 16:08:49 UTC (rev 5954)
+++ kernel/trunk/exo.kernel.container/src/test/java/org/exoplatform/container/TestPortalContainer.java	2012-03-26 07:27:46 UTC (rev 5955)
@@ -161,6 +161,36 @@
       assertNull(PortalContainer.getCurrentSetting("boolean"));     
    }
    
+   public void testGetConfigurationXML()
+   {
+      URL rootURL = getClass().getResource("test-exo-container.xml");
+      URL portalURL = getClass().getResource("/conf/test-configuration.xml");
+      assertNotNull(rootURL);
+      assertNotNull(portalURL);
+      //
+      new ContainerBuilder().withRoot(rootURL).withPortal(portalURL).build();
+      
+      String configXML = RootContainer.getInstance().getConfigurationXML();
+      assertNotNull(configXML);
+      int size = configXML.length();
+      int hash = configXML.hashCode();
+      configXML = RootContainer.getInstance().getConfigurationXML();
+      assertNotNull(configXML);
+      assertTrue(size > 0);
+      assertEquals(size, configXML.length());
+      assertEquals(hash, configXML.hashCode());
+      
+      configXML = PortalContainer.getInstance().getConfigurationXML();
+      assertNotNull(configXML);
+      assertTrue(size > 0);
+      size = configXML.length();
+      hash = configXML.hashCode();
+      configXML = PortalContainer.getInstance().getConfigurationXML();
+      assertNotNull(configXML);
+      assertEquals(size, configXML.length());
+      assertEquals(hash, configXML.hashCode());
+   }
+   
    public static class MyComponent
    {
       private final InitParams params;

Added: kernel/trunk/exo.kernel.container/src/test/resources/tsm-excludes.properties
===================================================================
--- kernel/trunk/exo.kernel.container/src/test/resources/tsm-excludes.properties	                        (rev 0)
+++ kernel/trunk/exo.kernel.container/src/test/resources/tsm-excludes.properties	2012-03-26 07:27:46 UTC (rev 5955)
@@ -0,0 +1 @@
+org.exoplatform.container.TestPortalContainer.testGetConfigurationXML=getConfigurationXML
\ No newline at end of file

Modified: kernel/trunk/pom.xml
===================================================================
--- kernel/trunk/pom.xml	2012-03-23 16:08:49 UTC (rev 5954)
+++ kernel/trunk/pom.xml	2012-03-26 07:27:46 UTC (rev 5955)
@@ -203,7 +203,7 @@
          <dependency>
             <groupId>org.infinispan</groupId>
             <artifactId>infinispan-core</artifactId>
-            <version>5.1.0.CR3</version>
+            <version>5.1.2.FINAL</version>
          </dependency>
          <dependency>
             <groupId>org.jibx</groupId>



More information about the exo-jcr-commits mailing list