[exo-jcr-commits] exo-jcr SVN: r3955 - in jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl: core/query/lucene and 1 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Feb 9 12:39:52 EST 2011


Author: tolusha
Date: 2011-02-09 12:39:52 -0500 (Wed, 09 Feb 2011)
New Revision: 3955

Modified:
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/Indexable.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/MultiIndex.java
   jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainer.java
Log:
EXOJCR-1104: add isPagingSupport method

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/Indexable.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/Indexable.java	2011-02-09 11:25:30 UTC (rev 3954)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/Indexable.java	2011-02-09 17:39:52 UTC (rev 3955)
@@ -31,12 +31,20 @@
 public interface Indexable
 {
    /**
-    * Returns NodeDataIndexingIterator or null.
+    * Returns NodeDataIndexingIterator.
     * 
     * @param pageSize 
     *          the maximum amount of the rows which can be retrieved from storage per once
-    * @return NodeDataIndexingIterator or null
+    * @return NodeDataIndexingIterator
     * @throws RepositoryException
     */
    NodeDataIndexingIterator getNodeDataIndexingIterator(int pageSize) throws RepositoryException;
+
+   /**
+    * Indicates if component support extracting data from storage using paging.
+    * 
+    * @return boolean
+    */
+   boolean isPagingSupport();
+
 }

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/MultiIndex.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/MultiIndex.java	2011-02-09 11:25:30 UTC (rev 3954)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/query/lucene/MultiIndex.java	2011-02-09 17:39:52 UTC (rev 3955)
@@ -434,20 +434,17 @@
 
             long count;
 
-            // check if we have deal with JDBC indexing mechanism
+            // check if we have deal with RDBMS reindexing mechanism
             Indexable indexableComponent = (Indexable)handler.getContext().getContainer().getComponent(Indexable.class);
-            if (indexableComponent == null)
+            if (indexableComponent != null && indexableComponent.isPagingSupport())
             {
-               count = createIndex(indexingTree.getIndexingRoot(), stateMgr);
+               count =
+                  createIndex(indexableComponent.getNodeDataIndexingIterator(handler.getReindexingPageSize()),
+                     indexingTree.getIndexingRoot());
             }
             else
             {
-               NodeDataIndexingIterator iterator =
-                  indexableComponent.getNodeDataIndexingIterator(handler.getReindexingPageSize());
-
-               count =
-                  iterator == null ? createIndex(indexingTree.getIndexingRoot(), stateMgr) : createIndex(iterator,
-                     indexingTree.getIndexingRoot());
+               count = createIndex(indexingTree.getIndexingRoot(), stateMgr);
             }
 
             executeAndLog(new Commit(getTransactionId()));

Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainer.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainer.java	2011-02-09 11:25:30 UTC (rev 3954)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/storage/jdbc/JDBCWorkspaceDataContainer.java	2011-02-09 17:39:52 UTC (rev 3955)
@@ -1508,10 +1508,16 @@
    /**
     * {@inheritDoc}
     */
-   public NodeDataIndexingIterator getNodeDataIndexingIterator(int pageSize)
-      throws RepositoryException
+   public NodeDataIndexingIterator getNodeDataIndexingIterator(int pageSize) throws RepositoryException
    {
-      return dbDialect.equals(DBConstants.DB_DIALECT_SYBASE) ? null : new JdbcNodeDataIndexingIterator(connFactory,
-         pageSize);
+      return new JdbcNodeDataIndexingIterator(connFactory, pageSize);
    }
+
+   /**
+    * {@inheritDoc}
+    */
+   public boolean isPagingSupport()
+   {
+      return !dbDialect.equals(DBConstants.DB_DIALECT_SYBASE);
+   }
 }



More information about the exo-jcr-commits mailing list