You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2014/10/22 07:44:21 UTC

svn commit: r1633538 [3/5] - in /lucene/dev/branches/lucene5969: ./ lucene/ lucene/analysis/ lucene/analysis/common/ lucene/analysis/icu/ lucene/analysis/kuromoji/ lucene/analysis/morfologik/ lucene/analysis/phonetic/ lucene/analysis/smartcn/ lucene/an...

Modified: lucene/dev/branches/lucene5969/lucene/queries/src/test/org/apache/lucene/queries/function/TestValueSources.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/lucene/queries/src/test/org/apache/lucene/queries/function/TestValueSources.java?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/lucene/queries/src/test/org/apache/lucene/queries/function/TestValueSources.java (original)
+++ lucene/dev/branches/lucene5969/lucene/queries/src/test/org/apache/lucene/queries/function/TestValueSources.java Wed Oct 22 05:44:17 2014
@@ -19,6 +19,8 @@ package org.apache.lucene.queries.functi
 
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
+import java.io.IOException;
 
 import org.apache.lucene.analysis.MockAnalyzer;
 import org.apache.lucene.document.Document;
@@ -31,9 +33,12 @@ import org.apache.lucene.document.Numeri
 import org.apache.lucene.document.SortedDocValuesField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
+import org.apache.lucene.index.Term;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.index.RandomIndexWriter;
+import org.apache.lucene.index.LeafReaderContext;
+import org.apache.lucene.queries.function.docvalues.FloatDocValues;
 import org.apache.lucene.queries.function.valuesource.BytesRefFieldSource;
 import org.apache.lucene.queries.function.valuesource.ConstValueSource;
 import org.apache.lucene.queries.function.valuesource.DivFloatFunction;
@@ -51,6 +56,7 @@ import org.apache.lucene.queries.functio
 import org.apache.lucene.queries.function.valuesource.MaxDocValueSource;
 import org.apache.lucene.queries.function.valuesource.MaxFloatFunction;
 import org.apache.lucene.queries.function.valuesource.MinFloatFunction;
+import org.apache.lucene.queries.function.valuesource.MultiFloatFunction;
 import org.apache.lucene.queries.function.valuesource.NormValueSource;
 import org.apache.lucene.queries.function.valuesource.NumDocsValueSource;
 import org.apache.lucene.queries.function.valuesource.PowFloatFunction;
@@ -71,6 +77,7 @@ import org.apache.lucene.search.ScoreDoc
 import org.apache.lucene.search.Sort;
 import org.apache.lucene.search.SortField;
 import org.apache.lucene.search.TopDocs;
+import org.apache.lucene.search.TermQuery;
 import org.apache.lucene.search.similarities.DefaultSimilarity;
 import org.apache.lucene.search.similarities.Similarity;
 import org.apache.lucene.store.Directory;
@@ -88,6 +95,11 @@ public class TestValueSources extends Lu
   static IndexReader reader;
   static IndexSearcher searcher;
   
+  static final ValueSource BOGUS_FLOAT_VS = new FloatFieldSource("bogus_field");
+  static final ValueSource BOGUS_DOUBLE_VS = new DoubleFieldSource("bogus_field");
+  static final ValueSource BOGUS_INT_VS = new IntFieldSource("bogus_field");
+  static final ValueSource BOGUS_LONG_VS = new LongFieldSource("bogus_field");
+
   static final List<String[]> documents = Arrays.asList(new String[][] {
       /*             id,  double, float, int,  long,   string, text */ 
       new String[] { "0", "3.63", "5.2", "35", "4343", "test", "this is a test test test" },
@@ -160,100 +172,165 @@ public class TestValueSources extends Lu
   }
   
   public void testConst() throws Exception {
-    assertHits(new FunctionQuery(new ConstValueSource(0.3f)),
-        new float[] { 0.3f, 0.3f });
+    ValueSource vs = new ConstValueSource(0.3f);
+    assertHits(new FunctionQuery(vs),
+               new float[] { 0.3f, 0.3f });
+    assertAllExist(vs);
   }
   
   public void testDiv() throws Exception {
-    assertHits(new FunctionQuery(new DivFloatFunction(
-        new ConstValueSource(10f), new ConstValueSource(5f))),
-        new float[] { 2f, 2f });
+    ValueSource vs = new DivFloatFunction(new ConstValueSource(10f), new ConstValueSource(5f));
+    assertHits(new FunctionQuery(vs),
+               new float[] { 2f, 2f });
+    assertAllExist(vs);
+    vs = new DivFloatFunction(new ConstValueSource(10f), BOGUS_FLOAT_VS);
+    assertNoneExist(vs);
+    vs = new DivFloatFunction(BOGUS_FLOAT_VS, new ConstValueSource(10f));
+    assertNoneExist(vs);
   }
   
   public void testDocFreq() throws Exception {
-    assertHits(new FunctionQuery(
-        new DocFreqValueSource("bogus", "bogus", "text", new BytesRef("test"))),
-        new float[] { 2f, 2f });
+    ValueSource vs = new DocFreqValueSource("bogus", "bogus", "text", new BytesRef("test"));
+    assertHits(new FunctionQuery(vs), new float[] { 2f, 2f });
+    assertAllExist(vs);
   }
   
   public void testDoubleConst() throws Exception {
-    assertHits(new FunctionQuery(new DoubleConstValueSource(0.3d)),
-        new float[] { 0.3f, 0.3f });
+    ValueSource vs = new DoubleConstValueSource(0.3d);
+    assertHits(new FunctionQuery(vs), new float[] { 0.3f, 0.3f });
+    assertAllExist(vs);
   }
   
   public void testDouble() throws Exception {
-    assertHits(new FunctionQuery(new DoubleFieldSource("double")),
-        new float[] { 3.63f, 5.65f });
+    ValueSource vs = new DoubleFieldSource("double");
+    assertHits(new FunctionQuery(vs), new float[] { 3.63f, 5.65f });
+    assertAllExist(vs);
+    assertNoneExist(BOGUS_DOUBLE_VS);
   }
   
   public void testFloat() throws Exception {
-    assertHits(new FunctionQuery(new FloatFieldSource("float")),
-        new float[] { 5.2f, 9.3f });
+    ValueSource vs = new FloatFieldSource("float");
+    assertHits(new FunctionQuery(vs), new float[] { 5.2f, 9.3f });
+    assertAllExist(vs);
+    assertNoneExist(BOGUS_FLOAT_VS);
   }
   
   public void testIDF() throws Exception {
     Similarity saved = searcher.getSimilarity();
     try {
       searcher.setSimilarity(new DefaultSimilarity());
-      assertHits(new FunctionQuery(
-          new IDFValueSource("bogus", "bogus", "text", new BytesRef("test"))),
-          new float[] { 0.5945349f, 0.5945349f });
+      ValueSource vs = new IDFValueSource("bogus", "bogus", "text", new BytesRef("test"));
+      assertHits(new FunctionQuery(vs), new float[] { 0.5945349f, 0.5945349f });
+      assertAllExist(vs);
     } finally {
       searcher.setSimilarity(saved);
     }
   }
   
   public void testIf() throws Exception {
-    assertHits(new FunctionQuery(new IfFunction(
-        new BytesRefFieldSource("id"),
-        new ConstValueSource(1.0f),
-        new ConstValueSource(2.0f)
-        )),
-        new float[] { 1f, 1f });
-    // true just if a value exists...
-    assertHits(new FunctionQuery(new IfFunction(
-        new LiteralValueSource("false"),
-        new ConstValueSource(1.0f),
-        new ConstValueSource(2.0f)
-        )),
-        new float[] { 1f, 1f });
+    ValueSource vs = new IfFunction(new BytesRefFieldSource("id"),
+                                    new ConstValueSource(1.0f), // match
+                                    new ConstValueSource(2.0f));
+    assertHits(new FunctionQuery(vs), new float[] { 1f, 1f });
+    assertAllExist(vs);
+
+    // true just if a test value exists...
+    vs = new IfFunction(new LiteralValueSource("false"),
+                        new ConstValueSource(1.0f), // match
+                        new ConstValueSource(2.0f));
+    assertHits(new FunctionQuery(vs), new float[] { 1f, 1f });
+    assertAllExist(vs);
+
+    // false value if tests value does not exist
+    vs = new IfFunction(BOGUS_FLOAT_VS,
+                        new ConstValueSource(1.0f),
+                        new ConstValueSource(2.0f)); // match
+    assertHits(new FunctionQuery(vs), new float[] { 2F, 2F });
+    assertAllExist(vs);
+    
+    // final value may still not exist
+    vs = new IfFunction(new BytesRefFieldSource("id"),
+                        BOGUS_FLOAT_VS, // match
+                        new ConstValueSource(1.0f));
+    assertNoneExist(vs);
   }
   
   public void testInt() throws Exception {
-    assertHits(new FunctionQuery(new IntFieldSource("int")),
-        new float[] { 35f, 54f });
+    ValueSource vs = new IntFieldSource("int");
+    assertHits(new FunctionQuery(vs), new float[] { 35f, 54f });
+    assertAllExist(vs);
+    assertNoneExist(BOGUS_INT_VS);
+                                 
   }
   
   public void testJoinDocFreq() throws Exception {
-    assertHits(new FunctionQuery(new JoinDocFreqValueSource("string", "text")),
-        new float[] { 2f, 0f });
+    assertHits(new FunctionQuery(new JoinDocFreqValueSource("string", "text")), 
+               new float[] { 2f, 0f });
+
+    // TODO: what *should* the rules be for exist() ?
   }
   
   public void testLinearFloat() throws Exception {
-    assertHits(new FunctionQuery(new LinearFloatFunction(new ConstValueSource(2.0f), 3, 1)),
-        new float[] { 7f, 7f });
+    ValueSource vs = new LinearFloatFunction(new ConstValueSource(2.0f), 3, 1);
+    assertHits(new FunctionQuery(vs), new float[] { 7f, 7f });
+    assertAllExist(vs);
+    vs = new LinearFloatFunction(BOGUS_FLOAT_VS, 3, 1);
+    assertNoneExist(vs);
   }
   
   public void testLong() throws Exception {
-    assertHits(new FunctionQuery(new LongFieldSource("long")),
-        new float[] { 4343f, 1954f });
+    ValueSource vs = new LongFieldSource("long");
+    assertHits(new FunctionQuery(vs), new float[] { 4343f, 1954f });
+    assertAllExist(vs);
+    assertNoneExist(BOGUS_LONG_VS);
   }
   
   public void testMaxDoc() throws Exception {
-    assertHits(new FunctionQuery(new MaxDocValueSource()),
-        new float[] { 2f, 2f });
+    ValueSource vs = new MaxDocValueSource();
+    assertHits(new FunctionQuery(vs), new float[] { 2f, 2f });
+    assertAllExist(vs);
   }
   
   public void testMaxFloat() throws Exception {
-    assertHits(new FunctionQuery(new MaxFloatFunction(new ValueSource[] {
-        new ConstValueSource(1f), new ConstValueSource(2f)})),
-        new float[] { 2f, 2f });
+    ValueSource vs = new MaxFloatFunction(new ValueSource[] {
+        new ConstValueSource(1f), new ConstValueSource(2f)});
+    
+    assertHits(new FunctionQuery(vs), new float[] { 2f, 2f });
+    assertAllExist(vs);
+    
+    // as long as one value exists, then max exists
+    vs = new MaxFloatFunction(new ValueSource[] {
+        BOGUS_FLOAT_VS, new ConstValueSource(2F)});
+    assertAllExist(vs);
+    vs = new MaxFloatFunction(new ValueSource[] {
+        BOGUS_FLOAT_VS, new ConstValueSource(2F), BOGUS_DOUBLE_VS});
+    assertAllExist(vs);
+    // if none exist, then max doesn't exist
+    vs = new MaxFloatFunction(new ValueSource[] {
+        BOGUS_FLOAT_VS, BOGUS_INT_VS, BOGUS_DOUBLE_VS});
+    assertNoneExist(vs);
   }
   
   public void testMinFloat() throws Exception {
-    assertHits(new FunctionQuery(new MinFloatFunction(new ValueSource[] {
-        new ConstValueSource(1f), new ConstValueSource(2f)})),
-        new float[] { 1f, 1f });
+    ValueSource vs = new MinFloatFunction(new ValueSource[] {
+        new ConstValueSource(1f), new ConstValueSource(2f)});
+    
+    assertHits(new FunctionQuery(vs), new float[] { 1f, 1f });
+    assertAllExist(vs);
+    
+    // as long as one value exists, then min exists
+    vs = new MinFloatFunction(new ValueSource[] {
+        BOGUS_FLOAT_VS, new ConstValueSource(2F)});
+    assertHits(new FunctionQuery(vs), new float[] { 2F, 2F });
+    assertAllExist(vs);
+    vs = new MinFloatFunction(new ValueSource[] {
+        BOGUS_FLOAT_VS, new ConstValueSource(2F), BOGUS_DOUBLE_VS});
+    assertAllExist(vs);
+
+    // if none exist, then min doesn't exist
+    vs = new MinFloatFunction(new ValueSource[] {
+        BOGUS_FLOAT_VS, BOGUS_INT_VS, BOGUS_DOUBLE_VS});
+    assertNoneExist(vs);
   }
   
   public void testNorm() throws Exception {
@@ -261,35 +338,95 @@ public class TestValueSources extends Lu
     try {
       // no norm field (so agnostic to indexed similarity)
       searcher.setSimilarity(new DefaultSimilarity());
-      assertHits(new FunctionQuery(
-          new NormValueSource("byte")),
-          new float[] { 0f, 0f });
+      ValueSource vs = new NormValueSource("byte");
+      assertHits(new FunctionQuery(vs), new float[] { 0f, 0f });
+
+      // regardless of wether norms exist, value source exists == 0
+      assertAllExist(vs);
+
+      vs = new NormValueSource("text");
+      assertAllExist(vs);
+      
     } finally {
       searcher.setSimilarity(saved);
     }
   }
   
   public void testNumDocs() throws Exception {
-    assertHits(new FunctionQuery(new NumDocsValueSource()),
-        new float[] { 2f, 2f });
+    ValueSource vs = new NumDocsValueSource();
+    assertHits(new FunctionQuery(vs), new float[] { 2f, 2f });
+    assertAllExist(vs);
   }
   
   public void testPow() throws Exception {
-    assertHits(new FunctionQuery(new PowFloatFunction(
-        new ConstValueSource(2f), new ConstValueSource(3f))),
-        new float[] { 8f, 8f });
+    ValueSource vs = new PowFloatFunction(new ConstValueSource(2f), new ConstValueSource(3f));
+    assertHits(new FunctionQuery(vs), new float[] { 8f, 8f });
+    assertAllExist(vs);
+    vs = new PowFloatFunction(BOGUS_FLOAT_VS, new ConstValueSource(3f));
+    assertNoneExist(vs);
+    vs = new PowFloatFunction(new ConstValueSource(3f), BOGUS_FLOAT_VS);
+    assertNoneExist(vs);
   }
   
   public void testProduct() throws Exception {
-    assertHits(new FunctionQuery(new ProductFloatFunction(new ValueSource[] {
-        new ConstValueSource(2f), new ConstValueSource(3f)})),
-        new float[] { 6f, 6f });
+    ValueSource vs = new ProductFloatFunction(new ValueSource[] {
+        new ConstValueSource(2f), new ConstValueSource(3f)});
+    assertHits(new FunctionQuery(vs), new float[] { 6f, 6f });
+    assertAllExist(vs);
+    
+    vs = new ProductFloatFunction(new ValueSource[] {
+        BOGUS_FLOAT_VS, new ConstValueSource(3f)});
+    assertNoneExist(vs);
   }
   
+  public void testQueryWrapedFuncWrapedQuery() throws Exception {
+    ValueSource vs = new QueryValueSource(new FunctionQuery(new ConstValueSource(2f)), 0f);
+    assertHits(new FunctionQuery(vs), new float[] { 2f, 2f });
+    assertAllExist(vs);
+  }
+
   public void testQuery() throws Exception {
-    assertHits(new FunctionQuery(new QueryValueSource(
-        new FunctionQuery(new ConstValueSource(2f)), 0f)),
-        new float[] { 2f, 2f });
+    Similarity saved = searcher.getSimilarity();
+
+    try {
+      searcher.setSimilarity(new DefaultSimilarity());
+      
+      ValueSource vs = new QueryValueSource(new TermQuery(new Term("string","bar")), 42F);
+      assertHits(new FunctionQuery(vs), new float[] { 42F, 1F });
+
+      // valuesource should exist only for things matching the term query
+      // sanity check via quick & dirty wrapper arround tf
+      ValueSource expected = new MultiFloatFunction(new ValueSource[] {
+          new TFValueSource("bogus", "bogus", "string", new BytesRef("bar"))}) {
+
+        @Override
+        protected String name() { return "tf_based_exists"; }
+
+        @Override
+        protected float func(int doc, FunctionValues[] valsArr) {
+          return valsArr[0].floatVal(doc);
+        }
+        @Override
+        protected boolean exists(int doc, FunctionValues[] valsArr) {
+          // if tf > 0, then it should exist
+          return 0 < func(doc, valsArr);
+        }
+      };
+
+      assertExists(expected, vs);
+
+
+      // Query matches all docs, func exists for all docs
+      vs = new QueryValueSource(new TermQuery(new Term("text","test")), 0F);
+      assertAllExist(vs);
+
+      // Query matches no docs, func exists for no docs
+      vs = new QueryValueSource(new TermQuery(new Term("bogus","does not exist")), 0F);
+      assertNoneExist(vs);
+
+    } finally {
+      searcher.setSimilarity(saved);
+    }
   }
   
   public void testRangeMap() throws Exception {
@@ -300,37 +437,59 @@ public class TestValueSources extends Lu
         5, 6, new SumFloatFunction(new ValueSource[] {new ConstValueSource(1f), new ConstValueSource(2f)}),
         new ConstValueSource(11f))),
         new float[] { 3f, 11f });
