From ef4de13ca43bf02e4ab69443144bf2526cb7b0a0 Mon Sep 17 00:00:00 2001 From: Luca Cavanna Date: Mon, 10 Apr 2017 12:32:11 +0200 Subject: [PATCH] Adapt ChunkedDataExtractor to removal of Aggregations#getProperty (elastic/x-pack-elasticsearch#1008) Adapt ChunkedDataExtractor to removal of Aggregations#getProperty Original commit: elastic/x-pack-elasticsearch@01ee2fee585f9fa0bae71203ad98d55dedd49c75 --- .../extractor/chunked/ChunkedDataExtractor.java | 9 ++++++--- .../extractor/chunked/ChunkedDataExtractorTests.java | 10 ++++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/plugin/src/main/java/org/elasticsearch/xpack/ml/datafeed/extractor/chunked/ChunkedDataExtractor.java b/plugin/src/main/java/org/elasticsearch/xpack/ml/datafeed/extractor/chunked/ChunkedDataExtractor.java index 007a39317b4..ef7059fe202 100644 --- a/plugin/src/main/java/org/elasticsearch/xpack/ml/datafeed/extractor/chunked/ChunkedDataExtractor.java +++ b/plugin/src/main/java/org/elasticsearch/xpack/ml/datafeed/extractor/chunked/ChunkedDataExtractor.java @@ -13,6 +13,8 @@ import org.elasticsearch.client.Client; import org.elasticsearch.common.logging.Loggers; import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.Aggregations; +import org.elasticsearch.search.aggregations.metrics.max.Max; +import org.elasticsearch.search.aggregations.metrics.min.Min; import org.elasticsearch.xpack.ml.datafeed.extractor.DataExtractor; import org.elasticsearch.xpack.ml.datafeed.extractor.DataExtractorFactory; import org.elasticsearch.xpack.ml.datafeed.extractor.ExtractorUtils; @@ -44,7 +46,6 @@ public class ChunkedDataExtractor implements DataExtractor { private static final String EARLIEST_TIME = "earliest_time"; private static final String LATEST_TIME = "latest_time"; - private static final String VALUE_SUFFIX = ".value"; /** Let us set a minimum chunk span of 1 minute */ private static final long MIN_CHUNK_SPAN = 60000L; @@ -122,8 +123,10 @@ public class ChunkedDataExtractor implements DataExtractor { long latestTime = 0; long totalHits = response.getHits().getTotalHits(); if (totalHits > 0) { - earliestTime = (long) Double.parseDouble(aggregations.getProperty(EARLIEST_TIME + VALUE_SUFFIX).toString()); - latestTime = (long) Double.parseDouble(aggregations.getProperty(LATEST_TIME + VALUE_SUFFIX).toString()); + Min min = aggregations.get(EARLIEST_TIME); + earliestTime = (long) min.getValue(); + Max max = aggregations.get(LATEST_TIME); + latestTime = (long) max.getValue(); } return new DataSummary(earliestTime, latestTime, totalHits); } diff --git a/plugin/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/chunked/ChunkedDataExtractorTests.java b/plugin/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/chunked/ChunkedDataExtractorTests.java index 975444e51f1..93f197a66eb 100644 --- a/plugin/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/chunked/ChunkedDataExtractorTests.java +++ b/plugin/src/test/java/org/elasticsearch/xpack/ml/datafeed/extractor/chunked/ChunkedDataExtractorTests.java @@ -17,6 +17,8 @@ import org.elasticsearch.rest.RestStatus; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchHits; import org.elasticsearch.search.aggregations.Aggregations; +import org.elasticsearch.search.aggregations.metrics.max.Max; +import org.elasticsearch.search.aggregations.metrics.min.Min; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.xpack.ml.datafeed.extractor.DataExtractor; import org.elasticsearch.xpack.ml.datafeed.extractor.DataExtractorFactory; @@ -413,8 +415,12 @@ public class ChunkedDataExtractorTests extends ESTestCase { when(searchResponse.getHits()).thenReturn(searchHits); Aggregations aggs = mock(Aggregations.class); - when(aggs.getProperty("earliest_time.value")).thenReturn((double) earliestTime); - when(aggs.getProperty("latest_time.value")).thenReturn((double) latestTime); + Min min = mock(Min.class); + when(min.getValue()).thenReturn((double) earliestTime); + when(aggs.get("earliest_time")).thenReturn(min); + Max max = mock(Max.class); + when(max.getValue()).thenReturn((double) latestTime); + when(aggs.get("latest_time")).thenReturn(max); when(searchResponse.getAggregations()).thenReturn(aggs); return searchResponse; }