[exo-jcr-commits] exo-jcr SVN: r1424 - in jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src: test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache and 1 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Sat Jan 16 04:05:27 EST 2010


Author: nzamosenchuk
Date: 2010-01-16 04:05:27 -0500 (Sat, 16 Jan 2010)
New Revision: 1424

Added:
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/CompressedChangesBuffer.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/TestCompressedChangesBuffer.java
Removed:
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/ChildListEvictionActionPolicy.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/CompressedChangesList.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/TestCompressedList.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/TestExoEvictionActionPolicy.java
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/standalone/test-jbosscache-exo-config.xml
Modified:
   jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/BufferedJBossCache.java
Log:
EXOJCR-391: Removed ChildListEvictionPolicy and it's test. Replaced CompressedChangesList with CompressedChangesBuffer.

Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/BufferedJBossCache.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/BufferedJBossCache.java	2010-01-16 08:52:21 UTC (rev 1423)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/BufferedJBossCache.java	2010-01-16 09:05:27 UTC (rev 1424)
@@ -34,7 +34,6 @@
 import org.jgroups.Address;
 
 import java.io.Serializable;
-import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -59,7 +58,7 @@
     */
    private final Cache<Serializable, Object> parentCache;
 
-   private ThreadLocal<CompressedChangesList> changesList = new ThreadLocal<CompressedChangesList>();
+   private ThreadLocal<CompressedChangesBuffer> changesList = new ThreadLocal<CompressedChangesBuffer>();
 
    protected static final Log LOG =
       ExoLogger.getLogger("org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.BufferedJBossCache");