+    
+    // TODO: what *should* the rules be for exist() ?
+    // ((source exists && source in range && target exists) OR (source not in range && default exists)) ?
   }
   
   public void testReciprocal() throws Exception {
-    assertHits(new FunctionQuery(new ReciprocalFloatFunction(new ConstValueSource(2f),
-        3, 1, 4)),
-        new float[] { 0.1f, 0.1f });
+    ValueSource vs = new ReciprocalFloatFunction(new ConstValueSource(2f), 3, 1, 4);
+    assertHits(new FunctionQuery(vs), new float[] { 0.1f, 0.1f });
+    assertAllExist(vs);
+    
+    vs =  new ReciprocalFloatFunction(BOGUS_FLOAT_VS, 3, 1, 4);
+    assertNoneExist(vs);
   }
   
   public void testScale() throws Exception {
-    assertHits(new FunctionQuery(new ScaleFloatFunction(new IntFieldSource("int"), 0, 1)),
-       new float[] { 0.0f, 1.0f });
+    ValueSource vs = new ScaleFloatFunction(new IntFieldSource("int"), 0, 1);
+    assertHits(new FunctionQuery(vs), new float[] { 0.0f, 1.0f });
+    assertAllExist(vs);
+    
+    vs = new ScaleFloatFunction(BOGUS_INT_VS, 0, 1);
+    assertNoneExist(vs);
   }
   
   public void testSumFloat() throws Exception {
-    assertHits(new FunctionQuery(new SumFloatFunction(new ValueSource[] {
-        new ConstValueSource(1f), new ConstValueSource(2f)})),
-        new float[] { 3f, 3f });
+    ValueSource vs = new SumFloatFunction(new ValueSource[] {
+        new ConstValueSource(1f), new ConstValueSource(2f)});
+    assertHits(new FunctionQuery(vs), new float[] { 3f, 3f });
+    assertAllExist(vs);
+
+    vs = new SumFloatFunction(new ValueSource[] {
+        BOGUS_FLOAT_VS, new ConstValueSource(2f)});
+    assertNoneExist(vs);
   }
   
   public void testSumTotalTermFreq() throws Exception {
-    assertHits(new FunctionQuery(new SumTotalTermFreqValueSource("text")),
-          new float[] { 8f, 8f });
+    ValueSource vs = new SumTotalTermFreqValueSource("text");
+    assertHits(new FunctionQuery(vs), new float[] { 8f, 8f });
+    assertAllExist(vs);
   }
   
   public void testTermFreq() throws Exception {
-    assertHits(new FunctionQuery(
-        new TermFreqValueSource("bogus", "bogus", "text", new BytesRef("test"))),
-        new float[] { 3f, 1f });
-    assertHits(new FunctionQuery(
-        new TermFreqValueSource("bogus", "bogus", "string", new BytesRef("bar"))),
-        new float[] { 0f, 1f });
+    ValueSource vs = new TermFreqValueSource("bogus", "bogus", "text", new BytesRef("test"));
+    assertHits(new FunctionQuery(vs), new float[] { 3f, 1f });
+    assertAllExist(vs);
+
+    vs = new TermFreqValueSource("bogus", "bogus", "string", new BytesRef("bar"));
+    assertHits(new FunctionQuery(vs), new float[] { 0f, 1f });
+    assertAllExist(vs);
+               
+    // regardless of wether norms exist, value source exists == 0
+    vs = new TermFreqValueSource("bogus", "bogus", "bogus", new BytesRef("bogus"));
+    assertHits(new FunctionQuery(vs), new float[] { 0F, 0F });
+    assertAllExist(vs);
   }
   
   public void testTF() throws Exception {
@@ -338,23 +497,71 @@ public class TestValueSources extends Lu
     try {
       // no norm field (so agnostic to indexed similarity)
       searcher.setSimilarity(new DefaultSimilarity());
-      assertHits(new FunctionQuery(
-          new TFValueSource("bogus", "bogus", "text", new BytesRef("test"))),
-          new float[] { (float)Math.sqrt(3d), (float)Math.sqrt(1d) });
-      assertHits(new FunctionQuery(
-          new TFValueSource("bogus", "bogus", "string", new BytesRef("bar"))),
-          new float[] { 0f, 1f });
+
+      ValueSource vs = new TFValueSource("bogus", "bogus", "text", new BytesRef("test"));
+      assertHits(new FunctionQuery(vs), 
+                 new float[] { (float)Math.sqrt(3d), (float)Math.sqrt(1d) });
+      assertAllExist(vs);
+                 
+      vs = new TFValueSource("bogus", "bogus", "string", new BytesRef("bar"));
+      assertHits(new FunctionQuery(vs), new float[] { 0f, 1f });
+      assertAllExist(vs);
+      
+      // regardless of wether norms exist, value source exists == 0
+      vs = new TFValueSource("bogus", "bogus", "bogus", new BytesRef("bogus"));
+      assertHits(new FunctionQuery(vs), new float[] { 0F, 0F });
+      assertAllExist(vs);
+
     } finally {
       searcher.setSimilarity(saved);
     }
   }
   
   public void testTotalTermFreq() throws Exception {
-    assertHits(new FunctionQuery(
-        new TotalTermFreqValueSource("bogus", "bogus", "text", new BytesRef("test"))),
-        new float[] { 4f, 4f });
+    ValueSource vs = new TotalTermFreqValueSource("bogus", "bogus", "text", new BytesRef("test"));
+    assertHits(new FunctionQuery(vs), new float[] { 4f, 4f });
+    assertAllExist(vs);
+  }
+  
+  /** 
+   * Asserts that for every doc, the {@link FunctionValues#exists} value 
+   * from the {@link ValueSource} is <b>true</b>.
+   */
+  void assertAllExist(ValueSource vs) {
+    assertExists(ALL_EXIST_VS, vs);
+  }
+  /** 
+   * Asserts that for every doc, the {@link FunctionValues#exists} value 
+   * from the {@link ValueSource} is <b>false</b>. 
+   */
+  void assertNoneExist(ValueSource vs) {
+    assertExists(NONE_EXIST_VS, vs);
+  }
+  /**
+   * Asserts that for every doc, the {@link FunctionValues#exists} value from the 
+   * <code>actual</code> {@link ValueSource} matches the {@link FunctionValues#exists} 
+   * value from the <code>expected</code> {@link ValueSource}
+   */
+  void assertExists(ValueSource expected, ValueSource actual) {
+    Map context = ValueSource.newContext(searcher);
+    try {
+      expected.createWeight(context, searcher);
+      actual.createWeight(context, searcher);
+
+      for (org.apache.lucene.index.LeafReaderContext leaf : searcher.getIndexReader().leaves()) {
+        final FunctionValues expectedVals = expected.getValues(context, leaf);
+        final FunctionValues actualVals = actual.getValues(context, leaf);
+        
+        String msg = expected.toString() + " ?= " + actual.toString() + " -> ";
+        for (int i = 0; i < leaf.reader().maxDoc(); ++i) {
+          assertEquals(msg + i, expectedVals.exists(i), actualVals.exists(i));
+        }
+      }
+    } catch (IOException e) {
+      throw new RuntimeException(actual.toString(), e);
+    }
   }
