You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ch...@apache.org on 2014/11/27 12:30:00 UTC
svn commit: r1642097 - in /jackrabbit/oak/branches/1.0: ./
oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/
oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/
Author: chetanm
Date: Thu Nov 27 11:29:59 2014
New Revision: 1642097
URL: http://svn.apache.org/r1642097
Log:
OAK-2279 - Add testMode support in IndexPlanner
Merging revisions 1640863
Modified:
jackrabbit/oak/branches/1.0/ (props changed)
jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java
jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexPlanner.java
jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexConstants.java
jackrabbit/oak/branches/1.0/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LowCostLuceneIndexProvider.java
Propchange: jackrabbit/oak/branches/1.0/
------------------------------------------------------------------------------
Merged /jackrabbit/oak/trunk:r1640863
Modified: jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java?rev=1642097&r1=1642096&r2=1642097&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java (original)
+++ jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java Thu Nov 27 11:29:59 2014
@@ -141,6 +141,8 @@ class IndexDefinition {
private final String indexName;
+ private final boolean testMode;
+
private final IndexFormatVersion version;
public IndexDefinition(NodeState root, NodeState defn) {
@@ -161,6 +163,7 @@ class IndexDefinition {
this.definition = defn;
this.indexName = determineIndexName(defn, indexPath);
this.blobSize = getOptionalValue(defn, BLOB_SIZE, DEFAULT_BLOB_SIZE);
+ this.testMode = getOptionalValue(defn, LuceneIndexConstants.TEST_MODE, false);
NodeState rulesState = defn.getChildNode(LuceneIndexConstants.INDEX_RULES);
if (!rulesState.exists()){
@@ -179,6 +182,9 @@ class IndexDefinition {
this.relativePropsMaxLevels = getRelPropertyMaxLevels(relativeProperties);
String functionName = getOptionalValue(defn, LuceneIndexConstants.FUNC_NAME, null);
+ if (fullTextEnabled && functionName == null){
+ functionName = "lucene";
+ }
this.funcName = functionName != null ? "native*" + functionName : null;
this.codec = createCodec();
@@ -267,6 +273,10 @@ class IndexDefinition {
return !hasIndexingRules(definition);
}
+ public boolean isTestMode() {
+ return testMode;
+ }
+
@Override
public String toString() {
return "IndexDefinition : " + indexName;
Modified: jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexPlanner.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexPlanner.java?rev=1642097&r1=1642096&r2=1642097&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexPlanner.java (original)
+++ jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexPlanner.java Thu Nov 27 11:29:59 2014
@@ -32,6 +32,7 @@ import org.apache.jackrabbit.oak.query.f
import org.apache.jackrabbit.oak.spi.query.Filter;
import org.apache.lucene.index.IndexReader;
+import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.collect.Lists.newArrayList;
import static com.google.common.collect.Lists.newArrayListWithCapacity;
import static com.google.common.collect.Maps.newHashMap;
@@ -59,6 +60,10 @@ class IndexPlanner {
IndexPlan getPlan() {
IndexPlan.Builder builder = getPlanBuilder();
+
+ checkArgument(defn.isTestMode() && builder != null, "No plan found for filter [%s] " +
+ "while using definition [%s] and testMode is found to be enabled", filter, defn);
+
return builder != null ? builder.build() : null;
}
@@ -135,6 +140,11 @@ class IndexPlanner {
if (!sortOrder.isEmpty()) {
plan.setSortOrder(sortOrder);
}
+
+ if (costPerEntryFactor == 0){
+ costPerEntryFactor = 1;
+ }
+
return plan.setCostPerEntry(1.0 / costPerEntryFactor);
}
Modified: jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexConstants.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexConstants.java?rev=1642097&r1=1642096&r2=1642097&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexConstants.java (original)
+++ jackrabbit/oak/branches/1.0/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexConstants.java Thu Nov 27 11:29:59 2014
@@ -134,4 +134,10 @@ public interface LuceneIndexConstants {
* used in compat mode to specific version
*/
String COMPAT_MODE = "compatVersion";
+
+ /**
+ * Boolean property to indicate that LuceneIndex is being used in testMode
+ * and it should participate in every test
+ */
+ String TEST_MODE = "testMode";
}
Modified: jackrabbit/oak/branches/1.0/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LowCostLuceneIndexProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LowCostLuceneIndexProvider.java?rev=1642097&r1=1642096&r2=1642097&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LowCostLuceneIndexProvider.java (original)
+++ jackrabbit/oak/branches/1.0/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LowCostLuceneIndexProvider.java Thu Nov 27 11:29:59 2014
@@ -45,6 +45,9 @@ public class LowCostLuceneIndexProvider
@Override
public List<IndexPlan> getPlans(Filter filter, List<OrderEntry> sortOrder, NodeState rootState) {
String indexPath = new LuceneIndexLookup(rootState).getOldFullTextIndexPath(filter, tracker);
+ if (indexPath == null){
+ return Collections.emptyList();
+ }
return Collections.singletonList(planBuilder(filter)
.setCostPerExecution(1e-3)
.setAttribute(ATTR_INDEX_PATH, indexPath)