[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