-  
+
   void assertHits(Query q, float scores[]) throws Exception {
     ScoreDoc expected[] = new ScoreDoc[scores.length];
     int expectedDocs[] = new int[scores.length];
@@ -368,4 +575,54 @@ public class TestValueSources extends Lu
     CheckHits.checkHitsQuery(q, expected, docs.scoreDocs, expectedDocs);
     CheckHits.checkExplanations(q, "", searcher);
   }
+
+  /** 
+   * Simple test value source that implements {@link FunctionValues#exists} as a constant 
+   * @see #ALL_EXIST_VS
+   * @see #NONE_EXIST_VS
+   */
+  private static final class ExistsValueSource extends ValueSource {
+
+    final boolean expected;
+    final int value;
+
+    public ExistsValueSource(boolean expected) {
+      this.expected = expected;
+      this.value = expected ? 1 : 0;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+      return o == this;
+    }
+
+    @Override
+    public int hashCode() {
+      return value;
+    }
+
+    @Override
+    public String description() {
+      return expected ? "ALL_EXIST" : "NONE_EXIST";
+    }
+    
+    @Override
+    public FunctionValues getValues(Map context, LeafReaderContext readerContext) {
+      return new FloatDocValues(this) {
+        @Override
+        public float floatVal(int doc) {
+          return (float)value;
+        }
+        @Override
+        public boolean exists(int doc) {
+          return expected;
+        }
+      };
+    }
+  };
+
+  /** @see ExistsValueSource */
+  private static final ValueSource ALL_EXIST_VS = new ExistsValueSource(true);
+  /** @see ExistsValueSource */
+  private static final ValueSource NONE_EXIST_VS = new ExistsValueSource(false); 
 }

Modified: lucene/dev/branches/lucene5969/lucene/queryparser/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/lucene/queryparser/ivy.xml?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/lucene/queryparser/ivy.xml (original)
+++ lucene/dev/branches/lucene5969/lucene/queryparser/ivy.xml Wed Oct 22 05:44:17 2014
@@ -17,5 +17,5 @@
    under the License.    
 -->
 <ivy-module version="2.0">
-    <info organisation="org.apache.lucene" module="queryparser"/>
+  <info organisation="org.apache.lucene" module="queryparser"/>
 </ivy-module>

Modified: lucene/dev/branches/lucene5969/lucene/queryparser/src/test/org/apache/lucene/queryparser/analyzing/TestAnalyzingQueryParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/lucene/queryparser/src/test/org/apache/lucene/queryparser/analyzing/TestAnalyzingQueryParser.java?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/lucene/queryparser/src/test/org/apache/lucene/queryparser/analyzing/TestAnalyzingQueryParser.java (original)
+++ lucene/dev/branches/lucene5969/lucene/queryparser/src/test/org/apache/lucene/queryparser/analyzing/TestAnalyzingQueryParser.java Wed Oct 22 05:44:17 2014
@@ -34,6 +34,7 @@ import org.apache.lucene.document.Docume
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
 import org.apache.lucene.index.DirectoryReader;
+import org.apache.lucene.index.FieldInfo.IndexOptions;
 import org.apache.lucene.index.RandomIndexWriter;
 import org.apache.lucene.queryparser.classic.ParseException;
 import org.apache.lucene.queryparser.classic.QueryParser;
@@ -272,7 +273,7 @@ public class TestAnalyzingQueryParser ex
     RandomIndexWriter writer = new RandomIndexWriter(random(), ramDir, analyzer);
     Document doc = new Document();
     FieldType fieldType = new FieldType();
-    fieldType.setIndexed(true);
+    fieldType.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS);
     fieldType.setTokenized(true);
     fieldType.setStored(true);
     Field field = new Field(FIELD, content, fieldType);
@@ -292,4 +293,4 @@ public class TestAnalyzingQueryParser ex
     }
 
   }
-}
\ No newline at end of file
+}

Modified: lucene/dev/branches/lucene5969/lucene/replicator/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/lucene/replicator/ivy.xml?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/lucene/replicator/ivy.xml (original)
+++ lucene/dev/branches/lucene5969/lucene/replicator/ivy.xml Wed Oct 22 05:44:17 2014
@@ -19,27 +19,31 @@
 <ivy-module version="2.0">
   <info organisation="org.apache.lucene" module="replicator"/>
 
-  <configurations>
-  	<conf name="http" description="httpclient jars"/>
-    <conf name="jetty" description="jetty jars"/>
-    <conf name="start" description="jetty start jar"/>
-    <conf name="servlet" description="servlet-api jar"/>
-    <conf name="logging" description="logging setup"/>
+  <configurations defaultconfmapping="http->master;jetty->master;start->master;servlet->master;logging->master">
+  	<conf name="http" description="httpclient jars" transitive="false"/>
+    <conf name="jetty" description="jetty jars" transitive="false"/>
+    <conf name="start" description="jetty start jar" transitive="false"/>
+    <conf name="servlet" description="servlet-api jar" transitive="false"/>
+    <conf name="logging" description="logging setup" transitive="false"/>
   </configurations>
 
   <dependencies>