@@ -75,7 +74,7 @@
     */
    public void beginTransaction()
    {
-      changesList.set(new CompressedChangesList());
+      changesList.set(new CompressedChangesBuffer());
    }
 
    /**
@@ -83,7 +82,7 @@
     */
    public void commitTransaction()
    {
-      CompressedChangesList changesContainer = changesList.get();
+      CompressedChangesBuffer changesContainer = changesList.get();
       if (changesContainer == null)
       {
          throw new IllegalStateException("changesContainer should not be empty");
@@ -91,9 +90,10 @@
       try
       {
          //log.info("Before=" + changesContainer.toString());
-         Collections.sort(changesContainer);
+         //Collections.sort(changesContainer);
+         List<ChangesContainer> containers = changesContainer.getSortedList();
          //log.info("After=" + changesContainer.toString());
-         for (ChangesContainer cacheChange : changesContainer)
+         for (ChangesContainer cacheChange : containers)
          {
             cacheChange.apply();
          }
@@ -377,7 +377,7 @@
    public void put(Fqn fqn, Map<? extends Serializable, ? extends Object> data)
    {
       //parentCache.put(fqn, data);
-      CompressedChangesList changesContainer = changesList.get();
+      CompressedChangesBuffer changesContainer = changesList.get();
       if (changesContainer == null)
       {
          throw new IllegalStateException("changesContainer should not be empty");
@@ -390,7 +390,7 @@
     */
    public Object put(Fqn fqn, Serializable key, Object value)
    {
-      CompressedChangesList changesContainer = changesList.get();
+      CompressedChangesBuffer changesContainer = changesList.get();
       if (changesContainer == null)
       {
          throw new IllegalStateException("changesContainer should not be empty");
@@ -430,7 +430,7 @@
     */
    public Object remove(Fqn fqn, Serializable key)
    {
-      CompressedChangesList changesContainer = changesList.get();
+      CompressedChangesBuffer changesContainer = changesList.get();
       if (changesContainer == null)
       {
          throw new IllegalStateException("changesContainer should not be empty");
@@ -476,7 +476,7 @@
     */
    public boolean removeNode(Fqn fqn)
    {
-      CompressedChangesList changesContainer = changesList.get();
+      CompressedChangesBuffer changesContainer = changesList.get();
       if (changesContainer == null)
       {
          throw new IllegalStateException("changesContainer should not be empty");
@@ -548,7 +548,7 @@
     */
    public void addToList(Fqn fqn, String key, Object value)
    {
-      CompressedChangesList changesContainer = changesList.get();
+      CompressedChangesBuffer changesContainer = changesList.get();
       if (changesContainer == null)
       {
          throw new IllegalStateException("changesContainer should not be empty");
@@ -565,7 +565,7 @@
     */
    public void removeFromList(Fqn fqn, String key, Object value)
    {
-      CompressedChangesList changesContainer = changesList.get();
+      CompressedChangesBuffer changesContainer = changesList.get();
       if (changesContainer == null)
       {
          throw new IllegalStateException("changesContainer should not be empty");

Deleted: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/ChildListEvictionActionPolicy.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/ChildListEvictionActionPolicy.java	2010-01-16 08:52:21 UTC (rev 1423)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/ChildListEvictionActionPolicy.java	2010-01-16 09:05:27 UTC (rev 1424)
@@ -1,90 +0,0 @@
-/*
- * Copyright (C) 2003-2010 eXo Platform SAS.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Affero General Public License
- * as published by the Free Software Foundation; either version 3
- * of the License, or (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see<http://www.gnu.org/licenses/>.
- */
-package org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache;
-
-import org.exoplatform.services.log.ExoLogger;
-import org.exoplatform.services.log.Log;
-import org.jboss.cache.Cache;
-import org.jboss.cache.CacheStatus;
-import org.jboss.cache.Fqn;
-import org.jboss.cache.eviction.EvictionActionPolicy;
-
-/**
- * Created by The eXo Platform SAS.
- * 
- * <br/>Date: 2010
- *
- * @author <a href="mailto:alex.reshetnyak at exoplatform.com.ua">Alex Reshetnyak</a> 
- * @version $Id$
- */
- at Deprecated
-public class ChildListEvictionActionPolicy
-   implements EvictionActionPolicy
-{
-   private static final Log LOG = ExoLogger.getLogger("jcr.ExoEvictionActionPolicy");
-
-   private Cache<?, ?> cache;
-
-   /**
-    * {@inheritDoc}
-    */
-   public boolean evict(Fqn fqn)
-   {
-
-      if (fqn.size() == 3 && (JBossCacheWorkspaceStorageCache.CHILD_NODES_LIST.equals(fqn.get(0)) || JBossCacheWorkspaceStorageCache.CHILD_PROPS_LIST.equals(fqn.get(0))))
-      {
-         return eviction(fqn.getParent(), true);
-      }
-      else
-      {
-         return eviction(fqn, false);
-      }
-   }
-
-   private boolean eviction(Fqn fqn, boolean recurcive)
-   {
-      try
-      {
-         if (LOG.isDebugEnabled())
-            LOG.debug("Evicting Fqn " + fqn);
-
-         if (cache.getCacheStatus() == CacheStatus.STARTED)
-         {
-            cache.evict(fqn, recurcive);
-            return true;
-         }
-         else
-         {
-            return false;
-         }
-      }
-      catch (Exception e)
-      {
-         LOG.error("Unable to evict :" + fqn, e);
-         return false;
-      }
-   }
-
-   /**
-    * {@inheritDoc}
-    */
-   public void setCache(Cache<?, ?> cache)
-   {
-      this.cache = cache;
-   }
-
-}

Added: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/CompressedChangesBuffer.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/CompressedChangesBuffer.java	                        (rev 0)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/CompressedChangesBuffer.java	2010-01-16 09:05:27 UTC (rev 1424)
@@ -0,0 +1,174 @@
+/*
+ * Copyright (C) 2010 eXo Platform SAS.
+ *
+ * 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.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache;
+
+import org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.BufferedJBossCache.ChangesContainer;
+import org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.BufferedJBossCache.ChangesType;
+import org.jboss.cache.Fqn;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Sorting cache modification "as is" in {@link BufferedJBossCache} may harm data consistency. 
+ * Here is a link, showing possible trouble:
+ * <a  href="http://wiki-int.exoplatform.org/display/exoproducts/Problems+encountered+2010.01.08">Wiki-int page 
+ * "Why straightforward sorting in cache is not working..." </a>
+ * <br>
+ * <strong>Example on the page refers to the old cache-usage structure, where list of 
+ * child items was stored as JBC nodes. </strong> <br>
+ *    For now serialized Set<Object> is used, and it is stored as a JCB attribute. But still 
+ * such confusing situation can take place in CHILD_NODES and CHILD_PROPS subtrees in cache.
+ * So wee need to optimize changes made for one subtree with different Fqn levels.<br> 
+ * I.e.
+ * <ol> 
+ *   <li type="1">ADD /$CHILD_NODES/1/11</li> 
+ *   <li type="1">REMOVE /$CHILD_NODES/1</li>
+ * </ol>
+ * Sorting will reorder them in different way, and there is a possible situation when ADD will be after RM.
+ * So list of changes should be optimized, before being applied. This class performs described modification
+ * for only CHILD_NODES and CHILD_PROPS cache regions using HashMap for the best performance.<br>
+ * <small>Class if not thread safe, cause designed to be used in ThreadLocal variable in {@link BufferedJBossCache}.</small>
+ * 
+ * @author <a href="mailto:nikolazius at gmail.com">Nikolay Zamosenchuk</a>
+ * @version $Id: CompressedChangesBuffer.java 34360 2009-07-22 23:58:59Z nzamosenchuk $
+ *
+ */
+public class CompressedChangesBuffer
+{
+   private int historyIndex = 0;
+
+   // Stores changes made to any ordinary cache region
+   List<ChangesContainer> changes = new ArrayList<ChangesContainer>();
+
+   // Stores changes made to /$CHILD_NODES cache region. Stores <ParentUUID> <--> <Change>
+   Map<String, List<ChangesContainer>> childNodesMap = new HashMap<String, List<ChangesContainer>>();
+
+   // Stores changes made to /$CHILD_PROPERTIES cache region. Stores <ParentUUID> <--> <Change>
+   Map<String, List<ChangesContainer>> childPropertyMap = new HashMap<String, List<ChangesContainer>>();
+
+   /**
+    * Adds new modification container to buffer and performs optimization if needed. Optimization doesn't iterate
+    * over lists and uses HashMaps. So each optimization duration doesn't depend on list size.  
+    * 
+    * @param container
+    */
+   public void add(ChangesContainer container)
+   {
+      String parentCacheNode = (String)container.getFqn().get(0);
+      if (JBossCacheWorkspaceStorageCache.CHILD_NODES.equals(parentCacheNode) && container.getFqn().size() > 1)
+      {
+         optimize(childNodesMap, container);
+      }
+      else if (JBossCacheWorkspaceStorageCache.CHILD_PROPS.equals(parentCacheNode) && container.getFqn().size() > 1)
+      {
+         optimize(childPropertyMap, container);
+      }
+      else
+      {
+         changes.add(container);
+      }
+   }
+
+   /**
+    * After each invocation of the method increments internal field. 
+    * Designed to be used as history order index in each {@link ChangesContainer}
+    * @return
+    */
+   public int getHistoryIndex()
+   {
+      historyIndex++;
+      return historyIndex;
+   }
+
+   /**
+    * Builds single list of modifications from internal structures and sorts it.
+    * 
+    * @return
+    */
+   public List<ChangesContainer> getSortedList()
+   {
+      List<ChangesContainer> changesContainers = listMap(childNodesMap);
+      changesContainers.addAll(listMap(childPropertyMap));
+      changesContainers.addAll(changes);
+      Collections.sort(changesContainers);
+      return changesContainers;
+   }
+
+   // non-public members
+
+   /**
+    * Adds given container to the list of parent from the Map. If list is missing in the map, it is created and placed.
+    * 
+    * @param childMap
+    * @param parent
+    * @param container
+    */
+   private void addToList(Map<String, List<ChangesContainer>> childMap, String parent, ChangesContainer container)
+   {
+      List<ChangesContainer> changesContainers = childMap.get(parent);
+      if (changesContainers == null)
+      {
+         changesContainers = new ArrayList<ChangesContainer>();
+      }
+      changesContainers.add(container);
+      childMap.put(parent, changesContainers);
+   }
+
+   /**
+    * Builds single list from map containing a list by each key.
+    * 
+    * @param childMap
+    * @return
+    */
+   private List<ChangesContainer> listMap(Map<String, List<ChangesContainer>> childMap)
+   {
+      List<ChangesContainer> containers = new ArrayList<ChangesContainer>();
+      for (List<ChangesContainer> container : childMap.values())
+      {
+         containers.addAll(container);
+      }
+      return containers;
+   }
+
+   /**
+    * Performs described optimization on buffer.
+    * 
+    * @param childMap
+    * @param container
+    */
+   private void optimize(Map<String, List<ChangesContainer>> childMap, ChangesContainer container)
+   {
+      Fqn fqn = container.getFqn();
+      String parent = (String)fqn.get(1);
+      if (fqn.size() == 2)
+      {
+         if (container.getChangesType() == ChangesType.REMOVE)
+         {
+            // omit all changes made on exact fqn and child-fqns
+            childMap.remove(parent);
+         }
+      }
+      addToList(childMap, parent, container);
+   }
+
+}


Property changes on: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/CompressedChangesBuffer.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Deleted: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/CompressedChangesList.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/CompressedChangesList.java	2010-01-16 08:52:21 UTC (rev 1423)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/CompressedChangesList.java	2010-01-16 09:05:27 UTC (rev 1424)
@@ -1,285 +0,0 @@
-/*
- * Copyright (C) 2010 eXo Platform SAS.
- *
- * 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.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache;
-
-import org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.BufferedJBossCache.ChangesContainer;
-import org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.BufferedJBossCache.ChangesType;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.ListIterator;
-
-/**
- * This class implement algorithm of list compressing, omitting unnecessary 
- * changes and optimizing list. I.e. if added REMOVE /a/b, then list removes
- * all changes made for /a/b/* 
- * 
- * @author <a href="mailto:nikolazius at gmail.com">Nikolay Zamosenchuk</a>
- * @version $Id: CompressedChangesList.java 0 2009-07-22 23:58:59Z nzamosenchuk $
- *
- */
-public class CompressedChangesList implements List<ChangesContainer>
-{
-   private List<ChangesContainer> changesList = new ArrayList<ChangesContainer>();
-
-   private int historyIndex = 0;
-
-   /**
-    * After each add this field is incremented, so each change can use it as a 
-    * history timestamp to identify original order
-    * @return
-    */
-   public int getHistoryIndex()
-   {
-      return historyIndex;
-   }
-
-   /**
-    * @see java.util.List#add(java.lang.Object)
-    */
-   public boolean add(ChangesContainer e)
-   {
-      historyIndex++;
-      optimize(e);
-      changesList.add(e);
-      return false;
-   }
-
-   private int optimize(ChangesContainer newChange)
-   {
-
-      Iterator<ChangesContainer> iter = changesList.iterator();
-      // if /a/b REMOVE performed, then remove all changes from list 
-      // made on any child /a/b/* (remove usecase)
-      if (newChange.getChangesType() == ChangesType.REMOVE)
-      {
-         while (iter.hasNext())
-         {
-            ChangesContainer c = iter.next();
-            if (c.getFqn().isChildOrEquals(newChange.getFqn()))
-            {
-               iter.remove();
-            }
-         }
-      }
-      // if /a/b PUT performed, then remove all previous PUT or PUT_VALUE
-      // performed on exact /a/b path (rewrite usecase)
-      else if (newChange.getChangesType() == ChangesType.PUT)
-      {
-         while (iter.hasNext())
-         {
-            ChangesContainer c = iter.next();
-            if (c.getFqn().equals(newChange.getFqn()) && c.getChangesType()!= ChangesType.REMOVE)
-            {
-               iter.remove();
-            }
-         }
-      }
-
-      return 0;
-   }
-
-   /**
-    * @see java.util.List#add(int, java.lang.Object)
-    */
-   public void add(int index, ChangesContainer element)
-   {
-      throw new UnsupportedOperationException("Unexpected method call ");
-   }
-
-   /**
-    * @see java.util.List#addAll(java.util.Collection)
-    */
-   public boolean addAll(Collection<? extends ChangesContainer> c)
-   {
-      throw new UnsupportedOperationException("Unexpected method call ");
-   }
-
-   /**
-    * @see java.util.List#addAll(int, java.util.Collection)
-    */
-   public boolean addAll(int index, Collection<? extends ChangesContainer> c)
-   {
-      throw new UnsupportedOperationException("Unexpected method call ");
-   }
-
-   /**
-    * @see java.util.List#clear()
-    */
-   public void clear()
-   {
-      changesList.clear();
-   }
-
-   /**
-    * @see java.util.List#contains(java.lang.Object)
-    */
-   public boolean contains(Object o)
-   {
-      return changesList.contains(o);
-   }
-
-   /**
-    * @see java.util.List#containsAll(java.util.Collection)
-    */
-   public boolean containsAll(Collection<?> c)
-   {
-      return changesList.containsAll(c);
-   }
-
-   /**
-    * @see java.util.List#get(int)
-    */
-   public ChangesContainer get(int index)
-   {
-      return changesList.get(index);
-   }
-
-   /**
-    * @see java.util.List#indexOf(java.lang.Object)
-    */
-   public int indexOf(Object o)
-   {
-      return changesList.indexOf(o);
-   }
-
-   /**
-    * @see java.util.List#isEmpty()
-    */
-   public boolean isEmpty()
-   {
-      return changesList.isEmpty();
-   }
-
-   /**
-    * @see java.util.List#iterator()
-    */
-   public Iterator<ChangesContainer> iterator()
-   {
-      return changesList.iterator();
-   }
-
-   /**
-    * @see java.util.List#lastIndexOf(java.lang.Object)
-    */
-   public int lastIndexOf(Object o)
-   {
-      return changesList.lastIndexOf(o);
-   }
-
-   /**
-    * @see java.util.List#listIterator()
-    */
-   public ListIterator<ChangesContainer> listIterator()
-   {
-      return changesList.listIterator();
-   }
-
-   /**
-    * @see java.util.List#listIterator(int)
-    */
-   public ListIterator<ChangesContainer> listIterator(int index)
-   {
-      return changesList.listIterator(index);
-   }
-
-   /**
-    * @see java.util.List#remove(java.lang.Object)
-    */
-   public boolean remove(Object o)
-   {
-      throw new UnsupportedOperationException("Unexpected method call ");
-   }
-
-   /**
-    * @see java.util.List#remove(int)
-    */
-   public ChangesContainer remove(int index)
-   {
-      throw new UnsupportedOperationException("Unexpected method call ");
-   }
-
-   /**
-    * @see java.util.List#removeAll(java.util.Collection)
-    */
-   public boolean removeAll(Collection<?> c)
-   {
-      throw new UnsupportedOperationException("Unexpected method call ");
-   }
-
-   /**
-    * @see java.util.List#retainAll(java.util.Collection)
-    */
-   public boolean retainAll(Collection<?> c)
-   {
-      throw new UnsupportedOperationException("Unexpected method call ");
-   }
-
-   /**
-    * @see java.util.List#set(int, java.lang.Object)
-    */
-   public ChangesContainer set(int index, ChangesContainer element)
-   {
-      return changesList.set(index, element);
-   }
-
-   /**
-    * @see java.util.List#size()
-    */
-   public int size()
-   {
-      return changesList.size();
-   }
-
-   /**
-    * @see java.util.List#subList(int, int)
-    */
-   public List<ChangesContainer> subList(int fromIndex, int toIndex)
-   {
-      return changesList.subList(fromIndex, toIndex);
-   }
-
-   /**
-    * @see java.util.List#toArray()
-    */
-   public Object[] toArray()
-   {
-      return changesList.toArray();
-   }
-
-   /**
-    * @see java.util.List#toArray(T[])
-    */
-   public <T> T[] toArray(T[] a)
-   {
-      return changesList.toArray(a);
-   }
-
-   /**
-    * @see java.lang.Object#toString()
-    */
-   @Override
-   public String toString()
-   {
-      return changesList.toString();
-   }
-
-}

Added: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/TestCompressedChangesBuffer.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/TestCompressedChangesBuffer.java	                        (rev 0)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/TestCompressedChangesBuffer.java	2010-01-16 09:05:27 UTC (rev 1424)
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2010 eXo Platform SAS.
+ *
+ * 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.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache;
+
+import junit.framework.TestCase;
+
+import org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.BufferedJBossCache.ChangesContainer;
+import org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.BufferedJBossCache.PutObjectContainer;
+import org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.BufferedJBossCache.RemoveNodeContainer;
+import org.jboss.cache.Fqn;
+
+import java.util.HashMap;
+
+/**
+ * @author <a href="mailto:foo at bar.org">Foo Bar</a>
+ * @version $Id: exo-jboss-codetemplates.xml 34360 2009-07-22 23:58:59Z aheritier $
+ *
+ */
+public class TestCompressedChangesBuffer extends TestCase
+{
+
+   public void testPutOmit()
+   {
+      CompressedChangesBuffer buffer = new CompressedChangesBuffer();
+      ChangesContainer put1 =
+         new PutObjectContainer(Fqn.fromString("/" + JBossCacheWorkspaceStorageCache.CHILD_NODES + "/b"),
+            new HashMap<String, String>(), null, buffer.getHistoryIndex());
+      ChangesContainer put2 =
+         new PutObjectContainer(Fqn.fromString("/" + JBossCacheWorkspaceStorageCache.CHILD_NODES + "/b/c"),
+            new HashMap<String, String>(), null, buffer.getHistoryIndex());
+      ChangesContainer rm1 =
+         new RemoveNodeContainer(Fqn.fromString("/" + JBossCacheWorkspaceStorageCache.CHILD_NODES + "/b"), null, buffer
+            .getHistoryIndex());
+      buffer.add(put1);
+      buffer.add(put2);
+      assertTrue("List MUST contain put container", buffer.getSortedList().contains(put1));
+      assertTrue("List MUST contain put container", buffer.getSortedList().contains(put2));
+      buffer.add(rm1);
+      assertFalse("List still contains put container", buffer.getSortedList().contains(put1));
+      assertFalse("List still contains put container", buffer.getSortedList().contains(put2));
+      assertTrue("List MUST contain remove container", buffer.getSortedList().contains(rm1));
+      buffer.add(put1);
+      buffer.add(put2);
+      assertTrue("List MUST contain remove container", buffer.getSortedList().contains(rm1));
+      assertTrue("List MUST contain put container", buffer.getSortedList().contains(put1));
+      assertTrue("List MUST contain put container", buffer.getSortedList().contains(put2));
+   }
+
+   public void testRemoveOmit()
+   {
+      CompressedChangesBuffer buffer = new CompressedChangesBuffer();
+      ChangesContainer put1 =
+         new PutObjectContainer(Fqn.fromString("/" + JBossCacheWorkspaceStorageCache.CHILD_NODES + "/b"),
+            new HashMap<String, String>(), null, buffer.getHistoryIndex());
+
+      ChangesContainer put2 =
+         new PutObjectContainer(Fqn.fromString("/" + JBossCacheWorkspaceStorageCache.CHILD_NODES + "/b/c"),
+            new HashMap<String, String>(), null, buffer.getHistoryIndex());
+      ChangesContainer rm1 =
+         new RemoveNodeContainer(Fqn.fromString("/" + JBossCacheWorkspaceStorageCache.CHILD_NODES + "/b/c"), null,
+            buffer.getHistoryIndex());
+      ChangesContainer rm2 =
+         new RemoveNodeContainer(Fqn.fromString("/" + JBossCacheWorkspaceStorageCache.CHILD_NODES + "/b"), null, buffer
+            .getHistoryIndex());
+      buffer.add(put1);
+      buffer.add(put2);
+      assertTrue("List MUST contain put container", buffer.getSortedList().contains(put1));
+      assertTrue("List MUST contain put container", buffer.getSortedList().contains(put2));
+      buffer.add(rm1);
+      assertTrue("List MUST contain put container", buffer.getSortedList().contains(put1));
+      assertTrue("List MUST contain remove container", buffer.getSortedList().contains(rm1));
+      buffer.add(rm2);
+      assertTrue("List MUST contain remove container", buffer.getSortedList().contains(rm2));
+      assertFalse("List still contains put container", buffer.getSortedList().contains(put1));
+      assertFalse("List still contains put container", buffer.getSortedList().contains(put2));
+      assertFalse("List still contains put container", buffer.getSortedList().contains(rm1));
+   }
+
+   public void testNoChangeOnRegion()
+   {
+      CompressedChangesBuffer buffer = new CompressedChangesBuffer();
+      ChangesContainer put1 =
+         new PutObjectContainer(Fqn.fromString("/" + JBossCacheWorkspaceStorageCache.CHILD_NODES_LIST + "/b"),
+            new HashMap<String, String>(), null, buffer.getHistoryIndex());
+
+      ChangesContainer rm1 =
+         new RemoveNodeContainer(Fqn.fromString("/" + JBossCacheWorkspaceStorageCache.CHILD_NODES_LIST + "/b"), null,
+            buffer.getHistoryIndex());
+      buffer.add(put1);
+      assertTrue("List MUST contain put container", buffer.getSortedList().contains(put1));
+      buffer.add(rm1);
+      assertTrue("List MUST contain put container", buffer.getSortedList().contains(put1));
+      assertTrue("List MUST contain remove container", buffer.getSortedList().contains(rm1));
+   }
+
+}


Property changes on: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/TestCompressedChangesBuffer.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Deleted: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/TestCompressedList.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/TestCompressedList.java	2010-01-16 08:52:21 UTC (rev 1423)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/TestCompressedList.java	2010-01-16 09:05:27 UTC (rev 1424)
@@ -1,112 +0,0 @@
-/*
- * Copyright (C) 2010 eXo Platform SAS.
- *
- * 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.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache;
-
-import junit.framework.TestCase;
-
-import org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.BufferedJBossCache.ChangesContainer;
-import org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.BufferedJBossCache.PutObjectContainer;
-import org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.BufferedJBossCache.RemoveNodeContainer;
-import org.jboss.cache.Fqn;
-
-import java.util.HashMap;
-
-/**
- * @author <a href="mailto:foo at bar.org">Foo Bar</a>
- * @version $Id: exo-jboss-codetemplates.xml 34360 2009-07-22 23:58:59Z aheritier $
- *
- */
-public class TestCompressedList extends TestCase
-{
-
-   public void testPutOmit()
-   {
-      CompressedChangesList changesList = new CompressedChangesList();
-      ChangesContainer put1 =
-         new PutObjectContainer(Fqn.fromString("/a/b"), new HashMap<String, String>(), null, changesList
-            .getHistoryIndex());
-      ChangesContainer put2 =
-         new PutObjectContainer(Fqn.fromString("/a/b/c"), new HashMap<String, String>(), null, changesList
-            .getHistoryIndex());
-      ChangesContainer rm1 = new RemoveNodeContainer(Fqn.fromString("/a/b"), null, changesList.getHistoryIndex());
-      changesList.add(put1);
-      changesList.add(put2);
-      assertTrue("List MUST contain put container", changesList.contains(put1));
-      assertTrue("List MUST contain put container", changesList.contains(put2));
-      changesList.add(rm1);
-      assertFalse("List still contains put container", changesList.contains(put1));
-      assertFalse("List still contains put container", changesList.contains(put2));
-      assertTrue("List MUST contain remove container", changesList.contains(rm1));
-   }
-
-   public void testDoublePutOmit()
-   {
-      CompressedChangesList changesList = new CompressedChangesList();
-      ChangesContainer put1 =
-         new PutObjectContainer(Fqn.fromString("/a/b"), new HashMap<String, String>(), null, changesList
-            .getHistoryIndex());
-      ChangesContainer put2 =
-         new PutObjectContainer(Fqn.fromString("/a/b"), new HashMap<String, String>(), null, changesList
-            .getHistoryIndex());
-
-      changesList.add(put1);
-      assertTrue("List MUST contain put container", changesList.contains(put1));
-      changesList.add(put2);
-      assertFalse("List still contains old put container", changesList.contains(put1));
-      assertTrue("List MUST contain new put container", changesList.contains(put2));
-   }
-   
-   public void testPutKeyOmit()
-   {
-      CompressedChangesList changesList = new CompressedChangesList();
-      ChangesContainer put1 =
-         new PutObjectContainer(Fqn.fromString("/a/b"), new HashMap<String, String>(), null, changesList
-            .getHistoryIndex());
-      ChangesContainer put2 =
-         new PutObjectContainer(Fqn.fromString("/a/b"), new HashMap<String, String>(), null, changesList
-            .getHistoryIndex());
-
-      changesList.add(put1);
-      assertTrue("List MUST contain put container", changesList.contains(put1));
-      changesList.add(put2);
-      assertFalse("List still contains old put container", changesList.contains(put1));
-      assertTrue("List MUST contain new put container", changesList.contains(put2));
-   }
-   
-   public void testPutChildOmit()
-   {
-      CompressedChangesList changesList = new CompressedChangesList();
-      ChangesContainer put1 =
-         new PutObjectContainer(Fqn.fromString("/a/b"), new HashMap<String, String>(), null, changesList
-            .getHistoryIndex());
-      ChangesContainer put2 =
-         new PutObjectContainer(Fqn.fromString("/a/b/c"), new HashMap<String, String>(), null, changesList
-            .getHistoryIndex());
-      ChangesContainer rm1 = new RemoveNodeContainer(Fqn.fromString("/a/b"), null, changesList.getHistoryIndex());
-      changesList.add(put1);
-      changesList.add(put2);
-      assertTrue("List MUST contain put container", changesList.contains(put1));
-      assertTrue("List MUST contain put container", changesList.contains(put2));
-      changesList.add(rm1);
-      assertFalse("List still contains old put container", changesList.contains(put1));
-      assertFalse("List still contains old put container", changesList.contains(put2));
-      assertTrue("List MUST contain remove container", changesList.contains(rm1));
-   }
-   
-}

Deleted: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/TestExoEvictionActionPolicy.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/TestExoEvictionActionPolicy.java	2010-01-16 08:52:21 UTC (rev 1423)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/TestExoEvictionActionPolicy.java	2010-01-16 09:05:27 UTC (rev 1424)
@@ -1,190 +0,0 @@
-/*
- * Copyright (C) 2003-2010 eXo Platform SAS.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Affero General Public License
- * as published by the Free Software Foundation; either version 3
- * of the License, or (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see<http://www.gnu.org/licenses/>.
- */
-package org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache;
-
-import java.io.Serializable;
-import java.util.Collections;
-import java.util.Map;
-
-import org.exoplatform.services.cache.CacheListenerContext;
-import org.exoplatform.services.jcr.JcrImplBaseTest;
-import org.exoplatform.services.jcr.access.AccessControlList;
-import org.exoplatform.services.jcr.datamodel.InternalQName;
-import org.exoplatform.services.jcr.datamodel.QPath;
-import org.exoplatform.services.jcr.impl.Constants;
-import org.exoplatform.services.jcr.impl.dataflow.TransientNodeData;
-import org.exoplatform.services.jcr.impl.dataflow.TransientPropertyData;
-import org.exoplatform.services.jcr.impl.dataflow.TransientValueData;
-import org.exoplatform.services.jcr.util.IdGenerator;
-import org.jboss.cache.Cache;
-import org.jboss.cache.DefaultCacheFactory;
-import org.jboss.cache.Fqn;
-import org.jboss.cache.Node;
-import org.jboss.cache.notifications.annotation.CacheListener;
-import org.jboss.cache.notifications.annotation.NodeEvicted;
-import org.jboss.cache.notifications.event.NodeEvent;
-
-/**
- * Created by The eXo Platform SAS.
- * 
- * <br/>Date: 2010
- *
- * @author <a href="mailto:alex.reshetnyak at exoplatform.com.ua">Alex Reshetnyak</a> 
- * @version $Id$
- */
- at CacheListener
-public class TestExoEvictionActionPolicy
-   extends JcrImplBaseTest
-{
-   protected Cache<Serializable, Object> cache;
-   
-   protected Fqn<String> itemsRoot;
-
-   protected Fqn<String> childNodesList;
-   
-   protected Fqn<String> childPropsList;
-   
-   protected String jbcConfig;
-   
-   public static final Map<Serializable, Object> NULL_DATA = Collections.emptyMap();
-   
-   public void setUp() throws Exception
-   {
-      super.setUp();
-      
-      initJBCConfig();
-      
-      cache = new DefaultCacheFactory<Serializable, Object>().createCache(jbcConfig, false);
-      
-      cache.create();
-      cache.start();
-      
-      Node<Serializable, Object> cacheRoot = cache.getRoot();
-      
-      this.itemsRoot = Fqn.fromElements(JBossCacheWorkspaceStorageCache.ITEMS);
-      cacheRoot.addChild(this.itemsRoot).setResident(true);
-
-      this.childNodesList = Fqn.fromElements(JBossCacheWorkspaceStorageCache.CHILD_NODES_LIST);
-      cacheRoot.addChild(this.childNodesList).setResident(true);
-      
-      this.childPropsList = Fqn.fromElements(JBossCacheWorkspaceStorageCache.CHILD_PROPS_LIST);
-      cacheRoot.addChild(this.childPropsList).setResident(true);
-   }
-   
-   protected void tearDown() throws Exception 
-   {
-      super.tearDown();
-      
-      cache.stop();
-      cache.destroy();
-   }
-   
-   protected void initJBCConfig()
-   {
-      jbcConfig = "src/test/resources/conf/standalone/test-jbosscache-exo-config.xml";
-   }
-   
-   public void testEviction() throws Exception
-   {
-      
-      String evictionNodeId = IdGenerator.generate();
-      
-      TransientNodeData evictionNodeData = new TransientNodeData(QPath.parse("[]:1[]node:1"), evictionNodeId, 1, Constants.NT_UNSTRUCTURED, new InternalQName[0], 0,
-         IdGenerator.generate(), new AccessControlList());
-      
-      String evictionPropId = IdGenerator.generate();
-      
-      TransientPropertyData evictionPropData = new TransientPropertyData(QPath.makeChildPath(Constants.ROOT_PATH, InternalQName.parse("[]prop1")), evictionPropId, 1, 1, evictionNodeId, false, new TransientValueData("Property value #1"));
-      
-      // add nodes who will be eviction
-      // put NodeData
-      cache.put(Fqn.fromRelativeElements(itemsRoot, evictionNodeData.getIdentifier()), JBossCacheWorkspaceStorageCache.ITEM_DATA, evictionNodeData);
-      
-      // put PropertyData
-      cache.put(Fqn.fromRelativeElements(itemsRoot, evictionPropData.getIdentifier()), JBossCacheWorkspaceStorageCache.ITEM_DATA, evictionPropData);
-      
-      // put to CHILD_NODES_LIST
-      cache.put(Fqn.fromRelativeElements(childNodesList, evictionNodeData.getParentIdentifier(), evictionNodeData.getIdentifier()), NULL_DATA);
-      
-      for (int i = 0 ; i < 10; i++)
-         cache.put(Fqn.fromRelativeElements(childNodesList, evictionNodeData.getParentIdentifier(), IdGenerator.generate()), NULL_DATA);
-      
-      // put to CHILD_PROPS_LIST
-      cache.put(Fqn.fromRelativeElements(childPropsList, evictionPropData.getParentIdentifier(), evictionPropData.getIdentifier()), NULL_DATA);
-      
-      for (int i = 0 ; i < 10; i++)
-         cache.put(Fqn.fromRelativeElements(childPropsList, evictionPropData.getParentIdentifier(), IdGenerator.generate()), NULL_DATA);
-      
-      
-      // check for exists
-      assertEquals( 2, cache.getChildrenNames(itemsRoot).size());
-      assertNotNull(cache.getNode(Fqn.fromRelativeElements(itemsRoot, evictionNodeData.getIdentifier())));
-      assertNotNull(cache.getNode(Fqn.fromRelativeElements(itemsRoot, evictionPropData.getIdentifier())));
-      
-      assertNotNull(cache.getNode(Fqn.fromRelativeElements(childNodesList, evictionNodeData.getParentIdentifier(), evictionNodeData.getIdentifier())));
-      assertNotNull(cache.getNode(Fqn.fromRelativeElements(childPropsList, evictionPropData.getParentIdentifier(), evictionPropData.getIdentifier())));
-      
-      assertEquals( 11, cache.getChildrenNames(Fqn.fromRelativeElements(childNodesList, evictionNodeData.getParentIdentifier())).size());
-      assertEquals( 11, cache.getChildrenNames(Fqn.fromRelativeElements(childPropsList, evictionPropData.getParentIdentifier())).size());
-      
-      
-     Thread.sleep(10 * 1000);
-     
-     cache.addCacheListener(this);
-     
-     for (int i = 0 ; i< 50; i++)
-     {
-        TransientNodeData evicNodeData = new TransientNodeData(QPath.parse("[]:1[]node" + i + ":1"), IdGenerator.generate(), 1, Constants.NT_UNSTRUCTURED, new InternalQName[0], 0,
-                 Constants.ROOT_UUID, new AccessControlList()); 
-        cache.put(Fqn.fromRelativeElements(itemsRoot, evicNodeData.getIdentifier()), JBossCacheWorkspaceStorageCache.ITEM_DATA, evicNodeData);
-     }
-     
-     Thread.sleep(15 * 1000);
-     
-     // check
-     assertNull(cache.getNode(Fqn.fromRelativeElements(itemsRoot, evictionNodeData.getIdentifier())));
-     assertNull(cache.getNode(Fqn.fromRelativeElements(itemsRoot, evictionPropData.getIdentifier())));
-
-     assertNull(cache.getNode(Fqn.fromRelativeElements(childNodesList, evictionNodeData.getParentIdentifier())));
-     assertNull(cache.getNode(Fqn.fromRelativeElements(childPropsList, evictionPropData.getParentIdentifier())));
-   }
-   
-   @NodeEvicted
-   public void createdNodeEvent(NodeEvent ne)
-   {  
-//      System.out.println("Node evicted: " + ne.getFqn());
-   }
-   
-   
-   public void testEvictionRecurcive() throws Exception
-   {
-      String parentId = IdGenerator.generate();
-      
-      // put to CHILD_PROPS_LIST
-      cache.put(Fqn.fromRelativeElements(childPropsList, parentId, IdGenerator.generate()), NULL_DATA);
-      
-      for (int i = 0 ; i < 10; i++)
-         cache.put(Fqn.fromRelativeElements(childPropsList, parentId, IdGenerator.generate()), NULL_DATA);
-      
-      
-      assertEquals( 11, cache.getChildrenNames(Fqn.fromRelativeElements(childPropsList, parentId)).size());
-      
-      cache.evict(Fqn.fromRelativeElements(childPropsList, parentId), true);
-
-      assertNull(cache.getNode(Fqn.fromRelativeElements(childPropsList, parentId)));
-   }
-}

Deleted: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/standalone/test-jbosscache-exo-config.xml
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/standalone/test-jbosscache-exo-config.xml	2010-01-16 08:52:21 UTC (rev 1423)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/test/resources/conf/standalone/test-jbosscache-exo-config.xml	2010-01-16 09:05:27 UTC (rev 1424)
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<jbosscache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:jboss:jbosscache-core:config:3.1">
-
-   <locking useLockStriping="false" concurrencyLevel="50000" lockParentForChildInsertRemove="false" lockAcquisitionTimeout="3600000"/>
-   
-   <!-- Configure the TransactionManager -->
-   <transaction transactionManagerLookupClass="org.jboss.cache.transaction.JBossStandaloneJTAManagerLookup" />
-
-   <!-- Enable batching -->
-   <invocationBatching enabled="true" />
-
-   <!-- Eviction configuration -->
-   <eviction wakeUpInterval="3000">
-      <default algorithmClass="org.jboss.cache.eviction.LRUAlgorithm">
-         <property name="maxNodes" value="50" />
-         <property name="timeToLive" value="20000" />
-      </default>
-      <region name="/" algorithmClass="org.jboss.cache.eviction.LRUAlgorithm" actionPolicyClass="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.ChildListEvictionActionPolicy" eventQueueSize="1000000">
-         <property name="maxNodes" value="50" />
-         <property name="timeToLive" value="20000" />
-      </region>
-   </eviction>
-
-</jbosscache>



More information about the exo-jcr-commits mailing list