Author: nfilotto
Date: 2011-05-16 10:32:07 -0400 (Mon, 16 May 2011)
New Revision: 4380
Added:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ChangesFilterListsWrapper.java
Removed:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/ChangesFilterListsWrapper.java
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/DefaultChangesFilter.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/IndexerChangesFilter.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/AbstractIndexerCacheStore.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/ISPNIndexChangesFilter.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/IndexerCacheStore.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/LocalIndexChangesFilter.java
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/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/LocalIndexChangesFilter.java
Log:
EXOJCR-1347: Clean the code of the IndexerChangesFilters
Now the class ChangesFilterListsWrapper is directly in the query package and all the
common code has been moved in the root class IndexerChangesFilter
Copied:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ChangesFilterListsWrapper.java
(from rev 4376,
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/ChangesFilterListsWrapper.java)
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ChangesFilterListsWrapper.java
(rev 0)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ChangesFilterListsWrapper.java 2011-05-16
14:32:07 UTC (rev 4380)
@@ -0,0 +1,109 @@
+/*
+ * 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;
+
+import org.exoplatform.services.jcr.impl.core.query.lucene.ChangesHolder;
+
+import java.io.Serializable;
+import java.util.Set;
+
+/**
+ * FOR TESTING PURPOSES ONLY. Used to avoid batching usage in indexer cache.
+ *
+ * @author <a href="mailto:nikolazius@gmail.com">Nikolay
Zamosenchuk</a>
+ * @version $Id: ChangesFilterListsWrapper.java 34360 2009-07-22 23:58:59Z nzamosenchuk
$
+ *
+ */
+public class ChangesFilterListsWrapper implements Serializable
+{
+ private static final long serialVersionUID = 1L;
+
+ private Set<String> addedNodes;
+
+ private Set<String> removedNodes;
+
+ private Set<String> parentAddedNodes;
+
+ private Set<String> parentRemovedNodes;
+
+ private ChangesHolder changes;
+
+ private ChangesHolder parentChanges;
+
+ /**
+ * Creates ChangesFilterListsWrapper data class, containing given lists.
+ *
+ * @param addedNodes
+ * @param removedNodes
+ * @param parentAddedNodes
+ * @param parentRemovedNodes
+ */
+ public ChangesFilterListsWrapper(Set<String> addedNodes, Set<String>
removedNodes, Set<String> parentAddedNodes,
+ Set<String> parentRemovedNodes)
+ {
+ this.addedNodes = addedNodes;
+ this.removedNodes = removedNodes;
+ this.parentAddedNodes = parentAddedNodes;
+ this.parentRemovedNodes = parentRemovedNodes;
+ }
+
+ /**
+ * Creates ChangesFilterListsWrapper data class, containing given lists.
+ */
+ public ChangesFilterListsWrapper(ChangesHolder changes, ChangesHolder parentChanges)
+ {
+ this.changes = changes;
+ this.parentChanges = parentChanges;
+ }
+
+ public boolean withChanges()
+ {
+ return changes != null || parentChanges != null;
+ }
+
+ public ChangesHolder getChanges()
+ {
+ return changes;
+ }
+
+ public ChangesHolder getParentChanges()
+ {
+ return parentChanges;
+ }
+
+ public Set<String> getAddedNodes()
+ {
+ return addedNodes;
+ }
+
+ public Set<String> getRemovedNodes()
+ {
+ return removedNodes;
+ }
+
+ public Set<String> getParentAddedNodes()
+ {
+ return parentAddedNodes;
+ }
+
+ public Set<String> getParentRemovedNodes()
+ {
+ return parentRemovedNodes;
+ }
+}
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/DefaultChangesFilter.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/DefaultChangesFilter.java 2011-05-13
13:03:40 UTC (rev 4379)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/DefaultChangesFilter.java 2011-05-16
14:32:07 UTC (rev 4380)
@@ -94,14 +94,7 @@
catch (IOException e)
{
log.error("Error indexing changes " + e, e);
- try
- {
- handler.logErrorChanges(removedNodes, addedNodes);
- }
- catch (IOException ioe)
- {
- log.warn("Exception occure when errorLog writed. Error log is not
complete. " + ioe, ioe);
- }
+ logErrorChanges(handler, removedNodes, addedNodes);
}
try
@@ -115,16 +108,12 @@
catch (IOException e)
{
log.error("Error indexing changes " + e, e);
- try
- {
- parentHandler.logErrorChanges(parentRemovedNodes, parentAddedNodes);
- }
- catch (IOException ioe)
- {
- log.warn("Exception occure when errorLog writed. Error log is not
complete. " + ioe, ioe);
- }
+ logErrorChanges(parentHandler, parentRemovedNodes, parentAddedNodes);
}
-
}
-
+
+ protected Log getLogger()
+ {
+ return log;
+ }
}
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/IndexerChangesFilter.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/IndexerChangesFilter.java 2011-05-13
13:03:40 UTC (rev 4379)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/IndexerChangesFilter.java 2011-05-16
14:32:07 UTC (rev 4380)
@@ -23,9 +23,11 @@
import org.exoplatform.services.jcr.dataflow.ItemState;
import org.exoplatform.services.jcr.dataflow.ItemStateChangesLog;
import org.exoplatform.services.jcr.dataflow.persistent.ItemsPersistenceListener;
+import org.exoplatform.services.jcr.impl.core.query.lucene.ChangesHolder;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@@ -44,7 +46,7 @@
/**
* Logger instance for this class
*/
- private static final Log log =
ExoLogger.getLogger("exo.jcr.component.core.DefaultChangesFilter");
+ private static final Log log =
ExoLogger.getLogger("exo.jcr.component.core.IndexerChangesFilter");
protected final SearchManager searchManager;
@@ -78,6 +80,10 @@
this.indexingTree = indexingTree;
this.handler = handler;
this.parentHandler = parentHandler;
+ if (log.isDebugEnabled())
+ {
+ log.debug("Will the indexing being enrolled in global transactions : "
+ isTXAware());
+ }
}
/**
@@ -202,9 +208,56 @@
* @param removedNodes
* @param addedNodes
*/
- protected abstract void doUpdateIndex(Set<String> removedNodes,
Set<String> addedNodes,
- Set<String> parentRemovedNodes, Set<String> parentAddedNodes);
+ protected void doUpdateIndex(Set<String> removedNodes, Set<String>
addedNodes, Set<String> parentRemovedNodes,
+ Set<String> parentAddedNodes)
+ {
+ ChangesHolder changes = searchManager.getChanges(removedNodes, addedNodes);
+ ChangesHolder parentChanges = parentSearchManager.getChanges(parentRemovedNodes,
parentAddedNodes);
+ if (changes == null && parentChanges == null)
+ {
+ return;
+ }
+
+ try
+ {
+ doUpdateIndex(new ChangesFilterListsWrapper(changes, parentChanges));
+ }
+ catch (RuntimeException e)
+ {
+ if (isTXAware())
+ {
+ // The indexing is part of the global tx so the error needs to be thrown to
+ // allow to roll back other resources
+ throw e;
+ }
+ getLogger().error(e.getLocalizedMessage(), e);
+ logErrorChanges(handler, removedNodes, addedNodes);
+ logErrorChanges(parentHandler, parentRemovedNodes, parentAddedNodes);
+ }
+ }
+
+ protected void doUpdateIndex(ChangesFilterListsWrapper changes)
+ {
+ }
+
+ protected Log getLogger()
+ {
+ return log;
+ }
+
+ protected void logErrorChanges(QueryHandler logHandler, Set<String>
removedNodes, Set<String> addedNodes)
+ {
+ try
+ {
+ logHandler.logErrorChanges(addedNodes, removedNodes);
+ }
+ catch (IOException ioe)
+ {
+ getLogger().warn("Exception occure when errorLog writed. Error log is not
complete. " + ioe, ioe);
+ }
+ }
+
private void createNewOrAdd(String key, ItemState state, Map<String,
List<ItemState>> updatedNodes)
{
List<ItemState> list = updatedNodes.get(key);
@@ -222,7 +275,7 @@
*/
public boolean isTXAware()
{
- return true;
+ return false;
}
/**
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/AbstractIndexerCacheStore.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/AbstractIndexerCacheStore.java 2011-05-13
13:03:40 UTC (rev 4379)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/AbstractIndexerCacheStore.java 2011-05-16
14:32:07 UTC (rev 4380)
@@ -19,12 +19,12 @@
package org.exoplatform.services.jcr.impl.core.query.ispn;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
+import org.exoplatform.services.jcr.impl.core.query.ChangesFilterListsWrapper;
import org.exoplatform.services.jcr.impl.core.query.Indexer;
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.QueryHandler;
import org.exoplatform.services.jcr.impl.core.query.SearchManager;
-import
org.exoplatform.services.jcr.impl.core.query.jbosscache.ChangesFilterListsWrapper;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import org.infinispan.container.entries.InternalCacheEntry;
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/ISPNIndexChangesFilter.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/ISPNIndexChangesFilter.java 2011-05-13
13:03:40 UTC (rev 4379)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/ISPNIndexChangesFilter.java 2011-05-16
14:32:07 UTC (rev 4380)
@@ -21,26 +21,23 @@
import org.exoplatform.container.configuration.ConfigurationManager;
import org.exoplatform.services.jcr.config.QueryHandlerEntry;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
+import org.exoplatform.services.jcr.impl.core.query.ChangesFilterListsWrapper;
import org.exoplatform.services.jcr.impl.core.query.IndexerChangesFilter;
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.impl.core.query.jbosscache.ChangesFilterListsWrapper;
-import org.exoplatform.services.jcr.impl.core.query.lucene.ChangesHolder;
import org.exoplatform.services.jcr.infinispan.ISPNCacheFactory;
import org.exoplatform.services.jcr.infinispan.PrivilegedISPNCacheHelper;
import org.exoplatform.services.jcr.util.IdGenerator;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import org.infinispan.Cache;
-import org.infinispan.CacheException;
import org.infinispan.context.Flag;
import org.infinispan.loaders.CacheLoaderManager;
import java.io.IOException;
import java.io.Serializable;
-import java.util.Set;
import javax.jcr.RepositoryException;
@@ -110,53 +107,17 @@
handler.init();
}
}
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected void doUpdateIndex(Set<String> removedNodes, Set<String>
addedNodes, Set<String> parentRemovedNodes,
- Set<String> parentAddedNodes)
+
+ protected Log getLogger()
{
- ChangesHolder changes = searchManager.getChanges(removedNodes, addedNodes);
- ChangesHolder parentChanges = parentSearchManager.getChanges(parentRemovedNodes,
parentAddedNodes);
-
- if (changes == null && parentChanges == null)
- {
- return;
- }
-
- ChangesKey changesKey = new ChangesKey(wsId, IdGenerator.generate());
- try
- {
- cache.getAdvancedCache().withFlags(Flag.SKIP_LOCKING);
- PrivilegedISPNCacheHelper.put(cache, changesKey, new
ChangesFilterListsWrapper(changes, parentChanges));
- }
- catch (CacheException e)
- {
- log.error(e.getLocalizedMessage(), e);
- logErrorChanges(handler, removedNodes, addedNodes);
- logErrorChanges(parentHandler, parentRemovedNodes, parentAddedNodes);
- }
+ return log;
}
- /**
- * Log errors.
- *
- * @param logHandler
- * @param removedNodes
- * @param addedNodes
- */
- private void logErrorChanges(QueryHandler logHandler, Set<String> removedNodes,
Set<String> addedNodes)
+ protected void doUpdateIndex(ChangesFilterListsWrapper changes)
{
- try
- {
- logHandler.logErrorChanges(addedNodes, removedNodes);
- }
- catch (IOException ioe)
- {
- log.warn("Exception occure when errorLog writed. Error log is not complete.
" + ioe, ioe);
- }
+ ChangesKey changesKey = new ChangesKey(wsId, IdGenerator.generate());
+ cache.getAdvancedCache().withFlags(Flag.SKIP_LOCKING);
+ PrivilegedISPNCacheHelper.put(cache, changesKey, changes);
}
/**
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/IndexerCacheStore.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/IndexerCacheStore.java 2011-05-13
13:03:40 UTC (rev 4379)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/IndexerCacheStore.java 2011-05-16
14:32:07 UTC (rev 4380)
@@ -18,9 +18,9 @@
*/
package org.exoplatform.services.jcr.impl.core.query.ispn;
+import org.exoplatform.services.jcr.impl.core.query.ChangesFilterListsWrapper;
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.ChangesFilterListsWrapper;
import org.exoplatform.services.jcr.util.IdGenerator;
import org.infinispan.Cache;
import org.infinispan.config.Configuration.CacheMode;
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/LocalIndexChangesFilter.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/LocalIndexChangesFilter.java 2011-05-13
13:03:40 UTC (rev 4379)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/LocalIndexChangesFilter.java 2011-05-16
14:32:07 UTC (rev 4380)
@@ -21,26 +21,23 @@
import org.exoplatform.container.configuration.ConfigurationManager;
import org.exoplatform.services.jcr.config.QueryHandlerEntry;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
+import org.exoplatform.services.jcr.impl.core.query.ChangesFilterListsWrapper;
import org.exoplatform.services.jcr.impl.core.query.IndexerChangesFilter;
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.impl.core.query.jbosscache.ChangesFilterListsWrapper;
-import org.exoplatform.services.jcr.impl.core.query.lucene.ChangesHolder;
import org.exoplatform.services.jcr.infinispan.ISPNCacheFactory;
import org.exoplatform.services.jcr.infinispan.PrivilegedISPNCacheHelper;
import org.exoplatform.services.jcr.util.IdGenerator;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import org.infinispan.Cache;
-import org.infinispan.CacheException;
import org.infinispan.context.Flag;
import org.infinispan.loaders.CacheLoaderManager;
import java.io.IOException;
import java.io.Serializable;
-import java.util.Set;
import javax.jcr.RepositoryException;
@@ -103,53 +100,16 @@
handler.init();
}
}
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected void doUpdateIndex(Set<String> removedNodes, Set<String>
addedNodes, Set<String> parentRemovedNodes,
- Set<String> parentAddedNodes)
+
+ protected Log getLogger()
{
-
- ChangesHolder changes = searchManager.getChanges(removedNodes, addedNodes);
- ChangesHolder parentChanges = parentSearchManager.getChanges(parentRemovedNodes,
parentAddedNodes);
-
- if (changes == null && parentChanges == null)
- {
- return;
- }
-
- ChangesKey changesKey = new ChangesKey(wsId, IdGenerator.generate());
- try
- {
- cache.getAdvancedCache().withFlags(Flag.SKIP_LOCKING);
- PrivilegedISPNCacheHelper.put(cache, changesKey, new
ChangesFilterListsWrapper(changes, parentChanges));
- }
- catch (CacheException e)
- {
- log.error(e.getLocalizedMessage(), e);
- logErrorChanges(handler, removedNodes, addedNodes);
- logErrorChanges(parentHandler, parentRemovedNodes, parentAddedNodes);
- }
+ return log;
}
- /**
- * Log errors.
- *
- * @param logHandler
- * @param removedNodes
- * @param addedNodes
- */
- private void logErrorChanges(QueryHandler logHandler, Set<String> removedNodes,
Set<String> addedNodes)
+ protected void doUpdateIndex(ChangesFilterListsWrapper changes)
{
- try
- {
- logHandler.logErrorChanges(addedNodes, removedNodes);
- }
- catch (IOException ioe)
- {
- log.warn("Exception occure when errorLog writed. Error log is not complete.
" + ioe, ioe);
- }
+ ChangesKey changesKey = new ChangesKey(wsId, IdGenerator.generate());
+ cache.getAdvancedCache().withFlags(Flag.SKIP_LOCKING);
+ PrivilegedISPNCacheHelper.put(cache, changesKey, changes);
}
}
Deleted:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/ChangesFilterListsWrapper.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/ChangesFilterListsWrapper.java 2011-05-13
13:03:40 UTC (rev 4379)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/ChangesFilterListsWrapper.java 2011-05-16
14:32:07 UTC (rev 4380)
@@ -1,109 +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.lucene.ChangesHolder;
-
-import java.io.Serializable;
-import java.util.Set;
-
-/**
- * FOR TESTING PURPOSES ONLY. Used to avoid batching usage in indexer cache.
- *
- * @author <a href="mailto:nikolazius@gmail.com">Nikolay
Zamosenchuk</a>
- * @version $Id: ChangesFilterListsWrapper.java 34360 2009-07-22 23:58:59Z nzamosenchuk
$
- *
- */
-public class ChangesFilterListsWrapper implements Serializable
-{
- private static final long serialVersionUID = 1L;
-
- private Set<String> addedNodes;
-
- private Set<String> removedNodes;
-
- private Set<String> parentAddedNodes;
-
- private Set<String> parentRemovedNodes;
-
- private ChangesHolder changes;
-
- private ChangesHolder parentChanges;
-
- /**
- * Creates ChangesFilterListsWrapper data class, containing given lists.
- *
- * @param addedNodes
- * @param removedNodes
- * @param parentAddedNodes
- * @param parentRemovedNodes
- */
- public ChangesFilterListsWrapper(Set<String> addedNodes, Set<String>
removedNodes, Set<String> parentAddedNodes,
- Set<String> parentRemovedNodes)
- {
- this.addedNodes = addedNodes;
- this.removedNodes = removedNodes;
- this.parentAddedNodes = parentAddedNodes;
- this.parentRemovedNodes = parentRemovedNodes;
- }
-
- /**
- * Creates ChangesFilterListsWrapper data class, containing given lists.
- */
- public ChangesFilterListsWrapper(ChangesHolder changes, ChangesHolder parentChanges)
- {
- this.changes = changes;
- this.parentChanges = parentChanges;
- }
-
- public boolean withChanges()
- {
- return changes != null || parentChanges != null;
- }
-
- public ChangesHolder getChanges()
- {
- return changes;
- }
-
- public ChangesHolder getParentChanges()
- {
- return parentChanges;
- }
-
- public Set<String> getAddedNodes()
- {
- return addedNodes;
- }
-
- public Set<String> getRemovedNodes()
- {
- return removedNodes;
- }
-
- public Set<String> getParentAddedNodes()
- {
- return parentAddedNodes;
- }
-
- public Set<String> getParentRemovedNodes()
- {
- return parentRemovedNodes;
- }
-}
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 2011-05-13
13:03:40 UTC (rev 4379)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerCacheLoader.java 2011-05-16
14:32:07 UTC (rev 4380)
@@ -17,6 +17,7 @@
package org.exoplatform.services.jcr.impl.core.query.jbosscache;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
+import org.exoplatform.services.jcr.impl.core.query.ChangesFilterListsWrapper;
import org.exoplatform.services.jcr.impl.core.query.Indexer;
import org.exoplatform.services.jcr.impl.core.query.IndexerIoMode;
import org.exoplatform.services.jcr.impl.core.query.IndexerIoModeHandler;
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 2011-05-13
13:03:40 UTC (rev 4379)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerSingletonStoreCacheLoader.java 2011-05-16
14:32:07 UTC (rev 4380)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.jcr.impl.core.query.jbosscache;
+import org.exoplatform.services.jcr.impl.core.query.ChangesFilterListsWrapper;
import org.exoplatform.services.jcr.impl.core.query.IndexerIoMode;
import org.exoplatform.services.jcr.util.IdGenerator;
import org.exoplatform.services.log.ExoLogger;
Modified:
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 2011-05-13
13:03:40 UTC (rev 4379)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/JBossCacheIndexChangesFilter.java 2011-05-16
14:32:07 UTC (rev 4380)
@@ -21,21 +21,20 @@
import org.exoplatform.container.configuration.ConfigurationManager;
import org.exoplatform.services.jcr.config.QueryHandlerEntry;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
+import org.exoplatform.services.jcr.impl.core.query.ChangesFilterListsWrapper;
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.impl.core.query.lucene.ChangesHolder;
import org.exoplatform.services.jcr.jbosscache.ExoJBossCacheFactory;
-import org.exoplatform.services.jcr.jbosscache.PrivilegedJBossCacheHelper;
import org.exoplatform.services.jcr.jbosscache.ExoJBossCacheFactory.CacheType;
+import org.exoplatform.services.jcr.jbosscache.PrivilegedJBossCacheHelper;
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.CacheSPI;
import org.jboss.cache.Fqn;
import org.jboss.cache.config.CacheLoaderConfig;
@@ -45,7 +44,6 @@
import java.io.IOException;
import java.io.Serializable;
import java.util.Properties;
-import java.util.Set;
import javax.jcr.RepositoryException;
@@ -132,8 +130,8 @@
initCache.getConfiguration().setCacheLoaderConfig(cacheLoaderConfig);
this.rootFqn = Fqn.fromElements(searchManager.getWsId());
this.cache =
- ExoJBossCacheFactory.getUniqueInstance(CacheType.INDEX_CACHE, rootFqn,
initCache, config.getParameterBoolean(
- PARAM_JBOSSCACHE_SHAREABLE, PARAM_JBOSSCACHE_SHAREABLE_DEFAULT));
+ ExoJBossCacheFactory.getUniqueInstance(CacheType.INDEX_CACHE, rootFqn,
initCache,
+ config.getParameterBoolean(PARAM_JBOSSCACHE_SHAREABLE,
PARAM_JBOSSCACHE_SHAREABLE_DEFAULT));
PrivilegedJBossCacheHelper.create(cache);
PrivilegedJBossCacheHelper.start(cache);
@@ -167,50 +165,15 @@
}
}
- /**
- * {@inheritDoc}
- */
- protected void doUpdateIndex(Set<String> removedNodes, Set<String>
addedNodes, Set<String> parentRemovedNodes,
- Set<String> parentAddedNodes)
+ protected Log getLogger()
{
- ChangesHolder changes = searchManager.getChanges(removedNodes, addedNodes);
- ChangesHolder parentChanges = parentSearchManager.getChanges(parentRemovedNodes,
parentAddedNodes);
-
- if (changes == null && parentChanges == null)
- {
- return;
- }
- String id = IdGenerator.generate();
- try
- {
- PrivilegedJBossCacheHelper.put(cache, Fqn.fromRelativeElements(rootFqn, id),
LISTWRAPPER,
- new ChangesFilterListsWrapper(changes, parentChanges));
- }
- catch (CacheException e)
- {
- log.error(e.getLocalizedMessage(), e);
- logErrorChanges(handler, removedNodes, addedNodes);
- logErrorChanges(parentHandler, parentRemovedNodes, parentAddedNodes);
- }
+ return log;
}
- /**
- * Log errors
- * @param logHandler
- * @param removedNodes
- * @param addedNodes
- */
- private void logErrorChanges(QueryHandler logHandler, Set<String> removedNodes,
Set<String> addedNodes)
+ protected void doUpdateIndex(ChangesFilterListsWrapper changes)
{
- try
- {
-
- logHandler.logErrorChanges(addedNodes, removedNodes);
- }
- catch (IOException ioe)
- {
- log.warn("Exception occure when errorLog writed. Error log is not complete.
" + ioe, ioe);
- }
+ String id = IdGenerator.generate();
+ PrivilegedJBossCacheHelper.put(cache, Fqn.fromRelativeElements(rootFqn, id),
LISTWRAPPER, changes);
}
/**
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/LocalIndexChangesFilter.java
===================================================================
---
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/LocalIndexChangesFilter.java 2011-05-13
13:03:40 UTC (rev 4379)
+++
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/LocalIndexChangesFilter.java 2011-05-16
14:32:07 UTC (rev 4380)
@@ -21,20 +21,19 @@
import org.exoplatform.container.configuration.ConfigurationManager;
import org.exoplatform.services.jcr.config.QueryHandlerEntry;
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
+import org.exoplatform.services.jcr.impl.core.query.ChangesFilterListsWrapper;
import org.exoplatform.services.jcr.impl.core.query.IndexerChangesFilter;
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.impl.core.query.lucene.ChangesHolder;
import org.exoplatform.services.jcr.jbosscache.ExoJBossCacheFactory;
-import org.exoplatform.services.jcr.jbosscache.PrivilegedJBossCacheHelper;
import org.exoplatform.services.jcr.jbosscache.ExoJBossCacheFactory.CacheType;
+import org.exoplatform.services.jcr.jbosscache.PrivilegedJBossCacheHelper;
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.CacheSPI;
import org.jboss.cache.Fqn;
import org.jboss.cache.config.CacheLoaderConfig;
@@ -42,7 +41,6 @@
import java.io.IOException;
import java.io.Serializable;
-import java.util.Set;
import javax.jcr.RepositoryException;
@@ -123,8 +121,8 @@
initCache.getConfiguration().setCacheLoaderConfig(cacheLoaderConfig);
this.rootFqn = Fqn.fromElements(searchManager.getWsId());
this.cache =
- ExoJBossCacheFactory.getUniqueInstance(CacheType.INDEX_CACHE, rootFqn,
initCache, config.getParameterBoolean(
- PARAM_JBOSSCACHE_SHAREABLE, PARAM_JBOSSCACHE_SHAREABLE_DEFAULT));
+ ExoJBossCacheFactory.getUniqueInstance(CacheType.INDEX_CACHE, rootFqn,
initCache,
+ config.getParameterBoolean(PARAM_JBOSSCACHE_SHAREABLE,
PARAM_JBOSSCACHE_SHAREABLE_DEFAULT));
PrivilegedJBossCacheHelper.create(cache);
PrivilegedJBossCacheHelper.start(cache);
@@ -147,49 +145,14 @@
}
}
- /**
- * {@inheritDoc}
- */
- protected void doUpdateIndex(Set<String> removedNodes, Set<String>
addedNodes, Set<String> parentRemovedNodes,
- Set<String> parentAddedNodes)
+ protected Log getLogger()
{
-
- ChangesHolder changes = searchManager.getChanges(removedNodes, addedNodes);
- ChangesHolder parentChanges = parentSearchManager.getChanges(parentRemovedNodes,
parentAddedNodes);
-
- if (changes == null && parentChanges == null)
- {
- return;
- }
- String id = IdGenerator.generate();
- try
- {
- PrivilegedJBossCacheHelper.put(cache, Fqn.fromRelativeElements(rootFqn, id),
LISTWRAPPER,
- new ChangesFilterListsWrapper(changes, parentChanges));
- }
- catch (CacheException e)
- {
- log.error(e.getLocalizedMessage(), e);
- logErrorChanges(handler, removedNodes, addedNodes);
- logErrorChanges(parentHandler, parentRemovedNodes, parentAddedNodes);
- }
+ return log;
}
- /**
- * Log errors
- * @param logHandler
- * @param removedNodes
- * @param addedNodes
- */
- private void logErrorChanges(QueryHandler logHandler, Set<String> removedNodes,
Set<String> addedNodes)
+ protected void doUpdateIndex(ChangesFilterListsWrapper changes)
{
- try
- {
- logHandler.logErrorChanges(addedNodes, removedNodes);
- }
- catch (IOException ioe)
- {
- log.warn("Exception occure when errorLog writed. Error log is not complete.
" + ioe, ioe);
- }
+ String id = IdGenerator.generate();
+ PrivilegedJBossCacheHelper.put(cache, Fqn.fromRelativeElements(rootFqn, id),
LISTWRAPPER, changes);
}
}