-    <dependency org="org.apache.httpcomponents" name="httpclient" rev="${/org.apache.httpcomponents/httpclient}" transitive="false" conf="http->default"/>
-    <dependency org="org.apache.httpcomponents" name="httpcore" rev="${/org.apache.httpcomponents/httpcore}" transitive="false" conf="http->default"/>
-    <dependency org="org.eclipse.jetty" name="jetty-server" rev="${/org.eclipse.jetty/jetty-server}" transitive="false" conf="jetty->default"/>
-    <dependency org="org.eclipse.jetty" name="jetty-servlet" rev="${/org.eclipse.jetty/jetty-servlet}" transitive="false" conf="jetty->default"/>
-    <dependency org="org.eclipse.jetty" name="jetty-util" rev="${/org.eclipse.jetty/jetty-util}" transitive="false" conf="jetty->default"/>
-    <dependency org="org.eclipse.jetty" name="jetty-io" rev="${/org.eclipse.jetty/jetty-io}" transitive="false" conf="jetty->default"/>
-    <dependency org="org.eclipse.jetty" name="jetty-continuation" rev="${/org.eclipse.jetty/jetty-continuation}" transitive="false" conf="jetty->default"/>
-    <dependency org="org.eclipse.jetty" name="jetty-http" rev="${/org.eclipse.jetty/jetty-http}" transitive="false" conf="jetty->default"/>
-    <dependency org="commons-logging" name="commons-logging" rev="${/commons-logging/commons-logging}" transitive="false" conf="logging->default"/>
-    <dependency org="org.eclipse.jetty.orbit" name="javax.servlet" rev="${/org.eclipse.jetty.orbit/javax.servlet}" transitive="false" conf="servlet->default">
+    <dependency org="org.apache.httpcomponents" name="httpclient" rev="${/org.apache.httpcomponents/httpclient}" conf="http"/>
+    <dependency org="org.apache.httpcomponents" name="httpcore" rev="${/org.apache.httpcomponents/httpcore}" conf="http"/>
+    
+    <dependency org="org.eclipse.jetty" name="jetty-server" rev="${/org.eclipse.jetty/jetty-server}" conf="jetty"/>
+    <dependency org="org.eclipse.jetty" name="jetty-servlet" rev="${/org.eclipse.jetty/jetty-servlet}" conf="jetty"/>
+    <dependency org="org.eclipse.jetty" name="jetty-util" rev="${/org.eclipse.jetty/jetty-util}" conf="jetty"/>
+    <dependency org="org.eclipse.jetty" name="jetty-io" rev="${/org.eclipse.jetty/jetty-io}" conf="jetty"/>
+    <dependency org="org.eclipse.jetty" name="jetty-continuation" rev="${/org.eclipse.jetty/jetty-continuation}" conf="jetty"/>
+    <dependency org="org.eclipse.jetty" name="jetty-http" rev="${/org.eclipse.jetty/jetty-http}" conf="jetty"/>
+
+    <dependency org="commons-logging" name="commons-logging" rev="${/commons-logging/commons-logging}" conf="logging"/>
+
+    <dependency org="org.eclipse.jetty.orbit" name="javax.servlet" rev="${/org.eclipse.jetty.orbit/javax.servlet}" conf="servlet">
       <artifact name="javax.servlet" type="orbit" ext="jar"/>
     </dependency>
+
     <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/>
   </dependencies>
 

Modified: lucene/dev/branches/lucene5969/lucene/sandbox/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/lucene/sandbox/ivy.xml?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/lucene/sandbox/ivy.xml (original)
+++ lucene/dev/branches/lucene5969/lucene/sandbox/ivy.xml Wed Oct 22 05:44:17 2014
@@ -17,9 +17,12 @@
    under the License.    
 -->
 <ivy-module version="2.0">
-    <info organisation="org.apache.lucene" module="sandbox"/>
-    <dependencies>
-      <dependency org="jakarta-regexp" name="jakarta-regexp" rev="${/jakarta-regexp/jakarta-regexp}" transitive="false"/>
-      <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/> 
-    </dependencies>
+  <info organisation="org.apache.lucene" module="sandbox"/>
+  <configurations defaultconfmapping="compile->master">
+    <conf name="compile" transitive="false"/>
+  </configurations>
+  <dependencies>
+    <dependency org="jakarta-regexp" name="jakarta-regexp" rev="${/jakarta-regexp/jakarta-regexp}" conf="compile"/>
+    <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/> 
+  </dependencies>
 </ivy-module>

Modified: lucene/dev/branches/lucene5969/lucene/sandbox/src/test/org/apache/lucene/codecs/idversion/StringAndPayloadField.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/lucene/sandbox/src/test/org/apache/lucene/codecs/idversion/StringAndPayloadField.java?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/lucene/sandbox/src/test/org/apache/lucene/codecs/idversion/StringAndPayloadField.java (original)
+++ lucene/dev/branches/lucene5969/lucene/sandbox/src/test/org/apache/lucene/codecs/idversion/StringAndPayloadField.java Wed Oct 22 05:44:17 2014
@@ -36,7 +36,6 @@ class StringAndPayloadField extends Fiel
   public static final FieldType TYPE = new FieldType();
 
   static {
-    TYPE.setIndexed(true);
     TYPE.setOmitNorms(true);
     TYPE.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS);
     TYPE.setTokenized(true);

Modified: lucene/dev/branches/lucene5969/lucene/spatial/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/lucene/spatial/ivy.xml?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/lucene/spatial/ivy.xml (original)
+++ lucene/dev/branches/lucene5969/lucene/spatial/ivy.xml Wed Oct 22 05:44:17 2014
@@ -17,9 +17,12 @@
    under the License.    
 -->
 <ivy-module version="2.0">
-    <info organisation="org.apache.lucene" module="spatial"/>
-    <dependencies>
-      <dependency org="com.spatial4j" name="spatial4j" rev="${/com.spatial4j/spatial4j}" transitive="false"/>
-      <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/> 
-    </dependencies>
+  <info organisation="org.apache.lucene" module="spatial"/>
+  <configurations defaultconfmapping="compile->master">
+    <conf name="compile" transitive="false"/>
+  </configurations>
+  <dependencies>
+    <dependency org="com.spatial4j" name="spatial4j" rev="${/com.spatial4j/spatial4j}" conf="compile"/>
+    <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/> 
+  </dependencies>
 </ivy-module>

Modified: lucene/dev/branches/lucene5969/lucene/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxStrategy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/lucene/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxStrategy.java?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/lucene/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxStrategy.java (original)
+++ lucene/dev/branches/lucene5969/lucene/spatial/src/java/org/apache/lucene/spatial/bbox/BBoxStrategy.java Wed Oct 22 05:44:17 2014
@@ -130,7 +130,7 @@ public class BBoxStrategy extends Spatia
     //for xdlFieldType, copy some similar options. Don't do docValues since it isn't needed here.
     xdlFieldType = new FieldType(StringField.TYPE_NOT_STORED);
     xdlFieldType.setStored(fieldType.stored());
-    xdlFieldType.setIndexed(fieldType.indexed());
+    xdlFieldType.setIndexOptions(fieldType.indexOptions());
     xdlFieldType.freeze();
   }
 

Modified: lucene/dev/branches/lucene5969/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/PrefixTreeStrategy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/PrefixTreeStrategy.java?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/PrefixTreeStrategy.java (original)
+++ lucene/dev/branches/lucene5969/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/PrefixTreeStrategy.java Wed Oct 22 05:44:17 2014
@@ -142,7 +142,6 @@ public abstract class PrefixTreeStrategy
   public static final FieldType FIELD_TYPE = new FieldType();
 
   static {
-    FIELD_TYPE.setIndexed(true);
     FIELD_TYPE.setTokenized(true);
     FIELD_TYPE.setOmitNorms(true);
     FIELD_TYPE.setIndexOptions(FieldInfo.IndexOptions.DOCS_ONLY);

Modified: lucene/dev/branches/lucene5969/lucene/spatial/src/test/org/apache/lucene/spatial/DistanceStrategyTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/lucene/spatial/src/test/org/apache/lucene/spatial/DistanceStrategyTest.java?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/lucene/spatial/src/test/org/apache/lucene/spatial/DistanceStrategyTest.java (original)
+++ lucene/dev/branches/lucene5969/lucene/spatial/src/test/org/apache/lucene/spatial/DistanceStrategyTest.java Wed Oct 22 05:44:17 2014
@@ -96,7 +96,7 @@ public class DistanceStrategyTest extend
     if (strategy instanceof BBoxStrategy && random().nextBoolean()) {//disable indexing sometimes
       BBoxStrategy bboxStrategy = (BBoxStrategy)strategy;
       final FieldType fieldType = new FieldType(bboxStrategy.getFieldType());
-      fieldType.setIndexed(false);
+      fieldType.setIndexOptions(null);
       bboxStrategy.setFieldType(fieldType);
     }
   }

Modified: lucene/dev/branches/lucene5969/lucene/spatial/src/test/org/apache/lucene/spatial/bbox/TestBBoxStrategy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/lucene/spatial/src/test/org/apache/lucene/spatial/bbox/TestBBoxStrategy.java?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/lucene/spatial/src/test/org/apache/lucene/spatial/bbox/TestBBoxStrategy.java (original)
+++ lucene/dev/branches/lucene5969/lucene/spatial/src/test/org/apache/lucene/spatial/bbox/TestBBoxStrategy.java Wed Oct 22 05:44:17 2014
@@ -292,7 +292,7 @@ public class TestBBoxStrategy extends Ra
     BBoxStrategy bboxStrategy = (BBoxStrategy) strategy;
     if (random().nextBoolean()) {
       FieldType fieldType = new FieldType(bboxStrategy.getFieldType());
-      fieldType.setIndexed(false);
+      fieldType.setIndexOptions(null);
       bboxStrategy.setFieldType(fieldType);
     }
 

Modified: lucene/dev/branches/lucene5969/lucene/suggest/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/lucene/suggest/ivy.xml?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/lucene/suggest/ivy.xml (original)
+++ lucene/dev/branches/lucene5969/lucene/suggest/ivy.xml Wed Oct 22 05:44:17 2014
@@ -17,5 +17,5 @@
    under the License.    
 -->
 <ivy-module version="2.0">
-    <info organisation="org.apache.lucene" module="suggest"/>
+  <info organisation="org.apache.lucene" module="suggest"/>
 </ivy-module>

Modified: lucene/dev/branches/lucene5969/lucene/test-framework/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/lucene/test-framework/ivy.xml?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/lucene/test-framework/ivy.xml (original)
+++ lucene/dev/branches/lucene5969/lucene/test-framework/ivy.xml Wed Oct 22 05:44:17 2014
@@ -17,24 +17,24 @@
    under the License.    
 -->
 <ivy-module version="2.0">
-    <info organisation="org.apache.lucene" module="core-test-framework"/>
+  <info organisation="org.apache.lucene" module="core-test-framework"/>
 
-    <configurations>
-      <conf name="default" />
-      <!-- 
-      JUnit4 ANT task only, no ANT.
-      This is used from build scripts for taskdefs.
-      -->
-      <conf name="junit4-stdalone" />
-    </configurations>
+  <configurations defaultconfmapping="compile->master;junit4-stdalone->master">
+    <conf name="compile" transitive="false"/>
+    <!-- 
+    JUnit4 ANT task only, no ANT.
+    This is used from build scripts for taskdefs.
+    -->
+    <conf name="junit4-stdalone" />
+  </configurations>
 
-    <dependencies defaultconf="default">
-      <dependency org="org.apache.ant" name="ant" rev="${/org.apache.ant/ant}" transitive="false" />
+  <dependencies>
+    <dependency org="org.apache.ant" name="ant" rev="${/org.apache.ant/ant}" conf="compile"/>
 
