[exo-jcr-commits] exo-jcr SVN: r1587 - in jcr/trunk/exo.jcr.component.core/src: test/java/org/exoplatform/services/jcr/lab/cluster/prepare and 2 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Jan 27 05:47:13 EST 2010


Author: skabashnyuk
Date: 2010-01-27 05:47:12 -0500 (Wed, 27 Jan 2010)
New Revision: 1587

Added:
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JBossCacheIndexChangesFilter.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JBossCacheIndexUpdateMonitor.java
Removed:
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JbossCacheIndexChangesFilter.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JbossCacheIndexUpdateMonitor.java
Modified:
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerCacheLoader.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerSingletonStoreCacheLoader.java
   jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/lab/cluster/prepare/TestIndexUpdateMonitor.java
   jcr/trunk/exo.jcr.component.core/src/test/resources/conf/cluster/test-jcr-config.xml
   jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jcr-config.xml
Log:
EXOJCR-433 : The class JbossCacheIndexUpdateMonitor  renamed JBossCacheIndexUpdateMonitor and JbossCacheIndexChangesFilter renamed JBossCacheIndexChangesFilter

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerCacheLoader.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerCacheLoader.java	2010-01-27 10:22:53 UTC (rev 1586)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerCacheLoader.java	2010-01-27 10:47:12 UTC (rev 1587)
@@ -86,7 +86,7 @@
     */
    public Object put(Fqn name, Object key, Object value) throws Exception
    {
-      if (key.equals(JbossCacheIndexChangesFilter.LISTWRAPPER) && value instanceof ChangesFilterListsWrapper)
+      if (key.equals(JBossCacheIndexChangesFilter.LISTWRAPPER) && value instanceof ChangesFilterListsWrapper)
       {
          if (log.isDebugEnabled())
          {

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerSingletonStoreCacheLoader.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerSingletonStoreCacheLoader.java	2010-01-27 10:22:53 UTC (rev 1586)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerSingletonStoreCacheLoader.java	2010-01-27 10:47:12 UTC (rev 1587)
@@ -76,7 +76,7 @@
             for (NodeSPI aChildren : children)
             {
                Fqn<?> fqn = aChildren.getFqn();
-               Object value = cache.get(fqn, JbossCacheIndexChangesFilter.LISTWRAPPER);
+               Object value = cache.get(fqn, JBossCacheIndexChangesFilter.LISTWRAPPER);
                if (value != null && value instanceof ChangesFilterListsWrapper)
                {
                   // get wrapper object
@@ -91,7 +91,7 @@
             }
             //TODO: recover logic is here, lists are: removedNodes and addedNodes      String id = IdGenerator.generate();
             String id = IdGenerator.generate();
-            cache.put(id, JbossCacheIndexChangesFilter.LISTWRAPPER, new ChangesFilterListsWrapper(addedNodes,
+            cache.put(id, JBossCacheIndexChangesFilter.LISTWRAPPER, new ChangesFilterListsWrapper(addedNodes,
                removedNodes, parentAddedNodes, parentRemovedNodes));
             if (debugEnabled)
                log.debug("in-memory state passed to cache cacheLoader successfully");

Copied: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JBossCacheIndexChangesFilter.java (from rev 1586, jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JbossCacheIndexChangesFilter.java)
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JBossCacheIndexChangesFilter.java	                        (rev 0)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JBossCacheIndexChangesFilter.java	2010-01-27 10:47:12 UTC (rev 1587)
@@ -0,0 +1,176 @@
+/*
+ * Copyright (C) 2009 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.core.query.jbosscache;
+
+import org.exoplatform.services.jcr.config.QueryHandlerEntry;
+import org.exoplatform.services.jcr.config.QueryHandlerParams;
+import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
+import org.exoplatform.services.jcr.impl.core.query.IndexerChangesFilter;
+import org.exoplatform.services.jcr.impl.core.query.IndexerIoMode;
+import org.exoplatform.services.jcr.impl.core.query.IndexerIoModeHandler;
+import org.exoplatform.services.jcr.impl.core.query.IndexingTree;
+import org.exoplatform.services.jcr.impl.core.query.QueryHandler;
+import org.exoplatform.services.jcr.impl.core.query.SearchManager;
+import org.exoplatform.services.jcr.util.IdGenerator;
+import org.exoplatform.services.log.ExoLogger;
+import org.exoplatform.services.log.Log;
+import org.jboss.cache.Cache;
+import org.jboss.cache.CacheException;
+import org.jboss.cache.CacheFactory;
+import org.jboss.cache.CacheSPI;
+import org.jboss.cache.DefaultCacheFactory;
+import org.jboss.cache.config.CacheLoaderConfig;
+import org.jboss.cache.config.CacheLoaderConfig.IndividualCacheLoaderConfig;
+import org.jboss.cache.config.CacheLoaderConfig.IndividualCacheLoaderConfig.SingletonStoreConfig;
+
+import java.io.IOException;
+import java.io.Serializable;
+import java.util.Properties;
+import java.util.Set;
+
+import javax.jcr.RepositoryException;
+
+/**
+ * @author <a href="mailto:Sergey.Kabashnyuk at exoplatform.org">Sergey Kabashnyuk</a>
+ * @version $Id: exo-jboss-codetemplates.xml 34360 2009-07-22 23:58:59Z ksm $
+ *
+ */
+public class JBossCacheIndexChangesFilter extends IndexerChangesFilter
+{
+   /**
+    * Logger instance for this class
+    */
+   private final Log log = ExoLogger.getLogger(JBossCacheIndexChangesFilter.class);
+
+   private final Cache<Serializable, Object> cache;
+
+   public static final String LISTWRAPPER = "$lists".intern();
+
+   /**
+    * @param searchManager
+    * @param config
+    * @param indexingTree
+    * @throws RepositoryConfigurationException 
+    */
+   public JBossCacheIndexChangesFilter(SearchManager searchManager, SearchManager parentSearchManager,
+      QueryHandlerEntry config, IndexingTree indexingTree, IndexingTree parentIndexingTree, QueryHandler handler,
+      QueryHandler parentHandler) throws IOException, RepositoryException, RepositoryConfigurationException
+   {
+      super(searchManager, parentSearchManager, config, indexingTree, parentIndexingTree, handler, parentHandler);
+      String jbcConfig = config.getParameterValue(QueryHandlerParams.PARAM_CHANGES_FILTER_CONFIG_PATH);
+      CacheFactory<Serializable, Object> factory = new DefaultCacheFactory<Serializable, Object>();
+      log.info("JBoss Cache configuration used: " + jbcConfig);
+      this.cache = factory.createCache(jbcConfig, false);
+
+      // initialize IndexerCacheLoader 
+      IndexerCacheLoader indexerCacheLoader = new IndexerCacheLoader();
+      // inject dependencies
+      indexerCacheLoader.init(searchManager, parentSearchManager, handler, parentHandler);
+      // set SingltonStoreCacheLoader
+      SingletonStoreConfig singletonStoreConfig = new SingletonStoreConfig();
+      singletonStoreConfig.setSingletonStoreClass(IndexerSingletonStoreCacheLoader.class.getName());
+      //singletonStoreConfig.setSingletonStoreClass(SingletonStoreCacheLoader.class.getName());
+      Properties singletonStoreProperties = new Properties();
+      singletonStoreProperties.setProperty("pushStateWhenCoordinator", "false");
+      singletonStoreProperties.setProperty("pushStateWhenCoordinatorTimeout", "10000");
+      singletonStoreConfig.setProperties(singletonStoreProperties);
+      singletonStoreConfig.setSingletonStoreEnabled(true);
+      // create CacheLoaderConfig
+      IndividualCacheLoaderConfig individualCacheLoaderConfig = new IndividualCacheLoaderConfig();
+      // set SingletonStoreConfig
+      individualCacheLoaderConfig.setSingletonStoreConfig(singletonStoreConfig);
+      // set CacheLoader
+      individualCacheLoaderConfig.setCacheLoader(indexerCacheLoader);
+      // set parameters
+      individualCacheLoaderConfig.setFetchPersistentState(false);
+      individualCacheLoaderConfig.setAsync(false);
+      individualCacheLoaderConfig.setIgnoreModifications(false);
+      individualCacheLoaderConfig.setPurgeOnStartup(false);
+      // create CacheLoaderConfig
+      CacheLoaderConfig cacheLoaderConfig = new CacheLoaderConfig();
+      cacheLoaderConfig.setShared(false);
+      cacheLoaderConfig.setPassivation(false);
+      cacheLoaderConfig.addIndividualCacheLoaderConfig(individualCacheLoaderConfig);
+      // insert CacheLoaderConfig
+      this.cache.getConfiguration().setCacheLoaderConfig(cacheLoaderConfig);
+      this.cache.create();
+      this.cache.start();
+      // start will invoke cache listener which will notify handler that mode is changed
+      IndexerIoMode ioMode =
+         ((CacheSPI)cache).getRPCManager().isCoordinator() ? IndexerIoMode.READ_WRITE : IndexerIoMode.READ_ONLY;
+      IndexerIoModeHandler modeHandler = indexerCacheLoader.getModeHandler();
+      handler.setIndexerIoModeHandler(modeHandler);
+      parentHandler.setIndexerIoModeHandler(modeHandler);
+
+      if (!parentHandler.isInitialized())
+      {
+         // TODO: uncomment it, when JbossCacheIndexInfos is finished.
+         parentHandler.setIndexInfos(new JBossCacheIndexInfos(cache, true, modeHandler));
+         parentHandler.setIndexUpdateMonitor(new JBossCacheIndexUpdateMonitor(cache, modeHandler));
+         parentHandler.init();
+      }
+      if (!handler.isInitialized())
+      {
+         // TODO: uncomment it, when JbossCacheIndexInfos is finished.
+         handler.setIndexInfos(new JBossCacheIndexInfos(cache, false, modeHandler));
+         handler.setIndexUpdateMonitor(new JBossCacheIndexUpdateMonitor(cache, modeHandler));
+         handler.init();
+      }
+
+   }
+
+   /**
+    * @see org.exoplatform.services.jcr.impl.core.query.IndexerChangesFilter#doUpdateIndex(java.util.Set, java.util.Set, java.util.Set, java.util.Set)
+    */
+   @Override
+   protected void doUpdateIndex(Set<String> removedNodes, Set<String> addedNodes, Set<String> parentRemovedNodes,
+      Set<String> parentAddedNodes)
+   {
+      String id = IdGenerator.generate();
+      try
+      {
+         cache.put(id, LISTWRAPPER, new ChangesFilterListsWrapper(addedNodes, removedNodes, parentAddedNodes,
+            parentRemovedNodes));
+      }
+      catch (CacheException e)
+      {
+         logErrorChanges(handler, removedNodes, addedNodes);
+         logErrorChanges(parentHandler, parentRemovedNodes, parentAddedNodes);
+      }
+   }
+
+   /**
+    * Log errors
+    * @param logHandler
+    * @param removedNodes
+    * @param addedNodes
+    */
+   private void logErrorChanges(QueryHandler logHandler, Set<String> removedNodes, Set<String> addedNodes)
+   {
+      try
+      {
+
+         logHandler.logErrorChanges(addedNodes, removedNodes);
+      }
+      catch (IOException ioe)
+      {
+         log.warn("Exception occure when errorLog writed. Error log is not complete. " + ioe, ioe);
+      }
+   }
+}


Property changes on: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JBossCacheIndexChangesFilter.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JBossCacheIndexUpdateMonitor.java (from rev 1586, jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JbossCacheIndexUpdateMonitor.java)
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JBossCacheIndexUpdateMonitor.java	                        (rev 0)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JBossCacheIndexUpdateMonitor.java	2010-01-27 10:47:12 UTC (rev 1587)
@@ -0,0 +1,239 @@
+/*
+ * Copyright (C) 2009 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.core.query.jbosscache;
+
+import org.exoplatform.services.jcr.impl.core.query.IndexerIoMode;
+import org.exoplatform.services.jcr.impl.core.query.IndexerIoModeHandler;
+import org.exoplatform.services.jcr.impl.core.query.IndexerIoModeListener;
+import org.exoplatform.services.jcr.impl.core.query.lucene.IndexUpdateMonitor;
+import org.exoplatform.services.jcr.impl.core.query.lucene.IndexUpdateMonitorListener;
+import org.exoplatform.services.log.ExoLogger;
+import org.exoplatform.services.log.Log;
+import org.jboss.cache.Cache;
+import org.jboss.cache.CacheException;
+import org.jboss.cache.CacheSPI;
+import org.jboss.cache.Fqn;
+import org.jboss.cache.Node;
+import org.jboss.cache.lock.LockManager;
+import org.jboss.cache.lock.LockType;
+import org.jboss.cache.notifications.annotation.CacheListener;
+import org.jboss.cache.notifications.annotation.NodeModified;
+import org.jboss.cache.notifications.event.NodeModifiedEvent;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.CopyOnWriteArrayList;
+
+/**
+ * @author <a href="mailto:Sergey.Kabashnyuk at exoplatform.org">Sergey Kabashnyuk</a>
+ * @version $Id: exo-jboss-codetemplates.xml 34360 2009-07-22 23:58:59Z ksm $
+ *
+ */
+ at CacheListener
+public class JBossCacheIndexUpdateMonitor implements IndexUpdateMonitor, IndexerIoModeListener
+{
+   /**
+    * Logger instance for this class
+    */
+   private final Log log = ExoLogger.getLogger(JBossCacheIndexUpdateMonitor.class);
+
+   private final Cache<Serializable, Object> cache;
+
+   private final static Fqn PARAMETER_ROOT = Fqn.fromString("INDEX_UPDATE_MONITOR");
+
+   private final static String PARAMETER_NAME = "index-update-in-progress";
+
+   public final IndexerIoModeHandler modeHandler;
+
+   /**
+    * The list of all the listeners
+    */
+   private final List<IndexUpdateMonitorListener> listeners;
+
+   /**
+    * @param cache instance of JbossCache that is used to deliver index names
+    */
+   public JBossCacheIndexUpdateMonitor(Cache<Serializable, Object> cache, IndexerIoModeHandler modeHandler)
+   {
+      this.cache = cache;
+      this.modeHandler = modeHandler;
+      this.listeners = new CopyOnWriteArrayList<IndexUpdateMonitorListener>();
+      modeHandler.addIndexerIoModeListener(this);
+      Node<Serializable, Object> cacheRoot = cache.getRoot();
+
+      // prepare cache structures
+      if (!cacheRoot.hasChild(PARAMETER_ROOT))
+      {
+         cache.getInvocationContext().getOptionOverrides().setCacheModeLocal(true);
+         cacheRoot.addChild(PARAMETER_ROOT).setResident(true);
+      }
+      else
+      {
+         cache.getNode(PARAMETER_ROOT).setResident(true);
+      }
+
+      if (IndexerIoMode.READ_WRITE == modeHandler.getMode())
+      {
+         setUpdateInProgress(false);
+      }
+      else
+      {
+         // Currently READ_ONLY is set, so new lists should be fired to multiIndex.
+         cache.addCacheListener(this);
+      }
+   }
+
+   /**
+    * @see org.exoplatform.services.jcr.impl.core.query.IndexerIoModeListener#onChangeMode(org.exoplatform.services.jcr.impl.core.query.IndexerIoMode)
+    */
+   public void onChangeMode(IndexerIoMode mode)
+   {
+      if (mode == IndexerIoMode.READ_WRITE)
+      {
+         // In READ_WRITE, the value of UpdateInProgress is changed locally so no need to listen
+         // to the cache
+         cache.removeCacheListener(this);
+      }
+      else
+      {
+         // In READ_ONLY, the value of UpdateInProgress will be changed remotely, so we have
+         // no need but to listen to the cache to be notified when the value changes
+         cache.addCacheListener(this);
+      }
+   }
+
+   /**
+    * @see org.exoplatform.services.jcr.impl.core.query.lucene.IndexUpdateMonitor#getUpdateInProgress()
+    */
+   public boolean getUpdateInProgress()
+   {
+      Object value = cache.get(PARAMETER_ROOT, PARAMETER_NAME);
+      return value != null ? (Boolean)value : false;
+   }
+
+   /**
+    *  Returns true if the node is locked (either for reading or writing) by anyone, and false otherwise.
+    * @param name
+    * @return
+    */
+   public boolean isLocked(String name)
+   {
+      LockManager lm = ((CacheSPI<Serializable, Object>)cache).getComponentRegistry().getComponent(LockManager.class);
+      return lm.isLocked(Fqn.fromRelativeFqn(PARAMETER_ROOT, Fqn.fromString(name)));
+   }
+
+   /**
+    *  Acquires a lock of type lockType, for a given owner
+    * @param name
+    * @param lockType
+    * @return
+    * @throws InterruptedException
+    */
+   public boolean lock(String name, LockType lockType)
+   {
+
+      LockManager lm = ((CacheSPI<Serializable, Object>)cache).getComponentRegistry().getComponent(LockManager.class);
+      try
+      {
+         return lm.lock(Fqn.fromRelativeFqn(PARAMETER_ROOT, Fqn.fromString(name)), lockType, Integer.MAX_VALUE);
+      }
+      catch (InterruptedException e)
+      {
+         log.warn("An error occurs while tryning to lock the node " + name, e);
+      }
+      return false;
+   }
+
+   /**
+    * @see org.exoplatform.services.jcr.impl.core.query.lucene.IndexUpdateMonitor#setUpdateInProgress(boolean)
+    */
+   public void setUpdateInProgress(boolean updateInProgress)
+   {
+      if (IndexerIoMode.READ_ONLY == modeHandler.getMode())
+      {
+         throw new IllegalStateException("Unable to set updateInProgress value in IndexerIoMode.READ_ONLY mode");
+      }
+      try
+      {
+         cache.put(PARAMETER_ROOT, PARAMETER_NAME, new Boolean(updateInProgress));
+         for (IndexUpdateMonitorListener listener : listeners)
+         {
+            listener.onUpdateInProgressChange(updateInProgress);
+         }
+
+      }
+      catch (CacheException e)
+      {
+         log.error("Fail to change updateInProgress mode to " + updateInProgress, e);
+      }
+   }
+
+   /**
+    * Releases the lock passed in
+    * @param name
+    */
+   public void unlock(String name)
+   {
+      LockManager lm = ((CacheSPI<Serializable, Object>)cache).getComponentRegistry().getComponent(LockManager.class);
+      lm.unlock(Fqn.fromRelativeFqn(PARAMETER_ROOT, Fqn.fromString(name)), cache.getInvocationContext()
+         .getGlobalTransaction());
+   }
+
+   /**
+    * @see org.exoplatform.services.jcr.impl.core.query.lucene.IndexUpdateMonitor#addIndexUpdateMonitorListener(org.exoplatform.services.jcr.impl.core.query.lucene.IndexUpdateMonitorListener)
+    */
+   public void addIndexUpdateMonitorListener(IndexUpdateMonitorListener listener)
+   {
+      listeners.add(listener);
+   }
+
+   /**
+    * Called when a node of the cache has been modified. It will be used to trigger events
+    * when the value of <code>updateInProgress</code> has been changed remotely
+    * @param event the event
+    */
+   @NodeModified
+   public void cacheNodeModified(NodeModifiedEvent event)
+   {
+      if (!event.isPre() && event.getFqn().equals(PARAMETER_ROOT))
+      {
+         Object value = null;
+         Map<?, ?> data = event.getData();
+         if (data == null)
+         {
+            log.warn("The data map is empty");
+         }
+         else
+         {
+            value = data.get(PARAMETER_NAME);
+         }
+         if (value == null)
+         {
+            log.warn("The data cannot be found, we will try to get it from the cache");
+            value = cache.get(PARAMETER_ROOT, PARAMETER_NAME);
+         }
+         boolean updateInProgress = value != null ? (Boolean)value : false;
+         for (IndexUpdateMonitorListener listener : listeners)
+         {
+            listener.onUpdateInProgressChange(updateInProgress);
+         }
+      }
+   }
+}


Property changes on: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JBossCacheIndexUpdateMonitor.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Deleted: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JbossCacheIndexChangesFilter.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JbossCacheIndexChangesFilter.java	2010-01-27 10:22:53 UTC (rev 1586)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JbossCacheIndexChangesFilter.java	2010-01-27 10:47:12 UTC (rev 1587)
@@ -1,176 +0,0 @@
-/*
- * Copyright (C) 2009 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.core.query.jbosscache;
-
-import org.exoplatform.services.jcr.config.QueryHandlerEntry;
-import org.exoplatform.services.jcr.config.QueryHandlerParams;
-import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
-import org.exoplatform.services.jcr.impl.core.query.IndexerChangesFilter;
-import org.exoplatform.services.jcr.impl.core.query.IndexerIoMode;
-import org.exoplatform.services.jcr.impl.core.query.IndexerIoModeHandler;
-import org.exoplatform.services.jcr.impl.core.query.IndexingTree;
-import org.exoplatform.services.jcr.impl.core.query.QueryHandler;
-import org.exoplatform.services.jcr.impl.core.query.SearchManager;
-import org.exoplatform.services.jcr.util.IdGenerator;
-import org.exoplatform.services.log.ExoLogger;
-import org.exoplatform.services.log.Log;
-import org.jboss.cache.Cache;
-import org.jboss.cache.CacheException;
-import org.jboss.cache.CacheFactory;
-import org.jboss.cache.CacheSPI;
-import org.jboss.cache.DefaultCacheFactory;
-import org.jboss.cache.config.CacheLoaderConfig;
-import org.jboss.cache.config.CacheLoaderConfig.IndividualCacheLoaderConfig;
-import org.jboss.cache.config.CacheLoaderConfig.IndividualCacheLoaderConfig.SingletonStoreConfig;
-
-import java.io.IOException;
-import java.io.Serializable;
-import java.util.Properties;
-import java.util.Set;
-
-import javax.jcr.RepositoryException;
-
-/**
- * @author <a href="mailto:Sergey.Kabashnyuk at exoplatform.org">Sergey Kabashnyuk</a>
- * @version $Id: exo-jboss-codetemplates.xml 34360 2009-07-22 23:58:59Z ksm $
- *
- */
-public class JbossCacheIndexChangesFilter extends IndexerChangesFilter
-{
-   /**
-    * Logger instance for this class
-    */
-   private final Log log = ExoLogger.getLogger(JbossCacheIndexChangesFilter.class);
-
-   private final Cache<Serializable, Object> cache;
-
-   public static final String LISTWRAPPER = "$lists".intern();
-
-   /**
-    * @param searchManager
-    * @param config
-    * @param indexingTree
-    * @throws RepositoryConfigurationException 
-    */
-   public JbossCacheIndexChangesFilter(SearchManager searchManager, SearchManager parentSearchManager,
-      QueryHandlerEntry config, IndexingTree indexingTree, IndexingTree parentIndexingTree, QueryHandler handler,
-      QueryHandler parentHandler) throws IOException, RepositoryException, RepositoryConfigurationException
-   {
-      super(searchManager, parentSearchManager, config, indexingTree, parentIndexingTree, handler, parentHandler);
-      String jbcConfig = config.getParameterValue(QueryHandlerParams.PARAM_CHANGES_FILTER_CONFIG_PATH);
-      CacheFactory<Serializable, Object> factory = new DefaultCacheFactory<Serializable, Object>();
-      log.info("JBoss Cache configuration used: " + jbcConfig);
-      this.cache = factory.createCache(jbcConfig, false);
-
-      // initialize IndexerCacheLoader 
-      IndexerCacheLoader indexerCacheLoader = new IndexerCacheLoader();
-      // inject dependencies
-      indexerCacheLoader.init(searchManager, parentSearchManager, handler, parentHandler);
-      // set SingltonStoreCacheLoader
-      SingletonStoreConfig singletonStoreConfig = new SingletonStoreConfig();
-      singletonStoreConfig.setSingletonStoreClass(IndexerSingletonStoreCacheLoader.class.getName());
-      //singletonStoreConfig.setSingletonStoreClass(SingletonStoreCacheLoader.class.getName());
-      Properties singletonStoreProperties = new Properties();
-      singletonStoreProperties.setProperty("pushStateWhenCoordinator", "false");
-      singletonStoreProperties.setProperty("pushStateWhenCoordinatorTimeout", "10000");
-      singletonStoreConfig.setProperties(singletonStoreProperties);
-      singletonStoreConfig.setSingletonStoreEnabled(true);
-      // create CacheLoaderConfig
-      IndividualCacheLoaderConfig individualCacheLoaderConfig = new IndividualCacheLoaderConfig();
-      // set SingletonStoreConfig
-      individualCacheLoaderConfig.setSingletonStoreConfig(singletonStoreConfig);
-      // set CacheLoader
-      individualCacheLoaderConfig.setCacheLoader(indexerCacheLoader);
-      // set parameters
-      individualCacheLoaderConfig.setFetchPersistentState(false);
-      individualCacheLoaderConfig.setAsync(false);
-      individualCacheLoaderConfig.setIgnoreModifications(false);
-      individualCacheLoaderConfig.setPurgeOnStartup(false);
-      // create CacheLoaderConfig
-      CacheLoaderConfig cacheLoaderConfig = new CacheLoaderConfig();
-      cacheLoaderConfig.setShared(false);
-      cacheLoaderConfig.setPassivation(false);
-      cacheLoaderConfig.addIndividualCacheLoaderConfig(individualCacheLoaderConfig);
-      // insert CacheLoaderConfig
-      this.cache.getConfiguration().setCacheLoaderConfig(cacheLoaderConfig);
-      this.cache.create();
-      this.cache.start();
-      // start will invoke cache listener which will notify handler that mode is changed
-      IndexerIoMode ioMode =
-         ((CacheSPI)cache).getRPCManager().isCoordinator() ? IndexerIoMode.READ_WRITE : IndexerIoMode.READ_ONLY;
-      IndexerIoModeHandler modeHandler = indexerCacheLoader.getModeHandler();
-      handler.setIndexerIoModeHandler(modeHandler);
-      parentHandler.setIndexerIoModeHandler(modeHandler);
-
-      if (!parentHandler.isInitialized())
-      {
-         // TODO: uncomment it, when JbossCacheIndexInfos is finished.
-         parentHandler.setIndexInfos(new JBossCacheIndexInfos(cache, true, modeHandler));
-         parentHandler.setIndexUpdateMonitor(new JbossCacheIndexUpdateMonitor(cache, modeHandler));
-         parentHandler.init();
-      }
-      if (!handler.isInitialized())
-      {
-         // TODO: uncomment it, when JbossCacheIndexInfos is finished.
-         handler.setIndexInfos(new JBossCacheIndexInfos(cache, false, modeHandler));
-         handler.setIndexUpdateMonitor(new JbossCacheIndexUpdateMonitor(cache, modeHandler));
-         handler.init();
-      }
-
-   }
-
-   /**
-    * @see org.exoplatform.services.jcr.impl.core.query.IndexerChangesFilter#doUpdateIndex(java.util.Set, java.util.Set, java.util.Set, java.util.Set)
-    */
-   @Override
-   protected void doUpdateIndex(Set<String> removedNodes, Set<String> addedNodes, Set<String> parentRemovedNodes,
-      Set<String> parentAddedNodes)
-   {
-      String id = IdGenerator.generate();
-      try
-      {
-         cache.put(id, LISTWRAPPER, new ChangesFilterListsWrapper(addedNodes, removedNodes, parentAddedNodes,
-            parentRemovedNodes));
-      }
-      catch (CacheException e)
-      {
-         logErrorChanges(handler, removedNodes, addedNodes);
-         logErrorChanges(parentHandler, parentRemovedNodes, parentAddedNodes);
-      }
-   }
-
-   /**
-    * Log errors
-    * @param logHandler
-    * @param removedNodes
-    * @param addedNodes
-    */
-   private void logErrorChanges(QueryHandler logHandler, Set<String> removedNodes, Set<String> addedNodes)
-   {
-      try
-      {
-
-         logHandler.logErrorChanges(addedNodes, removedNodes);
-      }
-      catch (IOException ioe)
-      {
-         log.warn("Exception occure when errorLog writed. Error log is not complete. " + ioe, ioe);
-      }
-   }
-}

Deleted: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JbossCacheIndexUpdateMonitor.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JbossCacheIndexUpdateMonitor.java	2010-01-27 10:22:53 UTC (rev 1586)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JbossCacheIndexUpdateMonitor.java	2010-01-27 10:47:12 UTC (rev 1587)
@@ -1,239 +0,0 @@
-/*
- * Copyright (C) 2009 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.core.query.jbosscache;
-
-import org.exoplatform.services.jcr.impl.core.query.IndexerIoMode;
-import org.exoplatform.services.jcr.impl.core.query.IndexerIoModeHandler;
-import org.exoplatform.services.jcr.impl.core.query.IndexerIoModeListener;
-import org.exoplatform.services.jcr.impl.core.query.lucene.IndexUpdateMonitor;
-import org.exoplatform.services.jcr.impl.core.query.lucene.IndexUpdateMonitorListener;
-import org.exoplatform.services.log.ExoLogger;
-import org.exoplatform.services.log.Log;
-import org.jboss.cache.Cache;
-import org.jboss.cache.CacheException;
-import org.jboss.cache.CacheSPI;
-import org.jboss.cache.Fqn;
-import org.jboss.cache.Node;
-import org.jboss.cache.lock.LockManager;
-import org.jboss.cache.lock.LockType;
-import org.jboss.cache.notifications.annotation.CacheListener;
-import org.jboss.cache.notifications.annotation.NodeModified;
-import org.jboss.cache.notifications.event.NodeModifiedEvent;
-
-import java.io.Serializable;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-/**
- * @author <a href="mailto:Sergey.Kabashnyuk at exoplatform.org">Sergey Kabashnyuk</a>
- * @version $Id: exo-jboss-codetemplates.xml 34360 2009-07-22 23:58:59Z ksm $
- *
- */
- at CacheListener
-public class JbossCacheIndexUpdateMonitor implements IndexUpdateMonitor, IndexerIoModeListener
-{
-   /**
-    * Logger instance for this class
-    */
-   private final Log log = ExoLogger.getLogger(JbossCacheIndexUpdateMonitor.class);
-
-   private final Cache<Serializable, Object> cache;
-
-   private final static Fqn PARAMETER_ROOT = Fqn.fromString("INDEX_UPDATE_MONITOR");
-
-   private final static String PARAMETER_NAME = "index-update-in-progress";
-
-   public final IndexerIoModeHandler modeHandler;
-
-   /**
-    * The list of all the listeners
-    */
-   private final List<IndexUpdateMonitorListener> listeners;
-
-   /**
-    * @param cache instance of JbossCache that is used to deliver index names
-    */
-   public JbossCacheIndexUpdateMonitor(Cache<Serializable, Object> cache, IndexerIoModeHandler modeHandler)
-   {
-      this.cache = cache;
-      this.modeHandler = modeHandler;
-      this.listeners = new CopyOnWriteArrayList<IndexUpdateMonitorListener>();
-      modeHandler.addIndexerIoModeListener(this);
-      Node<Serializable, Object> cacheRoot = cache.getRoot();
-
-      // prepare cache structures
-      if (!cacheRoot.hasChild(PARAMETER_ROOT))
-      {
-         cache.getInvocationContext().getOptionOverrides().setCacheModeLocal(true);
-         cacheRoot.addChild(PARAMETER_ROOT).setResident(true);
-      }
-      else
-      {
-         cache.getNode(PARAMETER_ROOT).setResident(true);
-      }
-
-      if (IndexerIoMode.READ_WRITE == modeHandler.getMode())
-      {
-         setUpdateInProgress(false);
-      }
-      else
-      {
-         // Currently READ_ONLY is set, so new lists should be fired to multiIndex.
-         cache.addCacheListener(this);
-      }
-   }
-
-   /**
-    * @see org.exoplatform.services.jcr.impl.core.query.IndexerIoModeListener#onChangeMode(org.exoplatform.services.jcr.impl.core.query.IndexerIoMode)
-    */
-   public void onChangeMode(IndexerIoMode mode)
-   {
-      if (mode == IndexerIoMode.READ_WRITE)
-      {
-         // In READ_WRITE, the value of UpdateInProgress is changed locally so no need to listen
-         // to the cache
-         cache.removeCacheListener(this);
-      }
-      else
-      {
-         // In READ_ONLY, the value of UpdateInProgress will be changed remotely, so we have
-         // no need but to listen to the cache to be notified when the value changes
-         cache.addCacheListener(this);
-      }
-   }
-
-   /**
-    * @see org.exoplatform.services.jcr.impl.core.query.lucene.IndexUpdateMonitor#getUpdateInProgress()
-    */
-   public boolean getUpdateInProgress()
-   {
-      Object value = cache.get(PARAMETER_ROOT, PARAMETER_NAME);
-      return value != null ? (Boolean)value : false;
-   }
-
-   /**
-    *  Returns true if the node is locked (either for reading or writing) by anyone, and false otherwise.
-    * @param name
-    * @return
-    */
-   public boolean isLocked(String name)
-   {
-      LockManager lm = ((CacheSPI<Serializable, Object>)cache).getComponentRegistry().getComponent(LockManager.class);
-      return lm.isLocked(Fqn.fromRelativeFqn(PARAMETER_ROOT, Fqn.fromString(name)));
-   }
-
-   /**
-    *  Acquires a lock of type lockType, for a given owner
-    * @param name
-    * @param lockType
-    * @return
-    * @throws InterruptedException
-    */
-   public boolean lock(String name, LockType lockType)
-   {
-
-      LockManager lm = ((CacheSPI<Serializable, Object>)cache).getComponentRegistry().getComponent(LockManager.class);
-      try
-      {
-         return lm.lock(Fqn.fromRelativeFqn(PARAMETER_ROOT, Fqn.fromString(name)), lockType, Integer.MAX_VALUE);
-      }
-      catch (InterruptedException e)
-      {
-         log.warn("An error occurs while tryning to lock the node " + name, e);
-      }
-      return false;
-   }
-
-   /**
-    * @see org.exoplatform.services.jcr.impl.core.query.lucene.IndexUpdateMonitor#setUpdateInProgress(boolean)
-    */
-   public void setUpdateInProgress(boolean updateInProgress)
-   {
-      if (IndexerIoMode.READ_ONLY == modeHandler.getMode())
-      {
-         throw new IllegalStateException("Unable to set updateInProgress value in IndexerIoMode.READ_ONLY mode");
-      }
-      try
-      {
-         cache.put(PARAMETER_ROOT, PARAMETER_NAME, new Boolean(updateInProgress));
-         for (IndexUpdateMonitorListener listener : listeners)
-         {
-            listener.onUpdateInProgressChange(updateInProgress);
-         }
-
-      }
-      catch (CacheException e)
-      {
-         log.error("Fail to change updateInProgress mode to " + updateInProgress, e);
-      }
-   }
-
-   /**
-    * Releases the lock passed in
-    * @param name
-    */
-   public void unlock(String name)
-   {
-      LockManager lm = ((CacheSPI<Serializable, Object>)cache).getComponentRegistry().getComponent(LockManager.class);
-      lm.unlock(Fqn.fromRelativeFqn(PARAMETER_ROOT, Fqn.fromString(name)), cache.getInvocationContext()
-         .getGlobalTransaction());
-   }
-
-   /**
-    * @see org.exoplatform.services.jcr.impl.core.query.lucene.IndexUpdateMonitor#addIndexUpdateMonitorListener(org.exoplatform.services.jcr.impl.core.query.lucene.IndexUpdateMonitorListener)
-    */
-   public void addIndexUpdateMonitorListener(IndexUpdateMonitorListener listener)
-   {
-      listeners.add(listener);
-   }
-
-   /**
-    * Called when a node of the cache has been modified. It will be used to trigger events
-    * when the value of <code>updateInProgress</code> has been changed remotely
-    * @param event the event
-    */
-   @NodeModified
-   public void cacheNodeModified(NodeModifiedEvent event)
-   {
-      if (!event.isPre() && event.getFqn().equals(PARAMETER_ROOT))
-      {
-         Object value = null;
-         Map<?, ?> data = event.getData();
-         if (data == null)
-         {
-            log.warn("The data map is empty");
-         }
-         else
-         {
-            value = data.get(PARAMETER_NAME);
-         }
-         if (value == null)
-         {
-            log.warn("The data cannot be found, we will try to get it from the cache");
-            value = cache.get(PARAMETER_ROOT, PARAMETER_NAME);
-         }
-         boolean updateInProgress = value != null ? (Boolean)value : false;
-         for (IndexUpdateMonitorListener listener : listeners)
-         {
-            listener.onUpdateInProgressChange(updateInProgress);
-         }
-      }
-   }
-}

Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/lab/cluster/prepare/TestIndexUpdateMonitor.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/lab/cluster/prepare/TestIndexUpdateMonitor.java	2010-01-27 10:22:53 UTC (rev 1586)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/lab/cluster/prepare/TestIndexUpdateMonitor.java	2010-01-27 10:47:12 UTC (rev 1587)
@@ -22,7 +22,7 @@
 
 import org.exoplatform.services.jcr.impl.core.query.IndexerIoMode;
 import org.exoplatform.services.jcr.impl.core.query.IndexerIoModeHandler;
-import org.exoplatform.services.jcr.impl.core.query.jbosscache.JbossCacheIndexUpdateMonitor;
+import org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexUpdateMonitor;
 import org.exoplatform.services.jcr.impl.core.query.lucene.IndexUpdateMonitor;
 import org.exoplatform.services.log.ExoLogger;
 import org.exoplatform.services.log.Log;
@@ -59,7 +59,7 @@
       // TODO Auto-generated method stub
       super.setUp();
       cache = createCache();
-      indexUpdateMonitor = new JbossCacheIndexUpdateMonitor(cache, new IndexerIoModeHandler(IndexerIoMode.READ_WRITE));
+      indexUpdateMonitor = new JBossCacheIndexUpdateMonitor(cache, new IndexerIoModeHandler(IndexerIoMode.READ_WRITE));
    }
 
    /**

Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/cluster/test-jcr-config.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/cluster/test-jcr-config.xml	2010-01-27 10:22:53 UTC (rev 1586)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/cluster/test-jcr-config.xml	2010-01-27 10:47:12 UTC (rev 1587)
@@ -74,7 +74,7 @@
                <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
                   <properties>
                      <property name="index-dir" value="${java.io.tmpdir}/cluster_nfs/db1/ws" />
-                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JbossCacheIndexChangesFilter" />
+                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
                      <property name="changesfilter-config-path" value="conf/cluster/test-jbosscache-indexer-config-exoloader_db1_ws.xml" />
                      <property name="max-volatile-time" value="60" />
 
@@ -117,7 +117,7 @@
                <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
                   <properties>
                      <property name="index-dir" value="${java.io.tmpdir}/cluster_nfs/db1/ws1" />
-                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JbossCacheIndexChangesFilter" />
+                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
                      <property name="changesfilter-config-path" value="conf/cluster/test-jbosscache-indexer-config-exoloader_db1_ws1.xml" />
                      <property name="max-volatile-time" value="60" />
                   </properties>

Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jcr-config.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jcr-config.xml	2010-01-27 10:22:53 UTC (rev 1586)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/cluster/test-jcr-config.xml	2010-01-27 10:47:12 UTC (rev 1587)
@@ -74,7 +74,7 @@
                <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
                   <properties>
                      <property name="index-dir" value="target/cluster_nfs/db1/ws" />
-                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JbossCacheIndexChangesFilter" />
+                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
                      <property name="changesfilter-config-path" value="conf/standalone/cluster/test-jbosscache-indexer-config-exoloader_db1_ws.xml" />
                      <property name="max-volatile-time" value="60" />
                    </properties>
@@ -116,7 +116,7 @@
                <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
                   <properties>
                      <property name="index-dir" value="target/cluster_nfs/db1/ws1" />
-                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JbossCacheIndexChangesFilter" />
+                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
                      <property name="changesfilter-config-path" value="conf/standalone/cluster/test-jbosscache-indexer-config-exoloader_db1_ws1.xml" />
                      <property name="max-volatile-time" value="60" />
                      <property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
@@ -164,7 +164,7 @@
                <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
                   <properties>
                      <property name="index-dir" value="target/cluster_nfs/db1/ws2" />
-                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JbossCacheIndexChangesFilter" />
+                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
                      <property name="changesfilter-config-path" value="conf/standalone/cluster/test-jbosscache-indexer-config-exoloader_db1_ws2.xml" />
                      <property name="max-volatile-time" value="60" />
                      <property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
@@ -227,7 +227,7 @@
                <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
                   <properties>
                      <property name="index-dir" value="target/cluster_nfs/db1/ws3" />
-                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JbossCacheIndexChangesFilter" />
+                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
                      <property name="changesfilter-config-path" value="conf/standalone/cluster/test-jbosscache-indexer-config-exoloader_db1_ws3.xml" />
                      <property name="max-volatile-time" value="60" />
                     <property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
@@ -291,7 +291,7 @@
                <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
                   <properties>
                      <property name="index-dir" value="target/cluster_nfs/db1tck/ws" />
-                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JbossCacheIndexChangesFilter" />
+                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
                      <property name="changesfilter-config-path" value="conf/standalone/cluster/test-jbosscache-indexer-config-exoloader_db1tck_ws.xml" />
                      <property name="max-volatile-time" value="60" />
                      <property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
@@ -346,7 +346,7 @@
                <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
                   <properties>
                      <property name="index-dir" value="target/cluster_nfs/db1tck/ws1" />
-                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JbossCacheIndexChangesFilter" />
+                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
                      <property name="changesfilter-config-path" value="conf/standalone/cluster/test-jbosscache-indexer-config-exoloader_db1tck_ws1.xml" />
                      <property name="max-volatile-time" value="60" />
                      <property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />
@@ -400,7 +400,7 @@
                <query-handler class="org.exoplatform.services.jcr.impl.core.query.lucene.SearchIndex">
                   <properties>
                      <property name="index-dir" value="target/cluster_nfs/db1tck/ws2" />
-                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JbossCacheIndexChangesFilter" />
+                     <property name="changesfilter-class" value="org.exoplatform.services.jcr.impl.core.query.jbosscache.JBossCacheIndexChangesFilter" />
                      <property name="changesfilter-config-path" value="conf/standalone/cluster/test-jbosscache-indexer-config-exoloader_db1tck_ws2.xml" />
                      <property name="max-volatile-time" value="60" />
                      <property name="synonymprovider-class" value="org.exoplatform.services.jcr.impl.core.query.lucene.PropertiesSynonymProvider" />



More information about the exo-jcr-commits mailing list