[exo-jcr-commits] exo-jcr SVN: r4087 - in jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl: dataflow/persistent/infinispan and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Mar 15 05:05:45 EDT 2011


Author: nzamosenchuk
Date: 2011-03-15 05:05:44 -0400 (Tue, 15 Mar 2011)
New Revision: 4087

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/ChangesKey.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/dataflow/persistent/infinispan/CacheKey.java
Log:
EXOJCR-834 : Making ISPNIndexerChangesFilter rely on Strings in maps instead of ints.

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-03-14 17:13:48 UTC (rev 4086)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/AbstractIndexerCacheStore.java	2011-03-15 09:05:44 UTC (rev 4087)
@@ -52,7 +52,7 @@
    /**
     * A map of all the indexers that has been registered
     */
-   protected final Map<Integer, Indexer> indexers = new HashMap<Integer, Indexer>();
+   protected final Map<String, Indexer> indexers = new HashMap<String, Indexer>();
 
    protected static final Log log = ExoLogger.getLogger("exo.jcr.component.core.IndexerCacheLoader");
 
@@ -68,7 +68,7 @@
    public void register(SearchManager searchManager, SearchManager parentSearchManager, QueryHandler handler,
       QueryHandler parentHandler) throws RepositoryConfigurationException
    {
-      indexers.put(searchManager.getWsId().hashCode(), new Indexer(searchManager, parentSearchManager, handler,
+      indexers.put(searchManager.getWsId(), new Indexer(searchManager, parentSearchManager, handler,
          parentHandler));
       if (log.isDebugEnabled())
       {
@@ -81,7 +81,7 @@
     */
    public void store(InternalCacheEntry entry) throws CacheLoaderException
    {
-      if (entry.getValue() instanceof ChangesFilterListsWrapper && entry.getKey() instanceof ChangesKey)
+      if (entry.getKey() instanceof ChangesKey && entry.getValue() instanceof ChangesFilterListsWrapper)
       {
          if (log.isDebugEnabled())
          {

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/ChangesKey.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/ChangesKey.java	2011-03-14 17:13:48 UTC (rev 4086)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/ChangesKey.java	2011-03-15 09:05:44 UTC (rev 4087)
@@ -18,6 +18,7 @@
  */
 package org.exoplatform.services.jcr.impl.core.query.ispn;
 
+import org.exoplatform.services.jcr.impl.Constants;
 import org.exoplatform.services.jcr.impl.dataflow.persistent.infinispan.CacheKey;
 
 import java.io.IOException;
@@ -34,14 +35,14 @@
  */
 public class ChangesKey extends CacheKey
 {
-   private int wsId;
+   private String wsId;
 
    ChangesKey()
    {
       super();
    }
 
-   ChangesKey(int wsId, String id)
+   ChangesKey(String wsId, String id)
    {
       super(id);
       this.wsId = wsId;
@@ -50,7 +51,7 @@
    /**
     * @return unique workspace identifier 
     */
-   public int getWsId()
+   public String getWsId()
    {
       return wsId;
    }
@@ -62,7 +63,9 @@
    public void writeExternal(ObjectOutput out) throws IOException
    {
       super.writeExternal(out);
-      out.writeInt(wsId);
+      byte[] buf = wsId.getBytes(Constants.DEFAULT_ENCODING);
+      out.writeInt(buf.length);
+      out.write(buf);
    }
 
    /**
@@ -72,7 +75,9 @@
    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
    {
       super.readExternal(in);
-      wsId = in.readInt();
+      byte[] buf = new byte[in.readInt()];
+      in.readFully(buf);
+      wsId = new String(buf, Constants.DEFAULT_ENCODING);
    }
 
    /**

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-03-14 17:13:48 UTC (rev 4086)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/ISPNIndexChangesFilter.java	2011-03-15 09:05:44 UTC (rev 4087)
@@ -69,7 +69,7 @@
    /**
     * Unique workspace identifier.
     */
-   private final int wsId;
+   private final String wsId;
 
    /**
     * ISPNIndexChangesFilter constructor.
@@ -81,7 +81,7 @@
    {
       super(searchManager, parentSearchManager, config, indexingTree, parentIndexingTree, handler, parentHandler, cfm);
 
-      this.wsId = searchManager.getWsId().hashCode();
+      this.wsId = searchManager.getWsId();
 
       ISPNCacheFactory<Serializable, Object> factory = new ISPNCacheFactory<Serializable, Object>(cfm);
       config.putParameterValue(PARAM_INFINISPAN_CACHESTORE_CLASS, IndexerCacheStore.class.getName());

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-03-14 17:13:48 UTC (rev 4086)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/IndexerCacheStore.java	2011-03-15 09:05:44 UTC (rev 4087)
@@ -166,7 +166,7 @@
          log.debug("start pushing in-memory state to cache cacheLoader collection");
       }
 
-      Map<Integer, ChangesFilterListsWrapper> changesMap = new HashMap<Integer, ChangesFilterListsWrapper>();
+      Map<String, ChangesFilterListsWrapper> changesMap = new HashMap<String, ChangesFilterListsWrapper>();
       List<ChangesKey> processedItemKeys = new ArrayList<ChangesKey>();
 
       DataContainer dc = cache.getAdvancedCache().getDataContainer();
@@ -209,7 +209,7 @@
       }
 
       // process all lists for each workspace
-      for (Entry<Integer, ChangesFilterListsWrapper> changesEntry : changesMap.entrySet())
+      for (Entry<String, ChangesFilterListsWrapper> changesEntry : changesMap.entrySet())
       {
          // create key based on wsId and generated id
          ChangesKey changesKey = new ChangesKey(changesEntry.getKey(), IdGenerator.generate());

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-03-14 17:13:48 UTC (rev 4086)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/ispn/LocalIndexChangesFilter.java	2011-03-15 09:05:44 UTC (rev 4087)
@@ -66,7 +66,7 @@
    
    private final Cache<Serializable, Object> cache;
 
-   private final int wsId;
+   private final String wsId;
 
    /**
     * LocalIndexChangesFilter constructor.
@@ -78,7 +78,7 @@
    {
       super(searchManager, parentSearchManager, config, indexingTree, parentIndexingTree, handler, parentHandler, cfm);
 
-      this.wsId = searchManager.getWsId().hashCode();
+      this.wsId = searchManager.getWsId();
       ISPNCacheFactory<Serializable, Object> factory = new ISPNCacheFactory<Serializable, Object>(cfm);
       config.putParameterValue(PARAM_INFINISPAN_CACHESTORE_CLASS, LocalIndexCacheStore.class.getName());
       this.cache = factory.createCache("Indexer_" + searchManager.getWsId(), config);

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/infinispan/CacheKey.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/infinispan/CacheKey.java	2011-03-14 17:13:48 UTC (rev 4086)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/infinispan/CacheKey.java	2011-03-15 09:05:44 UTC (rev 4087)
@@ -27,12 +27,11 @@
 
 /**
  * Created by The eXo Platform SAS. <br/>
- * RE
  * Base class for WorkspaceCache keys.<br/>
  * 
  * Date: 10.06.2008<br/>
  * 
- * @author <a href="mailto:peter.nedonosko at exoplatform.com.ua">Peter Nedonosko</a>
+ * @author <a href="mailto:anatoliy.bazko at exoplatform.com.ua">Anatoliy Bazko</a>
  * @version $Id: CacheKey.java 2845 2010-07-30 13:29:37Z tolusha $
  */
 public abstract class CacheKey implements Externalizable, Comparable<CacheKey>
@@ -86,7 +85,6 @@
    /**
     * {@inheritDoc}
     */
-   @Override
    public void writeExternal(ObjectOutput out) throws IOException
    {
       out.writeInt(hash);
@@ -100,7 +98,6 @@
    /**
     * {@inheritDoc}
     */
-   @Override
    public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
    {
       hash = in.readInt();
@@ -109,7 +106,7 @@
       in.readFully(buf);
       fullId = new String(buf, Constants.DEFAULT_ENCODING);
    }
-   
+
    /**
     * {@inheritDoc}
     */



More information about the exo-jcr-commits mailing list