DCausse has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/282991

Change subject: [WIP] Upgrade to elastic 2.2
......................................................................

[WIP] Upgrade to elastic 2.2

WIP: some test in the elasticsearch are failing because the security manager 
can be loaded.
ElasticsearchQueryFlattenerTest does not use elastic integration test suite but 
uses mockito.
If this test is executed after some ESIntegTest then it will fail.
If it is executed first it works.
Possible solutions:
  - use plugin-security.policy as a test resource and tell elastic that we want
    to grant perm to secure-mock
  - use another test suite (move all ESIntegTest tests to
    src/integration-test/sources and run integration tests in their own JVM
  - Disable ES security manager

Change-Id: Ib0037c0278ccae465cd3044b0d6b5b10d2d52b9e
---
M experimental-highlighter-core/pom.xml
M 
experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/hit/ConcatHitEnumTest.java
M 
experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/hit/MergingHitEnumTest.java
M 
experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/hit/OverlapMergingHitEnumWrapperTest.java
M 
experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/hit/ReplayingHitEnumTest.java
M 
experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/snippet/BreakIteratorSegmenterTest.java
M 
experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/snippet/CharScanningSegmenterTest.java
M 
experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/snippet/MultiSegmenterTest.java
M 
experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/source/AbstractMultiSourceExtracterTestBase.java
M 
experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/source/NonMergingMultiSourceExtracterTest.java
M 
experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/source/StringMergingMultiSourceExtracterTest.java
M experimental-highlighter-elasticsearch-plugin/pom.xml
M 
experimental-highlighter-elasticsearch-plugin/src/main/java/org/elasticsearch/search/highlight/ExperimentalHighlighter.java
M 
experimental-highlighter-elasticsearch-plugin/src/test/java/org/wikimedia/highlighter/experimental/elasticsearch/ElasticsearchQueryFlattenerTest.java
A 
experimental-highlighter-elasticsearch-plugin/src/test/resources/plugin-security.policy
M experimental-highlighter-lucene/pom.xml
M 
experimental-highlighter-lucene/src/main/java/org/wikimedia/highlighter/experimental/lucene/QueryFlattener.java
M 
experimental-highlighter-lucene/src/test/java/org/wikimedia/highlighter/experimental/lucene/QueryFlattenerTest.java
M 
experimental-highlighter-lucene/src/test/java/org/wikimedia/highlighter/experimental/lucene/hit/AbstractLuceneHitEnumTestBase.java
M pom.xml
20 files changed, 122 insertions(+), 54 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/search/highlighter 
refs/changes/91/282991/1

diff --git a/experimental-highlighter-core/pom.xml 
b/experimental-highlighter-core/pom.xml
index 3de9271..4732d08 100644
--- a/experimental-highlighter-core/pom.xml
+++ b/experimental-highlighter-core/pom.xml
@@ -3,7 +3,7 @@
   <parent>
     <groupId>org.wikimedia.search.highlighter</groupId>
     <artifactId>experimental</artifactId>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.2.0-SNAPSHOT</version>
   </parent>
   <artifactId>experimental-highlighter-core</artifactId>
   <packaging>jar</packaging>
diff --git 
a/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/hit/ConcatHitEnumTest.java
 
b/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/hit/ConcatHitEnumTest.java
index 3d4e63c..3123885 100644
--- 
a/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/hit/ConcatHitEnumTest.java
+++ 
b/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/hit/ConcatHitEnumTest.java
@@ -1,5 +1,6 @@
 package org.wikimedia.search.highlighter.experimental.hit;
 
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.allOf;
 import static org.wikimedia.search.highlighter.experimental.Matchers.advances;
 import static 
org.wikimedia.search.highlighter.experimental.Matchers.atCorpusWeight;
diff --git 
a/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/hit/MergingHitEnumTest.java
 
b/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/hit/MergingHitEnumTest.java
index 333058d..b15ef88 100644
--- 
a/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/hit/MergingHitEnumTest.java
+++ 
b/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/hit/MergingHitEnumTest.java
@@ -1,6 +1,9 @@
 package org.wikimedia.search.highlighter.experimental.hit;
 
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.allOf;
+import static org.junit.Assert.assertFalse;
+
 import static org.wikimedia.search.highlighter.experimental.Matchers.advances;
 import static 
org.wikimedia.search.highlighter.experimental.Matchers.atEndOffset;
 import static 
org.wikimedia.search.highlighter.experimental.Matchers.atPosition;
diff --git 
a/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/hit/OverlapMergingHitEnumWrapperTest.java
 
b/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/hit/OverlapMergingHitEnumWrapperTest.java
index ac34109..40530dc 100644
--- 
a/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/hit/OverlapMergingHitEnumWrapperTest.java
+++ 
b/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/hit/OverlapMergingHitEnumWrapperTest.java
@@ -1,5 +1,6 @@
 package org.wikimedia.search.highlighter.experimental.hit;
 
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.allOf;
 import static org.wikimedia.search.highlighter.experimental.Matchers.advances;
 import static 
org.wikimedia.search.highlighter.experimental.Matchers.atEndOffset;
diff --git 
a/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/hit/ReplayingHitEnumTest.java
 
b/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/hit/ReplayingHitEnumTest.java
index 65288a9..da38685 100644
--- 
a/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/hit/ReplayingHitEnumTest.java
+++ 
b/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/hit/ReplayingHitEnumTest.java
@@ -1,6 +1,8 @@
 package org.wikimedia.search.highlighter.experimental.hit;
 
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.allOf;
+import static org.junit.Assert.assertEquals;
 import static org.wikimedia.search.highlighter.experimental.Matchers.advances;
 import static 
org.wikimedia.search.highlighter.experimental.Matchers.atEndOffset;
 import static 
org.wikimedia.search.highlighter.experimental.Matchers.atPosition;
diff --git 
a/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/snippet/BreakIteratorSegmenterTest.java
 
b/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/snippet/BreakIteratorSegmenterTest.java
index ae0e612..0ec9033 100644
--- 
a/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/snippet/BreakIteratorSegmenterTest.java
+++ 
b/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/snippet/BreakIteratorSegmenterTest.java
@@ -1,5 +1,8 @@
 package org.wikimedia.search.highlighter.experimental.snippet;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.lessThan;
 import static org.wikimedia.search.highlighter.experimental.Matchers.extracted;
 
diff --git 
a/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/snippet/CharScanningSegmenterTest.java
 
b/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/snippet/CharScanningSegmenterTest.java
index 02b799e..4b15759 100644
--- 
a/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/snippet/CharScanningSegmenterTest.java
+++ 
b/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/snippet/CharScanningSegmenterTest.java
@@ -1,5 +1,7 @@
 package org.wikimedia.search.highlighter.experimental.snippet;
 
+import static org.junit.Assert.assertTrue;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.greaterThanOrEqualTo;
 import static org.hamcrest.Matchers.lessThan;
diff --git 
a/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/snippet/MultiSegmenterTest.java
 
b/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/snippet/MultiSegmenterTest.java
index 00d7e53..a709198 100644
--- 
a/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/snippet/MultiSegmenterTest.java
+++ 
b/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/snippet/MultiSegmenterTest.java
@@ -1,5 +1,8 @@
 package org.wikimedia.search.highlighter.experimental.snippet;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.equalTo;
 import static org.wikimedia.search.highlighter.experimental.Matchers.extracted;
 
diff --git 
a/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/source/AbstractMultiSourceExtracterTestBase.java
 
b/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/source/AbstractMultiSourceExtracterTestBase.java
index 36fa8d4..4b47b09 100644
--- 
a/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/source/AbstractMultiSourceExtracterTestBase.java
+++ 
b/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/source/AbstractMultiSourceExtracterTestBase.java
@@ -1,5 +1,8 @@
 package org.wikimedia.search.highlighter.experimental.source;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.wikimedia.search.highlighter.experimental.SourceExtracter;
diff --git 
a/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/source/NonMergingMultiSourceExtracterTest.java
 
b/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/source/NonMergingMultiSourceExtracterTest.java
index 5c2c097..12cceb5 100644
--- 
a/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/source/NonMergingMultiSourceExtracterTest.java
+++ 
b/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/source/NonMergingMultiSourceExtracterTest.java
@@ -1,5 +1,7 @@
 package org.wikimedia.search.highlighter.experimental.source;
 
+import static org.junit.Assert.fail;
+
 import org.junit.Test;
 import 
org.wikimedia.search.highlighter.experimental.source.NonMergingMultiSourceExtracter;
 import 
org.wikimedia.search.highlighter.experimental.source.AbstractMultiSourceExtracter.Builder;
diff --git 
a/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/source/StringMergingMultiSourceExtracterTest.java
 
b/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/source/StringMergingMultiSourceExtracterTest.java
index 5f793d4..b370534 100644
--- 
a/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/source/StringMergingMultiSourceExtracterTest.java
+++ 
b/experimental-highlighter-core/src/test/java/org/wikimedia/search/highlighter/experimental/source/StringMergingMultiSourceExtracterTest.java
@@ -1,5 +1,7 @@
 package org.wikimedia.search.highlighter.experimental.source;
 
+import static org.junit.Assert.assertEquals;
+
 import org.wikimedia.search.highlighter.experimental.SourceExtracter;
 import 
org.wikimedia.search.highlighter.experimental.source.StringMergingMultiSourceExtracter;
 import 
org.wikimedia.search.highlighter.experimental.source.AbstractMultiSourceExtracter.Builder;
diff --git a/experimental-highlighter-elasticsearch-plugin/pom.xml 
b/experimental-highlighter-elasticsearch-plugin/pom.xml
index e1164df..45352ca 100644
--- a/experimental-highlighter-elasticsearch-plugin/pom.xml
+++ b/experimental-highlighter-elasticsearch-plugin/pom.xml
@@ -3,7 +3,7 @@
   <parent>
     <groupId>org.wikimedia.search.highlighter</groupId>
     <artifactId>experimental</artifactId>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.2.0-SNAPSHOT</version>
   </parent>
   <artifactId>experimental-highlighter-elasticsearch-plugin</artifactId>
   <packaging>jar</packaging>
@@ -89,6 +89,15 @@
         </includes>
       </resource>
     </resources>
+    <testResources>
+      <testResource>
+        <directory>src/test/resources</directory>
+       <filtering>true</filtering>
+        <includes>
+          <include>*.policy</include>
+        </includes>
+      </testResource>
+    </testResources>
     <plugins>
       <plugin>
         <groupId>com.carrotsearch.randomizedtesting</groupId>
diff --git 
a/experimental-highlighter-elasticsearch-plugin/src/main/java/org/elasticsearch/search/highlight/ExperimentalHighlighter.java
 
b/experimental-highlighter-elasticsearch-plugin/src/main/java/org/elasticsearch/search/highlight/ExperimentalHighlighter.java
index 8b69d6b..30d4b2c 100644
--- 
a/experimental-highlighter-elasticsearch-plugin/src/main/java/org/elasticsearch/search/highlight/ExperimentalHighlighter.java
+++ 
b/experimental-highlighter-elasticsearch-plugin/src/main/java/org/elasticsearch/search/highlight/ExperimentalHighlighter.java
@@ -16,8 +16,6 @@
 import org.apache.lucene.util.automaton.TooComplexToDeterminizeException;
 import org.elasticsearch.common.logging.ESLogger;
 import org.elasticsearch.common.logging.ESLoggerFactory;
-import org.elasticsearch.common.text.StringAndBytesText;
-import org.elasticsearch.common.text.StringText;
 import org.elasticsearch.common.text.Text;
 import org.elasticsearch.common.util.BigArrays;
 import org.elasticsearch.common.util.LocaleUtils;
@@ -61,7 +59,7 @@
 public class ExperimentalHighlighter implements Highlighter {
     public static final String NAME = "experimental";
     private static final String CACHE_KEY = "highlight-experimental";
-    private static final Text EMPTY_STRING = new StringAndBytesText("");
+    private static final Text EMPTY_STRING = new Text("");
     private static final ESLogger log = 
ESLoggerFactory.getLogger(ExperimentalHighlighter.class.getName());
 
     @Override
@@ -196,7 +194,7 @@
             if (fieldValues.isEmpty()) {
                 return null;
             }
-            Text fragment = new 
StringText(getSegmenterFactory().extractNoMatchFragment(fieldValues.get(0), 
noMatchSize));
+            Text fragment = new 
Text(getSegmenterFactory().extractNoMatchFragment(fieldValues.get(0), 
noMatchSize));
             return new HighlightField(context.fieldName, new Text[] { fragment 
});
         }
 
@@ -565,7 +563,7 @@
                 Text[] result = new Text[snippets.size()];
                 int i = 0;
                 for (Snippet snippet : snippets) {
-                    result[i++] = new StringText(formatter.format(snippet));
+                    result[i++] = new Text(formatter.format(snippet));
                 }
                 return result;
             }
