[exo-jcr-commits] exo-jcr SVN: r1175 - jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache.
do-not-reply at jboss.org
do-not-reply at jboss.org
Fri Dec 25 04:09:39 EST 2009
Author: nzamosenchuk
Date: 2009-12-25 04:09:39 -0500 (Fri, 25 Dec 2009)
New Revision: 1175
Modified:
jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerCacheLoader.java
Log:
EXOJCR-334: IndexerCacheLoader updated to handle transactions.
Modified: jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerCacheLoader.java
===================================================================
--- jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerCacheLoader.java 2009-12-24 16:29:21 UTC (rev 1174)
+++ jcr/branches/1.12.0-JBCCACHE/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/jbosscache/IndexerCacheLoader.java 2009-12-25 09:09:39 UTC (rev 1175)
@@ -23,6 +23,7 @@
import org.exoplatform.services.jcr.impl.storage.jbosscache.AbstractWriteOnlyCacheLoader;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
+import org.jboss.cache.CacheException;
import org.jboss.cache.Fqn;
import org.jboss.cache.Modification;
@@ -73,16 +74,24 @@
@Override
public Object put(Fqn arg0, Object key, Object val) throws Exception
{
- if (key.equals(JbossCacheIndexChangesFilter.LISTWRAPPER) && val instanceof ChangesFilterListsWrapper)
+ try
{
- if (log.isDebugEnabled())
+ if (key.equals(JbossCacheIndexChangesFilter.LISTWRAPPER) && val instanceof ChangesFilterListsWrapper)
{
- log.info("Received list wrapper, start indexing...");
+ if (log.isDebugEnabled())
+ {
+ log.info("Received list wrapper, start indexing...");
+ }
+ ChangesFilterListsWrapper wrapper = (ChangesFilterListsWrapper)val;
+ //System.out.println("UPDATE INDEX: "+wrapper.getAddedNodes() + wrapper.getRemovedNodes());
+ updateIndex(wrapper.getAddedNodes(), wrapper.getRemovedNodes(), wrapper.getParentAddedNodes(), wrapper
+ .getParentRemovedNodes());
}
- ChangesFilterListsWrapper wrapper = (ChangesFilterListsWrapper)val;
- updateIndex(wrapper.getAddedNodes(), wrapper.getRemovedNodes(), wrapper.getParentAddedNodes(), wrapper
- .getParentRemovedNodes());
}
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
return null;
}
@@ -177,6 +186,38 @@
@Override
public void put(List<Modification> modifications) throws Exception
{
- // batching is not used
+ // If transactions are used, then list of modifications will be sent to cache loader
+ // added code to handle list of modifications.
+ for (Modification m : modifications)
+ {
+ switch (m.getType())
+ {
+ case PUT_DATA :
+ put(m.getFqn(), m.getData());
+ break;
+ case PUT_DATA_ERASE :
+ removeData(m.getFqn());
+ put(m.getFqn(), m.getData());
+ break;
+ case PUT_KEY_VALUE :
+ put(m.getFqn(), m.getKey(), m.getValue());
+ break;
+ case REMOVE_DATA :
+ removeData(m.getFqn());
+ break;
+ case REMOVE_KEY_VALUE :
+ remove(m.getFqn(), m.getKey());
+ break;
+ case REMOVE_NODE :
+ remove(m.getFqn());
+ break;
+ case MOVE :
+ // involve moving all children too
+ move(m.getFqn(), m.getFqn2());
+ break;
+ default :
+ throw new CacheException("Unknown modification " + m.getType());
+ }
+ }
}
}
More information about the exo-jcr-commits
mailing list