Repository: searchbox-io/Jest
Pull request #246 (2015-10-15 17:02:47)

Making JEST work with 2.0.0 beta1
Hi,

I'm on a road of trying jest out with ES 2.0.0 beta1. There's quite a lot of changes there, so I'm first trying to compile it - I recon I'm a good way into that, but work still ongoing.

Before I go too far, I wanted to start a conversation if this work is required? Is anyone else trying to do it? Am I doing it right? - please bear with me, I'm a little new to github and contributing to opensource projects.

Thanks


Patch:
diff --git a/jest-common/pom.xml b/jest-common/pom.xml
index 99bbe86f..2bffd4f2 100644
--- a/jest-common/pom.xml
+++ b/jest-common/pom.xml
@@ -68,6 +68,11 @@
             <artifactId>junit</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>hamcrest-all</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>commons-io</groupId>
             <artifactId>commons-io</artifactId>
@@ -97,7 +102,7 @@
 
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
+            <artifactId>mockito-core</artifactId>
             <scope>test</scope>
         </dependency>
 
diff --git a/jest-common/src/main/java/io/searchbox/client/JestResult.java b/jest-common/src/main/java/io/searchbox/client/JestResult.java
index 38feb1dd..003f94e5 100644
--- a/jest-common/src/main/java/io/searchbox/client/JestResult.java
+++ b/jest-common/src/main/java/io/searchbox/client/JestResult.java
@@ -102,7 +102,7 @@ public class JestResult {
     public void setJsonObject(JsonObject jsonObject) {
         this.jsonObject = jsonObject;
         if (jsonObject.get("error") != null) {
-            errorMessage = jsonObject.get("error").getAsString();
+            errorMessage = jsonObject.get("error").toString();
         }
     }
 
diff --git a/jest-common/src/main/java/io/searchbox/client/config/discovery/NodeChecker.java b/jest-common/src/main/java/io/searchbox/client/config/discovery/NodeChecker.java
index b5c9631b..3c5af731 100644
--- a/jest-common/src/main/java/io/searchbox/client/config/discovery/NodeChecker.java
+++ b/jest-common/src/main/java/io/searchbox/client/config/discovery/NodeChecker.java
@@ -26,7 +26,7 @@ public class NodeChecker extends AbstractScheduledService {
 
     private final static Logger log = LoggerFactory.getLogger(NodeChecker.class);
     private final static String PUBLISH_ADDRESS_KEY = "http_address";
-    private final static Pattern INETSOCKETADDRESS_PATTERN = Pattern.compile("(?:inet\\[)(?:(?:[^:]+)?\\/)?([^:]+):(\\d+)\\]");
+    private final static Pattern INETSOCKETADDRESS_PATTERN = Pattern.compile("(?:inet\\[)?(?:(?:[^:]+)?\\/)?([^:]+):(\\d+)\\]?");
 
     private final NodesInfo action = new NodesInfo.Builder().withHttp().build();
 
diff --git a/jest-common/src/main/java/io/searchbox/core/BulkResult.java b/jest-common/src/main/java/io/searchbox/core/BulkResult.java
index 72f78539..21029d40 100644
--- a/jest-common/src/main/java/io/searchbox/core/BulkResult.java
+++ b/jest-common/src/main/java/io/searchbox/core/BulkResult.java
@@ -96,7 +96,7 @@ public class BulkResult extends JestResult {
             this.type = values.get("_type").getAsString();
             this.id = values.get("_id").getAsString();
             this.status = values.get("status").getAsInt();
-            this.error = values.has("error") ? values.get("error").getAsString() : null;
+            this.error = values.has("error") ? values.get("error").toString() : null;
         }
 
         @Override
diff --git a/jest-common/src/main/java/io/searchbox/core/MoreLikeThis.java b/jest-common/src/main/java/io/searchbox/core/MoreLikeThis.java
deleted file mode 100644
index f99d6733..00000000
--- a/jest-common/src/main/java/io/searchbox/core/MoreLikeThis.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package io.searchbox.core;
-
-import io.searchbox.action.GenericResultAbstractDocumentTargetedAction;
-import org.apache.commons.lang3.builder.EqualsBuilder;
-import org.apache.commons.lang3.builder.HashCodeBuilder;
-
-/**
- * @author Dogukan Sonmez
- * @author cihat keser
- */
-public class MoreLikeThis extends GenericResultAbstractDocumentTargetedAction {
-
-    protected MoreLikeThis(Builder builder) {
-        super(builder);
-
-        this.payload = builder.query;
-        setURI(buildURI());
-    }
-
-    @Override
-    protected String buildURI() {
-        return super.buildURI() + "/_mlt";
-    }
-
-    @Override
-    public String getRestMethodName() {
-        return (payload != null) ? "POST" : "GET";
-    }
-
-    @Override
-    public int hashCode() {
-        return new HashCodeBuilder()
-                .appendSuper(super.hashCode())
-                .toHashCode();
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (obj == null) {
-            return false;
-        }
-        if (obj == this) {
-            return true;
-        }
-        if (obj.getClass() != getClass()) {
-            return false;
-        }
-
-        MoreLikeThis rhs = (MoreLikeThis) obj;
-        return new EqualsBuilder()
-                .appendSuper(super.equals(obj))
-                .isEquals();
-    }
-
-    public static class Builder extends GenericResultAbstractDocumentTargetedAction.Builder<MoreLikeThis, Builder> {
-        private Object query;
-
-        public Builder(String index, String type, String id, Object query) {
-            this.index(index);
-            this.type(type);
-            this.id(id);
-            this.query = query;
-        }
-
-        public MoreLikeThis build() {
-            return new MoreLikeThis(this);
-        }
-
-    }
-
-}
diff --git a/jest-common/src/main/java/io/searchbox/core/MultiSearchResult.java b/jest-common/src/main/java/io/searchbox/core/MultiSearchResult.java
index 909a117f..ddd9189a 100644
--- a/jest-common/src/main/java/io/searchbox/core/MultiSearchResult.java
+++ b/jest-common/src/main/java/io/searchbox/core/MultiSearchResult.java
@@ -46,7 +46,7 @@ public class MultiSearchResult extends JestResult {
         public MultiSearchResponse(JsonObject jsonObject) {
             if(jsonObject.has(ERROR_KEY)) {
                 isError = true;
-                errorMessage = jsonObject.get(ERROR_KEY).getAsString();
+                errorMessage = jsonObject.get(ERROR_KEY).toString();
                 searchResult = null;
             } else {
                 isError = false;
diff --git a/jest-common/src/main/java/io/searchbox/core/SearchResult.java b/jest-common/src/main/java/io/searchbox/core/SearchResult.java
index 954f4d3a..ba00783a 100644
--- a/jest-common/src/main/java/io/searchbox/core/SearchResult.java
+++ b/jest-common/src/main/java/io/searchbox/core/SearchResult.java
@@ -7,11 +7,9 @@ import com.google.gson.JsonObject;
 import io.searchbox.client.JestResult;
 import io.searchbox.core.search.aggregation.MetricAggregation;
 import io.searchbox.core.search.aggregation.RootAggregation;
-import io.searchbox.core.search.facet.Facet;
 import org.apache.commons.lang3.builder.EqualsBuilder;
 import org.apache.commons.lang3.builder.HashCodeBuilder;
 
-import java.lang.reflect.Constructor;
 import java.util.*;
 
 /**
@@ -105,12 +103,12 @@ public class SearchResult extends JestResult {
                 JsonElement id = hitObject.get("_id");
                 String index = hitObject.get("_index").getAsString();
                 String type = hitObject.get("_type").getAsString();
-                
+
                 Double score = null;
                 if (hitObject.has("_score") && !hitObject.get("_score").isJsonNull()) {
                     score = hitObject.get("_score").getAsDouble();
                 }
-                
+
                 JsonElement explanation = hitObject.get(EXPLANATION_KEY);
                 Map<String, List<String>> highlight = extractHighlight(hitObject.getAsJsonObject(HIGHLIGHT_KEY));
                 List<String> sort = extractSort(hitObject.getAsJsonArray(SORT_KEY));
@@ -191,33 +189,11 @@ public class SearchResult extends JestResult {
         return retval;
     }
 
-    public <T extends Facet> List<T> getFacets(Class<T> type) {
-        List<T> facets = new ArrayList<T>();
-        if (jsonObject != null) {
-            Constructor<T> c;
-            try {
-                JsonObject facetsMap = (JsonObject) jsonObject.get("facets");
-                if (facetsMap == null)
-                    return facets;
-                for (Map.Entry<String, JsonElement> facetEntry : facetsMap.entrySet()) {
-                    JsonObject facet = facetEntry.getValue().getAsJsonObject();
-                    if (facet.get("_type").getAsString().equalsIgnoreCase(type.getField("TYPE").get(null).toString())) {
-                        c = type.getConstructor(String.class, JsonObject.class);
-                        facets.add((T) c.newInstance(facetEntry.getKey(), facetEntry.getValue()));
-                    }
-                }
-                return facets;
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
-        }
-        return facets;
-    }
-
     public MetricAggregation getAggregations() {
         final String rootAggrgationName = "aggs";
         if (jsonObject == null) return new RootAggregation(rootAggrgationName, new JsonObject());
-        if (jsonObject.has("aggregations")) return new RootAggregation(rootAggrgationName, jsonObject.getAsJsonObject("aggregations"));
+        if (jsonObject.has("aggregations"))
+            return new RootAggregation(rootAggrgationName, jsonObject.getAsJsonObject("aggregations"));
         if (jsonObject.has("aggs")) return new RootAggregation(rootAggrgationName, jsonObject.getAsJsonObject("aggs"));
 
         return new RootAggregation(rootAggrgationName, new JsonObject());
@@ -252,9 +228,9 @@ public class SearchResult extends JestResult {
                    Map<String, List<String>> highlight, List<String> sort) {
             this(sourceType, source, explanationType, explanation, highlight, sort, null, null, null);
         }
-        
+
         public Hit(Class<T> sourceType, JsonElement source, Class<K> explanationType, JsonElement explanation,
-                Map<String, List<String>> highlight, List<String> sort, String index, String type, Double score) {
+                   Map<String, List<String>> highlight, List<String> sort, String index, String type, Double score) {
             if (source == null) {
                 this.source = null;
             } else {
@@ -267,7 +243,7 @@ public class SearchResult extends JestResult {
             }
             this.highlight = highlight;
             this.sort = sort;
-            
+
             this.index = index;
             this.type = type;
             this.score = score;
@@ -284,13 +260,13 @@ public class SearchResult extends JestResult {
         public Hit(T source, K explanation, Map<String, List<String>> highlight, List<String> sort) {
             this(source, explanation, highlight, sort, null, null, null);
         }
-        
+
         public Hit(T source, K explanation, Map<String, List<String>> highlight, List<String> sort, String index, String type, Double score) {
             this.source = source;
             this.explanation = explanation;
             this.highlight = highlight;
             this.sort = sort;
-            
+
             this.index = index;
             this.type = type;
             this.score = score;
diff --git a/jest-common/src/main/java/io/searchbox/core/search/facet/DateHistogramFacet.java b/jest-common/src/main/java/io/searchbox/core/search/facet/DateHistogramFacet.java
deleted file mode 100644
index b5d4f3cd..00000000
--- a/jest-common/src/main/java/io/searchbox/core/search/facet/DateHistogramFacet.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package io.searchbox.core.search.facet;
-
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author ferhat
- */
-public class DateHistogramFacet extends Facet {
-
-    public static final String TYPE = "date_histogram";
-
-    private List<DateHistogram> dateHistograms;
-
-    public DateHistogramFacet(String name, JsonObject dateHistogramFacet) {
-        this.name = name;
-        dateHistograms = new ArrayList<DateHistogram>();
-        for (JsonElement term : dateHistogramFacet.get("entries").getAsJsonArray()) {
-            JsonElement time = term.getAsJsonObject().get("time");
-            JsonElement count = term.getAsJsonObject().get("count");
-            DateHistogram histogram = new DateHistogram(time.getAsLong(), count.getAsLong());
-            dateHistograms.add(histogram);
-        }
-    }
-
-    public List<DateHistogram> getDateHistograms() {
-        return dateHistograms;
-    }
-
-    public class DateHistogram {
-
-        private Long time;
-        private Long count;
-
-        DateHistogram(Long time, Long count) {
-            this.time = time;
-            this.count = count;
-        }
-
-        public Long getTime() {
-            return time;
-        }
-
-        public Long getCount() {
-            return count;
-        }
-    }
-}
diff --git a/jest-common/src/main/java/io/searchbox/core/search/facet/Facet.java b/jest-common/src/main/java/io/searchbox/core/search/facet/Facet.java
deleted file mode 100644
index f7ddd339..00000000
--- a/jest-common/src/main/java/io/searchbox/core/search/facet/Facet.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package io.searchbox.core.search.facet;
-
-/**
- * @author ferhat
- */
-public abstract class Facet {
-
-    protected String name;
-
-    public String getName() {
-        return name;
-    }
-    
-    
-}
diff --git a/jest-common/src/main/java/io/searchbox/core/search/facet/FilterFacet.java b/jest-common/src/main/java/io/searchbox/core/search/facet/FilterFacet.java
deleted file mode 100644
index 13698242..00000000
--- a/jest-common/src/main/java/io/searchbox/core/search/facet/FilterFacet.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package io.searchbox.core.search.facet;
-
-import com.google.gson.JsonObject;
-
-/**
- * @author ferhat
- */
-public class FilterFacet extends Facet {
-    public static final String TYPE = "filter";
-
-    private Long count;
-
-    public FilterFacet(String name, JsonObject filterFacet) {
-        this.name = name;
-        this.count = filterFacet.get("count").getAsLong();
-    }
-
-    public Long getCount() {
-        return count;
-    }
-}
diff --git a/jest-common/src/main/java/io/searchbox/core/search/facet/GeoDistanceFacet.java b/jest-common/src/main/java/io/searchbox/core/search/facet/GeoDistanceFacet.java
deleted file mode 100644
index df79551e..00000000
--- a/jest-common/src/main/java/io/searchbox/core/search/facet/GeoDistanceFacet.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package io.searchbox.core.search.facet;
-
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author ferhat
- */
-public class GeoDistanceFacet extends Facet {
-    public static final String TYPE = "geo_distance";
-
-    private List<Range> ranges;
-
-    public GeoDistanceFacet(String name, JsonObject geoDistanceFacet) {
-        this.name = name;
-        ranges = new ArrayList<Range>();
-        for (JsonElement termv : geoDistanceFacet.get("ranges").getAsJsonArray()) {
-          JsonObject term = (JsonObject) termv;
-            Range range = new Range(
-                term.get("from")!=null?term.get("from").getAsDouble():null,
-                term.get("to")!=null?term.get("to").getAsDouble():null,
-                term.get("total_count").getAsLong(),  term.get("total").getAsDouble(),
-                term.get("min").getAsDouble(), term.get("max").getAsDouble(), term.get("mean").getAsDouble());
-            ranges.add(range);
-        }
-    }
-
-    public List<Range> getRanges() {
-        return ranges;
-    }
-
-    public class Range {
-        private Double from;
-        private Double to;
-        private Long totalCount;
-        private Double total;
-        private Double min;
-        private Double max;
-        private Double mean;
-
-        Range(Double from, Double to, Long totalCount, Double total,
-              Double min, Double max, Double mean) {
-            this.from = from;
-            this.to = to;
-            this.totalCount = totalCount;
-            this.total = total;
-            this.min = min;
-            this.max = max;
-            this.mean = mean;
-        }
-
-        public Double getFrom() {
-            return from;
-        }
-
-        public Double getTo() {
-            return to;
-        }
-
-        public Long getTotalCount() {
-            return totalCount;
-        }
-
-        public Double getTotal() {
-            return total;
-        }
-
-        public Double getMin() {
-            return min;
-        }
-
-        public Double getMax() {
-            return max;
-        }
-
-        public Double getMean() {
-            return mean;
-        }
-    }
-
-}
diff --git a/jest-common/src/main/java/io/searchbox/core/search/facet/HistogramFacet.java b/jest-common/src/main/java/io/searchbox/core/search/facet/HistogramFacet.java
deleted file mode 100644
index 1d11cde3..00000000
--- a/jest-common/src/main/java/io/searchbox/core/search/facet/HistogramFacet.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package io.searchbox.core.search.facet;
-
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author ferhat
- */
-public class HistogramFacet extends Facet {
-
-    public static final String TYPE = "histogram";
-
-    private List<Histogram> histograms;
-
-    public HistogramFacet(String name, JsonObject histogramFacet) {
-        this.name = name;
-        histograms = new ArrayList<Histogram>();
-
-        for (JsonElement termv :  histogramFacet.get("entries").getAsJsonArray()) {
-          JsonObject term = (JsonObject) termv;
-            Histogram histogram = new Histogram(term.get("key").getAsLong(), term.get("count").getAsLong());
-            histograms.add(histogram);
-        }
-    }
-
-    public List<Histogram> getHistograms() {
-        return histograms;
-    }
-
-    public class Histogram {
-        private Long key;
-        private Long count;
-
-        Histogram(Long key, Long count) {
-            this.key = key;
-            this.count = count;
-        }
-
-        public Long getKey() {
-            return key;
-        }
-
-        public Long getCount() {
-            return count;
-        }
-    }
-
-}
diff --git a/jest-common/src/main/java/io/searchbox/core/search/facet/QueryFacet.java b/jest-common/src/main/java/io/searchbox/core/search/facet/QueryFacet.java
deleted file mode 100644
index 2637aa43..00000000
--- a/jest-common/src/main/java/io/searchbox/core/search/facet/QueryFacet.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package io.searchbox.core.search.facet;
-
-import com.google.gson.JsonObject;
-
-/**
- * @author ferhat
- */
-public class QueryFacet extends Facet {
-
-    public static final String TYPE = "query";
-
-    private Long count;
-
-    public QueryFacet(String name, JsonObject filterFacet) {
-        this.name = name;
-        this.count = filterFacet.get("count").getAsLong();
-    }
-
-    public Long getCount() {
-        return count;
-    }
-}
diff --git a/jest-common/src/main/java/io/searchbox/core/search/facet/RangeFacet.java b/jest-common/src/main/java/io/searchbox/core/search/facet/RangeFacet.java
deleted file mode 100644
index 49fd906e..00000000
--- a/jest-common/src/main/java/io/searchbox/core/search/facet/RangeFacet.java
+++ /dev/null
@@ -1,95 +0,0 @@
-package io.searchbox.core.search.facet;
-
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author ferhat
- */
-public class RangeFacet extends Facet {
-
-    public static final String TYPE = "range";
-
-    private List<Range> ranges;
-
-    public RangeFacet(String name, JsonObject rangeFacet) {
-        this.name = name;
-        ranges = new ArrayList<Range>();
-        for (JsonElement termv : rangeFacet.get("ranges").getAsJsonArray()) {
-            JsonObject term = (JsonObject) termv;
-            Range range = new Range(
-                    term.has("from") ? term.get("from").getAsDouble() : null,
-                    term.has("to") ? term.get("to").getAsDouble() : null,
-                    term.has("count") ? term.get("count").getAsLong() : null,
-                    term.has("total_count") ? term.get("total_count").getAsLong() : null,
-                    term.has("total") ? term.get("total").getAsDouble() : null,
-                    term.has("min") ? term.get("min").getAsDouble() : null,
-                    term.has("max") ? term.get("max").getAsDouble() : null,
-                    term.has("mean") ? term.get("mean").getAsDouble() : null);
-            ranges.add(range);
-        }
-    }
-
-    public List<Range> getRanges() {
-        return ranges;
-    }
-
-    public class Range {
-        private Double from = Double.NEGATIVE_INFINITY;
-        private Double to = Double.POSITIVE_INFINITY;
-        private Long count;
-        private Long totalCount;
-        private Double total;
-        private Double min = Double.POSITIVE_INFINITY;
-        private Double max = Double.NEGATIVE_INFINITY;
-        private Double mean;
-
-        public Range(Double from, Double to, Long count, Long totalCount,
-                     Double total, Double min, Double max, Double mean) {
-            this.count = count;
-            this.from = from;
-            this.to = to;
-            this.totalCount = totalCount;
-            this.total = total;
-            this.min = min;
-            this.max = max;
-            this.mean = mean;
-        }
-
-        public Double getFrom() {
-            return from;
-        }
-
-        public Double getTo() {
-            return to;
-        }
-
-        public Long getCount() {
-            return count;
-        }
-
-        public Long getTotalCount() {
-            return totalCount;
-        }
-
-        public Double getTotal() {
-            return total;
-        }
-
-        public Double getMin() {
-            return min;
-        }
-
-        public Double getMax() {
-            return max;
-        }
-
-        public Double getMean() {
-            return mean;
-        }
-    }
-
-}
diff --git a/jest-common/src/main/java/io/searchbox/core/search/facet/StatisticalFacet.java b/jest-common/src/main/java/io/searchbox/core/search/facet/StatisticalFacet.java
deleted file mode 100644
index 528c4cb1..00000000
--- a/jest-common/src/main/java/io/searchbox/core/search/facet/StatisticalFacet.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package io.searchbox.core.search.facet;
-
-import com.google.gson.JsonObject;
-
-/**
- * @author ferhat
- */
-public class StatisticalFacet extends Facet {
-
-    public static final String TYPE = "statistical";
-
-    private Long count;
-    private Double total;
-    private Double sumOfSquares;
-    private Double mean;
-    private Double min;
-    private Double max;
-    private Double variance;
-    private Double stdDeviation;
-
-    public StatisticalFacet(String name, JsonObject statisticalFacet) {
-        this.name = name;
-        this.count =  statisticalFacet.get("count").getAsLong();
-        this.total = statisticalFacet.get("total").getAsDouble();
-        this.sumOfSquares = statisticalFacet.get("sum_of_squares").getAsDouble();
-        this.mean = statisticalFacet.get("mean").getAsDouble();
-        this.min = statisticalFacet.get("min").getAsDouble();
-        this.max =  statisticalFacet.get("max").getAsDouble();
-        this.variance = statisticalFacet.get("variance").getAsDouble();
-        this.stdDeviation = statisticalFacet.get("std_deviation").getAsDouble();
-    }
-
-    public Long getCount() {
-        return count;
-    }
-
-    public Double getTotal() {
-        return total;
-    }
-
-    public Double getSumOfSquares() {
-        return sumOfSquares;
-    }
-
-    public Double getMean() {
-        return mean;
-    }
-
-    public Double getMin() {
-        return min;
-    }
-
-    public Double getMax() {
-        return max;
-    }
-
-    public Double getVariance() {
-        return variance;
-    }
-
-    public Double getStdDeviation() {
-        return stdDeviation;
-    }
-}
diff --git a/jest-common/src/main/java/io/searchbox/core/search/facet/TermsFacet.java b/jest-common/src/main/java/io/searchbox/core/search/facet/TermsFacet.java
deleted file mode 100644
index 7d8fde7d..00000000
--- a/jest-common/src/main/java/io/searchbox/core/search/facet/TermsFacet.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package io.searchbox.core.search.facet;
-
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author ferhat
- */
-
-public class TermsFacet extends Facet {
-
-    public static final String TYPE = "terms";
-
-    private Long missing;
-    private Long total;
-    private Long other;
-    private List<Term> terms;
-
-    public TermsFacet(String name, JsonObject termFacet) {
-        this.name = name;
-        missing = ( termFacet.get("missing")).getAsLong();
-        total = (termFacet.get("total")).getAsLong();
-        other = (termFacet.get("other")).getAsLong();
-
-        terms = new ArrayList<Term>();
-        for (JsonElement termv : termFacet.get("terms").getAsJsonArray()) {
-          JsonObject term = (JsonObject) termv;
-            Term entry = new Term(term.get("term").getAsString(), term.get("count").getAsInt());
-            terms.add(entry);
-        }
-    }
-
-    public Long getMissing() {
-        return missing;
-    }
-
-    public Long getTotal() {
-        return total;
-    }
-
-    public Long getOther() {
-        return other;
-    }
-
-    public List<Term> terms() {
-        return terms;
-    }
-
-    public class Term {
-        private String name;
-        private Integer count;
-
-        public Term(String name, Integer count) {
-            this.name = name;
-            this.count = count;
-        }
-
-        public String getName() {
-            return name;
-        }
-
-        public Integer getCount() {
-            return count;
-        }
-    }
-}
diff --git a/jest-common/src/main/java/io/searchbox/core/search/facet/TermsStatsFacet.java b/jest-common/src/main/java/io/searchbox/core/search/facet/TermsStatsFacet.java
deleted file mode 100644
index 9c096943..00000000
--- a/jest-common/src/main/java/io/searchbox/core/search/facet/TermsStatsFacet.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package io.searchbox.core.search.facet;
-
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author ferhat
- */
-public class TermsStatsFacet extends Facet {
-
-    public static final String TYPE = "terms_stats";
-
-    private Long missing;
-    private List<TermsStats> termsStatsList;
-
-    public TermsStatsFacet(String name, JsonObject termsStatsFacet) {
-        this.name = name;
-        this.missing = ( termsStatsFacet.get("missing")).getAsLong();
-        termsStatsList = new ArrayList<TermsStats>();
-        for (JsonElement termv : termsStatsFacet.get("terms").getAsJsonArray()) {
-          JsonObject term = (JsonObject) termv;
-          TermsStats termsStats = new TermsStats(term.get("term").getAsString(), ( term.get("count")).getAsLong(),
-                    term.get("total_count").getAsLong(),  term.get("total").getAsDouble(),
-                     term.get("mean").getAsDouble(),  term.get("min").getAsDouble(),  term.get("max").getAsDouble());
-            termsStatsList.add(termsStats);
-        }
-    }
-
-    public Long getMissing() {
-        return missing;
-    }
-
-    public List<TermsStats> getTermsStatsList() {
-        return termsStatsList;
-    }
-
-    public class TermsStats {
-
-        private String term;
-        private Long count;
-        private Long totalCount;
-        private Double total;
-        private Double mean;
-        private Double min;
-        private Double max;
-
-        public TermsStats(String term, Long count, Long totalCount,
-                          Double total, Double mean, Double min, Double max) {
-            this.term = term;
-            this.count = count;
-            this.totalCount = totalCount;
-            this.total = total;
-            this.mean = mean;
-            this.min = min;
-
-            this.max = max;
-        }
-
-        public String getTerm() {
-            return term;
-        }
-
-        public Long getCount() {
-            return count;
-        }
-
-        public Long getTotalCount() {
-            return totalCount;
-        }
-
-        public Double getTotal() {
-            return total;
-        }
-
-        public Double getMean() {
-            return mean;
-        }
-
-        public Double getMin() {
-            return min;
-        }
-
-        public Double getMax() {
-            return max;
-        }
-    }
-}
diff --git a/jest-common/src/main/java/io/searchbox/indices/Analyze.java b/jest-common/src/main/java/io/searchbox/indices/Analyze.java
index f135316d..67933648 100644
--- a/jest-common/src/main/java/io/searchbox/indices/Analyze.java
+++ b/jest-common/src/main/java/io/searchbox/indices/Analyze.java
@@ -1,10 +1,15 @@
 package io.searchbox.indices;
 
+import com.google.gson.Gson;
 import io.searchbox.action.AbstractAction;
 import io.searchbox.action.GenericResultAbstractAction;
 import org.apache.commons.lang3.builder.EqualsBuilder;
 import org.apache.commons.lang3.builder.HashCodeBuilder;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
 /**
  * Performs the analysis process on a text and return the tokens breakdown of the text.
  *
@@ -17,7 +22,7 @@ public class Analyze extends GenericResultAbstractAction {
         super(builder);
 
         this.indexName = builder.index;
-        this.payload = builder.source;
+        this.payload = "{\"text\": " + new Gson().toJson(builder.textToAnalyze) + "}";
         setURI(buildURI());
     }
 
@@ -58,15 +63,20 @@ public class Analyze extends GenericResultAbstractAction {
 
     public static class Builder extends AbstractAction.Builder<Analyze, Builder> {
         private String index;
-        private Object source;
+        private List<String> textToAnalyze = new ArrayList<String>();
 
         public Builder index(String index) {
             this.index = index;
             return this;
         }
 
-        public Builder source(Object source) {
-            this.source = source;
+        public Builder text(String textToAnalyze) {
+            this.textToAnalyze.add(textToAnalyze);
+            return this;
+        }
+
+        public Builder text(Collection<? extends String> textToAnalyze) {
+            this.textToAnalyze.addAll(textToAnalyze);
             return this;
         }
 
diff --git a/jest-common/src/main/java/io/searchbox/indices/Status.java b/jest-common/src/main/java/io/searchbox/indices/Status.java
deleted file mode 100644
index 0d5b969d..00000000
--- a/jest-common/src/main/java/io/searchbox/indices/Status.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package io.searchbox.indices;
-
-import io.searchbox.action.AbstractMultiIndexActionBuilder;
-import io.searchbox.action.GenericResultAbstractAction;
-
-/**
- * @author ferhat
- * @author cihat keser
- */
-public class Status extends GenericResultAbstractAction {
-
-    protected Status(Builder builder) {
-        super(builder);
-        this.indexName = builder.getJoinedIndices();
-        setURI(buildURI());
-    }
-
-    @Override
-    public String getRestMethodName() {
-        return "GET";
-    }
-
-    @Override
-    protected String buildURI() {
-        return super.buildURI() + "/_status";
-    }
-
-    public static class Builder extends AbstractMultiIndexActionBuilder<Status, Builder> {
-
-        @Override
-        public Status build() {
-            return new Status(this);
-        }
-    }
-}
\ No newline at end of file
diff --git a/jest-common/src/main/java/io/searchbox/params/SearchType.java b/jest-common/src/main/java/io/searchbox/params/SearchType.java
index 83504430..c52d456c 100644
--- a/jest-common/src/main/java/io/searchbox/params/SearchType.java
+++ b/jest-common/src/main/java/io/searchbox/params/SearchType.java
@@ -6,9 +6,7 @@ package io.searchbox.params;
 public enum SearchType {
 
     DFS_QUERY_THEN_FETCH("dfs_query_then_fetch"),
-    FS_QUERY_AND_FETCH("fs_query_and_fetch"),
     QUERY_THEN_FETCH("query_then_fetch"),
-    QUERY_AND_FETCH("query_and_fetch"),
     COUNT("count"),
     SCAN("scan");
 
diff --git a/jest-droid/pom.xml b/jest-droid/pom.xml
index 0211c81b..864b46f7 100644
--- a/jest-droid/pom.xml
+++ b/jest-droid/pom.xml
@@ -102,7 +102,7 @@
 
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
+            <artifactId>mockito-core</artifactId>
             <scope>test</scope>
         </dependency>
 
diff --git a/jest/README.md b/jest/README.md
index d6b852a3..e0195b96 100644
--- a/jest/README.md
+++ b/jest/README.md
@@ -113,17 +113,17 @@ String settings = "\"settings\" : {\n" +
                 "        \"number_of_replicas\" : 1\n" +
                 "    }\n";
 
-client.execute(new CreateIndex.Builder("articles").settings(ImmutableSettings.builder().loadFromSource(settings).build().getAsMap()).build());
+client.execute(new CreateIndex.Builder("articles").settings(Settings.builder().loadFromSource(settings).build().getAsMap()).build());
 ```
 
 * using the `SettingsBuilder` helper class from Elasticsearch:
 
 ``` java
-import org.elasticsearch.common.settings.ImmutableSettings;
+import org.elasticsearch.common.settings.Settings;
 .
 .
 
-ImmutableSettings.Builder settingsBuilder = ImmutableSettings.settingsBuilder();
+Settings.Builder settingsBuilder = Settings.settingsBuilder();
 settings.put("number_of_shards",5);
 settings.put("number_of_replicas",1);
 
diff --git a/jest/pom.xml b/jest/pom.xml
index 4e8b2f1f..d84a73c4 100644
--- a/jest/pom.xml
+++ b/jest/pom.xml
@@ -123,10 +123,14 @@
             <groupId>org.elasticsearch</groupId>
             <artifactId>elasticsearch</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.elasticsearch.plugin</groupId>
+            <artifactId>delete-by-query</artifactId>
+        </dependency>
 
         <dependency>
             <groupId>org.mockito</groupId>
-            <artifactId>mockito-all</artifactId>
+            <artifactId>mockito-core</artifactId>
         </dependency>
 
         <dependency>
diff --git a/pom.xml b/pom.xml
index 35b97a69..33e7cf0e 100755
--- a/pom.xml
+++ b/pom.xml
@@ -68,9 +68,9 @@
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 
-        <elasticsearch.version>1.7.1</elasticsearch.version>
+        <elasticsearch.version>2.0.0-rc1</elasticsearch.version>
 
-        <lucene.version>4.10.4</lucene.version>
+        <lucene.version>5.2.1</lucene.version>
         <hamcrest.version>1.3</hamcrest.version>
         <randomizedtesting.version>2.1.14</randomizedtesting.version>
         <groovy.version>2.4.4</groovy.version>
@@ -155,6 +155,7 @@
                     <maxmem>256m</maxmem>
                     <!-- aggregated reports for multi-module projects -->
                     <aggregate>true</aggregate>
+                    <check/>
                 </configuration>
             </plugin>
 
@@ -254,6 +255,12 @@
                 <artifactId>junit</artifactId>
                 <version>${junit.version}</version>
                 <scope>test</scope>
+                <exclusions>
+                    <exclusion>
+                        <groupId>org.hamcrest</groupId>
+                        <artifactId>hamcrest-core</artifactId>
+                    </exclusion>
+                </exclusions>
             </dependency>
 
             <dependency>
@@ -269,12 +276,24 @@
                 <version>${elasticsearch.version}</version>
                 <scope>test</scope>
             </dependency>
+            <dependency>
+                <groupId>org.elasticsearch.plugin</groupId>
+                <artifactId>delete-by-query</artifactId>
+                <version>${elasticsearch.version}</version>
+                <scope>test</scope>
+            </dependency>
 
             <dependency>
                 <groupId>org.mockito</groupId>
-                <artifactId>mockito-all</artifactId>
+                <artifactId>mockito-core</artifactId>
                 <version>${mockito.version}</version>
                 <scope>test</scope>
+                <exclusions>
+                    <exclusion>
+                        <artifactId>hamcrest-core</artifactId>
+                        <groupId>org.hamcrest</groupId>
+                    </exclusion>
+                </exclusions>
             </dependency>
 
             <dependency>


Test patch:
diff --git a/jest-common/src/test/java/io/searchbox/action/AbstractActionTest.java b/jest-common/src/test/java/io/searchbox/action/AbstractActionTest.java
index cfb00a5c..9d168e8c 100644
--- a/jest-common/src/test/java/io/searchbox/action/AbstractActionTest.java
+++ b/jest-common/src/test/java/io/searchbox/action/AbstractActionTest.java
@@ -206,7 +206,7 @@ public class AbstractActionTest {
         Index index = new Index.Builder("{\"abc\":\"dce\"}").index("test").build();
         JestResult result = index.createNewElasticSearchResult(jsonString, 400, null, new Gson());
         assertFalse(result.isSucceeded());
-        assertEquals("Invalid index", result.getErrorMessage());
+        assertEquals("\"Invalid index\"", result.getErrorMessage());
     }
 
     @Test
@@ -223,7 +223,7 @@ public class AbstractActionTest {
         assertTrue(result.getErrorMessage(), result.isSucceeded());
     }
 
-    //TODO: This cannot be derived fron the result anymore
+    //TODO: This cannot be derived from the result anymore
     @Test
     public void getFailedDeleteResult() {
         String jsonString = "{\n" +
diff --git a/jest-common/src/test/java/io/searchbox/core/MoreLikeThisTest.java b/jest-common/src/test/java/io/searchbox/core/MoreLikeThisTest.java
deleted file mode 100644
index c7ef988e..00000000
--- a/jest-common/src/test/java/io/searchbox/core/MoreLikeThisTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package io.searchbox.core;
-
-import org.junit.Test;
-
-import static junit.framework.Assert.assertEquals;
-import static junit.framework.Assert.assertNull;
-import static org.junit.Assert.assertNotEquals;
-
-/**
- * @author Dogukan Sonmez
- */
-
-
-public class MoreLikeThisTest {
-
-    @Test
-    public void moreLikeThis() {
-        MoreLikeThis moreLikeThis = new MoreLikeThis.Builder("twitter", "tweet", "1", "query").build();
-        assertEquals("POST", moreLikeThis.getRestMethodName());
-        assertEquals("twitter/tweet/1/_mlt", moreLikeThis.getURI());
-        assertEquals("query", moreLikeThis.getData(null));
-    }
-
-    @Test
-    public void moreLikeThisWithoutQuery() {
-        MoreLikeThis moreLikeThis = new MoreLikeThis.Builder("twitter", "tweet", "1", null).build();
-        assertEquals("GET", moreLikeThis.getRestMethodName());
-        assertEquals("twitter/tweet/1/_mlt", moreLikeThis.getURI());
-        assertNull(moreLikeThis.getData(null));
-    }
-
-    @Test
-    public void equals() {
-        MoreLikeThis moreLikeThis1 = new MoreLikeThis.Builder("twitter", "tweet", "1", "query").build();
-        MoreLikeThis moreLikeThis1Duplicate = new MoreLikeThis.Builder("twitter", "tweet", "1", "query").build();
-
-        assertEquals(moreLikeThis1, moreLikeThis1Duplicate);
-    }
-
-    @Test
-    public void equalsReturnsFalseForDifferentQueries() {
-        MoreLikeThis moreLikeThis1 = new MoreLikeThis.Builder("twitter", "tweet", "1", "query").build();
-        MoreLikeThis moreLikeThis2 = new MoreLikeThis.Builder("twitter", "tweet", "1", "query2").build();
-
-        assertNotEquals(moreLikeThis1, moreLikeThis2);
-    }
-
-}
diff --git a/jest-common/src/test/java/io/searchbox/indices/AnalyzeTest.java b/jest-common/src/test/java/io/searchbox/indices/AnalyzeTest.java
index 911c80a3..a5df4324 100644
--- a/jest-common/src/test/java/io/searchbox/indices/AnalyzeTest.java
+++ b/jest-common/src/test/java/io/searchbox/indices/AnalyzeTest.java
@@ -1,5 +1,7 @@
 package io.searchbox.indices;
 
+import com.google.common.collect.ImmutableList;
+import com.google.gson.Gson;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
@@ -53,17 +55,43 @@ public class AnalyzeTest {
         assertEquals("test/_analyze?field=obj1.field1", analyze.getURI());
     }
 
+    @Test
+    public void testPayloadWithASingleTextEntry() throws Exception {
+        Analyze analyze = new Analyze.Builder()
+                .text("foo")
+                .build();
+        assertEquals("{\"text\": [\"foo\"]}", analyze.getData(new Gson()));
+    }
+
+    @Test
+    public void testPayloadWithAMultipleTextEntry() throws Exception {
+        Analyze analyze = new Analyze.Builder()
+                .text("foo")
+                .text("bar")
+                .build();
+        assertEquals("{\"text\": [\"foo\",\"bar\"]}", analyze.getData(new Gson()));
+    }
+
+    @Test
+    public void testPayloadWithAListTextEntry() throws Exception {
+        Analyze analyze = new Analyze.Builder()
+                .text(ImmutableList.of("foo", "bar"))
+                .text("baz")
+                .build();
+        assertEquals("{\"text\": [\"foo\",\"bar\",\"baz\"]}", analyze.getData(new Gson()));
+    }
+
     @Test
     public void equalsReturnsTrueForSameSource() {
         Analyze analyze1 = new Analyze.Builder()
                 .index("test")
                 .analyzer("whitespace")
-                .source("source")
+                .text("source")
                 .build();
         Analyze analyze1Duplicate = new Analyze.Builder()
                 .index("test")
                 .analyzer("whitespace")
-                .source("source")
+                .text("source")
                 .build();
 
         assertEquals(analyze1, analyze1Duplicate);
@@ -74,12 +102,12 @@ public class AnalyzeTest {
         Analyze analyze1 = new Analyze.Builder()
                 .index("test")
                 .analyzer("whitespace")
-                .source("source")
+                .text("source")
                 .build();
         Analyze analyze2 = new Analyze.Builder()
                 .index("test")
                 .analyzer("whitespace")
-                .source("source2")
+                .text("source2")
                 .build();
 
         assertNotEquals(analyze1, analyze2);
diff --git a/jest-common/src/test/java/io/searchbox/indices/CreateIndexTest.java b/jest-common/src/test/java/io/searchbox/indices/CreateIndexTest.java
index 9e1ad4f1..3c42b339 100644
--- a/jest-common/src/test/java/io/searchbox/indices/CreateIndexTest.java
+++ b/jest-common/src/test/java/io/searchbox/indices/CreateIndexTest.java
@@ -1,7 +1,7 @@
 package io.searchbox.indices;
 
 import com.google.gson.Gson;
-import org.elasticsearch.common.settings.ImmutableSettings;
+import org.elasticsearch.common.settings.Settings;
 import org.junit.Test;
 
 import static junit.framework.Assert.assertEquals;
@@ -24,7 +24,7 @@ public class CreateIndexTest {
 
     @Test
     public void equalsReturnsTrueForSameSettings() {
-        final ImmutableSettings.Builder indexerSettings = ImmutableSettings.settingsBuilder();
+        final Settings.Builder indexerSettings = Settings.settingsBuilder();
         indexerSettings.put("analysis.analyzer.events.type", "custom");
         indexerSettings.put("analysis.analyzer.events.tokenizer", "standard");
         indexerSettings.put("analysis.analyzer.events.filter", "snowball, standard, lowercase");
@@ -36,7 +36,7 @@ public class CreateIndexTest {
 
     @Test
     public void equalsReturnsFalseForDifferentSettings() {
-        final ImmutableSettings.Builder indexerSettings = ImmutableSettings.settingsBuilder();
+        final Settings.Builder indexerSettings = Settings.settingsBuilder();
         indexerSettings.put("analysis.analyzer.events.type", "custom");
         indexerSettings.put("analysis.analyzer.events.tokenizer", "standard");
         CreateIndex createIndex1 = new CreateIndex.Builder("tweet").settings(indexerSettings.build().getAsMap()).build();
diff --git a/jest-common/src/test/java/io/searchbox/indices/StatusTest.java b/jest-common/src/test/java/io/searchbox/indices/StatusTest.java
deleted file mode 100644
index 462a59b0..00000000
--- a/jest-common/src/test/java/io/searchbox/indices/StatusTest.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package io.searchbox.indices;
-
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-
-public class StatusTest {
-
-    @Test
-    public void testBasicUriGeneration() {
-        Status status = new Status.Builder().addIndex("twitter").build();
-
-        assertEquals("GET", status.getRestMethodName());
-        assertEquals("twitter/_status", status.getURI());
-    }
-
-    @Test
-    public void equalsReturnsTrueForSameIndex() {
-        Status status1 = new Status.Builder().addIndex("twitter").build();
-        Status status1Duplicate = new Status.Builder().addIndex("twitter").build();
-
-        assertEquals(status1, status1Duplicate);
-    }
-
-    @Test
-    public void equalsReturnsFalseForDifferentIndex() {
-        Status status1 = new Status.Builder().addIndex("twitter").build();
-        Status status2 = new Status.Builder().addIndex("myspace").build();
-
-        assertNotEquals(status1, status2);
-    }
-
-}
\ No newline at end of file
diff --git a/jest-common/src/test/java/io/searchbox/indices/aliases/AddAliasMappingTest.java b/jest-common/src/test/java/io/searchbox/indices/aliases/AddAliasMappingTest.java
index 21a2e3f3..883c444f 100644
--- a/jest-common/src/test/java/io/searchbox/indices/aliases/AddAliasMappingTest.java
+++ b/jest-common/src/test/java/io/searchbox/indices/aliases/AddAliasMappingTest.java
@@ -1,7 +1,7 @@
 package io.searchbox.indices.aliases;
 
 import com.google.gson.Gson;
-import org.elasticsearch.common.collect.ImmutableMap;
+import org.elasticsearch.common.collect.MapBuilder;
 import org.junit.Test;
 
 import java.util.Map;
@@ -13,11 +13,11 @@ import static org.junit.Assert.assertEquals;
  */
 public class AddAliasMappingTest {
 
-    public static final Map<String, Object> USER_FILTER_JSON = ImmutableMap.<String, Object>builder()
-            .put("term", ImmutableMap.<String, String>builder()
+    public static final Map<String, Object> USER_FILTER_JSON = new MapBuilder<String, Object>()
+            .put("term", MapBuilder.newMapBuilder()
                     .put("user", "kimchy")
-                    .build())
-            .build();
+                    .immutableMap())
+            .immutableMap();
 
     @Test
     public void testBasicGetDataForJson() {
diff --git a/jest-common/src/test/java/io/searchbox/indices/aliases/ModifyAliasesTest.java b/jest-common/src/test/java/io/searchbox/indices/aliases/ModifyAliasesTest.java
index 6a62cbc0..37b98c21 100644
--- a/jest-common/src/test/java/io/searchbox/indices/aliases/ModifyAliasesTest.java
+++ b/jest-common/src/test/java/io/searchbox/indices/aliases/ModifyAliasesTest.java
@@ -1,6 +1,6 @@
 package io.searchbox.indices.aliases;
 
-import org.elasticsearch.common.collect.ImmutableMap;
+import org.elasticsearch.common.collect.MapBuilder;
 import org.junit.Test;
 
 import java.util.Map;
@@ -13,11 +13,11 @@ import static org.junit.Assert.assertNotEquals;
  */
 public class ModifyAliasesTest {
 
-    Map<String, Object> userFilter = ImmutableMap.<String, Object>builder()
-            .put("term", ImmutableMap.<String, String>builder()
+    Map<String, Object> userFilter = new MapBuilder<String, Object>()
+            .put("term", MapBuilder.newMapBuilder()
                     .put("user", "kimchy")
-                    .build())
-            .build();
+                    .immutableMap())
+            .immutableMap();
     AliasMapping addMapping = new AddAliasMapping.Builder("t_add_index", "t_add_alias").setFilter(userFilter).build();
     AliasMapping removeMapping = new RemoveAliasMapping.Builder("t_remove_index", "t_remove_alias").addRouting("1").build();
 
diff --git a/jest-common/src/test/java/io/searchbox/indices/aliases/RemoveAliasMappingTest.java b/jest-common/src/test/java/io/searchbox/indices/aliases/RemoveAliasMappingTest.java
index 71f04f72..810b7b7f 100644
--- a/jest-common/src/test/java/io/searchbox/indices/aliases/RemoveAliasMappingTest.java
+++ b/jest-common/src/test/java/io/searchbox/indices/aliases/RemoveAliasMappingTest.java
@@ -1,7 +1,7 @@
 package io.searchbox.indices.aliases;
 
 import com.google.gson.Gson;
-import org.elasticsearch.common.collect.ImmutableMap;
+import org.elasticsearch.common.collect.MapBuilder;
 import org.junit.Test;
 
 import java.util.Map;
@@ -13,11 +13,11 @@ import static org.junit.Assert.assertEquals;
  */
 public class RemoveAliasMappingTest {
 
-    public static final Map<String, Object> USER_FILTER_JSON = ImmutableMap.<String, Object>builder()
-            .put("term", ImmutableMap.<String, String>builder()
+    public static final Map<String, Object> USER_FILTER_JSON = new MapBuilder<String, Object>()
+            .put("term", MapBuilder.newMapBuilder()
                     .put("user", "kimchy")
-                    .build())
-            .build();
+                    .immutableMap())
+            .immutableMap();
 
     @Test
     public void testBasicGetDataForJson() {
diff --git a/jest/src/test/java/io/searchbox/client/JestClientFactoryIntegrationTest.java b/jest/src/test/java/io/searchbox/client/JestClientFactoryIntegrationTest.java
index ed57b939..f03cd4cf 100644
--- a/jest/src/test/java/io/searchbox/client/JestClientFactoryIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/client/JestClientFactoryIntegrationTest.java
@@ -5,11 +5,11 @@ import io.searchbox.client.http.JestHttpClient;
 import io.searchbox.cluster.Health;
 import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
 import org.apache.http.pool.PoolStats;
-import org.elasticsearch.common.settings.ImmutableSettings;
 import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.node.internal.InternalNode;
-import org.elasticsearch.rest.RestController;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.node.Node;
+import org.elasticsearch.test.ESIntegTestCase;
+import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
+import org.elasticsearch.test.ESIntegTestCase.Scope;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -19,8 +19,8 @@ import java.util.concurrent.TimeUnit;
 /**
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 0)
-public class JestClientFactoryIntegrationTest extends ElasticsearchIntegrationTest {
+@ClusterScope(scope = Scope.TEST, numDataNodes = 0)
+public class JestClientFactoryIntegrationTest extends ESIntegTestCase {
 
     JestClientFactory factory = new JestClientFactory();
 
@@ -142,7 +142,7 @@ public class JestClientFactoryIntegrationTest extends ElasticsearchIntegrationTe
     /**
      * Forgive me these sins.  This is the only way I can think of to determine the *actual* size of the connection pool
      * without wrapping large quantities of the underlying client.
-     * <p/>
+     * <p>
      * This whole method is cheating and full of bad examples.  Don't copy this.  You've been warned.
      */
     private int getPoolSize(JestHttpClient client) throws Exception {
@@ -166,10 +166,9 @@ public class JestClientFactoryIntegrationTest extends ElasticsearchIntegrationTe
 
     @Override
     protected Settings nodeSettings(int nodeOrdinal) {
-        return ImmutableSettings.settingsBuilder()
+        return Settings.settingsBuilder()
                 .put(super.nodeSettings(nodeOrdinal))
-                .put(RestController.HTTP_JSON_ENABLE, true)
-                .put(InternalNode.HTTP_ENABLED, true)
+                .put(Node.HTTP_ENABLED, true)
                 .build();
     }
 }
diff --git a/jest/src/test/java/io/searchbox/client/http/JestHttpClientConfiguredProxyIntegrationTest.java b/jest/src/test/java/io/searchbox/client/http/JestHttpClientConfiguredProxyIntegrationTest.java
index 4a9964d8..97bc5453 100644
--- a/jest/src/test/java/io/searchbox/client/http/JestHttpClientConfiguredProxyIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/client/http/JestHttpClientConfiguredProxyIntegrationTest.java
@@ -8,13 +8,11 @@ import io.searchbox.client.JestClientFactory;
 import io.searchbox.client.JestResult;
 import io.searchbox.client.JestResultHandler;
 import io.searchbox.client.config.HttpClientConfig;
-import io.searchbox.indices.Status;
+import io.searchbox.indices.Stats;
 import org.apache.http.HttpHost;
-import org.elasticsearch.common.settings.ImmutableSettings;
 import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.node.internal.InternalNode;
-import org.elasticsearch.rest.RestController;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.node.Node;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -33,8 +31,8 @@ import java.util.concurrent.atomic.AtomicInteger;
 /**
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 0)
-public class JestHttpClientConfiguredProxyIntegrationTest extends ElasticsearchIntegrationTest {
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST, numDataNodes = 0)
+public class JestHttpClientConfiguredProxyIntegrationTest extends ESIntegTestCase {
 
     private static final int PROXY_PORT = 8770;
 
@@ -96,7 +94,7 @@ public class JestHttpClientConfiguredProxyIntegrationTest extends ElasticsearchI
                 .build());
         customJestClient = (JestHttpClient) factory.getObject();
 
-        JestResult result = customJestClient.execute(new Status.Builder().build());
+        JestResult result = customJestClient.execute(new Stats.Builder().build());
         assertTrue(result.getErrorMessage(), result.isSucceeded());
         assertEquals(0, numProxyRequests.intValue());
         customJestClient.shutdownClient();
@@ -108,7 +106,7 @@ public class JestHttpClientConfiguredProxyIntegrationTest extends ElasticsearchI
                 .build());
         customJestClient = (JestHttpClient) factory.getObject();
 
-        result = customJestClient.execute(new Status.Builder().build());
+        result = customJestClient.execute(new Stats.Builder().build());
         assertTrue(result.getErrorMessage(), result.isSucceeded());
         assertEquals(1, numProxyRequests.intValue());
         customJestClient.shutdownClient();
@@ -122,7 +120,7 @@ public class JestHttpClientConfiguredProxyIntegrationTest extends ElasticsearchI
         customJestClient = (JestHttpClient) factory.getObject();
 
         final CountDownLatch actionExecuted = new CountDownLatch(1);
-        customJestClient.executeAsync(new Status.Builder().build(), new JestResultHandler<JestResult>() {
+        customJestClient.executeAsync(new Stats.Builder().build(), new JestResultHandler<JestResult>() {
             @Override
             public void completed(JestResult result) {
                 actionExecuted.countDown();
@@ -145,10 +143,9 @@ public class JestHttpClientConfiguredProxyIntegrationTest extends ElasticsearchI
 
     @Override
     protected Settings nodeSettings(int nodeOrdinal) {
-        return ImmutableSettings.settingsBuilder()
+        return Settings.settingsBuilder()
                 .put(super.nodeSettings(nodeOrdinal))
-                .put(RestController.HTTP_JSON_ENABLE, true)
-                .put(InternalNode.HTTP_ENABLED, true)
+                .put(Node.HTTP_ENABLED, true)
                 .build();
     }
 }
diff --git a/jest/src/test/java/io/searchbox/client/http/JestHttpClientSystemWideProxyIntegrationTest.java b/jest/src/test/java/io/searchbox/client/http/JestHttpClientSystemWideProxyIntegrationTest.java
index bd101e7c..c944cd22 100644
--- a/jest/src/test/java/io/searchbox/client/http/JestHttpClientSystemWideProxyIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/client/http/JestHttpClientSystemWideProxyIntegrationTest.java
@@ -8,12 +8,10 @@ import io.searchbox.client.JestClientFactory;
 import io.searchbox.client.JestResult;
 import io.searchbox.client.JestResultHandler;
 import io.searchbox.client.config.HttpClientConfig;
-import io.searchbox.indices.Status;
-import org.elasticsearch.common.settings.ImmutableSettings;
+import io.searchbox.indices.Stats;
 import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.node.internal.InternalNode;
-import org.elasticsearch.rest.RestController;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.node.Node;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.*;
 import org.littleshoot.proxy.HttpFilters;
 import org.littleshoot.proxy.HttpFiltersAdapter;
@@ -31,8 +29,8 @@ import java.util.concurrent.atomic.AtomicInteger;
 /**
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 0)
-public class JestHttpClientSystemWideProxyIntegrationTest extends ElasticsearchIntegrationTest {
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST, numDataNodes = 0)
+public class JestHttpClientSystemWideProxyIntegrationTest extends ESIntegTestCase {
 
     private static final int PROXY_PORT = 8790;
 
@@ -127,7 +125,7 @@ public class JestHttpClientSystemWideProxyIntegrationTest extends ElasticsearchI
         JestHttpClient jestClient = (JestHttpClient) factory.getObject();
         assertNotNull(jestClient);
 
-        JestResult result = jestClient.execute(new Status.Builder().build());
+        JestResult result = jestClient.execute(new Stats.Builder().build());
         assertTrue(result.getErrorMessage(), result.isSucceeded());
         assertEquals(1, numProxyRequests.intValue());
         jestClient.shutdownClient();
@@ -141,7 +139,7 @@ public class JestHttpClientSystemWideProxyIntegrationTest extends ElasticsearchI
         assertNotNull(jestClient);
 
         final CountDownLatch actionExecuted = new CountDownLatch(1);
-        jestClient.executeAsync(new Status.Builder().build(), new JestResultHandler<JestResult>() {
+        jestClient.executeAsync(new Stats.Builder().build(), new JestResultHandler<JestResult>() {
             @Override
             public void completed(JestResult result) {
                 actionExecuted.countDown();
@@ -164,10 +162,9 @@ public class JestHttpClientSystemWideProxyIntegrationTest extends ElasticsearchI
 
     @Override
     protected Settings nodeSettings(int nodeOrdinal) {
-        return ImmutableSettings.settingsBuilder()
+        return Settings.settingsBuilder()
                 .put(super.nodeSettings(nodeOrdinal))
-                .put(RestController.HTTP_JSON_ENABLE, true)
-                .put(InternalNode.HTTP_ENABLED, true)
+                .put(Node.HTTP_ENABLED, true)
                 .build();
     }
 }
diff --git a/jest/src/test/java/io/searchbox/cluster/GetSettingsIntegrationTest.java b/jest/src/test/java/io/searchbox/cluster/GetSettingsIntegrationTest.java
index 92d29a9a..eefd8a5e 100644
--- a/jest/src/test/java/io/searchbox/cluster/GetSettingsIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/cluster/GetSettingsIntegrationTest.java
@@ -3,7 +3,7 @@ package io.searchbox.cluster;
 
 import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -12,7 +12,7 @@ import java.util.Map;
 /**
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class GetSettingsIntegrationTest extends AbstractIntegrationTest {
 
     @Test
diff --git a/jest/src/test/java/io/searchbox/cluster/HealthIntegrationTest.java b/jest/src/test/java/io/searchbox/cluster/HealthIntegrationTest.java
index ceffa910..c5b62a7a 100644
--- a/jest/src/test/java/io/searchbox/cluster/HealthIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/cluster/HealthIntegrationTest.java
@@ -2,7 +2,7 @@ package io.searchbox.cluster;
 
 import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import static org.hamcrest.core.AnyOf.anyOf;
@@ -11,7 +11,7 @@ import static org.hamcrest.core.IsEqual.equalTo;
 /**
  * @author Neil Gentleman
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class HealthIntegrationTest extends AbstractIntegrationTest {
 
     @Test
diff --git a/jest/src/test/java/io/searchbox/cluster/NodesHotThreadsIntegrationTest.java b/jest/src/test/java/io/searchbox/cluster/NodesHotThreadsIntegrationTest.java
index 4a3c9a18..a85f4950 100644
--- a/jest/src/test/java/io/searchbox/cluster/NodesHotThreadsIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/cluster/NodesHotThreadsIntegrationTest.java
@@ -2,7 +2,7 @@ package io.searchbox.cluster;
 
 import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -10,7 +10,7 @@ import java.io.IOException;
 /**
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 2)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 2)
 public class NodesHotThreadsIntegrationTest extends AbstractIntegrationTest {
 
     @Test
@@ -22,8 +22,8 @@ public class NodesHotThreadsIntegrationTest extends AbstractIntegrationTest {
         assertTrue(result.getErrorMessage(), result.isSucceeded());
 
         assertTrue(result.getJsonString().contains("interval=500ms"));
-        assertTrue("Result should contain info for first node", result.getJsonString().contains("::: [" + firstNode + "]["));
-        assertTrue("Result should contain info for second node", result.getJsonString().contains("::: [" + secondNode + "]["));
+        assertNodePresent(result, firstNode);
+        assertNodePresent(result, secondNode);
     }
 
     @Test
@@ -34,8 +34,8 @@ public class NodesHotThreadsIntegrationTest extends AbstractIntegrationTest {
         JestResult result = client.execute(new NodesHotThreads.Builder().addNode(firstNode).build());
         assertTrue(result.getErrorMessage(), result.isSucceeded());
 
-        assertTrue(result.getJsonString().contains("::: [" + firstNode + "]["));
-        assertFalse(result.getJsonString().contains("::: [" + secondNode + "]["));
+        assertNodePresent(result, firstNode);
+        assertNodeMissing(result, secondNode);
     }
 
     @Test
@@ -51,8 +51,16 @@ public class NodesHotThreadsIntegrationTest extends AbstractIntegrationTest {
 
         String rawJson = result.getJsonString();
         assertTrue(rawJson, rawJson.contains("interval=100ms"));
-        assertTrue(rawJson, rawJson.contains("::: [" + firstNode + "]["));
-        assertFalse(rawJson, rawJson.contains("::: [" + secondNode + "]["));
+        assertNodePresent(result, firstNode);
+        assertNodeMissing(result, secondNode);
+    }
+
+    private void assertNodePresent(JestResult result, String node) {
+        assertTrue(result.getJsonString().contains("::: {" + node + "}{"));
+    }
+
+    private void assertNodeMissing(JestResult result, String node) {
+        assertFalse(result.getJsonString().contains("::: {" + node + "}{"));
     }
 
 }
diff --git a/jest/src/test/java/io/searchbox/cluster/NodesInfoIntegrationTest.java b/jest/src/test/java/io/searchbox/cluster/NodesInfoIntegrationTest.java
index ff9c0f0d..27880623 100644
--- a/jest/src/test/java/io/searchbox/cluster/NodesInfoIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/cluster/NodesInfoIntegrationTest.java
@@ -2,7 +2,7 @@ package io.searchbox.cluster;
 
 import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -10,7 +10,7 @@ import java.io.IOException;
 /**
  * @author Dogukan Sonmez
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class NodesInfoIntegrationTest extends AbstractIntegrationTest {
 
     @Test
diff --git a/jest/src/test/java/io/searchbox/cluster/NodesStatsIntegrationTest.java b/jest/src/test/java/io/searchbox/cluster/NodesStatsIntegrationTest.java
index 46505bf1..38d72283 100644
--- a/jest/src/test/java/io/searchbox/cluster/NodesStatsIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/cluster/NodesStatsIntegrationTest.java
@@ -4,7 +4,7 @@ import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 import org.mockito.internal.matchers.GreaterOrEqual;
 
@@ -15,7 +15,7 @@ import java.util.Set;
 /**
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 2)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 2)
 public class NodesStatsIntegrationTest extends AbstractIntegrationTest {
 
     @Test
diff --git a/jest/src/test/java/io/searchbox/cluster/StateIntegrationTest.java b/jest/src/test/java/io/searchbox/cluster/StateIntegrationTest.java
index f3d7c476..2e5e31da 100644
--- a/jest/src/test/java/io/searchbox/cluster/StateIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/cluster/StateIntegrationTest.java
@@ -3,7 +3,7 @@ package io.searchbox.cluster;
 import com.google.gson.JsonObject;
 import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -11,7 +11,7 @@ import java.io.IOException;
 /**
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class StateIntegrationTest extends AbstractIntegrationTest {
 
     @Test
diff --git a/jest/src/test/java/io/searchbox/cluster/UpdateSettingsIntegrationTest.java b/jest/src/test/java/io/searchbox/cluster/UpdateSettingsIntegrationTest.java
index 5975824e..8eb3e6fb 100644
--- a/jest/src/test/java/io/searchbox/cluster/UpdateSettingsIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/cluster/UpdateSettingsIntegrationTest.java
@@ -3,7 +3,7 @@ package io.searchbox.cluster;
 
 import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -12,7 +12,7 @@ import java.util.Map;
 /**
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class UpdateSettingsIntegrationTest extends AbstractIntegrationTest {
 
     @Test
@@ -26,7 +26,7 @@ public class UpdateSettingsIntegrationTest extends AbstractIntegrationTest {
     public void transientSettingShouldBeUpdated() throws IOException {
         String source = "{\n" +
                 "    \"transient\" : {\n" +
-                "        \"discovery.zen.publish_timeout\" : 10\n" +
+                "        \"indices.store.throttle.max_bytes_per_sec\" : \"50mb\"\n" +
                 "    }\n" +
                 "}";
 
diff --git a/jest/src/test/java/io/searchbox/common/AbstractIntegrationTest.java b/jest/src/test/java/io/searchbox/common/AbstractIntegrationTest.java
index d6b371f0..91b4d267 100644
--- a/jest/src/test/java/io/searchbox/common/AbstractIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/common/AbstractIntegrationTest.java
@@ -3,11 +3,11 @@ package io.searchbox.common;
 import io.searchbox.client.JestClientFactory;
 import io.searchbox.client.config.HttpClientConfig;
 import io.searchbox.client.http.JestHttpClient;
-import org.elasticsearch.common.settings.ImmutableSettings;
+import org.elasticsearch.cluster.metadata.IndexMetaData;
 import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.node.internal.InternalNode;
-import org.elasticsearch.rest.RestController;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.node.Node;
+import org.elasticsearch.plugin.deletebyquery.DeleteByQueryPlugin;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Ignore;
@@ -16,7 +16,7 @@ import org.junit.Ignore;
  * @author Dogukan Sonmez
  */
 @Ignore
-public abstract class AbstractIntegrationTest extends ElasticsearchIntegrationTest {
+public abstract class AbstractIntegrationTest extends ESIntegTestCase {
 
     protected final JestClientFactory factory = new JestClientFactory();
     protected JestHttpClient client;
@@ -29,12 +29,12 @@ public abstract class AbstractIntegrationTest extends ElasticsearchIntegrationTe
 
     @Override
     protected Settings nodeSettings(int nodeOrdinal) {
-        return ImmutableSettings.settingsBuilder()
+        return Settings.settingsBuilder()
                 .put(super.nodeSettings(nodeOrdinal))
-                .put("index.number_of_shards", 1)
-                .put("index.number_of_replicas", 1)
-                .put(RestController.HTTP_JSON_ENABLE, true)
-                .put(InternalNode.HTTP_ENABLED, true)
+                .put(IndexMetaData.SETTING_NUMBER_OF_SHARDS, 1)
+                .put(IndexMetaData.SETTING_NUMBER_OF_REPLICAS, 1)
+                .put(Node.HTTP_ENABLED, true)
+                .put("plugin.types", DeleteByQueryPlugin.class.getName())
                 .build();
     }
 
diff --git a/jest/src/test/java/io/searchbox/common/CommonIntegrationTest.java b/jest/src/test/java/io/searchbox/common/CommonIntegrationTest.java
index 970e6d93..f8f5f842 100644
--- a/jest/src/test/java/io/searchbox/common/CommonIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/common/CommonIntegrationTest.java
@@ -3,7 +3,7 @@ package io.searchbox.common;
 import com.google.gson.JsonObject;
 import io.searchbox.action.GenericResultAbstractAction;
 import io.searchbox.client.JestResult;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -12,7 +12,7 @@ import java.io.IOException;
  * @author ferhat
  */
 
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class CommonIntegrationTest extends AbstractIntegrationTest {
 
     @Test
@@ -32,8 +32,8 @@ public class CommonIntegrationTest extends AbstractIntegrationTest {
 
         JsonObject jsonObject = result.getJsonObject();
 
-        assertEquals("200", jsonObject.get("status").getAsString());
+        assertEquals(200, result.getResponseCode());
         JsonObject versionObj = jsonObject.get("version").getAsJsonObject();
-        assertEquals("1.7.1", versionObj.get("number").getAsString());
+        assertEquals("2.0.0-rc1", versionObj.get("number").getAsString());
     }
 }
diff --git a/jest/src/test/java/io/searchbox/core/BulkIntegrationTest.java b/jest/src/test/java/io/searchbox/core/BulkIntegrationTest.java
index 80419559..c9bf3af1 100644
--- a/jest/src/test/java/io/searchbox/core/BulkIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/BulkIntegrationTest.java
@@ -2,7 +2,6 @@ package io.searchbox.core;
 
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
-import io.searchbox.action.Action;
 import io.searchbox.client.JestResult;
 import io.searchbox.client.config.HttpClientConfig;
 import io.searchbox.client.http.JestHttpClient;
@@ -11,7 +10,7 @@ import io.searchbox.params.Parameters;
 import org.apache.commons.lang3.StringUtils;
 import org.elasticsearch.action.get.GetRequest;
 import org.elasticsearch.action.get.GetResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -21,7 +20,7 @@ import java.util.*;
 /**
  * @author Dogukan Sonmez
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class BulkIntegrationTest extends AbstractIntegrationTest {
 
     @Test
@@ -395,7 +394,7 @@ public class BulkIntegrationTest extends AbstractIntegrationTest {
 
         // second index request with create op type should fail because it's a duplicate of the first index request
         assertNotNull(
-                result.getJsonObject().getAsJsonArray("items").get(1).getAsJsonObject().getAsJsonObject("create").get("error").getAsString()
+                result.getJsonObject().getAsJsonArray("items").get(1).getAsJsonObject().getAsJsonObject("create").get("error").getAsJsonObject().get("reason").getAsString()
         );
     }
 
diff --git a/jest/src/test/java/io/searchbox/core/CatIntegrationTest.java b/jest/src/test/java/io/searchbox/core/CatIntegrationTest.java
index bd106262..29c90288 100644
--- a/jest/src/test/java/io/searchbox/core/CatIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/CatIntegrationTest.java
@@ -3,7 +3,7 @@ package io.searchbox.core;
 import com.google.gson.JsonArray;
 import io.searchbox.common.AbstractIntegrationTest;
 import org.elasticsearch.action.admin.indices.alias.IndicesAliasesAction;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -11,7 +11,7 @@ import java.io.IOException;
 /**
  * @author Bartosz Polnik
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class CatIntegrationTest extends AbstractIntegrationTest {
     final static String INDEX = "catintegrationindex";
     final static String ALIAS = "catintegrationslias";
diff --git a/jest/src/test/java/io/searchbox/core/CountIntegrationTest.java b/jest/src/test/java/io/searchbox/core/CountIntegrationTest.java
index ffd521f9..bea1540d 100644
--- a/jest/src/test/java/io/searchbox/core/CountIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/CountIntegrationTest.java
@@ -1,7 +1,7 @@
 package io.searchbox.core;
 
 import io.searchbox.common.AbstractIntegrationTest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Before;
 import org.junit.FixMethodOrder;
 import org.junit.Test;
@@ -12,7 +12,7 @@ import java.io.IOException;
  * @author Dogukan Sonmez
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 @FixMethodOrder
 public class CountIntegrationTest extends AbstractIntegrationTest {
 
diff --git a/jest/src/test/java/io/searchbox/core/DeleteByQueryIntegrationTest.java b/jest/src/test/java/io/searchbox/core/DeleteByQueryIntegrationTest.java
index 9e4e36a1..9eaf785a 100644
--- a/jest/src/test/java/io/searchbox/core/DeleteByQueryIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/DeleteByQueryIntegrationTest.java
@@ -1,38 +1,69 @@
 package io.searchbox.core;
 
+import com.google.common.base.Predicate;
 import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.index.engine.Engine;
+import org.elasticsearch.plugin.deletebyquery.DeleteByQueryPlugin;
+import org.elasticsearch.plugins.Plugin;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Map;
 
 /**
  * @author Dogukan Sonmez
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class DeleteByQueryIntegrationTest extends AbstractIntegrationTest {
 
     @Test
-    public void delete() throws IOException {
-        String query = "{\n" +
-                "    \"query\" : {\n" +
-                "        \"term\" : { \"user\" : \"kimchy\" }\n" +
+    public void delete() throws IOException, InterruptedException {
+        final String query = "{\n" +
+                "    \"query\": {\n" +
+                "        \"term\": { \"user\" : \"kimchy\" }\n" +
                 "    }\n" +
                 "}";
-        client.execute(new Index.Builder("\"user\":\"kimchy\"").index("twitter").type("tweet").id("1").build());
+        client.execute(new Index.Builder("{\"user\":\"kimchy\"}").index("twitter").type("tweet").id("1").build());
+
+        waitForDocumentToBeIndexed(query);
+
         DeleteByQuery deleteByQuery = new DeleteByQuery.Builder(query)
                 .addIndex("twitter")
                 .addType("tweet")
                 .build();
 
         JestResult result = client.execute(deleteByQuery);
-        assertTrue(result.getErrorMessage(), result.isSucceeded());;
+        assertTrue(result.getErrorMessage(), result.isSucceeded());
 
         assertEquals(
                 0,
-                result.getJsonObject().getAsJsonObject("_indices").getAsJsonObject("twitter").getAsJsonObject("_shards").get("failed").getAsInt()
+                result.getJsonObject().getAsJsonObject("_indices").getAsJsonObject("twitter").get("failed").getAsInt()
+        );
+        assertEquals(
+                1,
+                result.getJsonObject().getAsJsonObject("_indices").getAsJsonObject("twitter").get("deleted").getAsInt()
         );
     }
 
+    private void waitForDocumentToBeIndexed(final String query) throws InterruptedException {
+        awaitBusy(new Predicate<Object>() {
+            @Override
+            public boolean apply(Object input) {
+                try {
+                    SearchResult searchResult = client.execute(new Search.Builder(query)
+                            .addIndex("twitter")
+                            .addType("tweet")
+                            .build());
+                    return null != searchResult.getFirstHit(Map.class);
+                } catch (IOException e) {
+                    throw new RuntimeException(e);
+                }
+            }
+        });
+    }
+
 }
diff --git a/jest/src/test/java/io/searchbox/core/DeleteIntegrationTest.java b/jest/src/test/java/io/searchbox/core/DeleteIntegrationTest.java
index a4893cb8..8692d5b1 100644
--- a/jest/src/test/java/io/searchbox/core/DeleteIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/DeleteIntegrationTest.java
@@ -2,7 +2,7 @@ package io.searchbox.core;
 
 import io.searchbox.client.JestResultHandler;
 import io.searchbox.common.AbstractIntegrationTest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.slf4j.Logger;
@@ -14,7 +14,7 @@ import java.util.concurrent.ExecutionException;
 /**
  * @author Dogukan Sonmez
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class DeleteIntegrationTest extends AbstractIntegrationTest {
 
     private final static Logger log = LoggerFactory.getLogger(DeleteIntegrationTest.class);
diff --git a/jest/src/test/java/io/searchbox/core/ExplainIntegrationTest.java b/jest/src/test/java/io/searchbox/core/ExplainIntegrationTest.java
index 8e4abbaa..94e239e0 100644
--- a/jest/src/test/java/io/searchbox/core/ExplainIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/ExplainIntegrationTest.java
@@ -2,7 +2,7 @@ package io.searchbox.core;
 
 import io.searchbox.common.AbstractIntegrationTest;
 import org.elasticsearch.action.index.IndexRequest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -12,7 +12,7 @@ import java.io.IOException;
 /**
  * @author Dogukan Sonmez
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class ExplainIntegrationTest extends AbstractIntegrationTest {
 
     final static Logger log = LoggerFactory.getLogger(ExplainIntegrationTest.class);
diff --git a/jest/src/test/java/io/searchbox/core/GetIntegrationTest.java b/jest/src/test/java/io/searchbox/core/GetIntegrationTest.java
index 029fa9e9..a01d2b49 100644
--- a/jest/src/test/java/io/searchbox/core/GetIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/GetIntegrationTest.java
@@ -5,8 +5,9 @@ import io.searchbox.client.JestResultHandler;
 import io.searchbox.common.AbstractIntegrationTest;
 import org.elasticsearch.action.index.IndexRequest;
 import org.elasticsearch.action.index.IndexResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -18,7 +19,7 @@ import java.util.concurrent.TimeUnit;
  * @author Dogukan Sonmez
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class GetIntegrationTest extends AbstractIntegrationTest {
 
     final static String INDEX = "twitter";
@@ -36,6 +37,7 @@ public class GetIntegrationTest extends AbstractIntegrationTest {
     }
 
     @Test
+    @Ignore(value = "looks like this is a bug in es2, tracking as https://github.com/elastic/elasticsearch/issues/14177")
     public void getWithSpecialCharacterInDocId() throws IOException {
         final String documentId = "asd/qwe";
         IndexResponse indexResponse = client().index(new IndexRequest(
diff --git a/jest/src/test/java/io/searchbox/core/IndexIntegrationTest.java b/jest/src/test/java/io/searchbox/core/IndexIntegrationTest.java
index a091055c..b9d8e729 100644
--- a/jest/src/test/java/io/searchbox/core/IndexIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/IndexIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.client.AbstractJestClient;
 import io.searchbox.common.AbstractIntegrationTest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.get.GetResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -17,7 +17,7 @@ import java.util.Map;
  * @author Dogukan Sonmez
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class IndexIntegrationTest extends AbstractIntegrationTest {
 
     static final String INDEX = "twitter";
@@ -79,7 +79,7 @@ public class IndexIntegrationTest extends AbstractIntegrationTest {
         createIndex(INDEX);
         assertTrue(client().admin().indices().putMapping(new PutMappingRequest(INDEX)
                 .type(TYPE).source(mapping)).actionGet().isAcknowledged());
-        waitForConcreteMappingsOnAll(INDEX, TYPE, "creationDate");
+        assertConcreteMappingsOnAll(INDEX, TYPE, "creationDate");
 
         DocumentResult result = client.execute(new Index.Builder(source).index(INDEX).type(TYPE).id(id).build());
         assertTrue(result.getErrorMessage(), result.isSucceeded());
diff --git a/jest/src/test/java/io/searchbox/core/MoreLikeThisIntegrationTest.java b/jest/src/test/java/io/searchbox/core/MoreLikeThisIntegrationTest.java
deleted file mode 100644
index 800868de..00000000
--- a/jest/src/test/java/io/searchbox/core/MoreLikeThisIntegrationTest.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package io.searchbox.core;
-
-import io.searchbox.client.JestResult;
-import io.searchbox.common.AbstractIntegrationTest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
-import org.junit.Test;
-
-import java.io.IOException;
-
-/**
- * @author Dogukan Sonmez
- */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
-public class MoreLikeThisIntegrationTest extends AbstractIntegrationTest {
-
-    @Test
-    public void moreLikeThis() throws IOException {
-        MoreLikeThis moreLikeThis = new MoreLikeThis.Builder("twitter", "tweet", "1", null).build();
-        JestResult result = client.execute(moreLikeThis);
-        assertFalse(result.isSucceeded());
-    }
-
-}
diff --git a/jest/src/test/java/io/searchbox/core/MultiGetIntegrationTest.java b/jest/src/test/java/io/searchbox/core/MultiGetIntegrationTest.java
index cb9348e5..85da6e67 100644
--- a/jest/src/test/java/io/searchbox/core/MultiGetIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/MultiGetIntegrationTest.java
@@ -6,7 +6,7 @@ import io.searchbox.action.Action;
 import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
 import org.elasticsearch.action.index.IndexRequest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -18,7 +18,7 @@ import java.util.List;
  * @author Dogukan Sonmez
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class MultiGetIntegrationTest extends AbstractIntegrationTest {
 
     private static final String TEST_INDEX = "twitter";
diff --git a/jest/src/test/java/io/searchbox/core/MultiSearchIntegrationTest.java b/jest/src/test/java/io/searchbox/core/MultiSearchIntegrationTest.java
index d024512b..2b64a42e 100644
--- a/jest/src/test/java/io/searchbox/core/MultiSearchIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/MultiSearchIntegrationTest.java
@@ -1,7 +1,7 @@
 package io.searchbox.core;
 
 import io.searchbox.common.AbstractIntegrationTest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -11,7 +11,7 @@ import java.util.List;
 /**
  * @author Dogukan Sonmez
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class MultiSearchIntegrationTest extends AbstractIntegrationTest {
 
     String query = "{" +
diff --git a/jest/src/test/java/io/searchbox/core/PercolateIntegrationTest.java b/jest/src/test/java/io/searchbox/core/PercolateIntegrationTest.java
index 4aaec2ad..32e5f944 100644
--- a/jest/src/test/java/io/searchbox/core/PercolateIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/PercolateIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -13,7 +13,7 @@ import java.io.IOException;
 /**
  * @author Dogukan Sonmez
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class PercolateIntegrationTest extends AbstractIntegrationTest {
 
     @Test
diff --git a/jest/src/test/java/io/searchbox/core/SearchIntegrationTest.java b/jest/src/test/java/io/searchbox/core/SearchIntegrationTest.java
index d6f7d08b..190fcb3e 100644
--- a/jest/src/test/java/io/searchbox/core/SearchIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/SearchIntegrationTest.java
@@ -11,7 +11,7 @@ import org.apache.lucene.search.Explanation;
 import org.elasticsearch.action.index.IndexRequest;
 import org.elasticsearch.index.query.QueryBuilders;
 import org.elasticsearch.search.builder.SearchSourceBuilder;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -20,7 +20,7 @@ import java.util.List;
 /**
  * @author Dogukan Sonmez
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class SearchIntegrationTest extends AbstractIntegrationTest {
 
     private static final String INDEX = "twitter";
@@ -141,7 +141,7 @@ public class SearchIntegrationTest extends AbstractIntegrationTest {
                 "    \"explain\": true,\n" +
                 "    \"query\":{\n" +
                 "        \"query_string\":{\n" +
-                "            \"query\":\"pickles\"\n" +
+                "            \"query\":\"name:pickles\"\n" +
                 "        }\n" +
                 "    },\n" +
                 "   \"highlight\" : {\n" +
@@ -179,7 +179,7 @@ public class SearchIntegrationTest extends AbstractIntegrationTest {
                 "        }\n" +
                 "    }\n" +
                 "}")
-                .setSearchType(SearchType.QUERY_AND_FETCH)
+                .setSearchType(SearchType.QUERY_THEN_FETCH)
                 .addIndex("articles")
                 .addType("article")
                 .build();
diff --git a/jest/src/test/java/io/searchbox/core/SearchScrollIntegrationTest.java b/jest/src/test/java/io/searchbox/core/SearchScrollIntegrationTest.java
index 8c80f1eb..39ab925f 100644
--- a/jest/src/test/java/io/searchbox/core/SearchScrollIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/SearchScrollIntegrationTest.java
@@ -7,7 +7,7 @@ import io.searchbox.params.Parameters;
 import org.elasticsearch.action.index.IndexRequest;
 import org.elasticsearch.index.query.QueryBuilders;
 import org.elasticsearch.search.builder.SearchSourceBuilder;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +16,7 @@ import java.io.IOException;
 /**
  * @author ferhat
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 2)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 2)
 public class SearchScrollIntegrationTest extends AbstractIntegrationTest {
 
     private static final String INDEX_NAME = "scroll_index";
diff --git a/jest/src/test/java/io/searchbox/core/SearchShardsIntegrationTest.java b/jest/src/test/java/io/searchbox/core/SearchShardsIntegrationTest.java
index 2912b021..5f27065b 100644
--- a/jest/src/test/java/io/searchbox/core/SearchShardsIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/SearchShardsIntegrationTest.java
@@ -2,7 +2,7 @@ package io.searchbox.core;
 
 import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -11,7 +11,7 @@ import java.util.Map;
 /**
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class SearchShardsIntegrationTest extends AbstractIntegrationTest {
     static final String INDEX = "twitter";
     static final String TYPE = "tweet";
diff --git a/jest/src/test/java/io/searchbox/core/SuggestIntegrationTest.java b/jest/src/test/java/io/searchbox/core/SuggestIntegrationTest.java
index 5d70dd6b..73d71487 100644
--- a/jest/src/test/java/io/searchbox/core/SuggestIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/SuggestIntegrationTest.java
@@ -2,7 +2,7 @@ package io.searchbox.core;
 
 import io.searchbox.common.AbstractIntegrationTest;
 import org.elasticsearch.action.index.IndexRequest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -11,7 +11,7 @@ import java.util.List;
 /**
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class SuggestIntegrationTest extends AbstractIntegrationTest {
 
     private static final String INDEX = "socializr";
diff --git a/jest/src/test/java/io/searchbox/core/UpdateIntegrationTest.java b/jest/src/test/java/io/searchbox/core/UpdateIntegrationTest.java
index 58b00b17..c32e3a32 100644
--- a/jest/src/test/java/io/searchbox/core/UpdateIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/UpdateIntegrationTest.java
@@ -3,7 +3,7 @@ package io.searchbox.core;
 
 import io.searchbox.common.AbstractIntegrationTest;
 import org.elasticsearch.action.index.IndexRequest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.util.Map;
@@ -11,7 +11,7 @@ import java.util.Map;
 /**
  * @author Dogukan Sonmez
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class UpdateIntegrationTest extends AbstractIntegrationTest {
 
     @Test
diff --git a/jest/src/test/java/io/searchbox/core/ValidateIntegrationTest.java b/jest/src/test/java/io/searchbox/core/ValidateIntegrationTest.java
index 0dd0d9eb..cdea17bb 100644
--- a/jest/src/test/java/io/searchbox/core/ValidateIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/ValidateIntegrationTest.java
@@ -4,7 +4,7 @@ import io.searchbox.action.Action;
 import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
 import io.searchbox.params.Parameters;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -13,7 +13,7 @@ import java.io.IOException;
 /**
  * @author Dogukan Sonmez
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class ValidateIntegrationTest extends AbstractIntegrationTest {
 
     @Before
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/AvgAggregationIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/AvgAggregationIntegrationTest.java
index dd3b6851..4145cf20 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/AvgAggregationIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/AvgAggregationIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +16,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope (scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class AvgAggregationIntegrationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "avg_aggregation";
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/CardinalityAggregationIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/CardinalityAggregationIntegrationTest.java
index d629f82d..30c40264 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/CardinalityAggregationIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/CardinalityAggregationIntegrationTest.java
@@ -5,7 +5,8 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
+import org.elasticsearch.test.ESIntegTestCase.Scope;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +17,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ClusterScope(scope = Scope.TEST, numDataNodes = 1)
 public class CardinalityAggregationIntegrationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "cardinality_aggregation";
@@ -59,7 +60,7 @@ public class CardinalityAggregationIntegrationTest extends AbstractIntegrationTe
 
         CardinalityAggregation cardinality = result.getAggregations().getCardinalityAggregation("card1");
         assertEquals("card1", cardinality.getName());
-        assertEquals(new Long(2) , cardinality.getCardinality());
+        assertEquals(new Long(2), cardinality.getCardinality());
 
         Aggregation aggregation = result.getAggregations().getAggregation("card1", CardinalityAggregation.class);
         assertTrue(aggregation instanceof CardinalityAggregation);
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/DateHistogramAggregationIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/DateHistogramAggregationIntegrationTest.java
index 8ebdf017..70016bce 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/DateHistogramAggregationIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/DateHistogramAggregationIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +16,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope (scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class DateHistogramAggregationIntegrationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "date_histogram_aggregation";
@@ -48,7 +48,8 @@ public class DateHistogramAggregationIntegrationTest extends AbstractIntegration
                 "        \"histo1\" : {\n" +
                 "            \"date_histogram\" : {\n" +
                 "                \"field\" : \"delivery\",\n" +
-                "                \"interval\" : \"day\"\n" +
+                "                \"interval\" : \"day\",\n" +
+                "                \"min_doc_count\": 1\n" +
                 "            }\n" +
                 "        }\n" +
                 "    }\n" +
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/DateRangeAggregationIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/DateRangeAggregationIntegrationTest.java
index 0f1c11ab..c83d65da 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/DateRangeAggregationIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/DateRangeAggregationIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +16,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope (scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class DateRangeAggregationIntegrationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "date_range_aggregation";
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/ExtendedStatsAggregationIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/ExtendedStatsAggregationIntegrationTest.java
index b76777d1..66626aec 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/ExtendedStatsAggregationIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/ExtendedStatsAggregationIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +16,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope (scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class ExtendedStatsAggregationIntegrationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "extended_stats_aggregation";
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/FilterAggregationIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/FilterAggregationIntegrationTest.java
index 7abbe8a5..883f2905 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/FilterAggregationIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/FilterAggregationIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +16,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope (scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class FilterAggregationIntegrationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "filter_aggregation";
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/FiltersAggregationIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/FiltersAggregationIntegrationTest.java
index a9ef29df..8413c0e3 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/FiltersAggregationIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/FiltersAggregationIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +16,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope (scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class FiltersAggregationIntegrationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "filters_aggregation";
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/GeoBoundsAggregationIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/GeoBoundsAggregationIntegrationTest.java
index 9e77ad02..d5712a12 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/GeoBoundsAggregationIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/GeoBoundsAggregationIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +16,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope (scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class GeoBoundsAggregationIntegrationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "geo_bounds_aggregation";
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/GeoDistanceAggregationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/GeoDistanceAggregationTest.java
index 28619631..604bc251 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/GeoDistanceAggregationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/GeoDistanceAggregationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +16,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope (scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class GeoDistanceAggregationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "geo_distance_aggregation";
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/GeoHashGridAggregationIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/GeoHashGridAggregationIntegrationTest.java
index a796ba5a..5b6832b1 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/GeoHashGridAggregationIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/GeoHashGridAggregationIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +16,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope (scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class GeoHashGridAggregationIntegrationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "geohash_grid_aggregation";
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/HistogramAggregationIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/HistogramAggregationIntegrationTest.java
index 292ca9d5..d76778b3 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/HistogramAggregationIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/HistogramAggregationIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +16,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope (scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class HistogramAggregationIntegrationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "histogram_aggregation";
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/Ipv4RangeAggregationIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/Ipv4RangeAggregationIntegrationTest.java
index 52f9b692..cb5e9f0b 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/Ipv4RangeAggregationIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/Ipv4RangeAggregationIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +16,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope (scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class Ipv4RangeAggregationIntegrationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "ipv4_range_aggregation";
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/MaxAggregationIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/MaxAggregationIntegrationTest.java
index bba3079d..4ae2b270 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/MaxAggregationIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/MaxAggregationIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +16,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope (scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class MaxAggregationIntegrationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "max_aggregation";
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/MinAggregationIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/MinAggregationIntegrationTest.java
index 163a4930..8c897412 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/MinAggregationIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/MinAggregationIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +16,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope (scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class MinAggregationIntegrationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "min_aggregation";
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/MissingAggregationIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/MissingAggregationIntegrationTest.java
index 64c6e710..585261de 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/MissingAggregationIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/MissingAggregationIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +16,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope (scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class MissingAggregationIntegrationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "missing_aggregation";
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/PercentileRanksAggregationIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/PercentileRanksAggregationIntegrationTest.java
index 61610bee..ac02918f 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/PercentileRanksAggregationIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/PercentileRanksAggregationIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +16,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope (scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class PercentileRanksAggregationIntegrationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "percentile_ranks_aggregation";
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/PercentilesAggregationIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/PercentilesAggregationIntegrationTest.java
index 43c48236..fcd9632e 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/PercentilesAggregationIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/PercentilesAggregationIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +16,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope (scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class PercentilesAggregationIntegrationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "percentiles_aggregation";
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/RangeAggregationIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/RangeAggregationIntegrationTest.java
index a8d5bf06..a9605d0d 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/RangeAggregationIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/RangeAggregationIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +16,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope (scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class RangeAggregationIntegrationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "range_aggregation";
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/ScriptedMetricAggregationIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/ScriptedMetricAggregationIntegrationTest.java
index 71279c85..b764f81f 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/ScriptedMetricAggregationIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/ScriptedMetricAggregationIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +16,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope (scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class ScriptedMetricAggregationIntegrationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "scripted_metric_aggregation";
@@ -90,7 +90,7 @@ public class ScriptedMetricAggregationIntegrationTest extends AbstractIntegratio
         ).actionGet();
 
         assertTrue(putMappingResponse.isAcknowledged());
-        waitForConcreteMappingsOnAll(INDEX, TYPE, "amount", "bad_field");
+        assertConcreteMappingsOnAll(INDEX, TYPE, "amount", "bad_field");
 
         index(INDEX, TYPE, null, "{\"amount\":2}");
         index(INDEX, TYPE, null, "{\"amount\":3}");
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/SignificantTermsAggregationIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/SignificantTermsAggregationIntegrationTest.java
index bee04e1c..14f9e656 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/SignificantTermsAggregationIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/SignificantTermsAggregationIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.util.HashMap;
@@ -15,7 +15,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope (scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class SignificantTermsAggregationIntegrationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "significant_terms_aggregation";
@@ -32,7 +32,7 @@ public class SignificantTermsAggregationIntegrationTest extends AbstractIntegrat
         ).actionGet();
 
         assertTrue(putMappingResponse.isAcknowledged());
-        waitForConcreteMappingsOnAll(INDEX, TYPE, "gender", "favorite_movie");
+        assertConcreteMappingsOnAll(INDEX, TYPE, "gender", "favorite_movie");
 
         index(INDEX, TYPE, null, "{\"gender\":\"male\", \"favorite_movie\": \"300\"}");
         index(INDEX, TYPE, null, "{\"gender\":\"male\", \"favorite_movie\": \"300\"}");
@@ -102,7 +102,7 @@ public class SignificantTermsAggregationIntegrationTest extends AbstractIntegrat
         ).actionGet();
 
         assertTrue(putMappingResponse.isAcknowledged());
-        waitForConcreteMappingsOnAll(INDEX, TYPE, "gender", "favorite_movie");
+        assertConcreteMappingsOnAll(INDEX, TYPE, "gender", "favorite_movie");
 
         index(INDEX, TYPE, null, "{\"gender\":\"male\", \"favorite_movie\": \"300\"}");
         index(INDEX, TYPE, null, "{\"gender\":\"male\", \"favorite_movie\": \"300\"}");
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/StatsAggregationIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/StatsAggregationIntegrationTest.java
index 7a827d89..93b0b716 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/StatsAggregationIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/StatsAggregationIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +16,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope (scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class StatsAggregationIntegrationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "stats_aggregation";
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/SumAggregationIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/SumAggregationIntegrationTest.java
index e1a8bd46..4c3c3515 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/SumAggregationIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/SumAggregationIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +16,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope (scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class SumAggregationIntegrationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "sum_aggregation";
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/TermsAggregationIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/TermsAggregationIntegrationTest.java
index f50600d3..84838786 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/TermsAggregationIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/TermsAggregationIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +16,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope (scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class TermsAggregationIntegrationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "terms_aggregation";
diff --git a/jest/src/test/java/io/searchbox/core/search/aggregation/ValueCountAggregationIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/aggregation/ValueCountAggregationIntegrationTest.java
index 788e64ca..6a34045f 100644
--- a/jest/src/test/java/io/searchbox/core/search/aggregation/ValueCountAggregationIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/aggregation/ValueCountAggregationIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.core.Search;
 import io.searchbox.core.SearchResult;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -16,7 +16,7 @@ import java.util.Map;
 /**
  * @author cfstout
  */
-@ElasticsearchIntegrationTest.ClusterScope (scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope (scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class ValueCountAggregationIntegrationTest extends AbstractIntegrationTest {
 
     private final String INDEX = "value_count_aggregation";
diff --git a/jest/src/test/java/io/searchbox/core/search/facet/DateHistogramFacetIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/facet/DateHistogramFacetIntegrationTest.java
deleted file mode 100644
index b3ac2787..00000000
--- a/jest/src/test/java/io/searchbox/core/search/facet/DateHistogramFacetIntegrationTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package io.searchbox.core.search.facet;
-
-import io.searchbox.common.AbstractIntegrationTest;
-import io.searchbox.core.Index;
-import io.searchbox.core.Search;
-import io.searchbox.core.SearchResult;
-import io.searchbox.params.Parameters;
-import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
-import org.junit.Test;
-
-import java.io.IOException;
-import java.util.List;
-
-/**
- * @author ferhat
- */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
-public class DateHistogramFacetIntegrationTest extends AbstractIntegrationTest {
-
-    @Test
-    public void testQuery() throws IOException {
-        createIndex("date_histogram_facet");
-        client().admin().indices().putMapping(new PutMappingRequest("date_histogram_facet")
-                .type("document")
-                .source("{\"document\":{\"properties\":{\"delivery\":{\"store\":true,\"type\":\"date\"}}}}")
-        ).actionGet();
-
-        String query = "{\n" +
-                "    \"query\" : {\n" +
-                "        \"match_all\" : {}\n" +
-                "    },\n" +
-                "    \"facets\" : {\n" +
-                "        \"histo1\" : {\n" +
-                "            \"date_histogram\" : {\n" +
-                "                \"field\" : \"delivery\",\n" +
-                "                \"interval\" : \"day\"\n" +
-                "            }\n" +
-                "        }\n" +
-                "    }\n" +
-                "}";
-
-        for (int i = 0; i < 2; i++) {
-            Index index = new Index.Builder("{\"delivery\":\"2013-02-04\"}")
-                    .index("date_histogram_facet")
-                    .type("document")
-                    .setParameter(Parameters.REFRESH, true)
-                    .build();
-            client.execute(index);
-        }
-
-        Index index = new Index.Builder("{\"delivery\":\"2013-02-01\"}")
-                .index("date_histogram_facet")
-                .type("document")
-                .setParameter(Parameters.REFRESH, true)
-                .build();
-        client.execute(index);
-
-        index = new Index.Builder("{\"delivery\":\"2013-02-03\"}")
-                .index("date_histogram_facet")
-                .type("document")
-                .setParameter(Parameters.REFRESH, true)
-                .build();
-        client.execute(index);
-
-        Search search = new Search.Builder(query)
-                .addIndex("date_histogram_facet")
-                .addType("document")
-                .build();
-        SearchResult result = client.execute(search);
-        List<DateHistogramFacet> dateHistogramFacets = result.getFacets(DateHistogramFacet.class);
-
-        assertEquals(1, dateHistogramFacets.size());
-        DateHistogramFacet histogramFacetFirst = dateHistogramFacets.get(0);
-        assertEquals("histo1", histogramFacetFirst.getName());
-
-        List<DateHistogramFacet.DateHistogram> histograms = histogramFacetFirst.getDateHistograms();
-        assertEquals(3, histograms.size());
-        assertTrue(1L == histograms.get(0).getCount());
-        assertTrue(1359676800000L == histograms.get(0).getTime());
-        assertTrue(1L == histograms.get(1).getCount());
-        assertTrue(1359849600000L == histograms.get(1).getTime());
-        assertTrue(2L == histograms.get(2).getCount());
-        assertTrue(1359936000000L == histograms.get(2).getTime());
-    }
-}
diff --git a/jest/src/test/java/io/searchbox/core/search/facet/FilterFacetIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/facet/FilterFacetIntegrationTest.java
deleted file mode 100644
index d3700ffa..00000000
--- a/jest/src/test/java/io/searchbox/core/search/facet/FilterFacetIntegrationTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package io.searchbox.core.search.facet;
-
-import io.searchbox.common.AbstractIntegrationTest;
-import io.searchbox.core.Index;
-import io.searchbox.core.Search;
-import io.searchbox.core.SearchResult;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
-import org.junit.Test;
-
-import java.io.IOException;
-import java.util.List;
-
-/**
- * @author ferhat
- */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
-public class FilterFacetIntegrationTest extends AbstractIntegrationTest {
-
-    @Test
-    public void testQuery() throws IOException {
-        createIndex("filter_facet");
-
-        String query = "{\n" +
-                "            \"facets\" : {\n" +
-                "            \"wow_facet\" : {\n" +
-                "                \"filter\" : {\n" +
-                "                    \"term\" : { \"tag\" : \"wow\" }\n" +
-                "                }\n" +
-                "            },\n" +
-                "            \"none_user_facet\" : {\n" +
-                "                \"filter\" : {\n" +
-                "                    \"term\" : { \"user\" : \"none\" }\n" +
-                "                }\n" +
-                "            }\n" +
-                "        }\n" +
-                "        }";
-
-        for (int i = 0; i < 2; i++) {
-            Index index = new Index.Builder("{\"tag\":\"wow\", \"user\":\"root\"}")
-                    .index("filter_facet")
-                    .type("document")
-                    .refresh(true)
-                    .build();
-            client.execute(index);
-        }
-
-        Index index = new Index.Builder("{\"tag\":\"test\", \"user\":\"none\"}")
-                .index("filter_facet")
-                .type("document")
-                .refresh(true)
-                .build();
-        client.execute(index);
-
-        Search search = new Search.Builder(query)
-                .addIndex("filter_facet")
-                .addType("document")
-                .build();
-        SearchResult result = client.execute(search);
-        List<FilterFacet> filterFacets = result.getFacets(FilterFacet.class);
-
-        assertEquals(2, filterFacets.size());
-        FilterFacet filterFacetFirst = filterFacets.get(0);
-
-        assertEquals("wow_facet", filterFacetFirst.getName());
-        assertEquals(2L, filterFacetFirst.getCount().longValue());
-
-        FilterFacet filterFacetSecond = filterFacets.get(1);
-
-        assertEquals("none_user_facet", filterFacetSecond.getName());
-        assertEquals(1L, filterFacetSecond.getCount().longValue());
-    }
-}
\ No newline at end of file
diff --git a/jest/src/test/java/io/searchbox/core/search/facet/GeoDistanceFacetIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/facet/GeoDistanceFacetIntegrationTest.java
deleted file mode 100644
index b8e64587..00000000
--- a/jest/src/test/java/io/searchbox/core/search/facet/GeoDistanceFacetIntegrationTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package io.searchbox.core.search.facet;
-
-import io.searchbox.common.AbstractIntegrationTest;
-import io.searchbox.core.Index;
-import io.searchbox.core.Search;
-import io.searchbox.core.SearchResult;
-import io.searchbox.indices.mapping.PutMapping;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
-import org.junit.Test;
-
-import java.io.IOException;
-import java.util.List;
-
-/**
- * @author ferhat
- */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
-public class GeoDistanceFacetIntegrationTest extends AbstractIntegrationTest {
-
-    @Test
-    public void testQuery() throws IOException {
-        createIndex("geo_distance_facet");
-        PutMapping putMapping = new PutMapping.Builder(
-                "geo_distance_facet",
-                "document",
-                "{ \"document\" : { \"properties\" : { \"pin.location\" : { \"type\" : \"geo_point\" } } } }"
-        ).build();
-        client.execute(putMapping);
-
-        String query = "{\n" +
-                "                \"query\" : {\n" +
-                "                \"match_all\" : {}\n" +
-                "            },\n" +
-                "                \"facets\" : {\n" +
-                "                \"geo1\" : {\n" +
-                "                    \"geo_distance\" : {\n" +
-                "                        \"pin.location\" : {\n" +
-                "                            \"lat\" : 40,\n" +
-                "                                    \"lon\" : -70\n" +
-                "                        },\n" +
-                "                        \"ranges\" : [\n" +
-                "                        { \"to\" : 10 },\n" +
-                "                        { \"from\" : 10, \"to\" : 20 },\n" +
-                "                        { \"from\" : 20, \"to\" : 100 },\n" +
-                "                        { \"from\" : 100 }\n" +
-                "                        ]\n" +
-                "                    }\n" +
-                "                }\n" +
-                "            }\n" +
-                "            }";
-
-        for (int i = 0; i < 2; i++) {
-            Index index = new Index.Builder("{\"pin\" : {\"location\" : {\"lat\" : 40.12,\"lon\" : -71.34},\"tag\" : [\"food\", \"family\"],\"text\" : \"my favorite family restaurant\"}}")
-                    .index("geo_distance_facet")
-                    .type("document")
-                    .refresh(true)
-                    .build();
-            client.execute(index);
-        }
-
-        Index index = new Index.Builder("{ \"pin\" : { \"location\" : { \"lat\" : 30.12, \"lon\" : -61.34 } } }")
-                .index("geo_distance_facet")
-                .type("document")
-                .refresh(true)
-                .build();
-        client.execute(index);
-
-        index = new Index.Builder("{ \"pin\" : { \"location\" : { \"lat\" : 10.12, \"lon\" : -31.34 } } }")
-                .index("geo_distance_facet")
-                .type("document")
-                .refresh(true)
-                .build();
-        client.execute(index);
-
-        Search search = new Search.Builder(query)
-                .addIndex("geo_distance_facet")
-                .addType("document")
-                .build();
-        SearchResult result = client.execute(search);
-        List<GeoDistanceFacet> distanceFacets = result.getFacets(GeoDistanceFacet.class);
-
-        assertEquals(1, distanceFacets.size());
-        assertEquals("geo1", distanceFacets.get(0).getName());
-        assertEquals(4, distanceFacets.get(0).getRanges().size());
-    }
-}
diff --git a/jest/src/test/java/io/searchbox/core/search/facet/HistogramFacetIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/facet/HistogramFacetIntegrationTest.java
deleted file mode 100644
index a51c145b..00000000
--- a/jest/src/test/java/io/searchbox/core/search/facet/HistogramFacetIntegrationTest.java
+++ /dev/null
@@ -1,85 +0,0 @@
-package io.searchbox.core.search.facet;
-
-import io.searchbox.common.AbstractIntegrationTest;
-import io.searchbox.core.Index;
-import io.searchbox.core.Search;
-import io.searchbox.core.SearchResult;
-import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
-import org.junit.Test;
-
-import java.io.IOException;
-import java.util.List;
-
-/**
- * @author ferhat
- */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
-public class HistogramFacetIntegrationTest extends AbstractIntegrationTest {
-
-    @Test
-    public void testQuery() throws IOException {
-        createIndex("histogram_facet");
-        client().admin().indices().putMapping(new PutMappingRequest("histogram_facet")
-                .type("document")
-                .source("{\"document\":{\"properties\":{\"quantity\":{\"store\":true,\"type\":\"integer\"}}}}")
-        ).actionGet();
-
-        String query = "{\n" +
-                "    \"query\" : {\n" +
-                "        \"match_all\" : {}\n" +
-                "    },\n" +
-                "    \"facets\" : {\n" +
-                "        \"histo1\" : {\n" +
-                "            \"histogram\" : {\n" +
-                "                \"field\" : \"quantity\",\n" +
-                "                \"interval\" : 100\n" +
-                "            }\n" +
-                "        }\n" +
-                "    }\n" +
-                "}";
-
-        for (int i = 0; i < 2; i++) {
-            Index index = new Index.Builder("{\"quantity\":\"910\"}")
-                    .index("histogram_facet")
-                    .type("document")
-                    .refresh(true)
-                    .build();
-            client.execute(index);
-        }
-
-        Index index = new Index.Builder("{\"quantity\":\"800\"}")
-                .index("histogram_facet")
-                .type("document")
-                .refresh(true)
-                .build();
-        client.execute(index);
-
-        index = new Index.Builder("{\"quantity\":\"1110\"}")
-                .index("histogram_facet")
-                .type("document")
-                .refresh(true)
-                .build();
-        client.execute(index);
-
-        Search search = new Search.Builder(query)
-                .addIndex("histogram_facet")
-                .addType("document")
-                .build();
-        SearchResult result = client.execute(search);
-        List<HistogramFacet> histogramFacets = result.getFacets(HistogramFacet.class);
-
-        assertEquals(1, histogramFacets.size());
-        HistogramFacet histogramFacetFirst = histogramFacets.get(0);
-        assertEquals("histo1", histogramFacetFirst.getName());
-
-        List<HistogramFacet.Histogram> histograms = histogramFacetFirst.getHistograms();
-        assertEquals(3, histograms.size());
-        assertTrue(1L == histograms.get(0).getCount());
-        assertTrue(800L == histograms.get(0).getKey());
-        assertTrue(2L == histograms.get(1).getCount());
-        assertTrue(900L == histograms.get(1).getKey());
-        assertTrue(1L == histograms.get(2).getCount());
-        assertTrue(1100L == histograms.get(2).getKey());
-    }
-}
diff --git a/jest/src/test/java/io/searchbox/core/search/facet/QueryFacetIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/facet/QueryFacetIntegrationTest.java
deleted file mode 100644
index 92bbe9b6..00000000
--- a/jest/src/test/java/io/searchbox/core/search/facet/QueryFacetIntegrationTest.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package io.searchbox.core.search.facet;
-
-import io.searchbox.common.AbstractIntegrationTest;
-import io.searchbox.core.Index;
-import io.searchbox.core.Search;
-import io.searchbox.core.SearchResult;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
-import org.junit.Test;
-
-import java.io.IOException;
-import java.util.List;
-
-/**
- * @author ferhat
- */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
-public class QueryFacetIntegrationTest extends AbstractIntegrationTest {
-
-    @Test
-    public void testQuery() throws IOException {
-        createIndex("query_facet");
-        String query = "{\n" +
-                "            \"facets\" : {\n" +
-                "            \"wow_facet\" : {\n" +
-                "                \"query\" : {\n" +
-                "                    \"term\" : { \"tag\" : \"wow\" }\n" +
-                "                }\n" +
-                "            },\n" +
-                "            \"none_user_facet\" : {\n" +
-                "                \"query\" : {\n" +
-                "                    \"term\" : { \"user\" : \"none\" }\n" +
-                "                }\n" +
-                "            }\n" +
-                "        }\n" +
-                "        }";
-
-        for (int i = 0; i < 2; i++) {
-            Index index = new Index.Builder("{\"tag\":\"wow\", \"user\":\"root\"}").index("query_facet").type("document").refresh(true).build();
-            client.execute(index);
-        }
-
-        Index index = new Index.Builder("{\"tag\":\"test\", \"user\":\"none\"}").index("query_facet").type("document").refresh(true).build();
-        client.execute(index);
-
-        Search search = new Search.Builder(query)
-                .addIndex("query_facet")
-                .addType("document")
-                .build();
-        SearchResult result = client.execute(search);
-        List<QueryFacet> filterFacets = result.getFacets(QueryFacet.class);
-
-        assertEquals(2, filterFacets.size());
-        QueryFacet queryFacetFirst = filterFacets.get(0);
-
-        assertEquals("wow_facet", queryFacetFirst.getName());
-        assertEquals(2L, queryFacetFirst.getCount().longValue());
-
-        QueryFacet queryFacetSecond = filterFacets.get(1);
-
-        assertEquals("none_user_facet", queryFacetSecond.getName());
-        assertEquals(1L, queryFacetSecond.getCount().longValue());
-    }
-}
\ No newline at end of file
diff --git a/jest/src/test/java/io/searchbox/core/search/facet/RangeFacetIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/facet/RangeFacetIntegrationTest.java
deleted file mode 100644
index 82c318ae..00000000
--- a/jest/src/test/java/io/searchbox/core/search/facet/RangeFacetIntegrationTest.java
+++ /dev/null
@@ -1,152 +0,0 @@
-package io.searchbox.core.search.facet;
-
-import io.searchbox.common.AbstractIntegrationTest;
-import io.searchbox.core.Index;
-import io.searchbox.core.Search;
-import io.searchbox.core.SearchResult;
-import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
-import org.junit.Test;
-
-import java.io.IOException;
-import java.util.List;
-
-/**
- * @author ferhat
- */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
-public class RangeFacetIntegrationTest extends AbstractIntegrationTest {
-
-    @Test
-    public void testQuery() throws IOException {
-        createIndex("range_facet");
-        client().admin().indices().putMapping(new PutMappingRequest("range_facet")
-                .type("document")
-                .source("{\"document\":{\"properties\":{\"width\":{\"store\":true,\"type\":\"integer\"}}}}")
-        ).actionGet();
-
-        String query = "{\n" +
-                "   \"query\":{\n" +
-                "      \"match_all\":{\n" +
-                "\n" +
-                "      }\n" +
-                "   },\n" +
-                "   \"facets\":{\n" +
-                "      \"range1\":{\n" +
-                "         \"range\":{\n" +
-                "            \"field\":\"width\",\n" +
-                "            \"ranges\":[\n" +
-                "               {\n" +
-                "                  \"to\":50\n" +
-                "               },\n" +
-                "               {\n" +
-                "                  \"from\":70,\n" +
-                "                  \"to\":120\n" +
-                "               },\n" +
-                "               {\n" +
-                "                  \"from\":150\n" +
-                "               }\n" +
-                "            ]\n" +
-                "         }\n" +
-                "      },\n" +
-                "      \"range2\":{\n" +
-                "         \"range\":{\n" +
-                "            \"field\":\"width\",\n" +
-                "            \"ranges\":[\n" +
-                "               {\n" +
-                "                  \"to\":20\n" +
-                "               },\n" +
-                "               {\n" +
-                "                  \"from\":20,\n" +
-                "                  \"to\":70\n" +
-                "               },\n" +
-                "               {\n" +
-                "                  \"from\":75\n" +
-                "               }\n" +
-                "            ]\n" +
-                "         }\n" +
-                "      }\n" +
-                "   }\n" +
-                "}";
-
-        for (int i = 0; i < 2; i++) {
-            Index index = new Index.Builder("{\"width\":\"80\"}").index("range_facet").type("document").refresh(true).build();
-            client.execute(index);
-        }
-
-        Index index = new Index.Builder("{\"width\":\"70\"}").index("range_facet").type("document").refresh(true).build();
-        client.execute(index);
-
-        index = new Index.Builder("{\"width\":\"30\"}").index("range_facet").type("document").refresh(true).build();
-        client.execute(index);
-
-        Search search = new Search.Builder(query)
-                .addIndex("range_facet")
-                .addType("document")
-                .build();
-        SearchResult result = client.execute(search);
-        List<RangeFacet> rangeFacetList = result.getFacets(RangeFacet.class);
-
-        assertTrue(2 == rangeFacetList.size());
-
-        RangeFacet rangeFacetFirst = rangeFacetList.get(0);
-        assertEquals("range1", rangeFacetFirst.getName());
-
-        assertEquals(null, rangeFacetFirst.getRanges().get(0).getFrom());
-        assertEquals(50, rangeFacetFirst.getRanges().get(0).getTo().intValue());
-        assertEquals(1L, rangeFacetFirst.getRanges().get(0).getCount().longValue());
-        assertEquals(30, rangeFacetFirst.getRanges().get(0).getMin().intValue());
-        assertEquals(30, rangeFacetFirst.getRanges().get(0).getMax().intValue());
-        assertEquals(1L, rangeFacetFirst.getRanges().get(0).getTotalCount().longValue());
-        assertEquals(30, rangeFacetFirst.getRanges().get(0).getTotal().intValue());
-        assertEquals(30, rangeFacetFirst.getRanges().get(0).getMean().intValue());
-
-        assertEquals(70, rangeFacetFirst.getRanges().get(1).getFrom().intValue());
-        assertEquals(120, rangeFacetFirst.getRanges().get(1).getTo().intValue());
-        assertEquals(3L, rangeFacetFirst.getRanges().get(1).getCount().longValue());
-        assertEquals(70, rangeFacetFirst.getRanges().get(1).getMin().intValue());
-        assertEquals(80, rangeFacetFirst.getRanges().get(1).getMax().intValue());
-        assertEquals(3L, rangeFacetFirst.getRanges().get(1).getTotalCount().longValue());
-        assertEquals(230, rangeFacetFirst.getRanges().get(1).getTotal().intValue());
-        assertEquals(76, rangeFacetFirst.getRanges().get(1).getMean().intValue());
-
-        assertEquals(150, rangeFacetFirst.getRanges().get(2).getFrom().intValue());
-        assertEquals(null, rangeFacetFirst.getRanges().get(2).getTo());
-        assertEquals(0L, rangeFacetFirst.getRanges().get(2).getCount().longValue());
-        assertEquals(null, rangeFacetFirst.getRanges().get(2).getMin());
-        assertEquals(null, rangeFacetFirst.getRanges().get(2).getMax());
-        assertEquals(0L, rangeFacetFirst.getRanges().get(2).getTotalCount().longValue());
-        assertEquals(0, rangeFacetFirst.getRanges().get(2).getTotal().intValue());
-        assertEquals(0, rangeFacetFirst.getRanges().get(2).getMean().intValue());
-
-        RangeFacet rangeFacetSecond = rangeFacetList.get(1);
-        assertEquals("range2", rangeFacetSecond.getName());
-
-        assertEquals(null, rangeFacetSecond.getRanges().get(0).getFrom());
-        assertEquals(20, rangeFacetSecond.getRanges().get(0).getTo().intValue());
-        assertEquals(0L, rangeFacetSecond.getRanges().get(0).getCount().longValue());
-        assertEquals(null, rangeFacetSecond.getRanges().get(0).getMin());
-        assertEquals(null, rangeFacetSecond.getRanges().get(0).getMax());
-        assertEquals(0L, rangeFacetSecond.getRanges().get(0).getTotalCount().longValue());
-        assertEquals(0, rangeFacetSecond.getRanges().get(0).getTotal().intValue());
-        assertEquals(0, rangeFacetSecond.getRanges().get(0).getMean().intValue());
-
-        assertEquals(20, rangeFacetSecond.getRanges().get(1).getFrom().intValue());
-        assertEquals(70, rangeFacetSecond.getRanges().get(1).getTo().intValue());
-        assertEquals(1L, rangeFacetSecond.getRanges().get(1).getCount().longValue());
-        assertEquals(30, rangeFacetSecond.getRanges().get(1).getMin().intValue());
-        assertEquals(30, rangeFacetSecond.getRanges().get(1).getMax().intValue());
-        assertEquals(1L, rangeFacetSecond.getRanges().get(1).getTotalCount().longValue());
-        assertEquals(30, rangeFacetSecond.getRanges().get(1).getTotal().intValue());
-        assertEquals(30, rangeFacetSecond.getRanges().get(1).getMean().intValue());
-
-        assertEquals(75, rangeFacetSecond.getRanges().get(2).getFrom().intValue());
-        assertEquals(null, rangeFacetSecond.getRanges().get(2).getTo());
-        assertEquals(2L, rangeFacetSecond.getRanges().get(2).getCount().longValue());
-        assertEquals(80, rangeFacetSecond.getRanges().get(2).getMin().intValue());
-        assertEquals(80, rangeFacetSecond.getRanges().get(2).getMax().intValue());
-        assertEquals(2L, rangeFacetSecond.getRanges().get(2).getTotalCount().longValue());
-        assertEquals(160, rangeFacetSecond.getRanges().get(2).getTotal().intValue());
-        assertEquals(80, rangeFacetSecond.getRanges().get(2).getMean().intValue());
-    }
-}
diff --git a/jest/src/test/java/io/searchbox/core/search/facet/StatisticalFacetIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/facet/StatisticalFacetIntegrationTest.java
deleted file mode 100644
index c52f32e7..00000000
--- a/jest/src/test/java/io/searchbox/core/search/facet/StatisticalFacetIntegrationTest.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package io.searchbox.core.search.facet;
-
-import io.searchbox.common.AbstractIntegrationTest;
-import io.searchbox.core.Index;
-import io.searchbox.core.Search;
-import io.searchbox.core.SearchResult;
-import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
-import org.junit.Test;
-
-import java.io.IOException;
-import java.util.List;
-
-/**
- * @author ferhat
- */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
-public class StatisticalFacetIntegrationTest extends AbstractIntegrationTest {
-
-    @Test
-    public void testQuery() throws IOException {
-        createIndex("statistical_facet");
-        client().admin().indices().putMapping(new PutMappingRequest("statistical_facet")
-                .type("document")
-                .source("{\"document\":{\"properties\":{\"price\":{\"store\":true,\"type\":\"integer\"}}}}")
-        ).actionGet();
-
-        String query = "{\n" +
-                "    \"query\" : {\n" +
-                "        \"match_all\" : {}\n" +
-                "    },\n" +
-                "    \"facets\" : {\n" +
-                "        \"stat1\" : {\n" +
-                "            \"statistical\" : {\n" +
-                "                \"field\" : \"price\"\n" +
-                "            }\n" +
-                "        }\n" +
-                "    }\n" +
-                "} ";
-
-        for (int i = 0; i < 2; i++) {
-            Index index = new Index.Builder("{\"price\":\"10\"}").index("statistical_facet").type("document").refresh(true).build();
-            client.execute(index);
-        }
-
-        Index index = new Index.Builder("{\"price\":\"32\"}").index("statistical_facet").type("document").refresh(true).build();
-        client.execute(index);
-
-        Search search = new Search.Builder(query)
-                .addType("document")
-                .addIndex("statistical_facet")
-                .build();
-        SearchResult result = client.execute(search);
-        List<StatisticalFacet> statisticalFacets = result.getFacets(StatisticalFacet.class);
-
-        assertEquals(1, statisticalFacets.size());
-        StatisticalFacet statisticalFacet = statisticalFacets.get(0);
-        assertEquals("stat1", statisticalFacet.getName());
-        assertEquals(3, statisticalFacet.getCount().longValue());
-        assertEquals(52, statisticalFacet.getTotal().intValue());
-        assertEquals(10, statisticalFacet.getMin().intValue());
-        assertEquals(32, statisticalFacet.getMax().intValue());
-        assertEquals(17, statisticalFacet.getMean().intValue());
-        assertEquals(1224, statisticalFacet.getSumOfSquares().intValue());
-        assertEquals(107, statisticalFacet.getVariance().intValue());
-        assertEquals(10, statisticalFacet.getStdDeviation().intValue());
-    }
-}
diff --git a/jest/src/test/java/io/searchbox/core/search/facet/TermsFacetIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/facet/TermsFacetIntegrationTest.java
deleted file mode 100644
index 6bead96e..00000000
--- a/jest/src/test/java/io/searchbox/core/search/facet/TermsFacetIntegrationTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package io.searchbox.core.search.facet;
-
-import io.searchbox.common.AbstractIntegrationTest;
-import io.searchbox.core.Index;
-import io.searchbox.core.Search;
-import io.searchbox.core.SearchResult;
-import org.elasticsearch.index.query.QueryBuilders;
-import org.elasticsearch.search.builder.SearchSourceBuilder;
-import org.elasticsearch.search.facet.FacetBuilders;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
-import org.junit.Test;
-
-import java.io.IOException;
-import java.util.List;
-
-/**
- * @author ferhat
- */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
-public class TermsFacetIntegrationTest extends AbstractIntegrationTest {
-
-    @Test
-    public void testQuery() throws IOException {
-        createIndex("terms_facet");
-
-        SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
-        searchSourceBuilder.query(QueryBuilders.matchAllQuery());
-        searchSourceBuilder.facet(FacetBuilders.termsFacet("tag").field("tag").size(10)).facet(FacetBuilders.termsFacet("user").field("user").size(10));
-        String query = searchSourceBuilder.toString();
-
-        for (int i = 0; i < 2; i++) {
-            Index index = new Index.Builder("{\"tag\":\"value\", \"user\":\"root\"}")
-                    .index("terms_facet")
-                    .type("document")
-                    .refresh(true)
-                    .build();
-            client.execute(index);
-        }
-
-        Index index = new Index.Builder("{\"tag\":\"test\", \"user\":\"none\"}")
-                .index("terms_facet")
-                .type("document")
-                .refresh(true)
-                .build();
-        client.execute(index);
-
-        Search search = new Search.Builder(query)
-                .addIndex("terms_facet")
-                .addType("document")
-                .build();
-        SearchResult result = client.execute(search);
-        List<TermsFacet> termsFacets = result.getFacets(TermsFacet.class);
-
-        assertEquals(2, termsFacets.size());
-
-        TermsFacet termsFacetFirst = termsFacets.get(0);
-        assertEquals("tag", termsFacetFirst.getName());
-        assertTrue(3L == termsFacetFirst.getTotal());
-        assertTrue(0L == termsFacetFirst.getMissing());
-        assertTrue(0L == termsFacetFirst.getOther());
-        assertTrue(termsFacetFirst.terms().size() == 2);
-        assertEquals("value", termsFacetFirst.terms().get(0).getName());
-        assertTrue(2 == termsFacetFirst.terms().get(0).getCount());
-        assertEquals("test", termsFacetFirst.terms().get(1).getName());
-        assertTrue(1 == termsFacetFirst.terms().get(1).getCount());
-
-        TermsFacet termsFacetSecond = termsFacets.get(1);
-        assertEquals("user", termsFacetSecond.getName());
-        assertTrue(3L == termsFacetSecond.getTotal());
-        assertTrue(0L == termsFacetSecond.getMissing());
-        assertTrue(0L == termsFacetSecond.getOther());
-        assertTrue(termsFacetSecond.terms().size() == 2);
-        assertEquals("root", termsFacetSecond.terms().get(0).getName());
-        assertTrue(2 == termsFacetSecond.terms().get(0).getCount());
-        assertEquals("none", termsFacetSecond.terms().get(1).getName());
-        assertTrue(1 == termsFacetSecond.terms().get(1).getCount());
-    }
-}
diff --git a/jest/src/test/java/io/searchbox/core/search/facet/TermsStatsFacetIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/facet/TermsStatsFacetIntegrationTest.java
deleted file mode 100644
index de04b4f4..00000000
--- a/jest/src/test/java/io/searchbox/core/search/facet/TermsStatsFacetIntegrationTest.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package io.searchbox.core.search.facet;
-
-import io.searchbox.common.AbstractIntegrationTest;
-import io.searchbox.core.Index;
-import io.searchbox.core.Search;
-import io.searchbox.core.SearchResult;
-import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
-import org.junit.Test;
-
-import java.io.IOException;
-import java.util.List;
-
-/**
- * @author ferhat
- */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
-public class TermsStatsFacetIntegrationTest extends AbstractIntegrationTest {
-
-    @Test
-    public void testQuery() throws IOException {
-        createIndex("terms_stats_facet");
-        client().admin().indices().putMapping(new PutMappingRequest("terms_stats_facet")
-                .type("document")
-                .source("{\"document\":{\"properties\":{\"tag\":{\"store\":true,\"type\":\"string\"}," +
-                        "\"price\":{\"store\":true,\"type\":\"integer\"}}}}")
-        ).actionGet();
-
-        String query = "{\n" +
-                "    \"query\" : {\n" +
-                "        \"match_all\" : {  }\n" +
-                "    },\n" +
-                "    \"facets\" : {\n" +
-                "        \"tag_price_stats\" : {\n" +
-                "            \"terms_stats\" : {\n" +
-                "                \"key_field\" : \"tag\",\n" +
-                "                \"value_field\" : \"price\"\n" +
-                "            }\n" +
-                "        }\n" +
-                "    }\n" +
-                "}";
-
-        for (int i = 0; i < 2; i++) {
-            Index index = new Index.Builder("{\"tag\":\"value\", \"price\":\"12\"}")
-                    .index("terms_stats_facet")
-                    .type("document")
-                    .refresh(true)
-                    .build();
-            client.execute(index);
-        }
-
-        Index index = new Index.Builder("{\"tag\":\"test\", \"price\":\"30\"}")
-                .index("terms_stats_facet")
-                .type("document")
-                .refresh(true)
-                .build();
-        client.execute(index);
-
-        index = new Index.Builder("{\"tag\":\"test\", \"price\":\"40\"}")
-                .index("terms_stats_facet")
-                .type("document")
-                .refresh(true)
-                .build();
-        client.execute(index);
-
-        Search search = new Search.Builder(query)
-                .addType("document")
-                .addIndex("terms_stats_facet")
-                .build();
-        SearchResult result = client.execute(search);
-        List<TermsStatsFacet> termsStatsFacets = result.getFacets(TermsStatsFacet.class);
-
-        assertEquals(1, termsStatsFacets.size());
-
-        TermsStatsFacet termsStatsFacet = termsStatsFacets.get(0);
-        assertEquals("tag_price_stats", termsStatsFacet.getName());
-        assertEquals(0L, termsStatsFacet.getMissing().longValue());
-
-        List<TermsStatsFacet.TermsStats> termsStatsList = termsStatsFacet.getTermsStatsList();
-        assertEquals(2, termsStatsList.size());
-
-        assertEquals("value", termsStatsList.get(0).getTerm());
-        assertEquals(2L, termsStatsList.get(0).getCount().longValue());
-        assertEquals(2L, termsStatsList.get(0).getTotalCount().longValue());
-        assertEquals(24, termsStatsList.get(0).getTotal().intValue());
-        assertEquals(12, termsStatsList.get(0).getMin().intValue());
-        assertEquals(12, termsStatsList.get(0).getMax().intValue());
-        assertEquals(12, termsStatsList.get(0).getMean().intValue());
-
-        assertEquals("test", termsStatsList.get(1).getTerm());
-        assertEquals(2L, termsStatsList.get(1).getCount().longValue());
-        assertEquals(2L, termsStatsList.get(1).getTotalCount().longValue());
-        assertEquals(70, termsStatsList.get(1).getTotal().intValue());
-        assertEquals(30, termsStatsList.get(1).getMin().intValue());
-        assertEquals(40, termsStatsList.get(1).getMax().intValue());
-        assertEquals(35, termsStatsList.get(1).getMean().intValue());
-    }
-}
diff --git a/jest/src/test/java/io/searchbox/core/search/sort/SortIntegrationTest.java b/jest/src/test/java/io/searchbox/core/search/sort/SortIntegrationTest.java
index 4c5016e3..59aa056f 100644
--- a/jest/src/test/java/io/searchbox/core/search/sort/SortIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/core/search/sort/SortIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.common.AbstractIntegrationTest;
 import io.searchbox.core.Search;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.index.IndexRequest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -17,7 +17,7 @@ import java.util.Map;
  * @author ferhat
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class SortIntegrationTest extends AbstractIntegrationTest {
 
     String query = "{\"query\":{ \"match_all\" : { }}}";
diff --git a/jest/src/test/java/io/searchbox/indices/AnalyzeIntegrationTest.java b/jest/src/test/java/io/searchbox/indices/AnalyzeIntegrationTest.java
index a2f4a5dd..d9a3e834 100644
--- a/jest/src/test/java/io/searchbox/indices/AnalyzeIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/indices/AnalyzeIntegrationTest.java
@@ -6,7 +6,7 @@ import io.searchbox.action.Action;
 import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
 import org.apache.commons.io.FileUtils;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -18,7 +18,7 @@ import java.net.URISyntaxException;
 /**
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class AnalyzeIntegrationTest extends AbstractIntegrationTest {
 
     private static String sample_book;
@@ -40,7 +40,7 @@ public class AnalyzeIntegrationTest extends AbstractIntegrationTest {
     public void testWithAnalyzer() throws IOException {
         Action action = new Analyze.Builder()
                 .analyzer("standard")
-                .source(sample_book)
+                .text(sample_book)
                 .build();
         expectTokens(action, 22);
     }
@@ -49,7 +49,7 @@ public class AnalyzeIntegrationTest extends AbstractIntegrationTest {
     public void testWithAnalyzerWithTextFormat() throws IOException {
         Action action = new Analyze.Builder()
                 .analyzer("standard")
-                .source(sample_book)
+                .text(sample_book)
                 .format("text")
                 .build();
         JestResult result = client.execute(action);
@@ -66,7 +66,7 @@ public class AnalyzeIntegrationTest extends AbstractIntegrationTest {
         Action action = new Analyze.Builder()
                 .tokenizer("keyword")
                 .filter("lowercase")
-                .source(sample_book)
+                .text(sample_book)
                 .build();
         expectTokens(action, 1);
     }
diff --git a/jest/src/test/java/io/searchbox/indices/CloseIndexIntegrationTest.java b/jest/src/test/java/io/searchbox/indices/CloseIndexIntegrationTest.java
index d64c3a6f..b0ec2b78 100644
--- a/jest/src/test/java/io/searchbox/indices/CloseIndexIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/indices/CloseIndexIntegrationTest.java
@@ -3,7 +3,7 @@ package io.searchbox.indices;
 import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
 import org.elasticsearch.action.admin.indices.stats.IndicesStatsRequest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -13,7 +13,7 @@ import java.util.concurrent.TimeoutException;
 /**
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 2)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 2)
 public class CloseIndexIntegrationTest extends AbstractIntegrationTest {
     private static final String INDEX_NAME_1 = "test_index_1";
     private static final String INDEX_NAME_2 = "test_index_2";
diff --git a/jest/src/test/java/io/searchbox/indices/CreateIndexIntegrationTest.java b/jest/src/test/java/io/searchbox/indices/CreateIndexIntegrationTest.java
index 5940e8d3..8171bd98 100644
--- a/jest/src/test/java/io/searchbox/indices/CreateIndexIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/indices/CreateIndexIntegrationTest.java
@@ -6,9 +6,8 @@ import org.elasticsearch.action.admin.indices.mapping.get.GetMappingsRequest;
 import org.elasticsearch.action.admin.indices.mapping.get.GetMappingsResponse;
 import org.elasticsearch.action.admin.indices.settings.get.GetSettingsRequest;
 import org.elasticsearch.action.admin.indices.settings.get.GetSettingsResponse;
-import org.elasticsearch.common.settings.ImmutableSettings;
 import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -17,7 +16,7 @@ import java.util.Map;
 /**
  * @author Dogukan Sonmez
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class CreateIndexIntegrationTest extends AbstractIntegrationTest {
 
     @Test
@@ -31,7 +30,7 @@ public class CreateIndexIntegrationTest extends AbstractIntegrationTest {
     @Test
     public void createIndexWithMapSettings() throws IOException {
         String index = "anothernewindex";
-        final ImmutableSettings.Builder indexerSettings = ImmutableSettings.settingsBuilder();
+        final Settings.Builder indexerSettings = Settings.settingsBuilder();
         indexerSettings.put("analysis.analyzer.events.type", "custom");
         indexerSettings.put("analysis.analyzer.events.tokenizer", "standard");
         indexerSettings.put("analysis.analyzer.events.filter", "snowball, standard, lowercase");
diff --git a/jest/src/test/java/io/searchbox/indices/DeleteIndexIntegrationTest.java b/jest/src/test/java/io/searchbox/indices/DeleteIndexIntegrationTest.java
index 2678937d..d055e330 100644
--- a/jest/src/test/java/io/searchbox/indices/DeleteIndexIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/indices/DeleteIndexIntegrationTest.java
@@ -2,7 +2,7 @@ package io.searchbox.indices;
 
 import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -10,7 +10,7 @@ import java.io.IOException;
 /**
  * @author ferhat sobay
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class DeleteIndexIntegrationTest extends AbstractIntegrationTest {
 
     @Test
diff --git a/jest/src/test/java/io/searchbox/indices/FlushIntegrationTest.java b/jest/src/test/java/io/searchbox/indices/FlushIntegrationTest.java
index 1c89fef9..f8737907 100644
--- a/jest/src/test/java/io/searchbox/indices/FlushIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/indices/FlushIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.common.AbstractIntegrationTest;
 import org.elasticsearch.action.admin.indices.stats.IndexStats;
 import org.elasticsearch.action.admin.indices.stats.IndicesStatsRequest;
 import org.elasticsearch.action.admin.indices.stats.IndicesStatsResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -16,7 +16,7 @@ import java.util.concurrent.TimeoutException;
 /**
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 2)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST, numDataNodes = 2)
 public class FlushIntegrationTest extends AbstractIntegrationTest {
 
     private static final String INDEX_NAME = "flush_test_index";
diff --git a/jest/src/test/java/io/searchbox/indices/GetMappingIntegrationTest.java b/jest/src/test/java/io/searchbox/indices/GetMappingIntegrationTest.java
index 878663ec..1f686802 100644
--- a/jest/src/test/java/io/searchbox/indices/GetMappingIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/indices/GetMappingIntegrationTest.java
@@ -9,19 +9,18 @@ import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
 import org.elasticsearch.action.admin.indices.mapping.put.PutMappingResponse;
 import org.elasticsearch.action.admin.indices.refresh.RefreshRequest;
 import org.elasticsearch.action.admin.indices.refresh.RefreshResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 /**
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class GetMappingIntegrationTest extends AbstractIntegrationTest {
 
     static final String INDEX_1_NAME = "book";
     static final String INDEX_2_NAME = "video";
     static final String CUSTOM_TYPE = "science-fiction";
-    static final String DEFAULT_TYPE = "_default_";
 
     @Test
     public void testWithoutParameters() throws Exception {
@@ -34,10 +33,12 @@ public class GetMappingIntegrationTest extends AbstractIntegrationTest {
                                 "\"author\":{\"store\":true,\"type\":\"string\"}}}}")
         ).actionGet();
         assertTrue(putMappingResponse.isAcknowledged());
-        waitForConcreteMappingsOnAll(INDEX_1_NAME, CUSTOM_TYPE, "title", "author");
+
+
+        assertConcreteMappingsOnAll(INDEX_1_NAME, CUSTOM_TYPE, "title", "author");
 
         RefreshResponse refreshResponse = client().admin().indices()
-                .refresh(new RefreshRequest(INDEX_1_NAME, INDEX_2_NAME).force(true)).actionGet();
+                .refresh(new RefreshRequest(INDEX_1_NAME, INDEX_2_NAME)).actionGet();
         assertEquals("All shards should have been refreshed", 0, refreshResponse.getFailedShards());
 
         GetMapping getMapping = new GetMapping.Builder().build();
@@ -62,10 +63,10 @@ public class GetMappingIntegrationTest extends AbstractIntegrationTest {
                                 "\"author\":{\"store\":true,\"type\":\"string\"}}}}")
         ).actionGet();
         assertTrue(putMappingResponse.isAcknowledged());
-        waitForConcreteMappingsOnAll(INDEX_1_NAME, CUSTOM_TYPE, "title", "author");
+        assertConcreteMappingsOnAll(INDEX_1_NAME, CUSTOM_TYPE, "title", "author");
 
         RefreshResponse refreshResponse = client().admin().indices()
-                .refresh(new RefreshRequest(INDEX_1_NAME, INDEX_2_NAME).force(true)).actionGet();
+                .refresh(new RefreshRequest(INDEX_1_NAME, INDEX_2_NAME)).actionGet();
         assertEquals("All shards should have been refreshed", 0, refreshResponse.getFailedShards());
 
         Action getMapping = new GetMapping.Builder().addIndex(INDEX_2_NAME).build();
@@ -96,11 +97,11 @@ public class GetMappingIntegrationTest extends AbstractIntegrationTest {
                                 "\"isbn\":{\"store\":true,\"type\":\"string\"}}}}")
         ).actionGet();
         assertTrue(putMappingResponse.isAcknowledged());
-        waitForConcreteMappingsOnAll(INDEX_1_NAME, CUSTOM_TYPE, "title", "author");
-        waitForConcreteMappingsOnAll(INDEX_2_NAME, CUSTOM_TYPE, "title", "isbn");
+        assertConcreteMappingsOnAll(INDEX_1_NAME, CUSTOM_TYPE, "title", "author");
+        assertConcreteMappingsOnAll(INDEX_2_NAME, CUSTOM_TYPE, "title", "isbn");
 
         RefreshResponse refreshResponse = client().admin().indices()
-                .refresh(new RefreshRequest(INDEX_1_NAME, INDEX_2_NAME).force(true)).actionGet();
+                .refresh(new RefreshRequest(INDEX_1_NAME, INDEX_2_NAME)).actionGet();
         assertEquals("All shards should have been refreshed", 0, refreshResponse.getFailedShards());
 
         Action getMapping = new GetMapping.Builder().addIndex(INDEX_2_NAME).addIndex(INDEX_1_NAME).build();
diff --git a/jest/src/test/java/io/searchbox/indices/IndicesExistsIntegrationTest.java b/jest/src/test/java/io/searchbox/indices/IndicesExistsIntegrationTest.java
index 1371ec7f..facf689b 100644
--- a/jest/src/test/java/io/searchbox/indices/IndicesExistsIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/indices/IndicesExistsIntegrationTest.java
@@ -3,7 +3,7 @@ package io.searchbox.indices;
 import io.searchbox.action.Action;
 import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -12,7 +12,7 @@ import java.io.IOException;
 /**
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class IndicesExistsIntegrationTest extends AbstractIntegrationTest {
 
     static final String INDEX_1_NAME = "osman";
diff --git a/jest/src/test/java/io/searchbox/indices/OpenIndexIntegrationTest.java b/jest/src/test/java/io/searchbox/indices/OpenIndexIntegrationTest.java
index 97de840f..0cc47d2d 100644
--- a/jest/src/test/java/io/searchbox/indices/OpenIndexIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/indices/OpenIndexIntegrationTest.java
@@ -6,7 +6,7 @@ import org.elasticsearch.action.ActionFuture;
 import org.elasticsearch.action.admin.indices.close.CloseIndexRequest;
 import org.elasticsearch.action.admin.indices.close.CloseIndexResponse;
 import org.elasticsearch.action.admin.indices.stats.IndicesStatsRequest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -17,7 +17,7 @@ import java.util.concurrent.TimeoutException;
 /**
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 2)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST, numDataNodes = 2)
 public class OpenIndexIntegrationTest extends AbstractIntegrationTest {
     private static final String INDEX_NAME = "test_index";
     private static final String INDEX_NAME_2 = "test_index_2";
diff --git a/jest/src/test/java/io/searchbox/indices/OptimizeIntegrationTest.java b/jest/src/test/java/io/searchbox/indices/OptimizeIntegrationTest.java
index 81db3162..ead2601d 100644
--- a/jest/src/test/java/io/searchbox/indices/OptimizeIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/indices/OptimizeIntegrationTest.java
@@ -4,7 +4,7 @@ import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
 import org.elasticsearch.action.admin.indices.stats.IndicesStatsRequest;
 import org.elasticsearch.action.admin.indices.stats.IndicesStatsResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Ignore;
 import org.junit.Test;
 
@@ -16,7 +16,7 @@ import java.util.concurrent.TimeoutException;
 /**
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class OptimizeIntegrationTest extends AbstractIntegrationTest {
 
     private static final String INDEX_NAME = "flush_test_index";
diff --git a/jest/src/test/java/io/searchbox/indices/PutMappingIntegrationTest.java b/jest/src/test/java/io/searchbox/indices/PutMappingIntegrationTest.java
index 0b5f7a46..98694d9c 100644
--- a/jest/src/test/java/io/searchbox/indices/PutMappingIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/indices/PutMappingIntegrationTest.java
@@ -5,10 +5,15 @@ import io.searchbox.common.AbstractIntegrationTest;
 import io.searchbox.indices.mapping.PutMapping;
 import org.elasticsearch.action.admin.indices.settings.get.GetSettingsRequest;
 import org.elasticsearch.action.admin.indices.settings.get.GetSettingsResponse;
+import org.elasticsearch.cluster.ClusterState;
+import org.elasticsearch.cluster.routing.ShardRouting;
+import org.elasticsearch.index.IndexService;
 import org.elasticsearch.index.mapper.DocumentMapper;
+import org.elasticsearch.index.mapper.MapperService;
 import org.elasticsearch.index.mapper.core.StringFieldMapper;
 import org.elasticsearch.index.mapper.object.RootObjectMapper;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.indices.IndicesService;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -18,7 +23,7 @@ import java.io.IOException;
  * @author ferhat
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class PutMappingIntegrationTest extends AbstractIntegrationTest {
 
     private static final String INDEX_NAME = "mapping_index";
@@ -35,7 +40,7 @@ public class PutMappingIntegrationTest extends AbstractIntegrationTest {
         PutMapping putMapping = new PutMapping.Builder(
                 INDEX_NAME,
                 INDEX_TYPE,
-                "{ \"document\" : { \"properties\" : { \"message\" : {\"type\" : \"string\", \"store\" : \"yes\"} } } }"
+                "{ \"document\" : { \"properties\" : { \"message_1\" : {\"type\" : \"string\", \"store\" : \"yes\"} } } }"
         ).build();
 
         JestResult result = client.execute(putMapping);
@@ -44,14 +49,17 @@ public class PutMappingIntegrationTest extends AbstractIntegrationTest {
 
     @Test
     public void testPutMappingWithDocumentMapperBuilder() throws IOException {
-        RootObjectMapper.Builder rootObjectMapperBuilder = new RootObjectMapper.Builder(INDEX_TYPE).add(
-                new StringFieldMapper.Builder("message").store(true)
-        );
+        RootObjectMapper.Builder rootObjectMapperBuilder = new RootObjectMapper.Builder(INDEX_TYPE)
+                .add(new StringFieldMapper.Builder("message_2").store(true));
 
         GetSettingsResponse getSettingsResponse =
                 client().admin().indices().getSettings(new GetSettingsRequest().indices(INDEX_NAME)).actionGet();
-        DocumentMapper documentMapper = new DocumentMapper
-                .Builder(INDEX_NAME, getSettingsResponse.getIndexToSettings().get(INDEX_NAME), rootObjectMapperBuilder).build(null);
+        MapperService mapperService = getMapperService();
+        DocumentMapper documentMapper = new DocumentMapper.Builder(
+                getSettingsResponse.getIndexToSettings().get(INDEX_NAME),
+                rootObjectMapperBuilder,
+                mapperService)
+                .build(mapperService, mapperService.documentMapperParser());
         String expectedMappingSource = documentMapper.mappingSource().toString();
         PutMapping putMapping = new PutMapping.Builder(
                 INDEX_NAME,
@@ -63,4 +71,13 @@ public class PutMappingIntegrationTest extends AbstractIntegrationTest {
         assertTrue(result.getErrorMessage(), result.isSucceeded());
     }
 
+    private MapperService getMapperService() {
+        ClusterState clusterState = internalCluster().clusterService().state();
+        ShardRouting shardRouting = clusterState.routingTable().index(INDEX_NAME).shard(0).getShards().get(0);
+        String nodeName = clusterState.getNodes().get(shardRouting.currentNodeId()).getName();
+
+        IndicesService indicesService = internalCluster().getInstance(IndicesService.class, nodeName);
+        IndexService indexService = indicesService.indexService(INDEX_NAME);
+        return indexService.mapperService();
+    }
 }
diff --git a/jest/src/test/java/io/searchbox/indices/PutTemplateIntegrationTest.java b/jest/src/test/java/io/searchbox/indices/PutTemplateIntegrationTest.java
index fa908793..03ea4f3e 100644
--- a/jest/src/test/java/io/searchbox/indices/PutTemplateIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/indices/PutTemplateIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
 import io.searchbox.indices.template.GetTemplate;
 import io.searchbox.indices.template.PutTemplate;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -13,7 +13,7 @@ import java.io.IOException;
 /**
  * @author asierdelpozo
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class PutTemplateIntegrationTest extends AbstractIntegrationTest {
 
     @Test
diff --git a/jest/src/test/java/io/searchbox/indices/RefreshIntegrationTest.java b/jest/src/test/java/io/searchbox/indices/RefreshIntegrationTest.java
index cead2b7f..7971b7d1 100644
--- a/jest/src/test/java/io/searchbox/indices/RefreshIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/indices/RefreshIntegrationTest.java
@@ -6,7 +6,7 @@ import org.elasticsearch.action.ActionFuture;
 import org.elasticsearch.action.admin.indices.stats.IndexStats;
 import org.elasticsearch.action.admin.indices.stats.IndicesStatsRequest;
 import org.elasticsearch.action.admin.indices.stats.IndicesStatsResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -17,7 +17,7 @@ import java.util.concurrent.TimeoutException;
 /**
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class RefreshIntegrationTest extends AbstractIntegrationTest {
 
     @Test
diff --git a/jest/src/test/java/io/searchbox/indices/StatsIntegrationTest.java b/jest/src/test/java/io/searchbox/indices/StatsIntegrationTest.java
index 68cbf3fc..d3b27df5 100644
--- a/jest/src/test/java/io/searchbox/indices/StatsIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/indices/StatsIntegrationTest.java
@@ -3,7 +3,7 @@ package io.searchbox.indices;
 import com.google.gson.JsonObject;
 import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -13,7 +13,7 @@ import java.util.concurrent.TimeoutException;
 /**
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class StatsIntegrationTest extends AbstractIntegrationTest {
 
     private static final String INDEX_NAME = "flush_test_index";
diff --git a/jest/src/test/java/io/searchbox/indices/StatusIntegrationTest.java b/jest/src/test/java/io/searchbox/indices/StatusIntegrationTest.java
deleted file mode 100644
index b2fad5e7..00000000
--- a/jest/src/test/java/io/searchbox/indices/StatusIntegrationTest.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package io.searchbox.indices;
-
-import io.searchbox.client.JestResult;
-import io.searchbox.common.AbstractIntegrationTest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
-import org.junit.Before;
-import org.junit.Test;
-
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Map;
-
-/**
- * @author ferhat
- */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 2)
-public class StatusIntegrationTest extends AbstractIntegrationTest {
-
-    @Before
-    public void setup() {
-        createIndex("twitter", "facebook", "linkedin");
-        ensureGreen("twitter", "facebook", "linkedin");
-    }
-
-    @Test
-    public void testStatus() throws IOException {
-        Status status = new Status.Builder().addIndex("twitter").build();
-
-        JestResult result = client.execute(status);
-        assertTrue(result.getErrorMessage(), result.isSucceeded());
-        Map indices = (Map) result.getJsonMap().get("indices");
-        assertEquals(1, indices.size());
-        assertNotNull(indices.get("twitter"));
-    }
-
-    @Test
-    public void testStatusWithAllIndices() throws IOException {
-        Status status = new Status.Builder().build();
-        JestResult result = client.execute(status);
-        assertTrue(result.getErrorMessage(), result.isSucceeded());
-        Map indices = (Map) result.getJsonMap().get("indices");
-        assertEquals("All stats should include 3 indices", 3, indices.size());
-        assertNotNull(indices.get("twitter"));
-        assertNotNull(indices.get("facebook"));
-        assertNotNull(indices.get("linkedin"));
-    }
-
-    @Test
-    public void testStatusWithMultipleIndices() throws IOException {
-        Status status = new Status.Builder().addIndex(Arrays.asList("facebook,twitter")).build();
-        JestResult result = client.execute(status);
-        assertTrue(result.getErrorMessage(), result.isSucceeded());
-        Map indices = (Map) result.getJsonMap().get("indices");
-        assertTrue(indices.size() == 2);
-        assertNotNull(indices.get("twitter"));
-        assertNotNull(indices.get("facebook"));
-    }
-
-}
diff --git a/jest/src/test/java/io/searchbox/indices/aliases/GetAliasesIntegrationTest.java b/jest/src/test/java/io/searchbox/indices/aliases/GetAliasesIntegrationTest.java
index 44a1b19c..c67e0620 100644
--- a/jest/src/test/java/io/searchbox/indices/aliases/GetAliasesIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/indices/aliases/GetAliasesIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.common.AbstractIntegrationTest;
 import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest;
 import org.elasticsearch.action.admin.indices.alias.IndicesAliasesResponse;
 import org.elasticsearch.cluster.metadata.AliasAction;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -15,7 +15,7 @@ import java.util.concurrent.TimeUnit;
 /**
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class GetAliasesIntegrationTest extends AbstractIntegrationTest {
 
     private static final String INDEX_NAME = "aliases_test_index";
diff --git a/jest/src/test/java/io/searchbox/indices/aliases/ModifyAliasesIntegrationTest.java b/jest/src/test/java/io/searchbox/indices/aliases/ModifyAliasesIntegrationTest.java
index 01bce5ab..da0b5b3d 100644
--- a/jest/src/test/java/io/searchbox/indices/aliases/ModifyAliasesIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/indices/aliases/ModifyAliasesIntegrationTest.java
@@ -1,5 +1,6 @@
 package io.searchbox.indices.aliases;
 
+import com.google.common.collect.ImmutableList;
 import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
 import org.elasticsearch.action.admin.cluster.state.ClusterStateRequest;
@@ -9,7 +10,7 @@ import org.elasticsearch.cluster.ClusterState;
 import org.elasticsearch.cluster.metadata.AliasAction;
 import org.elasticsearch.cluster.metadata.AliasMetaData;
 import org.elasticsearch.common.collect.ImmutableOpenMap;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -18,17 +19,19 @@ import java.util.concurrent.TimeUnit;
 /**
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class ModifyAliasesIntegrationTest extends AbstractIntegrationTest {
 
     @Test
     public void testAddAlias() throws IOException {
-        createIndex("my_index_0", "my_index_1");
+        String index0 = "my_index_0";
+        String index1 = "my_index_1";
+        createIndex((index0), index1);
 
         String alias = "myAlias000";
 
         ModifyAliases modifyAliases = new ModifyAliases.Builder(
-                new AddAliasMapping.Builder("my_index_0", alias).build()
+                new AddAliasMapping.Builder((index0), alias).build()
         ).build();
         JestResult result = client.execute(modifyAliases);
         assertTrue(result.getErrorMessage(), result.isSucceeded());
@@ -36,21 +39,20 @@ public class ModifyAliasesIntegrationTest extends AbstractIntegrationTest {
         ClusterState clusterState =
                 client().admin().cluster().state(new ClusterStateRequest()).actionGet(10, TimeUnit.SECONDS).getState();
         assertNotNull(clusterState);
-        ImmutableOpenMap<String,ImmutableOpenMap<String,AliasMetaData>> aliases = clusterState.getMetaData().getAliases();
-        ImmutableOpenMap<String, AliasMetaData> aliasMetaDataMap = aliases.get(alias);
-        assertNotNull(aliasMetaDataMap);
-        assertEquals(1, aliasMetaDataMap.size());
-        assertNotNull(aliasMetaDataMap.get("my_index_0"));
+        assertTrue(clusterState.getMetaData().hasAliases(new String[]{alias}, new String[]{index0}));
+        assertFalse(clusterState.getMetaData().hasAliases(new String[]{alias}, new String[]{index1}));
     }
 
     @Test
     public void testAddAliasForMultipleIndex() throws IOException {
-        createIndex("my_index_2", "my_index_3");
+        String index2 = "my_index_2";
+        String index3 = "my_index_3";
+        createIndex(index2, index3);
 
         String alias = "myAlias001";
 
         ModifyAliases modifyAliases = new ModifyAliases.Builder(
-                new AddAliasMapping.Builder("my_index_2", alias).addIndex("my_index_3").build()
+                new AddAliasMapping.Builder(index2, alias).addIndex(index3).build()
         ).build();
         JestResult result = client.execute(modifyAliases);
         assertTrue(result.getErrorMessage(), result.isSucceeded());
@@ -58,12 +60,7 @@ public class ModifyAliasesIntegrationTest extends AbstractIntegrationTest {
         ClusterState clusterState =
                 client().admin().cluster().state(new ClusterStateRequest()).actionGet(10, TimeUnit.SECONDS).getState();
         assertNotNull(clusterState);
-        ImmutableOpenMap<String, ImmutableOpenMap<String, AliasMetaData>> aliases = clusterState.getMetaData().getAliases();
-        ImmutableOpenMap<String, AliasMetaData> aliasMetaDataMap = aliases.get(alias);
-        assertNotNull(aliasMetaDataMap);
-        assertEquals(2, aliasMetaDataMap.size());
-        assertNotNull(aliasMetaDataMap.get("my_index_2"));
-        assertNotNull(aliasMetaDataMap.get("my_index_3"));
+        assertTrue(clusterState.getMetaData().hasAliases(new String[]{alias}, new String[]{index2, index3}));
     }
 
     @Test
@@ -82,12 +79,12 @@ public class ModifyAliasesIntegrationTest extends AbstractIntegrationTest {
         ClusterState clusterState =
                 client().admin().cluster().state(new ClusterStateRequest()).actionGet(10, TimeUnit.SECONDS).getState();
         assertNotNull(clusterState);
-        ImmutableOpenMap<String, ImmutableOpenMap<String, AliasMetaData>> aliases = clusterState.getMetaData().getAliases();
-        ImmutableOpenMap<String, AliasMetaData> aliasMetaDataMap = aliases.get(alias);
-        assertNotNull(aliasMetaDataMap);
-        assertEquals(1, aliasMetaDataMap.size());
-        assertNotNull(aliasMetaDataMap.get("my_index_4"));
-        assertEquals(routing, aliasMetaDataMap.get("my_index_4").getSearchRouting());
+        assertTrue(clusterState.getMetaData().hasAliases(new String[]{alias}, new String[]{"my_index_4"}));
+        assertFalse(clusterState.getMetaData().hasAliases(new String[]{alias}, new String[]{"my_index_5"}));
+        clusterState.getMetaData().findAliases(new String[]{alias}, new String[]{"my_index_4"}).get("my_index_4");
+        ImmutableList<AliasMetaData> indexMetadata = clusterState.getMetaData().findAliases(new String[]{alias}, new String[]{"my_index_4"}).get("my_index_4");
+        assertEquals(1, indexMetadata.size());
+        assertEquals(routing, indexMetadata.get(0).getSearchRouting());
     }
 
     @Test
@@ -113,8 +110,7 @@ public class ModifyAliasesIntegrationTest extends AbstractIntegrationTest {
         ClusterState clusterState =
                 client().admin().cluster().state(new ClusterStateRequest()).actionGet(10, TimeUnit.SECONDS).getState();
         assertNotNull(clusterState);
-        ImmutableOpenMap<String, ImmutableOpenMap<String, AliasMetaData>> aliases = clusterState.getMetaData().getAliases();
-        assertFalse(aliases.containsKey(alias));
+        assertFalse(clusterState.getMetaData().hasAlias(alias));
     }
 
     @Test
@@ -141,11 +137,8 @@ public class ModifyAliasesIntegrationTest extends AbstractIntegrationTest {
         ClusterState clusterState =
                 client().admin().cluster().state(new ClusterStateRequest()).actionGet(10, TimeUnit.SECONDS).getState();
         assertNotNull(clusterState);
-        ImmutableOpenMap<String, ImmutableOpenMap<String, AliasMetaData>> aliases = clusterState.getMetaData().getAliases();
-        ImmutableOpenMap<String, AliasMetaData> aliasMetaDataMap = aliases.get(alias);
-        assertNotNull(aliasMetaDataMap);
-        assertEquals(1, aliasMetaDataMap.size());
-        assertNotNull(aliasMetaDataMap.get("my_index_9"));
+        assertTrue(clusterState.getMetaData().hasAliases(new String[]{alias}, new String[]{"my_index_9"}));
+        assertFalse(clusterState.getMetaData().hasAliases(new String[]{alias}, new String[]{"my_index_8"}));
     }
 
 }
diff --git a/jest/src/test/java/io/searchbox/indices/script/CreateIndexedScriptIntegrationTest.java b/jest/src/test/java/io/searchbox/indices/script/CreateIndexedScriptIntegrationTest.java
index 682c29b4..b48b4190 100644
--- a/jest/src/test/java/io/searchbox/indices/script/CreateIndexedScriptIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/indices/script/CreateIndexedScriptIntegrationTest.java
@@ -4,14 +4,14 @@ import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
 import org.elasticsearch.action.indexedscripts.get.GetIndexedScriptRequest;
 import org.elasticsearch.action.indexedscripts.get.GetIndexedScriptResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
 
 import static io.searchbox.indices.script.ScriptLanguage.GROOVY;
 
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class CreateIndexedScriptIntegrationTest extends AbstractIntegrationTest {
 
     @Test
diff --git a/jest/src/test/java/io/searchbox/indices/script/DeleteIndexedScriptIntegrationTest.java b/jest/src/test/java/io/searchbox/indices/script/DeleteIndexedScriptIntegrationTest.java
index 9ff2a226..54bf161e 100644
--- a/jest/src/test/java/io/searchbox/indices/script/DeleteIndexedScriptIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/indices/script/DeleteIndexedScriptIntegrationTest.java
@@ -6,12 +6,12 @@ import org.elasticsearch.action.indexedscripts.get.GetIndexedScriptRequest;
 import org.elasticsearch.action.indexedscripts.get.GetIndexedScriptResponse;
 import org.elasticsearch.action.indexedscripts.put.PutIndexedScriptRequest;
 import org.elasticsearch.action.indexedscripts.put.PutIndexedScriptResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
 
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class DeleteIndexedScriptIntegrationTest extends AbstractIntegrationTest {
 
     private static final String A_SCRIPT_NAME = "script-test";
diff --git a/jest/src/test/java/io/searchbox/indices/settings/GetSettingsIntegrationTest.java b/jest/src/test/java/io/searchbox/indices/settings/GetSettingsIntegrationTest.java
index 1ad5e2cc..8a35f817 100644
--- a/jest/src/test/java/io/searchbox/indices/settings/GetSettingsIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/indices/settings/GetSettingsIntegrationTest.java
@@ -3,7 +3,7 @@ package io.searchbox.indices.settings;
 import com.google.gson.JsonObject;
 import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Test;
 
 import java.io.IOException;
@@ -11,7 +11,7 @@ import java.io.IOException;
 /**
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class GetSettingsIntegrationTest extends AbstractIntegrationTest {
 
     @Test
diff --git a/jest/src/test/java/io/searchbox/indices/settings/UpdateSettingsIntegrationTest.java b/jest/src/test/java/io/searchbox/indices/settings/UpdateSettingsIntegrationTest.java
index 713541af..ae3643ba 100644
--- a/jest/src/test/java/io/searchbox/indices/settings/UpdateSettingsIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/indices/settings/UpdateSettingsIntegrationTest.java
@@ -4,7 +4,7 @@ import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
 import org.elasticsearch.action.admin.indices.settings.get.GetSettingsRequest;
 import org.elasticsearch.action.admin.indices.settings.get.GetSettingsResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -13,7 +13,7 @@ import java.io.IOException;
 /**
  * @author cihat keser
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.SUITE, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.SUITE, numDataNodes = 1)
 public class UpdateSettingsIntegrationTest extends AbstractIntegrationTest {
     private static final String INDEX_1 = "updatesettingstest1";
     private static final String INDEX_2 = "updatesettingstest2";
diff --git a/jest/src/test/java/io/searchbox/indices/type/TypeExistIntegrationTest.java b/jest/src/test/java/io/searchbox/indices/type/TypeExistIntegrationTest.java
index 25eb00f5..b177a1da 100644
--- a/jest/src/test/java/io/searchbox/indices/type/TypeExistIntegrationTest.java
+++ b/jest/src/test/java/io/searchbox/indices/type/TypeExistIntegrationTest.java
@@ -5,7 +5,7 @@ import io.searchbox.client.JestResult;
 import io.searchbox.common.AbstractIntegrationTest;
 import org.elasticsearch.action.index.IndexRequest;
 import org.elasticsearch.action.index.IndexResponse;
-import org.elasticsearch.test.ElasticsearchIntegrationTest;
+import org.elasticsearch.test.ESIntegTestCase;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -14,7 +14,7 @@ import java.io.IOException;
 /**
  * @author happyprg(hongsgo@gmail.com)
  */
-@ElasticsearchIntegrationTest.ClusterScope(scope = ElasticsearchIntegrationTest.Scope.TEST, numDataNodes = 1)
+@ESIntegTestCase.ClusterScope(scope = ESIntegTestCase.Scope.TEST, numDataNodes = 1)
 public class TypeExistIntegrationTest extends AbstractIntegrationTest {
 
     static final String INDEX_NAME = "it_typexst_0";