-      <dependency org="junit" name="junit" rev="${/junit/junit}" transitive="false" conf="default->*;junit4-stdalone->*" />
-      <dependency org="com.carrotsearch.randomizedtesting" name="junit4-ant" rev="${/com.carrotsearch.randomizedtesting/junit4-ant}" transitive="false" conf="default->*;junit4-stdalone->*" />
-      <dependency org="com.carrotsearch.randomizedtesting" name="randomizedtesting-runner" rev="${/com.carrotsearch.randomizedtesting/randomizedtesting-runner}" transitive="false" conf="default->*;junit4-stdalone->*" />
+    <dependency org="junit" name="junit" rev="${/junit/junit}" transitive="false" conf="compile,junit4-stdalone"/>
+    <dependency org="com.carrotsearch.randomizedtesting" name="junit4-ant" rev="${/com.carrotsearch.randomizedtesting/junit4-ant}" transitive="false" conf="compile,junit4-stdalone"/>
+    <dependency org="com.carrotsearch.randomizedtesting" name="randomizedtesting-runner" rev="${/com.carrotsearch.randomizedtesting/randomizedtesting-runner}" transitive="false" conf="compile,junit4-stdalone"/>
 
-      <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/> 
-    </dependencies>
+    <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/> 
+  </dependencies>
 </ivy-module>

