[exo-jcr-commits] exo-jcr SVN: r569 - in jcr/branches/1.12.0-JBC/component/core/src: main/java/org/exoplatform/services/jcr/impl/core/query/cacheloader and 1 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Nov 11 11:11:08 EST 2009


Author: sergiykarpenko
Date: 2009-11-11 11:11:07 -0500 (Wed, 11 Nov 2009)
New Revision: 569

Modified:
   jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/query/SearchManagerImpl.java
   jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/query/cacheloader/IndexerCacheLoader.java
   jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/IndexerCacheLoaderTest.java
Log:
EXOJCR-202: IndexerCacheLoaderRuntimeTest added

Modified: jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/query/SearchManagerImpl.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/query/SearchManagerImpl.java	2009-11-11 15:53:32 UTC (rev 568)
+++ jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/query/SearchManagerImpl.java	2009-11-11 16:11:07 UTC (rev 569)
@@ -54,6 +54,7 @@
 import org.exoplatform.services.jcr.impl.dataflow.persistent.WorkspacePersistentDataManager;
 import org.exoplatform.services.log.ExoLogger;
 import org.exoplatform.services.log.Log;
+import org.jboss.cache.factories.annotations.NonVolatile;
 import org.picocontainer.Startable;
 
 import java.io.IOException;
@@ -85,6 +86,7 @@
  * @author <a href="karpenko.sergiy at gmail.com">Karpenko Sergiy</a> 
  * @version $Id: SearchManagerImpl.java 111 2008-11-11 11:11:11Z serg $
  */
+ at NonVolatile
 public class SearchManagerImpl implements SearchManager, Startable, MandatoryItemsPersistenceListener
 {
 
@@ -361,82 +363,85 @@
    public void updateIndex(final Set<String> removedNodes, final Set<String> addedNodes) throws RepositoryException,
       IOException
    {
-      Iterator<NodeData> addedStates = new Iterator<NodeData>()
+      if (handler != null)
       {
-         private final Iterator<String> iter = addedNodes.iterator();
-
-         public boolean hasNext()
+         Iterator<NodeData> addedStates = new Iterator<NodeData>()
          {
-            return iter.hasNext();
-         }
+            private final Iterator<String> iter = addedNodes.iterator();
 
-         public NodeData next()
-         {
+            public boolean hasNext()
+            {
+               return iter.hasNext();
+            }
 
-            // cycle till find a next or meet the end of set
-            do
+            public NodeData next()
             {
-               String id = iter.next();
-               try
+
+               // cycle till find a next or meet the end of set
+               do
                {
-                  ItemData item = itemMgr.getItemData(id);
-                  if (item != null)
+                  String id = iter.next();
+                  try
                   {
-                     if (item.isNode())
-                        return (NodeData)item; // return node
+                     ItemData item = itemMgr.getItemData(id);
+                     if (item != null)
+                     {
+                        if (item.isNode())
+                           return (NodeData)item; // return node
+                        else
+                           log.warn("Node not found, but property " + id + ", " + item.getQPath().getAsString()
+                              + " found. ");
+                     }
                      else
-                        log.warn("Node not found, but property " + id + ", " + item.getQPath().getAsString()
-                           + " found. ");
+                        log.warn("Unable to index node with id " + id + ", node does not exist.");
+
                   }
-                  else
-                     log.warn("Unable to index node with id " + id + ", node does not exist.");
+                  catch (RepositoryException e)
+                  {
+                     log.error("Can't read next node data " + id, e);
+                  }
+               }
+               while (iter.hasNext()); // get next if error or node not found
 
-               }
-               catch (RepositoryException e)
-               {
-                  log.error("Can't read next node data " + id, e);
-               }
+               return null; // we met the end of iterator set
             }
-            while (iter.hasNext()); // get next if error or node not found
 
-            return null; // we met the end of iterator set
-         }
+            public void remove()
+            {
+               throw new UnsupportedOperationException();
+            }
+         };
 
-         public void remove()
+         Iterator<String> removedIds = new Iterator<String>()
          {
-            throw new UnsupportedOperationException();
-         }
-      };
+            private final Iterator<String> iter = removedNodes.iterator();
 
-      Iterator<String> removedIds = new Iterator<String>()
-      {
-         private final Iterator<String> iter = removedNodes.iterator();
+            public boolean hasNext()
+            {
+               return iter.hasNext();
+            }
 
-         public boolean hasNext()
-         {
-            return iter.hasNext();
-         }
+            public String next()
+            {
+               return nextNodeId();
+            }
 
-         public String next()
-         {
-            return nextNodeId();
-         }
+            public String nextNodeId() throws NoSuchElementException
+            {
+               return iter.next();
+            }
 
-         public String nextNodeId() throws NoSuchElementException
-         {
-            return iter.next();
-         }
+            public void remove()
+            {
+               throw new UnsupportedOperationException();
 
-         public void remove()
+            }
+         };
+
+         if (removedNodes.size() > 0 || addedNodes.size() > 0)
          {
-            throw new UnsupportedOperationException();
-
+            handler.updateNodes(removedIds, addedStates);
          }
-      };
-
-      if (removedNodes.size() > 0 || addedNodes.size() > 0)
-      {
-         handler.updateNodes(removedIds, addedStates);
       }
 
    }
@@ -510,6 +515,9 @@
                try
                {
                   indexingRootData = (NodeData)itemMgr.getItemData(Constants.ROOT_UUID);
+                  //               indexingRootData =
+                  //                  new TransientNodeData(Constants.ROOT_PATH, Constants.ROOT_UUID, 1, Constants.NT_UNSTRUCTURED,
+                  //                     new InternalQName[0], 0, null, new AccessControlList());
                }
                catch (RepositoryException e)
                {
@@ -608,7 +616,6 @@
          QueryHandler parentHandler = (this.parentSearchManager != null) ? parentSearchManager.getHandler() : null;
          QueryHandlerContext context = createQueryHandlerContext(parentHandler);
          handler.init(context);
-
       }
       catch (SecurityException e)
       {

Modified: jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/query/cacheloader/IndexerCacheLoader.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/query/cacheloader/IndexerCacheLoader.java	2009-11-11 15:53:32 UTC (rev 568)
+++ jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/core/query/cacheloader/IndexerCacheLoader.java	2009-11-11 16:11:07 UTC (rev 569)
@@ -25,6 +25,7 @@
 import org.jboss.cache.CacheException;
 import org.jboss.cache.Fqn;
 import org.jboss.cache.Modification;
+import org.jboss.cache.factories.annotations.Inject;
 
 import java.util.HashSet;
 import java.util.List;
@@ -52,7 +53,8 @@
    {
    }
 
-   public void registerSearchManager(SearchManager manager)
+   @Inject
+   public void injectDependencies(SearchManager manager)
    {
       searchManager = manager;
    }

Modified: jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/IndexerCacheLoaderTest.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/IndexerCacheLoaderTest.java	2009-11-11 15:53:32 UTC (rev 568)
+++ jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/IndexerCacheLoaderTest.java	2009-11-11 16:11:07 UTC (rev 569)
@@ -67,7 +67,7 @@
       super.setUp();
       searchManager = new DummySearchManager();
       indexerCacheLoader = new IndexerCacheLoader();
-      indexerCacheLoader.registerSearchManager(searchManager);
+      indexerCacheLoader.injectDependencies(searchManager);
    }
 
    /**



More information about the exo-jcr-commits mailing list