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);
+ }
}
Show replies by date