@@ -575,12 +573,12 @@
             FetchedFieldIndexPicker picker = 
segmenter.buildFetchedFieldIndexPicker();
             int i = 0;
             for (Snippet snippet : snippets) {
-                result[i++] = new StringText(formatter.format(snippet));
+                result[i++] = new Text(formatter.format(snippet));
                 int index = picker.index(snippet);
                 for (FieldWrapper fetchField : fetchFields) {
                     List<String> values = fetchField.getFieldValues();
                     if (index >= 0 && index < values.size()) {
-                        result[i++] = new StringText(values.get(index));
+                        result[i++] = new Text(values.get(index));
                     } else {
                         result[i++] = EMPTY_STRING;
                     }
diff --git 
a/experimental-highlighter-elasticsearch-plugin/src/test/java/org/wikimedia/highlighter/experimental/elasticsearch/ElasticsearchQueryFlattenerTest.java
 
b/experimental-highlighter-elasticsearch-plugin/src/test/java/org/wikimedia/highlighter/experimental/elasticsearch/ElasticsearchQueryFlattenerTest.java
index 6636620..545599d 100644
--- 
a/experimental-highlighter-elasticsearch-plugin/src/test/java/org/wikimedia/highlighter/experimental/elasticsearch/ElasticsearchQueryFlattenerTest.java
+++ 
b/experimental-highlighter-elasticsearch-plugin/src/test/java/org/wikimedia/highlighter/experimental/elasticsearch/ElasticsearchQueryFlattenerTest.java
@@ -1,14 +1,14 @@
 package org.wikimedia.highlighter.experimental.elasticsearch;
 
-import static org.mockito.Matchers.anyFloat;
-import static org.mockito.Matchers.anyInt;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Matchers.isNull;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
+import static org.elasticsearch.mock.orig.Mockito.anyFloat;
+import static org.elasticsearch.mock.orig.Mockito.anyInt;
+import static org.elasticsearch.mock.orig.Mockito.anyString;
+import static org.elasticsearch.mock.orig.Mockito.eq;
+import static org.elasticsearch.mock.orig.Mockito.isNull;
+import static org.elasticsearch.mock.orig.Mockito.never;
+import static org.elasticsearch.mock.orig.Mockito.times;
+import static org.elasticsearch.mock.orig.Mockito.verify;
+import static org.elasticsearch.mock.orig.Mockito.mock;
 
 import java.io.IOException;
 
diff --git 
a/experimental-highlighter-elasticsearch-plugin/src/test/resources/plugin-security.policy
 
b/experimental-highlighter-elasticsearch-plugin/src/test/resources/plugin-security.policy
new file mode 100644
index 0000000..9b27bd8
--- /dev/null
+++ 
b/experimental-highlighter-elasticsearch-plugin/src/test/resources/plugin-security.policy
@@ -0,0 +1,10 @@
+// I'm not that this file is loaded...
+// and not sure if we need to use grant codeBase "path-to-secure-mock.jar"
+grant {
+  // needed to access ReflectionFactory (see below)
+  permission java.lang.RuntimePermission "accessClassInPackage.sun.reflect";
+  // needed to support creation of mocks
+  permission java.lang.RuntimePermission "reflectionFactoryAccess";
+  // needed for spy interception, etc
+  permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
+};
\ No newline at end of file
diff --git a/experimental-highlighter-lucene/pom.xml 
b/experimental-highlighter-lucene/pom.xml
index 0711fc8..0f61688 100644
--- a/experimental-highlighter-lucene/pom.xml
+++ b/experimental-highlighter-lucene/pom.xml
@@ -3,7 +3,7 @@
   <parent>
     <groupId>org.wikimedia.search.highlighter</groupId>
     <artifactId>experimental</artifactId>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.2.0-SNAPSHOT</version>
   </parent>
   <artifactId>experimental-highlighter-lucene</artifactId>
   <packaging>jar</packaging>
diff --git 
a/experimental-highlighter-lucene/src/main/java/org/wikimedia/highlighter/experimental/lucene/QueryFlattener.java
 
b/experimental-highlighter-lucene/src/main/java/org/wikimedia/highlighter/experimental/lucene/QueryFlattener.java
index 27ffc5f..b5a4e77 100644
--- 
a/experimental-highlighter-lucene/src/main/java/org/wikimedia/highlighter/experimental/lucene/QueryFlattener.java
+++ 
b/experimental-highlighter-lucene/src/main/java/org/wikimedia/highlighter/experimental/lucene/QueryFlattener.java
@@ -11,6 +11,7 @@
 import org.apache.lucene.search.BooleanClause;
 import org.apache.lucene.search.BooleanClause.Occur;
 import org.apache.lucene.search.BooleanQuery;
+import org.apache.lucene.search.BoostQuery;
 import org.apache.lucene.search.ConstantScoreQuery;
 import org.apache.lucene.search.DisjunctionMaxQuery;
 import org.apache.lucene.search.FilteredQuery;
@@ -117,6 +118,8 @@
             Callback callback) {
         if (query instanceof TermQuery) {
             flattenQuery((TermQuery) query, pathBoost, sourceOverride, reader, 
callback);
+        } else if (query instanceof BoostQuery) {
+            flattenQuery((BoostQuery) query, pathBoost, sourceOverride, 
reader, callback);
         } else if (query instanceof PhraseQuery) {
             flattenQuery((PhraseQuery) query, pathBoost, sourceOverride, 
reader, callback);
         } else if (query instanceof BooleanQuery) {
@@ -183,6 +186,11 @@
     protected void flattenQuery(TermQuery query, float pathBoost, Object 
sourceOverride,
             IndexReader reader, Callback callback) {
         callback.flattened(query.getTerm().bytes(), pathBoost * 
query.getBoost(), sourceOverride);
+    }
+    
+    protected void flattenQuery(BoostQuery query, float pathBoost, Object 
sourceOverride,
+            IndexReader reader, Callback callback) {
+        flatten(query.getQuery(), query.getBoost() * pathBoost, 
sourceOverride, reader, callback);
     }
 
     protected void flattenQuery(PhraseQuery query, float pathBoost, Object 
sourceOverride,
@@ -419,19 +427,29 @@
             flattenQuery(bq, pathBoost, sourceOverride, reader, callback);
             return;
         }
-        if (!(first.getQuery() instanceof BooleanQuery && second.getQuery() 
instanceof BooleanQuery)) {
+
+        Query firstQ = first.getQuery();
+        Query secondQ = second.getQuery();
+        
+        // The query can be wrapped inside a BoostQuery
+        if (firstQ instanceof BoostQuery && secondQ instanceof BoostQuery) {
+            firstQ = ((BoostQuery)firstQ).getQuery();
+            secondQ = ((BoostQuery)secondQ).getQuery();
+        }
+
+        if (!(firstQ instanceof BooleanQuery && secondQ instanceof 
BooleanQuery)) {
             // Nope - terms of the wrong type. not sure how that happened.
             flattenQuery(bq, pathBoost, sourceOverride, reader, callback);
             return;
         }
 
-        final BooleanQuery lowFrequency;
+        final Query lowFrequency;
         if(first.getOccur() == Occur.MUST) {
-            lowFrequency = (BooleanQuery) first.getQuery();
+            lowFrequency = first.getQuery();
         } else {
-            lowFrequency = (BooleanQuery) second.getQuery();
+            lowFrequency = second.getQuery();
         }
-        flattenQuery(lowFrequency, pathBoost, sourceOverride, reader, 
callback);
+        flatten(lowFrequency, pathBoost, sourceOverride, reader, callback);
     }
 
     protected Query rewriteQuery(MultiTermQuery query, float pathBoost, Object 
sourceOverride, IndexReader reader) {
diff --git 
a/experimental-highlighter-lucene/src/test/java/org/wikimedia/highlighter/experimental/lucene/QueryFlattenerTest.java
 
b/experimental-highlighter-lucene/src/test/java/org/wikimedia/highlighter/experimental/lucene/QueryFlattenerTest.java
index 7294295..c057a0a 100644
--- 
a/experimental-highlighter-lucene/src/test/java/org/wikimedia/highlighter/experimental/lucene/QueryFlattenerTest.java
+++ 
b/experimental-highlighter-lucene/src/test/java/org/wikimedia/highlighter/experimental/lucene/QueryFlattenerTest.java
@@ -31,6 +31,7 @@
 import org.apache.lucene.search.BooleanClause;
 import org.apache.lucene.search.BooleanClause.Occur;
 import org.apache.lucene.search.BooleanQuery;
+import org.apache.lucene.search.BoostQuery;
 import org.apache.lucene.search.FuzzyQuery;
 import org.apache.lucene.search.PhraseQuery;
 import org.apache.lucene.search.PrefixQuery;
@@ -102,6 +103,14 @@
         verify(callback).flattened(bar.bytes(), 1f, null);
         verify(callback, never()).flattened(eq(baz.bytes()), anyFloat(), 
isNull(Query.class));
     }
+    
+    @Test
+    public void boostQuery() {
+        Callback callback = mock(Callback.class);
+        BoostQuery bq = new BoostQuery(new TermQuery(bar), 2f);
+        new QueryFlattener().flatten(bq, null, callback);
+        verify(callback).flattened(bar.bytes(), 2f, null);
+    }
 
     @Test
     public void rewritten() throws IOException {
diff --git 
a/experimental-highlighter-lucene/src/test/java/org/wikimedia/highlighter/experimental/lucene/hit/AbstractLuceneHitEnumTestBase.java
 
b/experimental-highlighter-lucene/src/test/java/org/wikimedia/highlighter/experimental/lucene/hit/AbstractLuceneHitEnumTestBase.java
index 3446122..21292b7 100644
--- 
a/experimental-highlighter-lucene/src/test/java/org/wikimedia/highlighter/experimental/lucene/hit/AbstractLuceneHitEnumTestBase.java
+++ 
b/experimental-highlighter-lucene/src/test/java/org/wikimedia/highlighter/experimental/lucene/hit/AbstractLuceneHitEnumTestBase.java
@@ -11,7 +11,6 @@
 import org.apache.lucene.util.automaton.CharacterRunAutomaton;
 import org.apache.lucene.util.automaton.RegExp;
 import org.junit.After;
-import 
org.wikimedia.highlighter.experimental.lucene.WrappedExceptionFromLucene;
 import 
org.wikimedia.search.highlighter.experimental.hit.AbstractHitEnumTestBase;
 
 /**
@@ -34,13 +33,9 @@
     }
 
     protected TokenStream buildTokenStream(String source, Analyzer analyzer) {
-        try {
-            TokenStream stream = analyzer.tokenStream("doesn'tmatter", source);
-            builtStreams.add(stream);
-            return stream;
-        } catch (IOException e) {
-            throw new WrappedExceptionFromLucene(e);
-        }
+        TokenStream stream = analyzer.tokenStream("doesn'tmatter", source);
+        builtStreams.add(stream);
+        return stream;
     }
 
     @After
diff --git a/pom.xml b/pom.xml
index e6053f1..8ce9db1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
 
   <groupId>org.wikimedia.search.highlighter</groupId>
   <artifactId>experimental</artifactId>
-  <version>2.1.0-SNAPSHOT</version>
+  <version>2.2.0-SNAPSHOT</version>
   <packaging>pom</packaging>
 
   <modules>
@@ -49,10 +49,11 @@
 
   <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-    <elasticsearch.version>2.1.0</elasticsearch.version>
+    <elasticsearch.version>2.2.1</elasticsearch.version>
     <!-- For the Elasticsearch plugin to work this should match the version of 
Lucene that Elasticsearch
       uses. -->
-    <lucene.version>5.3.1</lucene.version>
+    <lucene.version>5.4.1</lucene.version>
+    
<secure.mock.libpath>${maven.dependency.org.elasticsearch.secure-mock.jar.path}</secure.mock.libpath>
   </properties>
 
   <build>
@@ -77,7 +78,7 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
-          <version>2.3.2</version>
+          <version>3.3</version>
           <configuration>
             <source>1.7</source>
             <target>1.7</target>
@@ -86,27 +87,27 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-clean-plugin</artifactId>
-          <version>2.4.1</version>
+          <version>3.0.0</version>
         </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-resources-plugin</artifactId>
-          <version>2.5</version>
+          <version>2.7</version>
         </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-install-plugin</artifactId>
-          <version>2.3.1</version>
+          <version>2.5.1</version>
         </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-jar-plugin</artifactId>
-          <version>2.3.2</version>
+          <version>2.5</version>
         </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-release-plugin</artifactId>
-          <version>2.1</version>
+          <version>2.5.3</version>
           <configuration>
             <pushChanges>false</pushChanges>
           </configuration>
@@ -114,6 +115,7 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-surefire-plugin</artifactId>
+          <version>2.19</version>
           <configuration>
             <skipTests>true</skipTests>
           </configuration>
@@ -121,7 +123,7 @@
         <plugin>
           <groupId>com.carrotsearch.randomizedtesting</groupId>
           <artifactId>junit4-maven-plugin</artifactId>
-          <version>2.1.2</version>
+          <version>2.3.4</version>
           <executions>
             <execution>
               <id>tests</id>
@@ -130,9 +132,20 @@
                 <goal>junit4</goal>
               </goals>
               <configuration>
+                <skipTests>${skip.unit.tests}</skipTests>
+                <listeners>
+                  <report-text showThrowable="true" showStackTraces="true"
+                      showOutput="onerror" showStatusOk="false" 
showStatusError="true"
+                      showStatusFailure="true" showStatusIgnored="true" 
showSuiteSummary="true"
+                      showNumFailures="30" timestamps="false">
+                  </report-text>
+                  <report-ant-xml mavenExtensions="true"
+                       dir="${project.build.directory}/surefire-reports" />
+                </listeners>
                 <heartbeat>20</heartbeat>
-                <jvmOutputAction>pipe,warn</jvmOutputAction>
+                <jvmOutputAction>warn</jvmOutputAction>
                 <leaveTemporary>true</leaveTemporary>
+                <sysouts>false</sysouts>
                 <assertions>
                   <enable />
                 </assertions>
@@ -148,7 +161,7 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-source-plugin</artifactId>
-          <version>2.2.1</version>
+          <version>2.4</version>
           <executions>
             <execution>
               <id>attach-sources</id>
@@ -283,21 +296,15 @@
       </exclusions>
     </dependency>
     <dependency>
-      <groupId>org.mockito</groupId>
-      <artifactId>mockito-core</artifactId>
-      <version>1.10.19</version>
+      <groupId>org.elasticsearch</groupId>
+      <artifactId>securemock</artifactId>
+      <version>1.1</version>
       <scope>test</scope>
-      <exclusions>
-        <exclusion>
-          <artifactId>hamcrest-core</artifactId>
-          <groupId>org.hamcrest</groupId>
-        </exclusion>
-      </exclusions>
     </dependency>
     <dependency>
       <groupId>com.carrotsearch.randomizedtesting</groupId>
       <artifactId>randomizedtesting-runner</artifactId>
-      <version>2.1.10</version>
+      <version>2.3.1</version>
       <scope>test</scope>
     </dependency>
     <dependency>

-- 
To view, visit https://gerrit.wikimedia.org/r/282991
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib0037c0278ccae465cd3044b0d6b5b10d2d52b9e
Gerrit-PatchSet: 1
Gerrit-Project: search/highlighter
Gerrit-Branch: master
Gerrit-Owner: DCausse <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to