Modified: lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/index/BaseFieldInfoFormatTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/index/BaseFieldInfoFormatTestCase.java?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/index/BaseFieldInfoFormatTestCase.java (original)
+++ lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/index/BaseFieldInfoFormatTestCase.java Wed Oct 22 05:44:17 2014
@@ -84,7 +84,7 @@ public abstract class BaseFieldInfoForma
     for (String field : fieldNames) {
       IndexableFieldType fieldType = randomFieldType(random());
       FieldInfo fi = builder.addOrUpdate(field, fieldType);
-      if (fieldType.indexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) >= 0) {
+      if (fieldType.indexOptions() != null && fieldType.indexOptions().compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) >= 0) {
         if (random().nextBoolean()) {
           fi.setStorePayloads();
         }
@@ -101,8 +101,7 @@ public abstract class BaseFieldInfoForma
   private final IndexableFieldType randomFieldType(Random r) {
     FieldType type = new FieldType();
     
-    type.setIndexed(r.nextBoolean());
-    if (type.indexed()) {
+    if (r.nextBoolean()) {
       IndexOptions values[] = IndexOptions.values();
       type.setIndexOptions(values[r.nextInt(values.length)]);
       type.setOmitNorms(r.nextBoolean());

Modified: lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java (original)
+++ lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java Wed Oct 22 05:44:17 2014
@@ -370,7 +370,7 @@ public abstract class BasePostingsFormat
         continue;
       }
 
-      fieldInfoArray[fieldUpto] = new FieldInfo(field, true, fieldUpto, false, false, true,
+      fieldInfoArray[fieldUpto] = new FieldInfo(field, fieldUpto, false, false, true,
                                                 IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS,
                                                 null, -1, null);
       fieldUpto++;
@@ -694,7 +694,6 @@ public abstract class BasePostingsFormat
       boolean doPayloads = indexOptions.compareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) >= 0 && allowPayloads;
 
       newFieldInfoArray[fieldUpto] = new FieldInfo(oldFieldInfo.name,
-                                                   true,
                                                    fieldUpto,
                                                    false,
                                                    false,
@@ -1739,7 +1738,6 @@ public abstract class BasePostingsFormat
     for (IndexOptions opts : IndexOptions.values()) {
       FieldType ft = new FieldType();
       ft.setIndexOptions(opts);
-      ft.setIndexed(true);
       ft.freeze();
       final int numFields = random().nextInt(5);
       for (int j = 0; j < numFields; ++j) {

Modified: lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/index/BaseStoredFieldsFormatTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/index/BaseStoredFieldsFormatTestCase.java?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/index/BaseStoredFieldsFormatTestCase.java (original)
+++ lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/index/BaseStoredFieldsFormatTestCase.java Wed Oct 22 05:44:17 2014
@@ -321,8 +321,8 @@ public abstract class BaseStoredFieldsFo
     w.addDocument(doc);
     IndexReader r = w.getReader();
     w.close();
-    assertFalse(r.document(0).getField("field").fieldType().indexed());
-    assertTrue(r.document(0).getField("field2").fieldType().indexed());
+    assertNull(r.document(0).getField("field").fieldType().indexOptions());
+    assertNotNull(r.document(0).getField("field2").fieldType().indexOptions());
     r.close();
     dir.close();
   }
@@ -516,7 +516,7 @@ public abstract class BaseStoredFieldsFo
     }
 
     final FieldType type = new FieldType(StringField.TYPE_STORED);
-    type.setIndexed(false);
+    type.setIndexOptions(null);
     type.freeze();
     IntField id = new IntField("id", 0, Store.YES);
     for (int i = 0; i < data.length; ++i) {
@@ -606,7 +606,7 @@ public abstract class BaseStoredFieldsFo
     bigDoc2.add(idField);
 
     final FieldType onlyStored = new FieldType(StringField.TYPE_STORED);
-    onlyStored.setIndexed(false);
+    onlyStored.setIndexOptions(null);
 
     final Field smallField = new Field("fld", randomByteArray(random().nextInt(10), 256), onlyStored);
     final int numFields = RandomInts.randomIntBetween(random(), 500000, 1000000);

Modified: lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/index/DocHelper.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/index/DocHelper.java?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/index/DocHelper.java (original)
+++ lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/index/DocHelper.java Wed Oct 22 05:44:17 2014
@@ -204,10 +204,10 @@ class DocHelper {
     for (int i=0; i<fields.length; i++) {
       IndexableField f = fields[i];
       add(all,f);
-      if (f.fieldType().indexed()) add(indexed,f);
+      if (f.fieldType().indexOptions() != null) add(indexed,f);
       else add(unindexed,f);
       if (f.fieldType().storeTermVectors()) add(termvector,f);
-      if (f.fieldType().indexed() && !f.fieldType().storeTermVectors()) add(notermvector,f);
+      if (f.fieldType().indexOptions() != null && !f.fieldType().storeTermVectors()) add(notermvector,f);
       if (f.fieldType().stored()) add(stored,f);
       else add(unstored,f);
       if (f.fieldType().indexOptions() == IndexOptions.DOCS_ONLY) add(noTf,f);

Modified: lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/util/LineFileDocs.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/util/LineFileDocs.java?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/util/LineFileDocs.java (original)
+++ lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/util/LineFileDocs.java Wed Oct 22 05:44:17 2014
@@ -41,6 +41,7 @@ import org.apache.lucene.document.IntFie
 import org.apache.lucene.document.SortedDocValuesField;
 import org.apache.lucene.document.StringField;
 import org.apache.lucene.document.TextField;
+import org.apache.lucene.index.FieldInfo.IndexOptions;
 
 /** Minimal port of benchmark's LneDocSource +
  * DocMaker, so tests can enum docs from a line file created
@@ -170,6 +171,7 @@ public class LineFileDocs implements Clo
       doc.add(title);
 
       FieldType ft = new FieldType(TextField.TYPE_STORED);
+      ft.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS);
       ft.setStoreTermVectors(true);
       ft.setStoreTermVectorOffsets(true);
       ft.setStoreTermVectorPositions(true);

Modified: lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java (original)
+++ lucene/dev/branches/lucene5969/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java Wed Oct 22 05:44:17 2014
@@ -1338,7 +1338,7 @@ public abstract class LuceneTestCase ext
   /** Returns a FieldType derived from newType but whose
    *  term vector options match the old type */
   private static FieldType mergeTermVectorOptions(FieldType newType, FieldType oldType) {
-    if (newType.indexed() && oldType.storeTermVectors() == true && newType.storeTermVectors() == false) {
+    if (newType.indexOptions() != null && oldType.storeTermVectors() == true && newType.storeTermVectors() == false) {
       newType = new FieldType(newType);
       newType.setStoreTermVectors(oldType.storeTermVectors());
       newType.setStoreTermVectorPositions(oldType.storeTermVectorPositions());
@@ -1363,7 +1363,7 @@ public abstract class LuceneTestCase ext
 
     FieldType prevType = fieldToType.get(name);
 
-    if (usually(random) || !type.indexed() || prevType != null) {
+    if (usually(random) || type.indexOptions() == null || prevType != null) {
       // most of the time, don't modify the params
       if (prevType == null) {
         fieldToType.put(name, new FieldType(type));

Modified: lucene/dev/branches/lucene5969/lucene/tools/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/lucene/tools/ivy.xml?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/lucene/tools/ivy.xml (original)
+++ lucene/dev/branches/lucene5969/lucene/tools/ivy.xml Wed Oct 22 05:44:17 2014
@@ -17,10 +17,13 @@
    under the License.    
 -->
 <ivy-module version="2.0">
-    <info organisation="org.apache.lucene" module="core-tools"/>
-    <dependencies>
-       <dependency org="org.apache.ant" name="ant" rev="${/org.apache.ant/ant}" transitive="false" />
-       <dependency org="org.apache.ivy" name="ivy" rev="${/org.apache.ivy/ivy}" transitive="false" />
-       <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/>
-    </dependencies>
+  <info organisation="org.apache.lucene" module="core-tools"/>
+  <configurations defaultconfmapping="compile->master">
+    <conf name="compile" transitive="false"/>
+  </configurations>
+  <dependencies>
+    <dependency org="org.apache.ant" name="ant" rev="${/org.apache.ant/ant}" conf="compile"/>
+    <dependency org="org.apache.ivy" name="ivy" rev="${/org.apache.ivy/ivy}" conf="compile"/>
+    <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/>
+  </dependencies>
 </ivy-module>

Modified: lucene/dev/branches/lucene5969/lucene/tools/src/java/org/apache/lucene/dependencies/GetMavenDependenciesTask.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/lucene/tools/src/java/org/apache/lucene/dependencies/GetMavenDependenciesTask.java?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/lucene/tools/src/java/org/apache/lucene/dependencies/GetMavenDependenciesTask.java (original)
+++ lucene/dev/branches/lucene5969/lucene/tools/src/java/org/apache/lucene/dependencies/GetMavenDependenciesTask.java Wed Oct 22 05:44:17 2014
@@ -681,7 +681,8 @@ public class GetMavenDependenciesTask ex
     String module = getModuleName(ivyXmlFile);
     log("Collecting external dependencies from: " + ivyXmlFile.getPath(), verboseLevel);
     Document document = documentBuilder.parse(ivyXmlFile);
-    String dependencyPath = "/ivy-module/dependencies/dependency[not(starts-with(@conf,'start->'))]";
+    // Exclude the 'start' configuration in solr/example/ivy.xml
+    String dependencyPath = "/ivy-module/dependencies/dependency[not(starts-with(@conf,'start'))]";
     NodeList dependencies = (NodeList)xpath.evaluate(dependencyPath, document, XPathConstants.NODESET);
     for (int depNum = 0 ; depNum < dependencies.getLength() ; ++depNum) {
       Element dependency = (Element)dependencies.item(depNum);

Modified: lucene/dev/branches/lucene5969/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/solr/CHANGES.txt?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/solr/CHANGES.txt (original)
+++ lucene/dev/branches/lucene5969/solr/CHANGES.txt Wed Oct 22 05:44:17 2014
@@ -94,6 +94,12 @@ Upgrading from Solr 4.x
   If you need the old functionality back , please add an extra parameter f=/**
   example: /update/json/docs?f=/**
 
+* Bugs fixed in several ValueSource functions may result in different behavior in 
+  situations where some documents do not have values for fields wrapped in other value 
+  sources.  Users who want to preserve the previous behavior may need to wrap fields
+  in the "def()" function. Example: changing "fl=sum(fieldA,fieldB)" to 
+  "fl=sum(def(fieldA,0.0),def(fieldB,0.0))".  See LUCENE-5961 for more details.
+
 Detailed Change List
 ----------------------
 
@@ -172,6 +178,14 @@ New Features
 * SOLR-4715: Add CloudSolrServer constructors which accept a HttpClient instance.
   (Hardik Upadhyay, Shawn Heisey, shalin)
 
+* SOLR-6517: CollectionsAPI call REBALANCELEADERS. Used to balance leaders
+  across nodes for a particular collection
+
+* SOLR-5992: add "removeregex" as an atomic update operation
+  (Vitaliy Zhovtyuk via Erick Erickson)
+
+* SOLR-6633: /update/json/docs path can now save the underlying json doc asa string field
+  and better support added to the default example (Noble Paul)
 
 Bug Fixes
 ----------------------
@@ -237,6 +251,8 @@ Bug Fixes
 * SOLR-6307: Atomic update remove does not work for int array or date array
   (Anurag Sharma , noble)
 
+* SOLR-6573: QueryElevationComponent now works with localParams in the query (janhoy)
+
 Optimizations
 ----------------------
 

Modified: lucene/dev/branches/lucene5969/solr/contrib/analysis-extras/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/solr/contrib/analysis-extras/ivy.xml?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/solr/contrib/analysis-extras/ivy.xml (original)
+++ lucene/dev/branches/lucene5969/solr/contrib/analysis-extras/ivy.xml Wed Oct 22 05:44:17 2014
@@ -18,22 +18,22 @@
 -->
 <ivy-module version="2.0">
   <info organisation="org.apache.solr" module="analysis-extras"/>
-  <configurations>
+  <configurations defaultconfmapping="compile->master;test->master">
     <conf name="compile" transitive="false"/>
     <conf name="test" transitive="false"/>
   </configurations>
   <dependencies>
-    <dependency org="com.ibm.icu" name="icu4j" rev="${/com.ibm.icu/icu4j}" conf="compile->*"/>
+    <dependency org="com.ibm.icu" name="icu4j" rev="${/com.ibm.icu/icu4j}" conf="compile"/>
     <!--
       Although the 3rd party morfologik jars are not dependencies of code in
       the analysis-extras contrib, they must remain here in order to
       populate the Solr distribution
      -->
-    <dependency org="org.carrot2" name="morfologik-polish" rev="${/org.carrot2/morfologik-polish}" conf="compile->*"/>
-    <dependency org="org.carrot2" name="morfologik-fsa" rev="${/org.carrot2/morfologik-fsa}" conf="compile->*"/>
-    <dependency org="org.carrot2" name="morfologik-stemming" rev="${/org.carrot2/morfologik-stemming}" conf="compile->*"/>
+    <dependency org="org.carrot2" name="morfologik-polish" rev="${/org.carrot2/morfologik-polish}" conf="compile"/>
+    <dependency org="org.carrot2" name="morfologik-fsa" rev="${/org.carrot2/morfologik-fsa}" conf="compile"/>
+    <dependency org="org.carrot2" name="morfologik-stemming" rev="${/org.carrot2/morfologik-stemming}" conf="compile"/>
 
-    <dependency org="org.slf4j" name="jcl-over-slf4j" rev="${/org.slf4j/jcl-over-slf4j}" conf="test->*"/>
+    <dependency org="org.slf4j" name="jcl-over-slf4j" rev="${/org.slf4j/jcl-over-slf4j}" conf="test"/>
 
     <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/>
   </dependencies>

Modified: lucene/dev/branches/lucene5969/solr/contrib/analytics/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/solr/contrib/analytics/ivy.xml?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/solr/contrib/analytics/ivy.xml (original)
+++ lucene/dev/branches/lucene5969/solr/contrib/analytics/ivy.xml Wed Oct 22 05:44:17 2014
@@ -17,14 +17,14 @@
    under the License.    
 -->
 <ivy-module version="2.0">
-    <info organisation="org.apache.solr" module="analytics"/>
-      <configurations>
-        <conf name="compile" transitive="false"/>
-        <conf name="test" transitive="false"/>
-      </configurations>
-
-     <dependencies>
-       <dependency org="org.slf4j" name="jcl-over-slf4j" rev="${/org.slf4j/jcl-over-slf4j}" conf="test->*"/>
-     </dependencies>
+  <info organisation="org.apache.solr" module="analytics"/>
+    <configurations defaultconfmapping="compile->master;test->master">
+      <conf name="compile" transitive="false"/> <!-- keep unused 'compile' configuration to allow build to succeed -->
+      <conf name="test" transitive="false"/>
+    </configurations>
 
+   <dependencies>
+     <dependency org="org.slf4j" name="jcl-over-slf4j" rev="${/org.slf4j/jcl-over-slf4j}" conf="test"/>
+     <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/>
+   </dependencies>
 </ivy-module>

Modified: lucene/dev/branches/lucene5969/solr/contrib/clustering/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/solr/contrib/clustering/ivy.xml?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/solr/contrib/clustering/ivy.xml (original)
+++ lucene/dev/branches/lucene5969/solr/contrib/clustering/ivy.xml Wed Oct 22 05:44:17 2014
@@ -18,22 +18,22 @@
 -->
 <ivy-module version="2.0">
   <info organisation="org.apache.solr" module="clustering"/>
-  <configurations>
+  <configurations defaultconfmapping="compile->master;test->master">
     <conf name="compile" transitive="false"/>
     <conf name="test" transitive="false"/>
   </configurations>
   <dependencies>
-    <dependency org="org.carrot2" name="carrot2-mini" rev="${/org.carrot2/carrot2-mini}" transitive="false"/>
+    <dependency org="org.carrot2" name="carrot2-mini" rev="${/org.carrot2/carrot2-mini}" conf="compile"/>
 
-    <dependency org="com.carrotsearch" name="hppc" rev="${/com.carrotsearch/hppc}" transitive="false"/>
-    <dependency org="org.carrot2.attributes" name="attributes-binder" rev="${/org.carrot2.attributes/attributes-binder}" transitive="false"/>
-    <dependency org="org.simpleframework" name="simple-xml" rev="${/org.simpleframework/simple-xml}" transitive="false"/>
+    <dependency org="com.carrotsearch" name="hppc" rev="${/com.carrotsearch/hppc}" conf="compile"/>
+    <dependency org="org.carrot2.attributes" name="attributes-binder" rev="${/org.carrot2.attributes/attributes-binder}" conf="compile"/>
+    <dependency org="org.simpleframework" name="simple-xml" rev="${/org.simpleframework/simple-xml}" conf="compile"/>
 
-    <dependency org="org.apache.mahout" name="mahout-math" rev="${/org.apache.mahout/mahout-math}" transitive="false"/>
-    <dependency org="org.apache.mahout" name="mahout-collections" rev="${/org.apache.mahout/mahout-collections}" transitive="false"/>
+    <dependency org="org.apache.mahout" name="mahout-math" rev="${/org.apache.mahout/mahout-math}" conf="compile"/>
+    <dependency org="org.apache.mahout" name="mahout-collections" rev="${/org.apache.mahout/mahout-collections}" conf="compile"/>
 
-    <dependency org="org.codehaus.jackson" name="jackson-core-asl" rev="${/org.codehaus.jackson/jackson-core-asl}" transitive="false"/>
-    <dependency org="org.codehaus.jackson" name="jackson-mapper-asl" rev="${/org.codehaus.jackson/jackson-mapper-asl}" transitive="false"/>
+    <dependency org="org.codehaus.jackson" name="jackson-core-asl" rev="${/org.codehaus.jackson/jackson-core-asl}" conf="compile"/>
+    <dependency org="org.codehaus.jackson" name="jackson-mapper-asl" rev="${/org.codehaus.jackson/jackson-mapper-asl}" conf="compile"/>
 
     <!--
     Included as part of Solr's environment.
@@ -42,7 +42,7 @@
     commons-lang:commons-lang:jar:2.6:compile
      -->
 
-    <dependency org="org.slf4j" name="jcl-over-slf4j" rev="${/org.slf4j/jcl-over-slf4j}" conf="test->*"/>
+    <dependency org="org.slf4j" name="jcl-over-slf4j" rev="${/org.slf4j/jcl-over-slf4j}" conf="test"/>
 
     <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/>
   </dependencies>

Modified: lucene/dev/branches/lucene5969/solr/contrib/dataimporthandler-extras/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/solr/contrib/dataimporthandler-extras/ivy.xml?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/solr/contrib/dataimporthandler-extras/ivy.xml (original)
+++ lucene/dev/branches/lucene5969/solr/contrib/dataimporthandler-extras/ivy.xml Wed Oct 22 05:44:17 2014
@@ -26,14 +26,17 @@
         
         https://issues.apache.org/jira/browse/SOLR-3848
     -->
-  <configurations>
+  <configurations defaultconfmapping="compile->master;test->master">
     <conf name="compile" transitive="false"/>
     <conf name="test" transitive="false"/>
   </configurations>
   <dependencies>
-    <dependency org="javax.activation" name="activation" rev="${/javax.activation/activation}" conf="compile->*"/>
-    <dependency org="com.sun.mail" name="javax.mail" rev="${/com.sun.mail/javax.mail}"  conf="compile->*"/>
-    <dependency org="com.sun.mail" name="gimap" rev="${/com.sun.mail/gimap}"  conf="compile->*"/>  
-    <dependency org="org.slf4j" name="jcl-over-slf4j" rev="${/org.slf4j/jcl-over-slf4j}" conf="test->*"/>
+    <dependency org="javax.activation" name="activation" rev="${/javax.activation/activation}" conf="compile"/>
+    <dependency org="com.sun.mail" name="javax.mail" rev="${/com.sun.mail/javax.mail}" conf="compile"/>
+    <dependency org="com.sun.mail" name="gimap" rev="${/com.sun.mail/gimap}" conf="compile"/>  
+
+    <dependency org="org.slf4j" name="jcl-over-slf4j" rev="${/org.slf4j/jcl-over-slf4j}" conf="test"/>
+
+    <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/>
   </dependencies>
 </ivy-module>

Modified: lucene/dev/branches/lucene5969/solr/contrib/dataimporthandler/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/solr/contrib/dataimporthandler/ivy.xml?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/solr/contrib/dataimporthandler/ivy.xml (original)
+++ lucene/dev/branches/lucene5969/solr/contrib/dataimporthandler/ivy.xml Wed Oct 22 05:44:17 2014
@@ -18,15 +18,15 @@
 -->
 <ivy-module version="2.0">
   <info organisation="org.apache.solr" module="dataimporthandler"/>
-  <configurations>
-    <conf name="compile" transitive="false"/>
+  <configurations defaultconfmapping="compile->master;test->master">
+    <conf name="compile" transitive="false"/> <!-- keep unused 'compile' configuration to allow build to succeed -->
     <conf name="test" transitive="false"/>
   </configurations>
   <dependencies>
-    <dependency org="hsqldb" name="hsqldb" rev="${/hsqldb/hsqldb}" conf="test->*"/>
-    <dependency org="org.apache.derby" name="derby" rev="${/org.apache.derby/derby}" conf="test->*"/>
-    <dependency org="org.easymock" name="easymock" rev="${/org.easymock/easymock}" conf="test->*"/>
-    <dependency org="org.slf4j" name="jcl-over-slf4j" rev="${/org.slf4j/jcl-over-slf4j}" conf="test->*"/>
+    <dependency org="hsqldb" name="hsqldb" rev="${/hsqldb/hsqldb}" conf="test"/>
+    <dependency org="org.apache.derby" name="derby" rev="${/org.apache.derby/derby}" conf="test"/>
+    <dependency org="org.easymock" name="easymock" rev="${/org.easymock/easymock}" conf="test"/>
+    <dependency org="org.slf4j" name="jcl-over-slf4j" rev="${/org.slf4j/jcl-over-slf4j}" conf="test"/>
 
     <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/> 
   </dependencies>

Modified: lucene/dev/branches/lucene5969/solr/contrib/extraction/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/solr/contrib/extraction/ivy.xml?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/solr/contrib/extraction/ivy.xml (original)
+++ lucene/dev/branches/lucene5969/solr/contrib/extraction/ivy.xml Wed Oct 22 05:44:17 2014
@@ -18,53 +18,53 @@
 -->
 <ivy-module version="2.0">
   <info organisation="org.apache.solr" module="extraction"/>
-  <configurations>
+  <configurations defaultconfmapping="compile->master;test->master">
     <conf name="compile" transitive="false"/>
     <conf name="test" transitive="false"/>
   </configurations>
   <dependencies>
     <!-- Tika JARs -->
-    <dependency org="org.apache.tika" name="tika-core" rev="${/org.apache.tika/tika-core}" conf="compile->*"/>
-    <dependency org="org.apache.tika" name="tika-parsers" rev="${/org.apache.tika/tika-parsers}" conf="compile->*"/>
-    <dependency org="org.apache.tika" name="tika-xmp" rev="${/org.apache.tika/tika-xmp}" conf="compile->*"/>
+    <dependency org="org.apache.tika" name="tika-core" rev="${/org.apache.tika/tika-core}" conf="compile"/>
+    <dependency org="org.apache.tika" name="tika-parsers" rev="${/org.apache.tika/tika-parsers}" conf="compile"/>
+    <dependency org="org.apache.tika" name="tika-xmp" rev="${/org.apache.tika/tika-xmp}" conf="compile"/>
     <!-- Tika dependencies - see http://tika.apache.org/1.3/gettingstarted.html#Using_Tika_as_a_Maven_dependency -->
     <!-- When upgrading Tika, upgrade dependencies versions and add any new ones
          (except slf4j-api, commons-codec, commons-logging, commons-httpclient, geronimo-stax-api_1.0_spec, jcip-annotations, xml-apis, asm)
          WARNING: Don't add netcdf / unidataCommon (partially LGPL code) -->
-    <dependency org="org.gagravarr" name="vorbis-java-tika" rev="${/org.gagravarr/vorbis-java-tika}" conf="compile->*"/>
-    <dependency org="org.gagravarr" name="vorbis-java-core" rev="${/org.gagravarr/vorbis-java-core}" conf="compile->*"/>
-    <dependency org="org.apache.james" name="apache-mime4j-core" rev="${/org.apache.james/apache-mime4j-core}" conf="compile->*"/>
-    <dependency org="org.apache.james" name="apache-mime4j-dom" rev="${/org.apache.james/apache-mime4j-dom}" conf="compile->*"/>
-    <dependency org="org.apache.commons" name="commons-compress" rev="${/org.apache.commons/commons-compress}" conf="compile->*"/>
-    <dependency org="org.apache.pdfbox" name="pdfbox" rev="${/org.apache.pdfbox/pdfbox}" conf="compile->*"/>
-    <dependency org="org.apache.pdfbox" name="fontbox" rev="${/org.apache.pdfbox/fontbox}" conf="compile->*"/>
-    <dependency org="org.apache.pdfbox" name="jempbox" rev="${/org.apache.pdfbox/jempbox}" conf="compile->*"/>
-    <dependency org="org.bouncycastle" name="bcmail-jdk15" rev="${/org.bouncycastle/bcmail-jdk15}" conf="compile->*"/>
-    <dependency org="org.bouncycastle" name="bcprov-jdk15" rev="${/org.bouncycastle/bcprov-jdk15}" conf="compile->*"/>
-    <dependency org="org.apache.poi" name="poi" rev="${/org.apache.poi/poi}" conf="compile->*"/>
-    <dependency org="org.apache.poi" name="poi-scratchpad" rev="${/org.apache.poi/poi-scratchpad}" conf="compile->*"/>
-    <dependency org="org.apache.poi" name="poi-ooxml" rev="${/org.apache.poi/poi-ooxml}" conf="compile->*"/>
-    <dependency org="org.apache.poi" name="poi-ooxml-schemas" rev="${/org.apache.poi/poi-ooxml-schemas}" conf="compile->*"/>
-    <dependency org="org.apache.xmlbeans" name="xmlbeans" rev="${/org.apache.xmlbeans/xmlbeans}" conf="compile->*"/>
-    <dependency org="org.ccil.cowan.tagsoup" name="tagsoup" rev="${/org.ccil.cowan.tagsoup/tagsoup}" conf="compile->*"/>
-    <dependency org="com.googlecode.mp4parser" name="isoparser" rev="${/com.googlecode.mp4parser/isoparser}" conf="compile->*"/>
-    <dependency org="org.aspectj" name="aspectjrt" rev="${/org.aspectj/aspectjrt}" conf="compile->*"/>
-    <dependency org="com.drewnoakes" name="metadata-extractor" rev="${/com.drewnoakes/metadata-extractor}" conf="compile->*"/>
-    <dependency org="de.l3s.boilerpipe" name="boilerpipe" rev="${/de.l3s.boilerpipe/boilerpipe}" conf="compile->*"/>
-    <dependency org="rome" name="rome" rev="${/rome/rome}" conf="compile->*"/>
-    <dependency org="jdom" name="jdom" rev="${/jdom/jdom}" conf="compile->*"/>
-    <dependency org="com.googlecode.juniversalchardet" name="juniversalchardet" rev="${/com.googlecode.juniversalchardet/juniversalchardet}" conf="compile->*"/>
-    <dependency org="org.tukaani" name="xz" rev="${/org.tukaani/xz}" conf="compile->*"/>
-    <dependency org="com.adobe.xmp" name="xmpcore" rev="${/com.adobe.xmp/xmpcore}" conf="compile->*"/>
-    <dependency org="com.uwyn" name="jhighlight" rev="${/com.uwyn/jhighlight}" conf="compile->*"/>
-    <dependency org="com.pff" name="java-libpst" rev="${/com.pff/java-libpst}" conf="compile->*"/>
-    <dependency org="net.sourceforge.jmatio" name="jmatio" rev="${/net.sourceforge.jmatio/jmatio}" conf="compile->*"/>
+    <dependency org="org.gagravarr" name="vorbis-java-tika" rev="${/org.gagravarr/vorbis-java-tika}" conf="compile"/>
+    <dependency org="org.gagravarr" name="vorbis-java-core" rev="${/org.gagravarr/vorbis-java-core}" conf="compile"/>
+    <dependency org="org.apache.james" name="apache-mime4j-core" rev="${/org.apache.james/apache-mime4j-core}" conf="compile"/>
+    <dependency org="org.apache.james" name="apache-mime4j-dom" rev="${/org.apache.james/apache-mime4j-dom}" conf="compile"/>
+    <dependency org="org.apache.commons" name="commons-compress" rev="${/org.apache.commons/commons-compress}" conf="compile"/>
+    <dependency org="org.apache.pdfbox" name="pdfbox" rev="${/org.apache.pdfbox/pdfbox}" conf="compile"/>
+    <dependency org="org.apache.pdfbox" name="fontbox" rev="${/org.apache.pdfbox/fontbox}" conf="compile"/>
+    <dependency org="org.apache.pdfbox" name="jempbox" rev="${/org.apache.pdfbox/jempbox}" conf="compile"/>
+    <dependency org="org.bouncycastle" name="bcmail-jdk15" rev="${/org.bouncycastle/bcmail-jdk15}" conf="compile"/>
+    <dependency org="org.bouncycastle" name="bcprov-jdk15" rev="${/org.bouncycastle/bcprov-jdk15}" conf="compile"/>
+    <dependency org="org.apache.poi" name="poi" rev="${/org.apache.poi/poi}" conf="compile"/>
+    <dependency org="org.apache.poi" name="poi-scratchpad" rev="${/org.apache.poi/poi-scratchpad}" conf="compile"/>
+    <dependency org="org.apache.poi" name="poi-ooxml" rev="${/org.apache.poi/poi-ooxml}" conf="compile"/>
+    <dependency org="org.apache.poi" name="poi-ooxml-schemas" rev="${/org.apache.poi/poi-ooxml-schemas}" conf="compile"/>
+    <dependency org="org.apache.xmlbeans" name="xmlbeans" rev="${/org.apache.xmlbeans/xmlbeans}" conf="compile"/>
+    <dependency org="org.ccil.cowan.tagsoup" name="tagsoup" rev="${/org.ccil.cowan.tagsoup/tagsoup}" conf="compile"/>
+    <dependency org="com.googlecode.mp4parser" name="isoparser" rev="${/com.googlecode.mp4parser/isoparser}" conf="compile"/>
+    <dependency org="org.aspectj" name="aspectjrt" rev="${/org.aspectj/aspectjrt}" conf="compile"/>
+    <dependency org="com.drewnoakes" name="metadata-extractor" rev="${/com.drewnoakes/metadata-extractor}" conf="compile"/>
+    <dependency org="de.l3s.boilerpipe" name="boilerpipe" rev="${/de.l3s.boilerpipe/boilerpipe}" conf="compile"/>
+    <dependency org="rome" name="rome" rev="${/rome/rome}" conf="compile"/>
+    <dependency org="jdom" name="jdom" rev="${/jdom/jdom}" conf="compile"/>
+    <dependency org="com.googlecode.juniversalchardet" name="juniversalchardet" rev="${/com.googlecode.juniversalchardet/juniversalchardet}" conf="compile"/>
+    <dependency org="org.tukaani" name="xz" rev="${/org.tukaani/xz}" conf="compile"/>
+    <dependency org="com.adobe.xmp" name="xmpcore" rev="${/com.adobe.xmp/xmpcore}" conf="compile"/>
+    <dependency org="com.uwyn" name="jhighlight" rev="${/com.uwyn/jhighlight}" conf="compile"/>
+    <dependency org="com.pff" name="java-libpst" rev="${/com.pff/java-libpst}" conf="compile"/>
+    <dependency org="net.sourceforge.jmatio" name="jmatio" rev="${/net.sourceforge.jmatio/jmatio}" conf="compile"/>
 
     <!-- Other ExtractingRequestHandler dependencies -->
-    <dependency org="com.ibm.icu" name="icu4j" rev="${/com.ibm.icu/icu4j}" conf="compile->*"/>
-    <dependency org="xerces" name="xercesImpl" rev="${/xerces/xercesImpl}" conf="compile->*"/>
+    <dependency org="com.ibm.icu" name="icu4j" rev="${/com.ibm.icu/icu4j}" conf="compile"/>
+    <dependency org="xerces" name="xercesImpl" rev="${/xerces/xercesImpl}" conf="compile"/>
 
-    <dependency org="org.slf4j" name="jcl-over-slf4j" rev="${/org.slf4j/jcl-over-slf4j}" conf="test->*"/>
+    <dependency org="org.slf4j" name="jcl-over-slf4j" rev="${/org.slf4j/jcl-over-slf4j}" conf="test"/>
 
     <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/>
   </dependencies>

Modified: lucene/dev/branches/lucene5969/solr/contrib/langid/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/solr/contrib/langid/ivy.xml?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/solr/contrib/langid/ivy.xml (original)
+++ lucene/dev/branches/lucene5969/solr/contrib/langid/ivy.xml Wed Oct 22 05:44:17 2014
@@ -18,15 +18,15 @@
 -->
 <ivy-module version="2.0">
   <info organisation="org.apache.solr" module="langid"/>
-  <configurations>
+  <configurations defaultconfmapping="compile->master;test->master">
     <conf name="compile" transitive="false"/>
     <conf name="test" transitive="false"/>
   </configurations>
   <dependencies>
-    <dependency org="com.cybozu.labs" name="langdetect" rev="${/com.cybozu.labs/langdetect}" conf="compile->*"/>
-    <dependency org="net.arnx" name="jsonic" rev="${/net.arnx/jsonic}" conf="compile->*"/>
+    <dependency org="com.cybozu.labs" name="langdetect" rev="${/com.cybozu.labs/langdetect}" conf="compile"/>
+    <dependency org="net.arnx" name="jsonic" rev="${/net.arnx/jsonic}" conf="compile"/>
 
-    <dependency org="org.slf4j" name="jcl-over-slf4j" rev="${/org.slf4j/jcl-over-slf4j}" conf="test->*"/>
+    <dependency org="org.slf4j" name="jcl-over-slf4j" rev="${/org.slf4j/jcl-over-slf4j}" conf="test"/>
 
     <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/>
   </dependencies>

Modified: lucene/dev/branches/lucene5969/solr/contrib/map-reduce/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/solr/contrib/map-reduce/ivy.xml?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/solr/contrib/map-reduce/ivy.xml (original)
+++ lucene/dev/branches/lucene5969/solr/contrib/map-reduce/ivy.xml Wed Oct 22 05:44:17 2014
@@ -18,21 +18,19 @@
 -->
 <ivy-module version="2.0">
   <info organisation="org.apache.solr" module="map-reduce" />
-  <configurations>
+  <configurations defaultconfmapping="compile->master;test->master">
     <conf name="compile" transitive="false" />
     <conf name="test" transitive="false" />
-    <conf name="test.DfsMiniCluster" transitive="false"/>
   </configurations>
 
   <dependencies>
-    <dependency org="org.apache.hadoop" name="hadoop-mapreduce-client-core" rev="${/org.apache.hadoop/hadoop-mapreduce-client-core}" conf="compile->*" />
-    <dependency org="net.sourceforge.argparse4j" name="argparse4j" rev="${/net.sourceforge.argparse4j/argparse4j}" conf="compile->*" />
-    <dependency org="org.kitesdk" name="kite-morphlines-saxon" rev="${/org.kitesdk/kite-morphlines-saxon}" conf="compile->*" />
-    <dependency org="net.sf.saxon" name="Saxon-HE" rev="${/net.sf.saxon/Saxon-HE}" conf="compile->*" />
-    
-    <dependency org="org.kitesdk" name="kite-morphlines-hadoop-sequencefile" rev="${/org.kitesdk/kite-morphlines-hadoop-sequencefile}" conf="compile->*" />
+    <dependency org="org.apache.hadoop" name="hadoop-mapreduce-client-core" rev="${/org.apache.hadoop/hadoop-mapreduce-client-core}" conf="compile" />
+    <dependency org="net.sourceforge.argparse4j" name="argparse4j" rev="${/net.sourceforge.argparse4j/argparse4j}" conf="compile" />
+    <dependency org="org.kitesdk" name="kite-morphlines-saxon" rev="${/org.kitesdk/kite-morphlines-saxon}" conf="compile" />
+    <dependency org="net.sf.saxon" name="Saxon-HE" rev="${/net.sf.saxon/Saxon-HE}" conf="compile" />
+    <dependency org="org.kitesdk" name="kite-morphlines-hadoop-sequencefile" rev="${/org.kitesdk/kite-morphlines-hadoop-sequencefile}" conf="compile" />
 
-    <dependency org="org.slf4j" name="jcl-over-slf4j" rev="${/org.slf4j/jcl-over-slf4j}" conf="test->*"/>
+    <dependency org="org.slf4j" name="jcl-over-slf4j" rev="${/org.slf4j/jcl-over-slf4j}" conf="test" />
 
     <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}" />
   </dependencies>

Modified: lucene/dev/branches/lucene5969/solr/contrib/morphlines-cell/ivy.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/solr/contrib/morphlines-cell/ivy.xml?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/solr/contrib/morphlines-cell/ivy.xml (original)
+++ lucene/dev/branches/lucene5969/solr/contrib/morphlines-cell/ivy.xml Wed Oct 22 05:44:17 2014
@@ -18,19 +18,18 @@
 -->
 <ivy-module version="2.0">
   <info organisation="org.apache.solr" module="morphlines-cell" />
-  <configurations>
+  <configurations defaultconfmapping="compile->master;test->master">
     <conf name="compile" transitive="false" />
     <conf name="test" transitive="false" />
-    <conf name="test.DfsMiniCluster" transitive="false"/>
   </configurations>
 
   <dependencies>
-    <dependency org="org.kitesdk" name="kite-morphlines-tika-core" rev="${/org.kitesdk/kite-morphlines-tika-core}" conf="compile->*" />
-    <dependency org="org.kitesdk" name="kite-morphlines-tika-decompress" rev="${/org.kitesdk/kite-morphlines-tika-decompress}" conf="compile->*" />
-    <dependency org="org.kitesdk" name="kite-morphlines-json" rev="${/org.kitesdk/kite-morphlines-json}" conf="compile->*" />
-    <dependency org="org.kitesdk" name="kite-morphlines-twitter" rev="${/org.kitesdk/kite-morphlines-twitter}" conf="compile->*" />
+    <dependency org="org.kitesdk" name="kite-morphlines-tika-core" rev="${/org.kitesdk/kite-morphlines-tika-core}" conf="compile" />
+    <dependency org="org.kitesdk" name="kite-morphlines-tika-decompress" rev="${/org.kitesdk/kite-morphlines-tika-decompress}" conf="compile" />
+    <dependency org="org.kitesdk" name="kite-morphlines-json" rev="${/org.kitesdk/kite-morphlines-json}" conf="compile" />
+    <dependency org="org.kitesdk" name="kite-morphlines-twitter" rev="${/org.kitesdk/kite-morphlines-twitter}" conf="compile" />
 
-    <dependency org="org.slf4j" name="jcl-over-slf4j" rev="${/org.slf4j/jcl-over-slf4j}" conf="test->*"/>
+    <dependency org="org.slf4j" name="jcl-over-slf4j" rev="${/org.slf4j/jcl-over-slf4j}" conf="test" />
 
     <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}" />
 

Modified: lucene/dev/branches/lucene5969/solr/contrib/morphlines-core/build.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5969/solr/contrib/morphlines-core/build.xml?rev=1633538&r1=1633537&r2=1633538&view=diff
==============================================================================
--- lucene/dev/branches/lucene5969/solr/contrib/morphlines-core/build.xml (original)
+++ lucene/dev/branches/lucene5969/solr/contrib/morphlines-core/build.xml Wed Oct 22 05:44:17 2014
@@ -91,6 +91,14 @@
     </ant>
   </target>
 
+  <target name="resolve" depends="ivy-availability-check,ivy-fail,ivy-configure">
+    <sequential>
+      <ivy:retrieve conf="compile" type="jar,bundle" sync="${ivy.sync}" log="download-only"/>
+      <ivy:retrieve conf="test,test.DfsMiniCluster" type="jar,bundle,test" sync="${ivy.sync}" log="download-only"
+                    pattern="${test.lib.dir}/[artifact]-[revision](-[classifier]).[ext]"/>
+    </sequential>
+  </target>
+
   <target name="compile-core" depends="resolve-extraction-libs, compile-solr-extraction, solr-contrib-build.compile-core"/>
   <target name="dist" depends="common-solr.dist"/>