From 182e11969952fcc157d306e991214462d1a47ba2 Mon Sep 17 00:00:00 2001 From: Adrien Grand Date: Thu, 8 Dec 2016 15:58:32 +0100 Subject: [PATCH 01/51] IP range masks exclude the maximum address of the range. (#22018) Closes #22005 --- .../range/ip/IpRangeAggregationBuilder.java | 15 +++++++- .../aggregations/bucket/IpRangeTests.java | 37 +++++++++++++++++++ 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ip/IpRangeAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ip/IpRangeAggregationBuilder.java index bd2353b5099..cc044ed6235 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ip/IpRangeAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ip/IpRangeAggregationBuilder.java @@ -55,6 +55,7 @@ public final class IpRangeAggregationBuilder private static final InternalAggregation.Type TYPE = new InternalAggregation.Type(NAME); public static class Range implements ToXContent { + private final String key; private final String from; private final String to; @@ -94,8 +95,18 @@ public final class IpRangeAggregationBuilder } this.key = key; try { - this.from = InetAddresses.toAddrString(InetAddress.getByAddress(lower)); - this.to = InetAddresses.toAddrString(InetAddress.getByAddress(upper)); + InetAddress fromAddress = InetAddress.getByAddress(lower); + if (fromAddress.equals(InetAddressPoint.MIN_VALUE)) { + this.from = null; + } else { + this.from = InetAddresses.toAddrString(fromAddress); + } + InetAddress inclusiveToAddress = InetAddress.getByAddress(upper); + if (inclusiveToAddress.equals(InetAddressPoint.MAX_VALUE)) { + this.to = null; + } else { + this.to = InetAddresses.toAddrString(InetAddressPoint.nextUp(inclusiveToAddress)); + } } catch (UnknownHostException bogus) { throw new AssertionError(bogus); } diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/IpRangeTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/IpRangeTests.java index 5d86571f08f..4e9c1e00eab 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/IpRangeTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/IpRangeTests.java @@ -87,4 +87,41 @@ public class IpRangeTests extends BaseAggregationTestCase Date: Thu, 8 Dec 2016 16:57:50 +0100 Subject: [PATCH 02/51] S3/Azure snapshot repo documentation wrong for "read_only" We used to write that people should use `read_only` although it should be `readonly`. Closes #22007. --- docs/plugins/repository-azure.asciidoc | 6 +++--- docs/plugins/repository-s3.asciidoc | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/plugins/repository-azure.asciidoc b/docs/plugins/repository-azure.asciidoc index 97c8e94047a..f060f3493ef 100644 --- a/docs/plugins/repository-azure.asciidoc +++ b/docs/plugins/repository-azure.asciidoc @@ -121,14 +121,14 @@ The Azure repository supports following settings: setting doesn't affect index files that are already compressed by default. Defaults to `false`. -`read_only`:: +`readonly`:: - Makes repository read-only. coming[2.1.0] Defaults to `false`. + Makes repository read-only. Defaults to `false`. `location_mode`:: `primary_only` or `secondary_only`. Defaults to `primary_only`. Note that if you set it - to `secondary_only`, it will force `read_only` to true. + to `secondary_only`, it will force `readonly` to true. Some examples, using scripts: diff --git a/docs/plugins/repository-s3.asciidoc b/docs/plugins/repository-s3.asciidoc index 54b15f72864..9c4e13560c7 100644 --- a/docs/plugins/repository-s3.asciidoc +++ b/docs/plugins/repository-s3.asciidoc @@ -240,7 +240,7 @@ The following settings are supported: Set to `true` if you want to throttle retries. Defaults to AWS SDK default value (`false`). -`read_only`:: +`readonly`:: Makes repository read-only. Defaults to `false`. From 0f7c20ae81e2dabd6e713299a28495d42e5d6e82 Mon Sep 17 00:00:00 2001 From: Nik Everett Date: Thu, 8 Dec 2016 11:50:03 -0500 Subject: [PATCH 03/51] Build: NORELEASE is the same as norelease (#22006) Changes the build to recognize `NORELEASE` as well as `NOCOMMIT` to mean the same thing as `norelease` and `nocommit` respectively. This is useful because people have been using them that way but haven't realized that only the lowercase versions worked. This also explicitly forbids silly things like `NoReLeAsE` and `noCOMMIT`, failing the build and telling you to spell them properly. --- .../gradle/precommit/ForbiddenPatternsTask.groovy | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/precommit/ForbiddenPatternsTask.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/precommit/ForbiddenPatternsTask.groovy index 7cb344bf47f..ed62e88c567 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/precommit/ForbiddenPatternsTask.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/precommit/ForbiddenPatternsTask.groovy @@ -59,11 +59,16 @@ public class ForbiddenPatternsTask extends DefaultTask { filesFilter.exclude('**/*.png') // add mandatory rules - patterns.put('nocommit', /nocommit/) + patterns.put('nocommit', /nocommit|NOCOMMIT/) + patterns.put('nocommit should be all lowercase or all uppercase', + /((?i)nocommit)(? Date: Thu, 8 Dec 2016 17:54:46 +0100 Subject: [PATCH 04/51] Fix REST test for ip range aggregations. Relates to #22018 --- .../rest-api-spec/test/search.aggregation/40_range.yaml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/rest-api-spec/src/main/resources/rest-api-spec/test/search.aggregation/40_range.yaml b/rest-api-spec/src/main/resources/rest-api-spec/test/search.aggregation/40_range.yaml index e2b6ff0e9f5..f2f9d7ccf8e 100644 --- a/rest-api-spec/src/main/resources/rest-api-spec/test/search.aggregation/40_range.yaml +++ b/rest-api-spec/src/main/resources/rest-api-spec/test/search.aggregation/40_range.yaml @@ -210,9 +210,7 @@ setup: - match: { aggregations.ip_range.buckets.0.key: "::/24" } - - match: { aggregations.ip_range.buckets.0.from: "::" } - - - match: { aggregations.ip_range.buckets.0.to: "0:ff:ffff:ffff:ffff:ffff:ffff:ffff" } + - match: { aggregations.ip_range.buckets.0.to: "0:100::" } - match: { aggregations.ip_range.buckets.0.doc_count: 3 } @@ -220,7 +218,7 @@ setup: - match: { aggregations.ip_range.buckets.1.from: "192.168.0.0" } - - match: { aggregations.ip_range.buckets.1.to: "192.168.255.255" } + - match: { aggregations.ip_range.buckets.1.to: "192.169.0.0" } - match: { aggregations.ip_range.buckets.1.doc_count: 2 } From 3da04293f32b36f2a6dcfb381d85c7f55fc289d6 Mon Sep 17 00:00:00 2001 From: Ali Beyad Date: Thu, 8 Dec 2016 12:21:19 -0500 Subject: [PATCH 05/51] Cannot force allocate primary to a node where the shard already exists (#22031) Before, it was possible that the SameShardAllocationDecider would allow force allocation of an unassigned primary to the same node on which an active replica is assigned. This could only happen with shadow replica indices, because when a shadow replica primary fails, the replica gets promoted to primary but in the INITIALIZED state, not in the STARTED state (because the engine has specific reinitialization that must take place in the case of shadow replicas). Therefore, if the now promoted primary that is initializing fails also, the primary will be in the unassigned state, because replica to primary promotion only happens when the failed shard was in the started state. The now unassigned primary shard will go through the allocation deciders, where the SameShardsAllocationDecider would return a NO decision, but would still permit force allocation on the primary if all deciders returned NO. This commit implements canForceAllocatePrimary on the SameShardAllocationDecider, which ensures that a primary cannot be force allocated to the same node on which an active replica already exists. --- .../decider/SameShardAllocationDecider.java | 83 +++++++++++-------- .../allocation/SameShardRoutingTests.java | 37 +++++++++ 2 files changed, 86 insertions(+), 34 deletions(-) diff --git a/core/src/main/java/org/elasticsearch/cluster/routing/allocation/decider/SameShardAllocationDecider.java b/core/src/main/java/org/elasticsearch/cluster/routing/allocation/decider/SameShardAllocationDecider.java index 5411235c364..30fed539b79 100644 --- a/core/src/main/java/org/elasticsearch/cluster/routing/allocation/decider/SameShardAllocationDecider.java +++ b/core/src/main/java/org/elasticsearch/cluster/routing/allocation/decider/SameShardAllocationDecider.java @@ -59,6 +59,54 @@ public class SameShardAllocationDecider extends AllocationDecider { @Override public Decision canAllocate(ShardRouting shardRouting, RoutingNode node, RoutingAllocation allocation) { Iterable assignedShards = allocation.routingNodes().assignedShards(shardRouting.shardId()); + Decision decision = decideSameNode(shardRouting, node, allocation, assignedShards); + if (decision.type() == Decision.Type.NO || sameHost == false) { + // if its already a NO decision looking at the node, or we aren't configured to look at the host, return the decision + return decision; + } + if (node.node() != null) { + for (RoutingNode checkNode : allocation.routingNodes()) { + if (checkNode.node() == null) { + continue; + } + // check if its on the same host as the one we want to allocate to + boolean checkNodeOnSameHostName = false; + boolean checkNodeOnSameHostAddress = false; + if (Strings.hasLength(checkNode.node().getHostAddress()) && Strings.hasLength(node.node().getHostAddress())) { + if (checkNode.node().getHostAddress().equals(node.node().getHostAddress())) { + checkNodeOnSameHostAddress = true; + } + } else if (Strings.hasLength(checkNode.node().getHostName()) && Strings.hasLength(node.node().getHostName())) { + if (checkNode.node().getHostName().equals(node.node().getHostName())) { + checkNodeOnSameHostName = true; + } + } + if (checkNodeOnSameHostAddress || checkNodeOnSameHostName) { + for (ShardRouting assignedShard : assignedShards) { + if (checkNode.nodeId().equals(assignedShard.currentNodeId())) { + String hostType = checkNodeOnSameHostAddress ? "address" : "name"; + String host = checkNodeOnSameHostAddress ? node.node().getHostAddress() : node.node().getHostName(); + return allocation.decision(Decision.NO, NAME, + "the shard cannot be allocated on host %s [%s], where it already exists on node [%s]; " + + "set [%s] to false to allow multiple nodes on the same host to hold the same shard copies", + hostType, host, node.nodeId(), CLUSTER_ROUTING_ALLOCATION_SAME_HOST_SETTING.getKey()); + } + } + } + } + } + return allocation.decision(Decision.YES, NAME, "the shard does not exist on the same host"); + } + + @Override + public Decision canForceAllocatePrimary(ShardRouting shardRouting, RoutingNode node, RoutingAllocation allocation) { + assert shardRouting.primary() : "must not call force allocate on a non-primary shard"; + Iterable assignedShards = allocation.routingNodes().assignedShards(shardRouting.shardId()); + return decideSameNode(shardRouting, node, allocation, assignedShards); + } + + private Decision decideSameNode(ShardRouting shardRouting, RoutingNode node, RoutingAllocation allocation, + Iterable assignedShards) { for (ShardRouting assignedShard : assignedShards) { if (node.nodeId().equals(assignedShard.currentNodeId())) { if (assignedShard.isSameAllocation(shardRouting)) { @@ -72,39 +120,6 @@ public class SameShardAllocationDecider extends AllocationDecider { } } } - if (sameHost) { - if (node.node() != null) { - for (RoutingNode checkNode : allocation.routingNodes()) { - if (checkNode.node() == null) { - continue; - } - // check if its on the same host as the one we want to allocate to - boolean checkNodeOnSameHostName = false; - boolean checkNodeOnSameHostAddress = false; - if (Strings.hasLength(checkNode.node().getHostAddress()) && Strings.hasLength(node.node().getHostAddress())) { - if (checkNode.node().getHostAddress().equals(node.node().getHostAddress())) { - checkNodeOnSameHostAddress = true; - } - } else if (Strings.hasLength(checkNode.node().getHostName()) && Strings.hasLength(node.node().getHostName())) { - if (checkNode.node().getHostName().equals(node.node().getHostName())) { - checkNodeOnSameHostName = true; - } - } - if (checkNodeOnSameHostAddress || checkNodeOnSameHostName) { - for (ShardRouting assignedShard : assignedShards) { - if (checkNode.nodeId().equals(assignedShard.currentNodeId())) { - String hostType = checkNodeOnSameHostAddress ? "address" : "name"; - String host = checkNodeOnSameHostAddress ? node.node().getHostAddress() : node.node().getHostName(); - return allocation.decision(Decision.NO, NAME, - "the shard cannot be allocated on host %s [%s], where it already exists on node [%s]; " + - "set [%s] to false to allow multiple nodes on the same host to hold the same shard copies", - hostType, host, node.nodeId(), CLUSTER_ROUTING_ALLOCATION_SAME_HOST_SETTING.getKey()); - } - } - } - } - } - } - return allocation.decision(Decision.YES, NAME, "the shard does not exist on the same " + (sameHost ? "host" : "node")); + return allocation.decision(Decision.YES, NAME, "the shard does not exist on the same node"); } } diff --git a/core/src/test/java/org/elasticsearch/cluster/routing/allocation/SameShardRoutingTests.java b/core/src/test/java/org/elasticsearch/cluster/routing/allocation/SameShardRoutingTests.java index ae87fe5332e..a724841e3d7 100644 --- a/core/src/test/java/org/elasticsearch/cluster/routing/allocation/SameShardRoutingTests.java +++ b/core/src/test/java/org/elasticsearch/cluster/routing/allocation/SameShardRoutingTests.java @@ -21,6 +21,8 @@ package org.elasticsearch.cluster.routing.allocation; import org.apache.logging.log4j.Logger; import org.elasticsearch.Version; +import org.elasticsearch.action.support.replication.ClusterStateCreationUtils; +import org.elasticsearch.cluster.ClusterInfo; import org.elasticsearch.cluster.ClusterName; import org.elasticsearch.cluster.ClusterState; import org.elasticsearch.cluster.ESAllocationTestCase; @@ -28,12 +30,20 @@ import org.elasticsearch.cluster.metadata.IndexMetaData; import org.elasticsearch.cluster.metadata.MetaData; import org.elasticsearch.cluster.node.DiscoveryNode; import org.elasticsearch.cluster.node.DiscoveryNodes; +import org.elasticsearch.cluster.routing.RoutingNode; +import org.elasticsearch.cluster.routing.RoutingNodes; import org.elasticsearch.cluster.routing.RoutingTable; import org.elasticsearch.cluster.routing.ShardRouting; import org.elasticsearch.cluster.routing.ShardRoutingState; +import org.elasticsearch.cluster.routing.TestShardRouting; +import org.elasticsearch.cluster.routing.allocation.decider.AllocationDeciders; +import org.elasticsearch.cluster.routing.allocation.decider.Decision; import org.elasticsearch.cluster.routing.allocation.decider.SameShardAllocationDecider; import org.elasticsearch.common.logging.Loggers; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.index.Index; + +import java.util.Collections; import static java.util.Collections.emptyMap; import static org.elasticsearch.cluster.routing.ShardRoutingState.INITIALIZING; @@ -86,4 +96,31 @@ public class SameShardRoutingTests extends ESAllocationTestCase { assertThat(shardRouting.currentNodeId(), equalTo("node3")); } } + + public void testForceAllocatePrimaryOnSameNodeNotAllowed() { + SameShardAllocationDecider decider = new SameShardAllocationDecider(Settings.EMPTY); + ClusterState clusterState = ClusterStateCreationUtils.state("idx", randomIntBetween(2, 4), 1); + Index index = clusterState.getMetaData().index("idx").getIndex(); + ShardRouting primaryShard = clusterState.routingTable().index(index).shard(0).primaryShard(); + RoutingNode routingNode = clusterState.getRoutingNodes().node(primaryShard.currentNodeId()); + RoutingAllocation routingAllocation = new RoutingAllocation(new AllocationDeciders(Settings.EMPTY, Collections.emptyList()), + new RoutingNodes(clusterState, false), clusterState, ClusterInfo.EMPTY, System.nanoTime(), false + ); + + // can't force allocate same shard copy to the same node + ShardRouting newPrimary = TestShardRouting.newShardRouting(primaryShard.shardId(), null, true, ShardRoutingState.UNASSIGNED); + Decision decision = decider.canForceAllocatePrimary(newPrimary, routingNode, routingAllocation); + assertEquals(Decision.Type.NO, decision.type()); + + // can force allocate to a different node + RoutingNode unassignedNode = null; + for (RoutingNode node : clusterState.getRoutingNodes()) { + if (node.isEmpty()) { + unassignedNode = node; + break; + } + } + decision = decider.canForceAllocatePrimary(newPrimary, unassignedNode, routingAllocation); + assertEquals(Decision.Type.YES, decision.type()); + } } From 8b0df473814dc158eda8eee5fe974e019ff2c802 Mon Sep 17 00:00:00 2001 From: David Pilato Date: Thu, 8 Dec 2016 18:54:00 +0100 Subject: [PATCH 06/51] readonly on azure repository must be taken into account While I was fixing a documentation issue (#22007), I looked at the code and discovered that we actually never read what the user entered as a `readonly` parameter when he creates an azure repository. So if someone sends: ``` PUT _snapshot/my_backup4 { "type": "azure", "settings": { "account": "my_account2", "location_mode": "primary_only", "readonly": true } } ``` The repository is not actually defined as `readonly`. It's caused by the fact we are always overwriting `readonly`setting based on `location_mode`. If a user sets it to `primary_only`, `readonly` is forced to `false`. If a user sets it to `primary_then_secondary`, `readonly` is forced to `false`. If a user sets it to `secondary_only`, `readonly` is forced to `false`. Note that with this change, a user can force a `secondary_only` repository to `readonly: false` which will lead him to an error later on when we check the repository as per definition in Azure, a secondary repository is not writable. Another option could have been to detect this mismatch and throw an exception in that case. Note sure it is worth writing more code though. Closes #22053. --- .../repositories/azure/AzureRepository.java | 15 ++- .../azure/AzureRepositorySettingsTests.java | 104 ++++++++++++++++++ 2 files changed, 115 insertions(+), 4 deletions(-) create mode 100644 plugins/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureRepositorySettingsTests.java diff --git a/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepository.java b/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepository.java index 1cf75780ce1..2ae5fbe8493 100644 --- a/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepository.java +++ b/plugins/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepository.java @@ -100,11 +100,18 @@ public class AzureRepository extends BlobStoreRepository { this.compress = getValue(metadata.settings(), settings, Repository.COMPRESS_SETTING, Storage.COMPRESS_SETTING); String modeStr = getValue(metadata.settings(), settings, Repository.LOCATION_MODE_SETTING, Storage.LOCATION_MODE_SETTING); - if (Strings.hasLength(modeStr)) { - LocationMode locationMode = LocationMode.valueOf(modeStr.toUpperCase(Locale.ROOT)); - readonly = locationMode == LocationMode.SECONDARY_ONLY; + Boolean forcedReadonly = metadata.settings().getAsBoolean("readonly", null); + // If the user explicitly did not define a readonly value, we set it by ourselves depending on the location mode setting. + // For secondary_only setting, the repository should be read only + if (forcedReadonly == null) { + if (Strings.hasLength(modeStr)) { + LocationMode locationMode = LocationMode.valueOf(modeStr.toUpperCase(Locale.ROOT)); + this.readonly = locationMode == LocationMode.SECONDARY_ONLY; + } else { + this.readonly = false; + } } else { - readonly = false; + readonly = forcedReadonly; } String basePath = getValue(metadata.settings(), settings, Repository.BASE_PATH_SETTING, Storage.BASE_PATH_SETTING); diff --git a/plugins/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureRepositorySettingsTests.java b/plugins/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureRepositorySettingsTests.java new file mode 100644 index 00000000000..68b3783b03a --- /dev/null +++ b/plugins/repository-azure/src/test/java/org/elasticsearch/repositories/azure/AzureRepositorySettingsTests.java @@ -0,0 +1,104 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.repositories.azure; + +import com.microsoft.azure.storage.LocationMode; +import com.microsoft.azure.storage.StorageException; +import com.microsoft.azure.storage.blob.CloudBlobClient; +import org.elasticsearch.cloud.azure.storage.AzureStorageService; +import org.elasticsearch.cloud.azure.storage.AzureStorageServiceImpl; +import org.elasticsearch.cloud.azure.storage.AzureStorageSettings; +import org.elasticsearch.cluster.metadata.RepositoryMetaData; +import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.env.Environment; +import org.elasticsearch.env.NodeEnvironment; +import org.elasticsearch.test.ESTestCase; + +import java.io.IOException; +import java.net.URI; +import java.net.URISyntaxException; + +import static org.elasticsearch.cloud.azure.storage.AzureStorageServiceImpl.blobNameFromUri; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.nullValue; + +public class AzureRepositorySettingsTests extends ESTestCase { + + private AzureRepository azureRepository(Settings settings) throws StorageException, IOException, URISyntaxException { + Settings internalSettings = Settings.builder() + .put(Environment.PATH_HOME_SETTING.getKey(), createTempDir().toAbsolutePath()) + .putArray(Environment.PATH_DATA_SETTING.getKey(), tmpPaths()) + .put(settings) + .build(); + return new AzureRepository(new RepositoryMetaData("foo", "azure", internalSettings), new Environment(internalSettings), null); + } + + + public void testReadonlyDefault() throws StorageException, IOException, URISyntaxException { + assertThat(azureRepository(Settings.EMPTY).isReadOnly(), is(false)); + } + + public void testReadonlyDefaultAndReadonlyOn() throws StorageException, IOException, URISyntaxException { + assertThat(azureRepository(Settings.builder() + .put("readonly", true) + .build()).isReadOnly(), is(true)); + } + + public void testReadonlyWithPrimaryOnly() throws StorageException, IOException, URISyntaxException { + assertThat(azureRepository(Settings.builder() + .put(AzureRepository.Repository.LOCATION_MODE_SETTING.getKey(), LocationMode.PRIMARY_ONLY.name()) + .build()).isReadOnly(), is(false)); + } + + public void testReadonlyWithPrimaryOnlyAndReadonlyOn() throws StorageException, IOException, URISyntaxException { + assertThat(azureRepository(Settings.builder() + .put(AzureRepository.Repository.LOCATION_MODE_SETTING.getKey(), LocationMode.PRIMARY_ONLY.name()) + .put("readonly", true) + .build()).isReadOnly(), is(true)); + } + + public void testReadonlyWithSecondaryOnlyAndReadonlyOn() throws StorageException, IOException, URISyntaxException { + assertThat(azureRepository(Settings.builder() + .put(AzureRepository.Repository.LOCATION_MODE_SETTING.getKey(), LocationMode.SECONDARY_ONLY.name()) + .put("readonly", true) + .build()).isReadOnly(), is(true)); + } + + public void testReadonlyWithSecondaryOnlyAndReadonlyOff() throws StorageException, IOException, URISyntaxException { + assertThat(azureRepository(Settings.builder() + .put(AzureRepository.Repository.LOCATION_MODE_SETTING.getKey(), LocationMode.SECONDARY_ONLY.name()) + .put("readonly", false) + .build()).isReadOnly(), is(false)); + } + + public void testReadonlyWithPrimaryAndSecondaryOnlyAndReadonlyOn() throws StorageException, IOException, URISyntaxException { + assertThat(azureRepository(Settings.builder() + .put(AzureRepository.Repository.LOCATION_MODE_SETTING.getKey(), LocationMode.PRIMARY_THEN_SECONDARY.name()) + .put("readonly", true) + .build()).isReadOnly(), is(true)); + } + + public void testReadonlyWithPrimaryAndSecondaryOnlyAndReadonlyOff() throws StorageException, IOException, URISyntaxException { + assertThat(azureRepository(Settings.builder() + .put(AzureRepository.Repository.LOCATION_MODE_SETTING.getKey(), LocationMode.PRIMARY_THEN_SECONDARY.name()) + .put("readonly", false) + .build()).isReadOnly(), is(false)); + } +} From e9bb8d8b38c5ec50f46f9703f4284e1d617ac65d Mon Sep 17 00:00:00 2001 From: Nik Everett Date: Thu, 8 Dec 2016 13:17:31 -0500 Subject: [PATCH 07/51] Don't allow yaml tests with `warnings` that don't skip `warnings` (#21989) If you write a yaml test with a `warnings` section in a `do` block that doesn't also have a corresponding `skip` section for `warnings` then client test runners that don't support `warnings` will fail. This causes the elasticsearch build to fail so we catch these errors earlier. Related to #21811 --- .../doc/RestTestsFromSnippetsTask.groovy | 14 ++++- .../yaml/section/ClientYamlTestSection.java | 9 +++ .../section/ClientYamlTestSectionTests.java | 56 +++++++++++++++++++ 3 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 test/framework/src/test/java/org/elasticsearch/test/rest/yaml/section/ClientYamlTestSectionTests.java diff --git a/buildSrc/src/main/groovy/org/elasticsearch/gradle/doc/RestTestsFromSnippetsTask.groovy b/buildSrc/src/main/groovy/org/elasticsearch/gradle/doc/RestTestsFromSnippetsTask.groovy index 9b83545f652..9270edbb569 100644 --- a/buildSrc/src/main/groovy/org/elasticsearch/gradle/doc/RestTestsFromSnippetsTask.groovy +++ b/buildSrc/src/main/groovy/org/elasticsearch/gradle/doc/RestTestsFromSnippetsTask.groovy @@ -161,10 +161,20 @@ public class RestTestsFromSnippetsTask extends SnippetsTask { if (false == test.continued) { current.println('---') current.println("\"line_$test.start\":") + /* The Elasticsearch test runner doesn't support the warnings + * construct unless you output this skip. Since we don't know + * if this snippet will use the warnings construct we emit this + * warning every time. */ + current.println(" - skip:") + current.println(" features: ") + current.println(" - warnings") } if (test.skipTest) { - current.println(" - skip:") - current.println(" features: always_skip") + if (test.continued) { + throw new InvalidUserDataException("Continued snippets " + + "can't be skipped") + } + current.println(" - always_skip") current.println(" reason: $test.skipTest") } if (test.setup != null) { diff --git a/test/framework/src/main/java/org/elasticsearch/test/rest/yaml/section/ClientYamlTestSection.java b/test/framework/src/main/java/org/elasticsearch/test/rest/yaml/section/ClientYamlTestSection.java index 4df126cba19..cd9cc1fbe48 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/rest/yaml/section/ClientYamlTestSection.java +++ b/test/framework/src/main/java/org/elasticsearch/test/rest/yaml/section/ClientYamlTestSection.java @@ -51,6 +51,15 @@ public class ClientYamlTestSection implements Comparable } public void addExecutableSection(ExecutableSection executableSection) { + if (executableSection instanceof DoSection) { + DoSection doSection = (DoSection) executableSection; + if (false == doSection.getExpectedWarningHeaders().isEmpty() + && false == skipSection.getFeatures().contains("warnings")) { + throw new IllegalArgumentException("Attempted to add a [do] with a [warnings] section without a corresponding [skip] so " + + "runners that do not support the [warnings] section can skip the test at line [" + + doSection.getLocation().lineNumber + "]"); + } + } this.executableSections.add(executableSection); } diff --git a/test/framework/src/test/java/org/elasticsearch/test/rest/yaml/section/ClientYamlTestSectionTests.java b/test/framework/src/test/java/org/elasticsearch/test/rest/yaml/section/ClientYamlTestSectionTests.java new file mode 100644 index 00000000000..db12c3af9b9 --- /dev/null +++ b/test/framework/src/test/java/org/elasticsearch/test/rest/yaml/section/ClientYamlTestSectionTests.java @@ -0,0 +1,56 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.test.rest.yaml.section; + +import org.elasticsearch.common.xcontent.XContentLocation; +import org.elasticsearch.test.ESTestCase; + +import static java.util.Collections.singletonList; + +public class ClientYamlTestSectionTests extends ESTestCase { + public void testAddingDoWithoutWarningWithoutSkip() { + int lineNumber = between(1, 10000); + ClientYamlTestSection section = new ClientYamlTestSection("test"); + section.setSkipSection(SkipSection.EMPTY); + DoSection doSection = new DoSection(new XContentLocation(lineNumber, 0)); + section.addExecutableSection(doSection); + } + + public void testAddingDoWithWarningWithSkip() { + int lineNumber = between(1, 10000); + ClientYamlTestSection section = new ClientYamlTestSection("test"); + section.setSkipSection(new SkipSection(null, singletonList("warnings"), null)); + DoSection doSection = new DoSection(new XContentLocation(lineNumber, 0)); + doSection.setExpectedWarningHeaders(singletonList("foo")); + section.addExecutableSection(doSection); + } + + public void testAddingDoWithWarningWithSkipButNotWarnings() { + int lineNumber = between(1, 10000); + ClientYamlTestSection section = new ClientYamlTestSection("test"); + section.setSkipSection(new SkipSection(null, singletonList("yaml"), null)); + DoSection doSection = new DoSection(new XContentLocation(lineNumber, 0)); + doSection.setExpectedWarningHeaders(singletonList("foo")); + Exception e = expectThrows(IllegalArgumentException.class, () -> section.addExecutableSection(doSection)); + assertEquals("Attempted to add a [do] with a [warnings] section without a corresponding [skip] so runners that do not support the" + + " [warnings] section can skip the test at line [" + lineNumber + "]", e.getMessage()); + } + +} From f713106827abeb1c6bf85ed7949570f6b1d73266 Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Thu, 8 Dec 2016 16:08:15 -0500 Subject: [PATCH 08/51] Bump version to 5.1.2 This commit bumps the version to 5.1.2. Relates #22057 --- .../main/java/org/elasticsearch/Version.java | 4 ++++ .../test/resources/indices/bwc/index-5.1.1.zip | Bin 0 -> 123893 bytes .../test/resources/indices/bwc/repo-5.1.1.zip | Bin 0 -> 97629 bytes qa/vagrant/versions | 1 + 4 files changed, 5 insertions(+) create mode 100644 core/src/test/resources/indices/bwc/index-5.1.1.zip create mode 100644 core/src/test/resources/indices/bwc/repo-5.1.1.zip diff --git a/core/src/main/java/org/elasticsearch/Version.java b/core/src/main/java/org/elasticsearch/Version.java index 80d870e2dcc..236a8936ff8 100644 --- a/core/src/main/java/org/elasticsearch/Version.java +++ b/core/src/main/java/org/elasticsearch/Version.java @@ -102,6 +102,8 @@ public class Version { // no version constant for 5.1.0 due to inadvertent release public static final int V_5_1_1_ID_UNRELEASED = 5010199; public static final Version V_5_1_1_UNRELEASED = new Version(V_5_1_1_ID_UNRELEASED, org.apache.lucene.util.Version.LUCENE_6_3_0); + public static final int V_5_1_2_ID_UNRELEASED = 5010299; + public static final Version V_5_1_2_UNRELEASED = new Version(V_5_1_2_ID_UNRELEASED, org.apache.lucene.util.Version.LUCENE_6_3_0); public static final int V_5_2_0_ID_UNRELEASED = 5020099; public static final Version V_5_2_0_UNRELEASED = new Version(V_5_2_0_ID_UNRELEASED, org.apache.lucene.util.Version.LUCENE_6_3_0); public static final int V_6_0_0_alpha1_ID_UNRELEASED = 6000001; @@ -126,6 +128,8 @@ public class Version { return V_6_0_0_alpha1_UNRELEASED; case V_5_2_0_ID_UNRELEASED: return V_5_2_0_UNRELEASED; + case V_5_1_2_ID_UNRELEASED: + return V_5_1_2_UNRELEASED; case V_5_1_1_ID_UNRELEASED: return V_5_1_1_UNRELEASED; case V_5_0_3_ID_UNRELEASED: diff --git a/core/src/test/resources/indices/bwc/index-5.1.1.zip b/core/src/test/resources/indices/bwc/index-5.1.1.zip new file mode 100644 index 0000000000000000000000000000000000000000..cd88ea5e8f196d591ade4ebf8a6acbf8d0f02be6 GIT binary patch literal 123893 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

s#{DFn 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̳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 z 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 W@nfGRBnSXXNdN%W4v3!$@c#gbbJJJ= literal 0 HcmV?d00001 diff --git a/core/src/test/resources/indices/bwc/repo-5.1.1.zip b/core/src/test/resources/indices/bwc/repo-5.1.1.zip new file mode 100644 index 0000000000000000000000000000000000000000..3ddf4beb5aa76f45a37eadc52294340795a242f6 GIT binary patch literal 97629 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 literal 0 HcmV?d00001 diff --git a/qa/vagrant/versions b/qa/vagrant/versions index c04bbb7dd3b..7a5ba032951 100644 --- a/qa/vagrant/versions +++ b/qa/vagrant/versions @@ -1,3 +1,4 @@ 5.0.0 5.0.1 5.0.2 +5.1.1 From 4aae0178912309eba92e2ae8028facd636c8679a Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Thu, 8 Dec 2016 16:38:38 -0500 Subject: [PATCH 09/51] Skip IP range query REST test prior to 5.1.2 This commit adds a skip for the IP range query REST test on version prior to 5.1.2 due to a exclusive bug on the top end of the range. --- .../rest-api-spec/test/search.aggregation/40_range.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rest-api-spec/src/main/resources/rest-api-spec/test/search.aggregation/40_range.yaml b/rest-api-spec/src/main/resources/rest-api-spec/test/search.aggregation/40_range.yaml index f2f9d7ccf8e..c058721124f 100644 --- a/rest-api-spec/src/main/resources/rest-api-spec/test/search.aggregation/40_range.yaml +++ b/rest-api-spec/src/main/resources/rest-api-spec/test/search.aggregation/40_range.yaml @@ -111,6 +111,9 @@ setup: --- "IP range": + - skip: + version: " - 5.1.1" + reason: IP range queries had an exclusive range bug prior to 5.1.2 - do: index: index: test From c9882dd1a0f3c513d4c39e99c8a928ec2a6bab18 Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Thu, 8 Dec 2016 19:59:02 -0500 Subject: [PATCH 10/51] Avoid NPE in NodeService#stats if HTTP is disabled This commit adds safety against an NPE if HTTP stats are requested but HTTP is disabled on a node. Relates #22060 --- .../node/service/NodeService.java | 9 ++-- .../node/service/NodeServiceTests.java | 43 +++++++++++++++++++ 2 files changed, 48 insertions(+), 4 deletions(-) create mode 100644 core/src/test/java/org/elasticsearch/node/service/NodeServiceTests.java diff --git a/core/src/main/java/org/elasticsearch/node/service/NodeService.java b/core/src/main/java/org/elasticsearch/node/service/NodeService.java index cf1f70590c5..36a399321e1 100644 --- a/core/src/main/java/org/elasticsearch/node/service/NodeService.java +++ b/core/src/main/java/org/elasticsearch/node/service/NodeService.java @@ -19,9 +19,6 @@ package org.elasticsearch.node.service; -import java.io.Closeable; -import java.io.IOException; - import org.elasticsearch.Build; import org.elasticsearch.Version; import org.elasticsearch.action.admin.cluster.node.info.NodeInfo; @@ -44,6 +41,9 @@ import org.elasticsearch.script.ScriptService; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.transport.TransportService; +import java.io.Closeable; +import java.io.IOException; + public class NodeService extends AbstractComponent implements Closeable { private final ThreadPool threadPool; @@ -111,7 +111,7 @@ public class NodeService extends AbstractComponent implements Closeable { threadPool ? this.threadPool.stats() : null, fs ? monitorService.fsService().stats() : null, transport ? transportService.stats() : null, - http ? httpServer.stats() : null, + http ? (httpServer == null ? null : httpServer.stats()) : null, circuitBreaker ? circuitBreakerService.stats() : null, script ? scriptService.stats() : null, discoveryStats ? discovery.stats() : null, @@ -127,4 +127,5 @@ public class NodeService extends AbstractComponent implements Closeable { public void close() throws IOException { indicesService.close(); } + } diff --git a/core/src/test/java/org/elasticsearch/node/service/NodeServiceTests.java b/core/src/test/java/org/elasticsearch/node/service/NodeServiceTests.java new file mode 100644 index 00000000000..e9097b81426 --- /dev/null +++ b/core/src/test/java/org/elasticsearch/node/service/NodeServiceTests.java @@ -0,0 +1,43 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.node.service; + +import org.elasticsearch.action.admin.cluster.node.stats.NodesStatsRequest; +import org.elasticsearch.action.admin.cluster.node.stats.NodesStatsResponse; +import org.elasticsearch.common.network.NetworkModule; +import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.test.ESSingleNodeTestCase; + +import static org.hamcrest.Matchers.hasSize; + +public class NodeServiceTests extends ESSingleNodeTestCase { + + @Override + protected Settings nodeSettings() { + return Settings.builder().put(NetworkModule.HTTP_ENABLED.getKey(), false).build(); + } + + public void testHttpServerDisabled() { + // test for a bug where if HTTP stats were requested but HTTP was disabled, NodeService would hit a NullPointerException + NodesStatsResponse response = client().admin().cluster().nodesStats(new NodesStatsRequest().http(true)).actionGet(); + assertThat(response.getNodes(), hasSize(1)); + } + +} From ee22a477df841d2c7087674d5389b3adacc1701b Mon Sep 17 00:00:00 2001 From: Lee Hinman Date: Mon, 31 Oct 2016 16:21:38 -0600 Subject: [PATCH 11/51] Add internal _primary_term doc values field, fix _seq_no indexing This adds the `_primary_term` field internally to the mappings. This field is populated with the current shard's primary term. It is intended to be used for collision resolution when two document copies have the same sequence id, therefore, doc_values for the field are stored but the filed itself is not indexed. This also fixes the `_seq_no` field so that doc_values are retrievable (they were previously stored but irretrievable) and changes the `stats` implementation to more efficiently use the points API to retrieve the min/max instead of iterating on each doc_value value. Additionally, even though we intend to be able to search on the field, it was previously not searchable. This commit makes it searchable. There is no user-visible `_primary_term` field. Instead, the fields are updated by calling: ```java index.parsedDoc().updateSeqID(seqNum, primaryTerm); ``` This includes example methods in `Versions` and `Engine` for retrieving the sequence id values from the index (see `Engine.getSequenceID`) that are only used in unit tests. These will be extended/replaced by actual implementations once we make use of sequence numbers as a conflict resolution measure. Relates to #10708 Supercedes #21480 P.S. As a side effect of this commit, `SlowCompositeReaderWrapper` cannot be used for documents that contain `_seq_no` because it is a Point value and SCRW cannot wrap documents with points, so the tests have been updated to loop through the `LeafReaderContext`s now instead. --- .../action/delete/TransportDeleteAction.java | 4 +- .../action/index/TransportIndexAction.java | 1 - .../common/lucene/uid/Versions.java | 122 +++++++ .../elasticsearch/index/engine/Engine.java | 28 +- .../index/engine/InternalEngine.java | 10 + .../index/mapper/DocumentParser.java | 2 +- .../index/mapper/ParseContext.java | 24 +- .../index/mapper/ParsedDocument.java | 28 +- .../index/mapper/SeqNoFieldMapper.java | 298 ++++++++++++++++++ .../mapper/internal/SeqNoFieldMapper.java | 197 ------------ .../elasticsearch/index/shard/IndexShard.java | 27 +- .../shard/TranslogRecoveryPerformer.java | 7 +- .../index/translog/Translog.java | 29 +- .../elasticsearch/indices/IndicesModule.java | 2 +- .../index/IndexingSlowLogTests.java | 3 +- .../index/engine/InternalEngineTests.java | 249 +++++++++------ .../index/engine/ShadowEngineTests.java | 10 +- .../AbstractFieldDataImplTestCase.java | 184 ++++++----- .../fielddata/AbstractFieldDataTestCase.java | 37 +-- .../AbstractStringFieldDataTestCase.java | 57 ++-- .../fielddata/BinaryDVFieldDataTests.java | 39 +-- .../index/fielddata/FilterFieldDataTests.java | 49 +-- .../index/fielddata/GeoFieldDataTests.java | 64 ++-- .../fielddata/ParentChildFieldDataTests.java | 63 ++-- .../mapper/FieldNamesFieldMapperTests.java | 4 +- .../index/shard/IndexShardIT.java | 10 +- .../index/shard/IndexShardTests.java | 8 +- .../index/shard/RefreshListenersTests.java | 8 +- .../index/translog/TranslogTests.java | 9 +- .../PercolatorFieldMapperTests.java | 6 +- 30 files changed, 979 insertions(+), 600 deletions(-) create mode 100644 core/src/main/java/org/elasticsearch/index/mapper/SeqNoFieldMapper.java delete mode 100644 core/src/main/java/org/elasticsearch/index/mapper/internal/SeqNoFieldMapper.java diff --git a/core/src/main/java/org/elasticsearch/action/delete/TransportDeleteAction.java b/core/src/main/java/org/elasticsearch/action/delete/TransportDeleteAction.java index d0458362fdd..81f341090a5 100644 --- a/core/src/main/java/org/elasticsearch/action/delete/TransportDeleteAction.java +++ b/core/src/main/java/org/elasticsearch/action/delete/TransportDeleteAction.java @@ -156,8 +156,8 @@ public class TransportDeleteAction extends TransportWriteAction leaves = reader.leaves(); + if (leaves.isEmpty()) { + return SequenceNumbersService.UNASSIGNED_SEQ_NO; + } + + // iterate backwards to optimize for the frequently updated documents + // which are likely to be in the last segments + for (int i = leaves.size() - 1; i >= 0; i--) { + LeafReader leaf = leaves.get(i).reader(); + Bits liveDocs = leaf.getLiveDocs(); + + TermsEnum termsEnum = null; + SortedNumericDocValues dvField = null; + PostingsEnum docsEnum = null; + + final Fields fields = leaf.fields(); + if (fields != null) { + Terms terms = fields.terms(UidFieldMapper.NAME); + if (terms != null) { + termsEnum = terms.iterator(); + assert termsEnum != null; + dvField = leaf.getSortedNumericDocValues(SeqNoFieldMapper.NAME); + assert dvField != null; + + final BytesRef id = term.bytes(); + if (termsEnum.seekExact(id)) { + // there may be more than one matching docID, in the + // case of nested docs, so we want the last one: + docsEnum = termsEnum.postings(docsEnum, 0); + int docID = DocIdSetIterator.NO_MORE_DOCS; + for (int d = docsEnum.nextDoc(); d != DocIdSetIterator.NO_MORE_DOCS; d = docsEnum.nextDoc()) { + if (liveDocs != null && liveDocs.get(d) == false) { + continue; + } + docID = d; + } + + if (docID != DocIdSetIterator.NO_MORE_DOCS) { + dvField.setDocument(docID); + assert dvField.count() == 1 : "expected only a single value for _seq_no but got " + + dvField.count(); + return dvField.valueAt(0); + } + } + } + } + + } + return SequenceNumbersService.UNASSIGNED_SEQ_NO; + } + + /** + * Returns the primary term for the given uid term, returning {@code 0} if none is found. + */ + public static long loadPrimaryTerm(IndexReader reader, Term term) throws IOException { + assert term.field().equals(UidFieldMapper.NAME) : "can only load _primary_term by uid"; + List leaves = reader.leaves(); + if (leaves.isEmpty()) { + return 0; + } + + // iterate backwards to optimize for the frequently updated documents + // which are likely to be in the last segments + for (int i = leaves.size() - 1; i >= 0; i--) { + LeafReader leaf = leaves.get(i).reader(); + Bits liveDocs = leaf.getLiveDocs(); + + TermsEnum termsEnum = null; + NumericDocValues dvField = null; + PostingsEnum docsEnum = null; + + final Fields fields = leaf.fields(); + if (fields != null) { + Terms terms = fields.terms(UidFieldMapper.NAME); + if (terms != null) { + termsEnum = terms.iterator(); + assert termsEnum != null; + dvField = leaf.getNumericDocValues(SeqNoFieldMapper.PRIMARY_TERM_NAME); + assert dvField != null; + + final BytesRef id = term.bytes(); + if (termsEnum.seekExact(id)) { + // there may be more than one matching docID, in the + // case of nested docs, so we want the last one: + docsEnum = termsEnum.postings(docsEnum, 0); + int docID = DocIdSetIterator.NO_MORE_DOCS; + for (int d = docsEnum.nextDoc(); d != DocIdSetIterator.NO_MORE_DOCS; d = docsEnum.nextDoc()) { + if (liveDocs != null && liveDocs.get(d) == false) { + continue; + } + docID = d; + } + + if (docID != DocIdSetIterator.NO_MORE_DOCS) { + return dvField.get(docID); + } + } + } + } + + } + return 0; + } } diff --git a/core/src/main/java/org/elasticsearch/index/engine/Engine.java b/core/src/main/java/org/elasticsearch/index/engine/Engine.java index 20def3bd893..0f1c05e59ee 100644 --- a/core/src/main/java/org/elasticsearch/index/engine/Engine.java +++ b/core/src/main/java/org/elasticsearch/index/engine/Engine.java @@ -47,6 +47,7 @@ import org.elasticsearch.ExceptionsHelper; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.collect.ImmutableOpenMap; +import org.elasticsearch.common.collect.Tuple; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.io.stream.Writeable; @@ -925,13 +926,15 @@ public abstract class Engine implements Closeable { private final Term uid; private final long version; private final long seqNo; + private final long primaryTerm; private final VersionType versionType; private final Origin origin; private final long startTime; - public Operation(Term uid, long seqNo, long version, VersionType versionType, Origin origin, long startTime) { + public Operation(Term uid, long seqNo, long primaryTerm, long version, VersionType versionType, Origin origin, long startTime) { this.uid = uid; this.seqNo = seqNo; + this.primaryTerm = primaryTerm; this.version = version; this.versionType = versionType; this.origin = origin; @@ -965,6 +968,10 @@ public abstract class Engine implements Closeable { return seqNo; } + public long primaryTerm() { + return primaryTerm; + } + public abstract int estimatedSizeInBytes(); public VersionType versionType() { @@ -991,9 +998,9 @@ public abstract class Engine implements Closeable { private final long autoGeneratedIdTimestamp; private final boolean isRetry; - public Index(Term uid, ParsedDocument doc, long seqNo, long version, VersionType versionType, Origin origin, long startTime, - long autoGeneratedIdTimestamp, boolean isRetry) { - super(uid, seqNo, version, versionType, origin, startTime); + public Index(Term uid, ParsedDocument doc, long seqNo, long primaryTerm, long version, VersionType versionType, Origin origin, + long startTime, long autoGeneratedIdTimestamp, boolean isRetry) { + super(uid, seqNo, primaryTerm, version, versionType, origin, startTime); this.doc = doc; this.isRetry = isRetry; this.autoGeneratedIdTimestamp = autoGeneratedIdTimestamp; @@ -1004,7 +1011,8 @@ public abstract class Engine implements Closeable { } // TEST ONLY Index(Term uid, ParsedDocument doc, long version) { - this(uid, doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, version, VersionType.INTERNAL, Origin.PRIMARY, System.nanoTime(), -1, false); + this(uid, doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, version, VersionType.INTERNAL, + Origin.PRIMARY, System.nanoTime(), -1, false); } public ParsedDocument parsedDoc() { @@ -1071,18 +1079,20 @@ public abstract class Engine implements Closeable { private final String type; private final String id; - public Delete(String type, String id, Term uid, long seqNo, long version, VersionType versionType, Origin origin, long startTime) { - super(uid, seqNo, version, versionType, origin, startTime); + public Delete(String type, String id, Term uid, long seqNo, long primaryTerm, long version, VersionType versionType, + Origin origin, long startTime) { + super(uid, seqNo, primaryTerm, version, versionType, origin, startTime); this.type = type; this.id = id; } public Delete(String type, String id, Term uid) { - this(type, id, uid, SequenceNumbersService.UNASSIGNED_SEQ_NO, Versions.MATCH_ANY, VersionType.INTERNAL, Origin.PRIMARY, System.nanoTime()); + this(type, id, uid, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, Versions.MATCH_ANY, VersionType.INTERNAL, Origin.PRIMARY, System.nanoTime()); } public Delete(Delete template, VersionType versionType) { - this(template.type(), template.id(), template.uid(), template.seqNo(), template.version(), versionType, template.origin(), template.startTime()); + this(template.type(), template.id(), template.uid(), template.seqNo(), template.primaryTerm(), template.version(), + versionType, template.origin(), template.startTime()); } @Override diff --git a/core/src/main/java/org/elasticsearch/index/engine/InternalEngine.java b/core/src/main/java/org/elasticsearch/index/engine/InternalEngine.java index c142601a6df..98e8484b183 100644 --- a/core/src/main/java/org/elasticsearch/index/engine/InternalEngine.java +++ b/core/src/main/java/org/elasticsearch/index/engine/InternalEngine.java @@ -650,6 +650,16 @@ public class InternalEngine extends Engine { } updatedVersion = index.versionType().updateVersion(currentVersion, expectedVersion); index.parsedDoc().version().setLongValue(updatedVersion); + + // Update the document's sequence number and primary term, the + // sequence number here is derived here from either the sequence + // number service if this is on the primary, or the existing + // document's sequence number if this is on the replica. The + // primary term here has already been set, see + // IndexShard.prepareIndex where the Engine.Index operation is + // created + index.parsedDoc().updateSeqID(seqNo, index.primaryTerm()); + if (currentVersion == Versions.NOT_FOUND && forceUpdateDocument == false) { // document does not exists, we can optimize for create, but double check if assertions are running assert assertDocDoesNotExist(index, canOptimizeAddDocument == false); diff --git a/core/src/main/java/org/elasticsearch/index/mapper/DocumentParser.java b/core/src/main/java/org/elasticsearch/index/mapper/DocumentParser.java index 324b34fef9c..72d021c0e3e 100644 --- a/core/src/main/java/org/elasticsearch/index/mapper/DocumentParser.java +++ b/core/src/main/java/org/elasticsearch/index/mapper/DocumentParser.java @@ -148,7 +148,7 @@ final class DocumentParser { private static ParsedDocument parsedDocument(SourceToParse source, ParseContext.InternalParseContext context, Mapping update) { return new ParsedDocument( context.version(), - context.seqNo(), + context.seqID(), context.sourceToParse().id(), context.sourceToParse().type(), source.routing(), diff --git a/core/src/main/java/org/elasticsearch/index/mapper/ParseContext.java b/core/src/main/java/org/elasticsearch/index/mapper/ParseContext.java index 2f5f1135b13..ad21cce6674 100644 --- a/core/src/main/java/org/elasticsearch/index/mapper/ParseContext.java +++ b/core/src/main/java/org/elasticsearch/index/mapper/ParseContext.java @@ -29,6 +29,7 @@ import org.elasticsearch.common.Nullable; import org.elasticsearch.common.lucene.all.AllEntries; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.index.mapper.SeqNoFieldMapper; import java.util.ArrayList; import java.util.Iterator; @@ -254,13 +255,13 @@ public abstract class ParseContext { } @Override - public Field seqNo() { - return in.seqNo(); + public SeqNoFieldMapper.SequenceID seqID() { + return in.seqID(); } @Override - public void seqNo(Field seqNo) { - in.seqNo(seqNo); + public void seqID(SeqNoFieldMapper.SequenceID seqID) { + in.seqID(seqID); } @Override @@ -310,7 +311,7 @@ public abstract class ParseContext { private Field version; - private Field seqNo; + private SeqNoFieldMapper.SequenceID seqID; private final AllEntries allEntries; @@ -404,16 +405,15 @@ public abstract class ParseContext { } @Override - public Field seqNo() { - return this.seqNo; + public SeqNoFieldMapper.SequenceID seqID() { + return this.seqID; } @Override - public void seqNo(Field seqNo) { - this.seqNo = seqNo; + public void seqID(SeqNoFieldMapper.SequenceID seqID) { + this.seqID = seqID; } - @Override public AllEntries allEntries() { return this.allEntries; @@ -540,9 +540,9 @@ public abstract class ParseContext { public abstract void version(Field version); - public abstract Field seqNo(); + public abstract SeqNoFieldMapper.SequenceID seqID(); - public abstract void seqNo(Field seqNo); + public abstract void seqID(SeqNoFieldMapper.SequenceID seqID); public final boolean includeInAll(Boolean includeInAll, FieldMapper mapper) { return includeInAll(includeInAll, mapper.fieldType().indexOptions() != IndexOptions.NONE); diff --git a/core/src/main/java/org/elasticsearch/index/mapper/ParsedDocument.java b/core/src/main/java/org/elasticsearch/index/mapper/ParsedDocument.java index eb42c3b9649..db8bdf9df7f 100644 --- a/core/src/main/java/org/elasticsearch/index/mapper/ParsedDocument.java +++ b/core/src/main/java/org/elasticsearch/index/mapper/ParsedDocument.java @@ -23,6 +23,7 @@ import org.apache.lucene.document.Field; import org.apache.lucene.util.BytesRef; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.index.mapper.ParseContext.Document; +import org.elasticsearch.index.mapper.SeqNoFieldMapper; import java.util.List; @@ -35,7 +36,7 @@ public class ParsedDocument { private final String id, type; private final BytesRef uid; - private final Field seqNo; + private final SeqNoFieldMapper.SequenceID seqID; private final String routing; @@ -47,17 +48,16 @@ public class ParsedDocument { private String parent; - public ParsedDocument( - Field version, - Field seqNo, - String id, - String type, - String routing, - List documents, - BytesReference source, - Mapping dynamicMappingsUpdate) { + public ParsedDocument(Field version, + SeqNoFieldMapper.SequenceID seqID, + String id, + String type, + String routing, + List documents, + BytesReference source, + Mapping dynamicMappingsUpdate) { this.version = version; - this.seqNo = seqNo; + this.seqID = seqID; this.id = id; this.type = type; this.uid = Uid.createUidAsBytes(type, id); @@ -83,8 +83,10 @@ public class ParsedDocument { return version; } - public Field seqNo() { - return seqNo; + public void updateSeqID(long sequenceNumber, long primaryTerm) { + this.seqID.seqNo.setLongValue(sequenceNumber); + this.seqID.seqNoDocValue.setLongValue(sequenceNumber); + this.seqID.primaryTerm.setLongValue(primaryTerm); } public String routing() { diff --git a/core/src/main/java/org/elasticsearch/index/mapper/SeqNoFieldMapper.java b/core/src/main/java/org/elasticsearch/index/mapper/SeqNoFieldMapper.java new file mode 100644 index 00000000000..5820519af7f --- /dev/null +++ b/core/src/main/java/org/elasticsearch/index/mapper/SeqNoFieldMapper.java @@ -0,0 +1,298 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.index.mapper; + +import org.apache.lucene.document.Field; +import org.apache.lucene.document.LongPoint; +import org.apache.lucene.document.NumericDocValuesField; +import org.apache.lucene.document.SortedNumericDocValuesField; +import org.apache.lucene.index.DocValuesType; +import org.apache.lucene.index.IndexReader; +import org.apache.lucene.index.IndexableField; +import org.apache.lucene.index.LeafReader; +import org.apache.lucene.index.LeafReaderContext; +import org.apache.lucene.index.NumericDocValues; +import org.apache.lucene.index.PointValues; +import org.apache.lucene.search.BoostQuery; +import org.apache.lucene.search.MatchNoDocsQuery; +import org.apache.lucene.search.Query; +import org.apache.lucene.util.Bits; +import org.apache.lucene.util.BytesRef; +import org.elasticsearch.action.fieldstats.FieldStats; +import org.elasticsearch.common.Nullable; +import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.index.fielddata.IndexFieldData; +import org.elasticsearch.index.fielddata.IndexNumericFieldData.NumericType; +import org.elasticsearch.index.fielddata.plain.DocValuesIndexFieldData; +import org.elasticsearch.index.mapper.MappedFieldType; +import org.elasticsearch.index.mapper.Mapper; +import org.elasticsearch.index.mapper.MapperParsingException; +import org.elasticsearch.index.mapper.MetadataFieldMapper; +import org.elasticsearch.index.mapper.ParseContext; +import org.elasticsearch.index.mapper.ParseContext.Document; +import org.elasticsearch.index.query.QueryShardContext; +import org.elasticsearch.index.query.QueryShardException; +import org.elasticsearch.index.seqno.SequenceNumbersService; + +import java.io.IOException; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * Mapper for the {@code _seq_no} field. + * + * We expect to use the seq# for sorting, during collision checking and for + * doing range searches. Therefore the {@code _seq_no} field is stored both + * as a numeric doc value and as numeric indexed field. + * + * This mapper also manages the primary term field, which has no ES named + * equivalent. The primary term is only used during collision after receiving + * identical seq# values for two document copies. The primary term is stored as + * a doc value field without being indexed, since it is only intended for use + * as a key-value lookup. + + */ +public class SeqNoFieldMapper extends MetadataFieldMapper { + + /** + * A sequence ID, which is made up of a sequence number (both the searchable + * and doc_value version of the field) and the primary term. + */ + public static class SequenceID { + + public final Field seqNo; + public final Field seqNoDocValue; + public final Field primaryTerm; + + public SequenceID(Field seqNo, Field seqNoDocValue, Field primaryTerm) { + Objects.requireNonNull(seqNo, "sequence number field cannot be null"); + Objects.requireNonNull(seqNoDocValue, "sequence number dv field cannot be null"); + Objects.requireNonNull(primaryTerm, "primary term field cannot be null"); + this.seqNo = seqNo; + this.seqNoDocValue = seqNoDocValue; + this.primaryTerm = primaryTerm; + } + + public static SequenceID emptySeqID() { + return new SequenceID(new LongPoint(NAME, SequenceNumbersService.UNASSIGNED_SEQ_NO), + new SortedNumericDocValuesField(NAME, SequenceNumbersService.UNASSIGNED_SEQ_NO), + new NumericDocValuesField(PRIMARY_TERM_NAME, 0)); + } + } + + public static final String NAME = "_seq_no"; + public static final String CONTENT_TYPE = "_seq_no"; + public static final String PRIMARY_TERM_NAME = "_primary_term"; + + public static class SeqNoDefaults { + public static final String NAME = SeqNoFieldMapper.NAME; + public static final MappedFieldType FIELD_TYPE = new SeqNoFieldType(); + + static { + FIELD_TYPE.setName(NAME); + FIELD_TYPE.setDocValuesType(DocValuesType.SORTED); + FIELD_TYPE.setHasDocValues(true); + FIELD_TYPE.freeze(); + } + } + + public static class Builder extends MetadataFieldMapper.Builder { + + public Builder() { + super(SeqNoDefaults.NAME, SeqNoDefaults.FIELD_TYPE, SeqNoDefaults.FIELD_TYPE); + } + + @Override + public SeqNoFieldMapper build(BuilderContext context) { + return new SeqNoFieldMapper(context.indexSettings()); + } + } + + public static class TypeParser implements MetadataFieldMapper.TypeParser { + @Override + public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) + throws MapperParsingException { + throw new MapperParsingException(NAME + " is not configurable"); + } + + @Override + public MetadataFieldMapper getDefault(Settings indexSettings, MappedFieldType fieldType, String typeName) { + return new SeqNoFieldMapper(indexSettings); + } + } + + static final class SeqNoFieldType extends MappedFieldType { + + public SeqNoFieldType() { + } + + protected SeqNoFieldType(SeqNoFieldType ref) { + super(ref); + } + + @Override + public MappedFieldType clone() { + return new SeqNoFieldType(this); + } + + @Override + public String typeName() { + return CONTENT_TYPE; + } + + private long parse(Object value) { + if (value instanceof Number) { + double doubleValue = ((Number) value).doubleValue(); + if (doubleValue < Long.MIN_VALUE || doubleValue > Long.MAX_VALUE) { + throw new IllegalArgumentException("Value [" + value + "] is out of range for a long"); + } + if (doubleValue % 1 != 0) { + throw new IllegalArgumentException("Value [" + value + "] has a decimal part"); + } + return ((Number) value).longValue(); + } + if (value instanceof BytesRef) { + value = ((BytesRef) value).utf8ToString(); + } + return Long.parseLong(value.toString()); + } + + @Override + public Query termQuery(Object value, @Nullable QueryShardContext context) { + long v = parse(value); + return LongPoint.newExactQuery(name(), v); + } + + @Override + public Query termsQuery(List values, @Nullable QueryShardContext context) { + long[] v = new long[values.size()]; + for (int i = 0; i < values.size(); ++i) { + v[i] = parse(values.get(i)); + } + return LongPoint.newSetQuery(name(), v); + } + + @Override + public Query rangeQuery(Object lowerTerm, Object upperTerm, boolean includeLower, + boolean includeUpper, QueryShardContext context) { + long l = Long.MIN_VALUE; + long u = Long.MAX_VALUE; + if (lowerTerm != null) { + l = parse(lowerTerm); + if (includeLower == false) { + if (l == Long.MAX_VALUE) { + return new MatchNoDocsQuery(); + } + ++l; + } + } + if (upperTerm != null) { + u = parse(upperTerm); + if (includeUpper == false) { + if (u == Long.MIN_VALUE) { + return new MatchNoDocsQuery(); + } + --u; + } + } + return LongPoint.newRangeQuery(name(), l, u); + } + + @Override + public IndexFieldData.Builder fielddataBuilder() { + failIfNoDocValues(); + return new DocValuesIndexFieldData.Builder().numericType(NumericType.LONG); + } + + @Override + public FieldStats stats(IndexReader reader) throws IOException { + String fieldName = name(); + long size = PointValues.size(reader, fieldName); + if (size == 0) { + return null; + } + int docCount = PointValues.getDocCount(reader, fieldName); + byte[] min = PointValues.getMinPackedValue(reader, fieldName); + byte[] max = PointValues.getMaxPackedValue(reader, fieldName); + return new FieldStats.Long(reader.maxDoc(),docCount, -1L, size, true, false, + LongPoint.decodeDimension(min, 0), LongPoint.decodeDimension(max, 0)); + } + + } + + public SeqNoFieldMapper(Settings indexSettings) { + super(NAME, SeqNoDefaults.FIELD_TYPE, SeqNoDefaults.FIELD_TYPE, indexSettings); + } + + @Override + public void preParse(ParseContext context) throws IOException { + super.parse(context); + } + + @Override + protected void parseCreateField(ParseContext context, List fields) throws IOException { + // see InternalEngine.innerIndex to see where the real version value is set + // also see ParsedDocument.updateSeqID (called by innerIndex) + SequenceID seqID = SequenceID.emptySeqID(); + context.seqID(seqID); + fields.add(seqID.seqNo); + fields.add(seqID.seqNoDocValue); + fields.add(seqID.primaryTerm); + } + + @Override + public Mapper parse(ParseContext context) throws IOException { + // fields are added in parseCreateField + return null; + } + + @Override + public void postParse(ParseContext context) throws IOException { + // In the case of nested docs, let's fill nested docs with seqNo=1 and + // primaryTerm=0 so that Lucene doesn't write a Bitset for documents + // that don't have the field. This is consistent with the default value + // for efficiency. + for (int i = 1; i < context.docs().size(); i++) { + final Document doc = context.docs().get(i); + doc.add(new LongPoint(NAME, 1)); + doc.add(new SortedNumericDocValuesField(NAME, 1L)); + doc.add(new NumericDocValuesField(PRIMARY_TERM_NAME, 0L)); + } + } + + @Override + protected String contentType() { + return CONTENT_TYPE; + } + + @Override + public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { + return builder; + } + + @Override + protected void doMerge(Mapper mergeWith, boolean updateAllTypes) { + // nothing to do + } + +} diff --git a/core/src/main/java/org/elasticsearch/index/mapper/internal/SeqNoFieldMapper.java b/core/src/main/java/org/elasticsearch/index/mapper/internal/SeqNoFieldMapper.java deleted file mode 100644 index d94e05ae358..00000000000 --- a/core/src/main/java/org/elasticsearch/index/mapper/internal/SeqNoFieldMapper.java +++ /dev/null @@ -1,197 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.elasticsearch.index.mapper.internal; - -import org.apache.lucene.document.Field; -import org.apache.lucene.document.NumericDocValuesField; -import org.apache.lucene.index.DocValuesType; -import org.apache.lucene.index.IndexReader; -import org.apache.lucene.index.IndexableField; -import org.apache.lucene.index.LeafReader; -import org.apache.lucene.index.LeafReaderContext; -import org.apache.lucene.index.NumericDocValues; -import org.apache.lucene.search.Query; -import org.apache.lucene.util.Bits; -import org.elasticsearch.action.fieldstats.FieldStats; -import org.elasticsearch.common.Nullable; -import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.common.xcontent.XContentBuilder; -import org.elasticsearch.index.mapper.MappedFieldType; -import org.elasticsearch.index.mapper.Mapper; -import org.elasticsearch.index.mapper.MapperParsingException; -import org.elasticsearch.index.mapper.MetadataFieldMapper; -import org.elasticsearch.index.mapper.ParseContext; -import org.elasticsearch.index.mapper.ParseContext.Document; -import org.elasticsearch.index.query.QueryShardContext; -import org.elasticsearch.index.query.QueryShardException; -import org.elasticsearch.index.seqno.SequenceNumbersService; - -import java.io.IOException; -import java.util.List; -import java.util.Map; - -/** Mapper for the _seq_no field. */ -public class SeqNoFieldMapper extends MetadataFieldMapper { - - public static final String NAME = "_seq_no"; - public static final String CONTENT_TYPE = "_seq_no"; - - public static class Defaults { - - public static final String NAME = SeqNoFieldMapper.NAME; - public static final MappedFieldType FIELD_TYPE = new SeqNoFieldType(); - - static { - FIELD_TYPE.setName(NAME); - FIELD_TYPE.setDocValuesType(DocValuesType.NUMERIC); - FIELD_TYPE.setHasDocValues(true); - FIELD_TYPE.freeze(); - } - } - - public static class Builder extends MetadataFieldMapper.Builder { - - public Builder() { - super(Defaults.NAME, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE); - } - - @Override - public SeqNoFieldMapper build(BuilderContext context) { - return new SeqNoFieldMapper(context.indexSettings()); - } - } - - public static class TypeParser implements MetadataFieldMapper.TypeParser { - @Override - public MetadataFieldMapper.Builder parse(String name, Map node, ParserContext parserContext) - throws MapperParsingException { - throw new MapperParsingException(NAME + " is not configurable"); - } - - @Override - public MetadataFieldMapper getDefault(Settings indexSettings, MappedFieldType fieldType, String typeName) { - return new SeqNoFieldMapper(indexSettings); - } - } - - static final class SeqNoFieldType extends MappedFieldType { - - public SeqNoFieldType() { - } - - protected SeqNoFieldType(SeqNoFieldType ref) { - super(ref); - } - - @Override - public MappedFieldType clone() { - return new SeqNoFieldType(this); - } - - @Override - public String typeName() { - return CONTENT_TYPE; - } - - @Override - public Query termQuery(Object value, @Nullable QueryShardContext context) { - throw new QueryShardException(context, "SeqNoField field [" + name() + "] is not searchable"); - } - - @Override - public FieldStats stats(IndexReader reader) throws IOException { - // TODO: remove implementation when late-binding commits are possible - final List leaves = reader.leaves(); - if (leaves.isEmpty()) { - return null; - } - - long currentMin = Long.MAX_VALUE; - long currentMax = Long.MIN_VALUE; - boolean found = false; - for (int i = 0; i < leaves.size(); i++) { - final LeafReader leaf = leaves.get(i).reader(); - final NumericDocValues values = leaf.getNumericDocValues(name()); - if (values == null) continue; - final Bits bits = leaf.getLiveDocs(); - for (int docID = 0; docID < leaf.maxDoc(); docID++) { - if (bits == null || bits.get(docID)) { - found = true; - final long value = values.get(docID); - currentMin = Math.min(currentMin, value); - currentMax = Math.max(currentMax, value); - } - } - } - - return found ? new FieldStats.Long(reader.maxDoc(), 0, -1, -1, false, true, currentMin, currentMax) : null; - } - - } - - public SeqNoFieldMapper(Settings indexSettings) { - super(NAME, Defaults.FIELD_TYPE, Defaults.FIELD_TYPE, indexSettings); - } - - @Override - public void preParse(ParseContext context) throws IOException { - super.parse(context); - } - - @Override - protected void parseCreateField(ParseContext context, List fields) throws IOException { - // see InternalEngine.updateVersion to see where the real version value is set - final Field seqNo = new NumericDocValuesField(NAME, SequenceNumbersService.UNASSIGNED_SEQ_NO); - context.seqNo(seqNo); - fields.add(seqNo); - } - - @Override - public Mapper parse(ParseContext context) throws IOException { - // _seq_no added in pre-parse - return null; - } - - @Override - public void postParse(ParseContext context) throws IOException { - // In the case of nested docs, let's fill nested docs with seqNo=1 so that Lucene doesn't write a Bitset for documents - // that don't have the field. This is consistent with the default value for efficiency. - for (int i = 1; i < context.docs().size(); i++) { - final Document doc = context.docs().get(i); - doc.add(new NumericDocValuesField(NAME, 1L)); - } - } - - @Override - protected String contentType() { - return CONTENT_TYPE; - } - - @Override - public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { - return builder; - } - - @Override - protected void doMerge(Mapper mergeWith, boolean updateAllTypes) { - // nothing to do - } - -} diff --git a/core/src/main/java/org/elasticsearch/index/shard/IndexShard.java b/core/src/main/java/org/elasticsearch/index/shard/IndexShard.java index 613fec5523c..ff8a41fcb94 100644 --- a/core/src/main/java/org/elasticsearch/index/shard/IndexShard.java +++ b/core/src/main/java/org/elasticsearch/index/shard/IndexShard.java @@ -510,7 +510,7 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl boolean isRetry) { try { verifyPrimary(); - return prepareIndex(docMapper(source.type()), source, SequenceNumbersService.UNASSIGNED_SEQ_NO, version, versionType, + return prepareIndex(docMapper(source.type()), source, SequenceNumbersService.UNASSIGNED_SEQ_NO, primaryTerm, version, versionType, Engine.Operation.Origin.PRIMARY, autoGeneratedIdTimestamp, isRetry); } catch (Exception e) { verifyNotClosed(e); @@ -522,16 +522,17 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl boolean isRetry) { try { verifyReplicationTarget(); - return prepareIndex(docMapper(source.type()), source, seqNo, version, versionType, Engine.Operation.Origin.REPLICA, autoGeneratedIdTimestamp, - isRetry); + return prepareIndex(docMapper(source.type()), source, seqNo, primaryTerm, version, versionType, + Engine.Operation.Origin.REPLICA, autoGeneratedIdTimestamp, isRetry); } catch (Exception e) { verifyNotClosed(e); throw e; } } - static Engine.Index prepareIndex(DocumentMapperForType docMapper, SourceToParse source, long seqNo, long version, VersionType versionType, - Engine.Operation.Origin origin, long autoGeneratedIdTimestamp, boolean isRetry) { + static Engine.Index prepareIndex(DocumentMapperForType docMapper, SourceToParse source, long seqNo, long primaryTerm, long version, + VersionType versionType, Engine.Operation.Origin origin, long autoGeneratedIdTimestamp, + boolean isRetry) { long startTime = System.nanoTime(); ParsedDocument doc = docMapper.getDocumentMapper().parse(source); if (docMapper.getMapping() != null) { @@ -540,8 +541,7 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl MappedFieldType uidFieldType = docMapper.getDocumentMapper().uidMapper().fieldType(); Query uidQuery = uidFieldType.termQuery(doc.uid(), null); Term uid = MappedFieldType.extractTerm(uidQuery); - doc.seqNo().setLongValue(seqNo); - return new Engine.Index(uid, doc, seqNo, version, versionType, origin, startTime, autoGeneratedIdTimestamp, isRetry); + return new Engine.Index(uid, doc, seqNo, primaryTerm, version, versionType, origin, startTime, autoGeneratedIdTimestamp, isRetry); } public Engine.IndexResult index(Engine.Index index) { @@ -573,21 +573,24 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl final MappedFieldType uidFieldType = documentMapper.uidMapper().fieldType(); final Query uidQuery = uidFieldType.termQuery(Uid.createUid(type, id), null); final Term uid = MappedFieldType.extractTerm(uidQuery); - return prepareDelete(type, id, uid, SequenceNumbersService.UNASSIGNED_SEQ_NO, version, versionType, Engine.Operation.Origin.PRIMARY); + return prepareDelete(type, id, uid, SequenceNumbersService.UNASSIGNED_SEQ_NO, primaryTerm, version, + versionType, Engine.Operation.Origin.PRIMARY); } - public Engine.Delete prepareDeleteOnReplica(String type, String id, long seqNo, long version, VersionType versionType) { + public Engine.Delete prepareDeleteOnReplica(String type, String id, long seqNo, long primaryTerm, + long version, VersionType versionType) { verifyReplicationTarget(); final DocumentMapper documentMapper = docMapper(type).getDocumentMapper(); final MappedFieldType uidFieldType = documentMapper.uidMapper().fieldType(); final Query uidQuery = uidFieldType.termQuery(Uid.createUid(type, id), null); final Term uid = MappedFieldType.extractTerm(uidQuery); - return prepareDelete(type, id, uid, seqNo, version, versionType, Engine.Operation.Origin.REPLICA); + return prepareDelete(type, id, uid, seqNo, primaryTerm, version, versionType, Engine.Operation.Origin.REPLICA); } - static Engine.Delete prepareDelete(String type, String id, Term uid, long seqNo, long version, VersionType versionType, Engine.Operation.Origin origin) { + static Engine.Delete prepareDelete(String type, String id, Term uid, long seqNo, long primaryTerm, long version, + VersionType versionType, Engine.Operation.Origin origin) { long startTime = System.nanoTime(); - return new Engine.Delete(type, id, uid, seqNo, version, versionType, origin, startTime); + return new Engine.Delete(type, id, uid, seqNo, primaryTerm, version, versionType, origin, startTime); } public Engine.DeleteResult delete(Engine.Delete delete) { diff --git a/core/src/main/java/org/elasticsearch/index/shard/TranslogRecoveryPerformer.java b/core/src/main/java/org/elasticsearch/index/shard/TranslogRecoveryPerformer.java index 7dd5cebcb2c..f27958b71f5 100644 --- a/core/src/main/java/org/elasticsearch/index/shard/TranslogRecoveryPerformer.java +++ b/core/src/main/java/org/elasticsearch/index/shard/TranslogRecoveryPerformer.java @@ -155,8 +155,8 @@ public class TranslogRecoveryPerformer { // we set canHaveDuplicates to true all the time such that we de-optimze the translog case and ensure that all // autoGeneratedID docs that are coming from the primary are updated correctly. Engine.Index engineIndex = IndexShard.prepareIndex(docMapper(index.type()), source(shardId.getIndexName(), index.type(), index.id(), index.source()) - .routing(index.routing()).parent(index.parent()), index.seqNo(), - index.version(), index.versionType().versionTypeForReplicationAndRecovery(), origin, index.getAutoGeneratedIdTimestamp(), true); + .routing(index.routing()).parent(index.parent()), index.seqNo(), index.primaryTerm(), + index.version(), index.versionType().versionTypeForReplicationAndRecovery(), origin, index.getAutoGeneratedIdTimestamp(), true); maybeAddMappingUpdate(engineIndex.type(), engineIndex.parsedDoc().dynamicMappingsUpdate(), engineIndex.id(), allowMappingUpdates); if (logger.isTraceEnabled()) { logger.trace("[translog] recover [index] op of [{}][{}]", index.type(), index.id()); @@ -170,7 +170,8 @@ public class TranslogRecoveryPerformer { logger.trace("[translog] recover [delete] op of [{}][{}]", uid.type(), uid.id()); } final Engine.Delete engineDelete = new Engine.Delete(uid.type(), uid.id(), delete.uid(), delete.seqNo(), - delete.version(), delete.versionType().versionTypeForReplicationAndRecovery(), origin, System.nanoTime()); + delete.primaryTerm(), delete.version(), delete.versionType().versionTypeForReplicationAndRecovery(), + origin, System.nanoTime()); delete(engine, engineDelete); break; default: diff --git a/core/src/main/java/org/elasticsearch/index/translog/Translog.java b/core/src/main/java/org/elasticsearch/index/translog/Translog.java index 92220fa1922..f7560960660 100644 --- a/core/src/main/java/org/elasticsearch/index/translog/Translog.java +++ b/core/src/main/java/org/elasticsearch/index/translog/Translog.java @@ -825,6 +825,7 @@ public class Translog extends AbstractIndexShardComponent implements IndexShardC private final long autoGeneratedIdTimestamp; private final String type; private long seqNo = SequenceNumbersService.UNASSIGNED_SEQ_NO; + private long primaryTerm = 0; private final long version; private final VersionType versionType; private final BytesReference source; @@ -853,6 +854,7 @@ public class Translog extends AbstractIndexShardComponent implements IndexShardC } if (format >= FORMAT_SEQ_NO) { seqNo = in.readVLong(); + primaryTerm = in.readVLong(); } } @@ -863,6 +865,7 @@ public class Translog extends AbstractIndexShardComponent implements IndexShardC this.routing = index.routing(); this.parent = index.parent(); this.seqNo = indexResult.getSeqNo(); + this.primaryTerm = index.primaryTerm(); this.version = indexResult.getVersion(); this.versionType = index.versionType(); this.autoGeneratedIdTimestamp = index.getAutoGeneratedIdTimestamp(); @@ -914,6 +917,10 @@ public class Translog extends AbstractIndexShardComponent implements IndexShardC return seqNo; } + public long primaryTerm() { + return primaryTerm; + } + public long version() { return this.version; } @@ -940,6 +947,7 @@ public class Translog extends AbstractIndexShardComponent implements IndexShardC out.writeByte(versionType.getValue()); out.writeLong(autoGeneratedIdTimestamp); out.writeVLong(seqNo); + out.writeVLong(primaryTerm); } @Override @@ -955,6 +963,7 @@ public class Translog extends AbstractIndexShardComponent implements IndexShardC if (version != index.version || seqNo != index.seqNo || + primaryTerm != index.primaryTerm || id.equals(index.id) == false || type.equals(index.type) == false || versionType != index.versionType || @@ -974,6 +983,7 @@ public class Translog extends AbstractIndexShardComponent implements IndexShardC int result = id.hashCode(); result = 31 * result + type.hashCode(); result = 31 * result + Long.hashCode(seqNo); + result = 31 * result + Long.hashCode(primaryTerm); result = 31 * result + Long.hashCode(version); result = 31 * result + versionType.hashCode(); result = 31 * result + source.hashCode(); @@ -1003,6 +1013,7 @@ public class Translog extends AbstractIndexShardComponent implements IndexShardC private Term uid; private long seqNo = SequenceNumbersService.UNASSIGNED_SEQ_NO; + private long primaryTerm = 0; private long version = Versions.MATCH_ANY; private VersionType versionType = VersionType.INTERNAL; @@ -1015,21 +1026,23 @@ public class Translog extends AbstractIndexShardComponent implements IndexShardC assert versionType.validateVersionForWrites(this.version); if (format >= FORMAT_SEQ_NO) { seqNo = in.readVLong(); + primaryTerm = in.readVLong(); } } public Delete(Engine.Delete delete, Engine.DeleteResult deleteResult) { - this(delete.uid(), deleteResult.getSeqNo(), deleteResult.getVersion(), delete.versionType()); + this(delete.uid(), deleteResult.getSeqNo(), delete.primaryTerm(), deleteResult.getVersion(), delete.versionType()); } /** utility for testing */ public Delete(Term uid) { - this(uid, 0, Versions.MATCH_ANY, VersionType.INTERNAL); + this(uid, 0, 0, Versions.MATCH_ANY, VersionType.INTERNAL); } - public Delete(Term uid, long seqNo, long version, VersionType versionType) { + public Delete(Term uid, long seqNo, long primaryTerm, long version, VersionType versionType) { this.uid = uid; this.seqNo = seqNo; + this.primaryTerm = primaryTerm; this.version = version; this.versionType = versionType; } @@ -1052,6 +1065,10 @@ public class Translog extends AbstractIndexShardComponent implements IndexShardC return seqNo; } + public long primaryTerm() { + return primaryTerm; + } + public long version() { return this.version; } @@ -1073,6 +1090,7 @@ public class Translog extends AbstractIndexShardComponent implements IndexShardC out.writeLong(version); out.writeByte(versionType.getValue()); out.writeVLong(seqNo); + out.writeVLong(primaryTerm); } @Override @@ -1086,7 +1104,9 @@ public class Translog extends AbstractIndexShardComponent implements IndexShardC Delete delete = (Delete) o; - return version == delete.version && seqNo == delete.seqNo && + return version == delete.version && + seqNo == delete.seqNo && + primaryTerm == delete.primaryTerm && uid.equals(delete.uid) && versionType == delete.versionType; } @@ -1095,6 +1115,7 @@ public class Translog extends AbstractIndexShardComponent implements IndexShardC public int hashCode() { int result = uid.hashCode(); result = 31 * result + Long.hashCode(seqNo); + result = 31 * result + Long.hashCode(primaryTerm); result = 31 * result + Long.hashCode(version); result = 31 * result + versionType.hashCode(); return result; diff --git a/core/src/main/java/org/elasticsearch/indices/IndicesModule.java b/core/src/main/java/org/elasticsearch/indices/IndicesModule.java index 7e701ff28c0..c53b278e8af 100644 --- a/core/src/main/java/org/elasticsearch/indices/IndicesModule.java +++ b/core/src/main/java/org/elasticsearch/indices/IndicesModule.java @@ -45,13 +45,13 @@ import org.elasticsearch.index.mapper.ParentFieldMapper; import org.elasticsearch.index.mapper.RangeFieldMapper; import org.elasticsearch.index.mapper.RoutingFieldMapper; import org.elasticsearch.index.mapper.ScaledFloatFieldMapper; +import org.elasticsearch.index.mapper.SeqNoFieldMapper; import org.elasticsearch.index.mapper.SourceFieldMapper; import org.elasticsearch.index.mapper.TextFieldMapper; import org.elasticsearch.index.mapper.TokenCountFieldMapper; import org.elasticsearch.index.mapper.TypeFieldMapper; import org.elasticsearch.index.mapper.UidFieldMapper; import org.elasticsearch.index.mapper.VersionFieldMapper; -import org.elasticsearch.index.mapper.internal.SeqNoFieldMapper; import org.elasticsearch.index.seqno.GlobalCheckpointSyncAction; import org.elasticsearch.indices.cluster.IndicesClusterStateService; import org.elasticsearch.indices.flush.SyncedFlushService; diff --git a/core/src/test/java/org/elasticsearch/index/IndexingSlowLogTests.java b/core/src/test/java/org/elasticsearch/index/IndexingSlowLogTests.java index b068d00b6a2..16903a01d91 100644 --- a/core/src/test/java/org/elasticsearch/index/IndexingSlowLogTests.java +++ b/core/src/test/java/org/elasticsearch/index/IndexingSlowLogTests.java @@ -28,6 +28,7 @@ import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.index.IndexingSlowLog.SlowLogParsedDocumentPrinter; import org.elasticsearch.index.mapper.ParsedDocument; +import org.elasticsearch.index.mapper.SeqNoFieldMapper; import org.elasticsearch.test.ESTestCase; import java.io.IOException; @@ -39,7 +40,7 @@ import static org.hamcrest.Matchers.startsWith; public class IndexingSlowLogTests extends ESTestCase { public void testSlowLogParsedDocumentPrinterSourceToLog() throws IOException { BytesReference source = JsonXContent.contentBuilder().startObject().field("foo", "bar").endObject().bytes(); - ParsedDocument pd = new ParsedDocument(new NumericDocValuesField("version", 1), new NumericDocValuesField("seqNo", 1), "id", + ParsedDocument pd = new ParsedDocument(new NumericDocValuesField("version", 1), SeqNoFieldMapper.SequenceID.emptySeqID(), "id", "test", null, null, source, null); Index index = new Index("foo", "123"); // Turning off document logging doesn't log source[] diff --git a/core/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java b/core/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java index 2be63bc2f2b..340ea745aae 100644 --- a/core/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java +++ b/core/src/test/java/org/elasticsearch/index/engine/InternalEngineTests.java @@ -31,6 +31,7 @@ import org.apache.lucene.analysis.Tokenizer; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.codecs.Codec; import org.apache.lucene.document.Field; +import org.apache.lucene.document.LongPoint; import org.apache.lucene.document.NumericDocValuesField; import org.apache.lucene.document.TextField; import org.apache.lucene.index.CorruptIndexException; @@ -75,7 +76,9 @@ import org.elasticsearch.cluster.metadata.IndexMetaData; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.bytes.BytesReference; +import org.elasticsearch.common.collect.Tuple; import org.elasticsearch.common.io.FileSystemUtils; +import org.elasticsearch.common.lease.Releasables; import org.elasticsearch.common.logging.Loggers; import org.elasticsearch.common.lucene.Lucene; import org.elasticsearch.common.lucene.uid.Versions; @@ -100,9 +103,9 @@ import org.elasticsearch.index.mapper.MetadataFieldMapper; import org.elasticsearch.index.mapper.ParseContext.Document; import org.elasticsearch.index.mapper.ParsedDocument; import org.elasticsearch.index.mapper.RootObjectMapper; +import org.elasticsearch.index.mapper.SeqNoFieldMapper; import org.elasticsearch.index.mapper.SourceFieldMapper; import org.elasticsearch.index.mapper.UidFieldMapper; -import org.elasticsearch.index.mapper.internal.SeqNoFieldMapper; import org.elasticsearch.index.seqno.SequenceNumbersService; import org.elasticsearch.index.shard.DocsStats; import org.elasticsearch.index.shard.IndexSearcherWrapper; @@ -268,11 +271,13 @@ public class InternalEngineTests extends ESTestCase { private ParsedDocument testParsedDocument(String uid, String id, String type, String routing, Document document, BytesReference source, Mapping mappingUpdate) { Field uidField = new Field("_uid", uid, UidFieldMapper.Defaults.FIELD_TYPE); Field versionField = new NumericDocValuesField("_version", 0); - Field seqNoField = new NumericDocValuesField("_seq_no", 0); + SeqNoFieldMapper.SequenceID seqID = SeqNoFieldMapper.SequenceID.emptySeqID(); document.add(uidField); document.add(versionField); - document.add(seqNoField); - return new ParsedDocument(versionField, seqNoField, id, type, routing, Arrays.asList(document), source, mappingUpdate); + document.add(seqID.seqNo); + document.add(seqID.seqNoDocValue); + document.add(seqID.primaryTerm); + return new ParsedDocument(versionField, seqID, id, type, routing, Arrays.asList(document), source, mappingUpdate); } protected Store createStore() throws IOException { @@ -708,11 +713,11 @@ public class InternalEngineTests extends ESTestCase { for (int i = 0; i < ops; i++) { final ParsedDocument doc = testParsedDocument("1", "1", "test", null, testDocumentWithTextField(), SOURCE, null); if (randomBoolean()) { - final Engine.Index operation = new Engine.Index(newUid("test#1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, i, VersionType.EXTERNAL, Engine.Operation.Origin.PRIMARY, System.nanoTime(), -1, false); + final Engine.Index operation = new Engine.Index(newUid("test#1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, i, VersionType.EXTERNAL, Engine.Operation.Origin.PRIMARY, System.nanoTime(), -1, false); operations.add(operation); initialEngine.index(operation); } else { - final Engine.Delete operation = new Engine.Delete("test", "1", newUid("test#1"), SequenceNumbersService.UNASSIGNED_SEQ_NO, i, VersionType.EXTERNAL, Engine.Operation.Origin.PRIMARY, System.nanoTime()); + final Engine.Delete operation = new Engine.Delete("test", "1", newUid("test#1"), SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, i, VersionType.EXTERNAL, Engine.Operation.Origin.PRIMARY, System.nanoTime()); operations.add(operation); initialEngine.delete(operation); } @@ -1039,7 +1044,7 @@ public class InternalEngineTests extends ESTestCase { engine.flush(); final boolean forceMergeFlushes = randomBoolean(); if (forceMergeFlushes) { - engine.index(new Engine.Index(newUid("3"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, Versions.MATCH_ANY, VersionType.INTERNAL, Engine.Operation.Origin.PRIMARY, System.nanoTime() - engine.engineConfig.getFlushMergesAfter().nanos(), -1, false)); + engine.index(new Engine.Index(newUid("3"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, Versions.MATCH_ANY, VersionType.INTERNAL, Engine.Operation.Origin.PRIMARY, System.nanoTime() - engine.engineConfig.getFlushMergesAfter().nanos(), -1, false)); } else { engine.index(new Engine.Index(newUid("3"), doc)); } @@ -1126,7 +1131,7 @@ public class InternalEngineTests extends ESTestCase { Engine.IndexResult indexResult = engine.index(create); assertThat(indexResult.getVersion(), equalTo(1L)); - create = new Engine.Index(newUid("1"), doc, indexResult.getSeqNo(), indexResult.getVersion(), create.versionType().versionTypeForReplicationAndRecovery(), REPLICA, 0, -1, false); + create = new Engine.Index(newUid("1"), doc, indexResult.getSeqNo(), create.primaryTerm(), indexResult.getVersion(), create.versionType().versionTypeForReplicationAndRecovery(), REPLICA, 0, -1, false); indexResult = replicaEngine.index(create); assertThat(indexResult.getVersion(), equalTo(1L)); } @@ -1137,18 +1142,18 @@ public class InternalEngineTests extends ESTestCase { Engine.IndexResult indexResult = engine.index(index); assertThat(indexResult.getVersion(), equalTo(1L)); - index = new Engine.Index(newUid("1"), doc, indexResult.getSeqNo(), indexResult.getVersion(), index.versionType().versionTypeForReplicationAndRecovery(), REPLICA, 0, -1, false); + index = new Engine.Index(newUid("1"), doc, indexResult.getSeqNo(), index.primaryTerm(), indexResult.getVersion(), index.versionType().versionTypeForReplicationAndRecovery(), REPLICA, 0, -1, false); indexResult = replicaEngine.index(index); assertThat(indexResult.getVersion(), equalTo(1L)); } public void testExternalVersioningNewIndex() { ParsedDocument doc = testParsedDocument("1", "1", "test", null, testDocument(), B_1, null); - Engine.Index index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 12, VersionType.EXTERNAL, PRIMARY, 0, -1, false); + Engine.Index index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 12, VersionType.EXTERNAL, PRIMARY, 0, -1, false); Engine.IndexResult indexResult = engine.index(index); assertThat(indexResult.getVersion(), equalTo(12L)); - index = new Engine.Index(newUid("1"), doc, indexResult.getSeqNo(), indexResult.getVersion(), index.versionType().versionTypeForReplicationAndRecovery(), REPLICA, 0, -1, false); + index = new Engine.Index(newUid("1"), doc, indexResult.getSeqNo(), index.primaryTerm(), indexResult.getVersion(), index.versionType().versionTypeForReplicationAndRecovery(), REPLICA, 0, -1, false); indexResult = replicaEngine.index(index); assertThat(indexResult.getVersion(), equalTo(12L)); } @@ -1163,13 +1168,13 @@ public class InternalEngineTests extends ESTestCase { indexResult = engine.index(index); assertThat(indexResult.getVersion(), equalTo(2L)); - index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 1L, VersionType.INTERNAL, Engine.Operation.Origin.PRIMARY, 0, -1, false); + index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 1L, VersionType.INTERNAL, Engine.Operation.Origin.PRIMARY, 0, -1, false); indexResult = engine.index(index); assertTrue(indexResult.hasFailure()); assertThat(indexResult.getFailure(), instanceOf(VersionConflictEngineException.class)); // future versions should not work as well - index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 3L, VersionType.INTERNAL, PRIMARY, 0, -1, false); + index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 3L, VersionType.INTERNAL, PRIMARY, 0, -1, false); indexResult = engine.index(index); assertTrue(indexResult.hasFailure()); assertThat(indexResult.getFailure(), instanceOf(VersionConflictEngineException.class)); @@ -1177,15 +1182,15 @@ public class InternalEngineTests extends ESTestCase { public void testExternalVersioningIndexConflict() { ParsedDocument doc = testParsedDocument("1", "1", "test", null, testDocument(), B_1, null); - Engine.Index index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 12, VersionType.EXTERNAL, PRIMARY, 0, -1, false); + Engine.Index index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 12, VersionType.EXTERNAL, PRIMARY, 0, -1, false); Engine.IndexResult indexResult = engine.index(index); assertThat(indexResult.getVersion(), equalTo(12L)); - index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 14, VersionType.EXTERNAL, PRIMARY, 0, -1, false); + index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 14, VersionType.EXTERNAL, PRIMARY, 0, -1, false); indexResult = engine.index(index); assertThat(indexResult.getVersion(), equalTo(14L)); - index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 13, VersionType.EXTERNAL, PRIMARY, 0, -1, false); + index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 13, VersionType.EXTERNAL, PRIMARY, 0, -1, false); indexResult = engine.index(index); assertTrue(indexResult.hasFailure()); assertThat(indexResult.getFailure(), instanceOf(VersionConflictEngineException.class)); @@ -1193,7 +1198,7 @@ public class InternalEngineTests extends ESTestCase { public void testForceVersioningNotAllowedExceptForOlderIndices() throws Exception { ParsedDocument doc = testParsedDocument("1", "1", "test", null, testDocument(), B_1, null); - Engine.Index index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 42, VersionType.FORCE, PRIMARY, 0, -1, false); + Engine.Index index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 42, VersionType.FORCE, PRIMARY, 0, -1, false); Engine.IndexResult indexResult = engine.index(index); assertTrue(indexResult.hasFailure()); @@ -1205,13 +1210,13 @@ public class InternalEngineTests extends ESTestCase { .build()); try (Store store = createStore(); Engine engine = createEngine(oldIndexSettings, store, createTempDir(), NoMergePolicy.INSTANCE)) { - index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 84, VersionType.FORCE, PRIMARY, 0, -1, false); + index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 84, VersionType.FORCE, PRIMARY, 0, -1, false); Engine.IndexResult result = engine.index(index); assertTrue(result.hasFailure()); assertThat(result.getFailure(), instanceOf(IllegalArgumentException.class)); assertThat(result.getFailure().getMessage(), containsString("version type [FORCE] may not be used for non-translog operations")); - index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 84, VersionType.FORCE, + index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 84, VersionType.FORCE, Engine.Operation.Origin.LOCAL_TRANSLOG_RECOVERY, 0, -1, false); result = engine.index(index); assertThat(result.getVersion(), equalTo(84L)); @@ -1230,13 +1235,13 @@ public class InternalEngineTests extends ESTestCase { engine.flush(); - index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 1L, VersionType.INTERNAL, PRIMARY, 0, -1, false); + index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 1L, VersionType.INTERNAL, PRIMARY, 0, -1, false); indexResult = engine.index(index); assertTrue(indexResult.hasFailure()); assertThat(indexResult.getFailure(), instanceOf(VersionConflictEngineException.class)); // future versions should not work as well - index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 3L, VersionType.INTERNAL, PRIMARY, 0, -1, false); + index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 3L, VersionType.INTERNAL, PRIMARY, 0, -1, false); indexResult = engine.index(index); assertTrue(indexResult.hasFailure()); assertThat(indexResult.getFailure(), instanceOf(VersionConflictEngineException.class)); @@ -1244,17 +1249,17 @@ public class InternalEngineTests extends ESTestCase { public void testExternalVersioningIndexConflictWithFlush() { ParsedDocument doc = testParsedDocument("1", "1", "test", null, testDocument(), B_1, null); - Engine.Index index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 12, VersionType.EXTERNAL, PRIMARY, 0, -1, false); + Engine.Index index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 12, VersionType.EXTERNAL, PRIMARY, 0, -1, false); Engine.IndexResult indexResult = engine.index(index); assertThat(indexResult.getVersion(), equalTo(12L)); - index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 14, VersionType.EXTERNAL, PRIMARY, 0, -1, false); + index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 14, VersionType.EXTERNAL, PRIMARY, 0, -1, false); indexResult = engine.index(index); assertThat(indexResult.getVersion(), equalTo(14L)); engine.flush(); - index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 13, VersionType.EXTERNAL, PRIMARY, 0, -1, false); + index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 13, VersionType.EXTERNAL, PRIMARY, 0, -1, false); indexResult = engine.index(index); assertTrue(indexResult.hasFailure()); assertThat(indexResult.getFailure(), instanceOf(VersionConflictEngineException.class)); @@ -1365,24 +1370,24 @@ public class InternalEngineTests extends ESTestCase { indexResult = engine.index(index); assertThat(indexResult.getVersion(), equalTo(2L)); - Engine.Delete delete = new Engine.Delete("test", "1", newUid("1"), SequenceNumbersService.UNASSIGNED_SEQ_NO, 1L, VersionType.INTERNAL, PRIMARY, 0); + Engine.Delete delete = new Engine.Delete("test", "1", newUid("1"), SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 1L, VersionType.INTERNAL, PRIMARY, 0); Engine.DeleteResult result = engine.delete(delete); assertTrue(result.hasFailure()); assertThat(result.getFailure(), instanceOf(VersionConflictEngineException.class)); // future versions should not work as well - delete = new Engine.Delete("test", "1", newUid("1"), SequenceNumbersService.UNASSIGNED_SEQ_NO, 3L, VersionType.INTERNAL, PRIMARY, 0); + delete = new Engine.Delete("test", "1", newUid("1"), SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 3L, VersionType.INTERNAL, PRIMARY, 0); result = engine.delete(delete); assertTrue(result.hasFailure()); assertThat(result.getFailure(), instanceOf(VersionConflictEngineException.class)); // now actually delete - delete = new Engine.Delete("test", "1", newUid("1"), SequenceNumbersService.UNASSIGNED_SEQ_NO, 2L, VersionType.INTERNAL, PRIMARY, 0); + delete = new Engine.Delete("test", "1", newUid("1"), SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 2L, VersionType.INTERNAL, PRIMARY, 0); result = engine.delete(delete); assertThat(result.getVersion(), equalTo(3L)); // now check if we can index to a delete doc with version - index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 2L, VersionType.INTERNAL, PRIMARY, 0, -1, false); + index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 2L, VersionType.INTERNAL, PRIMARY, 0, -1, false); indexResult = engine.index(index); assertTrue(indexResult.hasFailure()); assertThat(indexResult.getFailure(), instanceOf(VersionConflictEngineException.class)); @@ -1400,13 +1405,13 @@ public class InternalEngineTests extends ESTestCase { engine.flush(); - Engine.Delete delete = new Engine.Delete("test", "1", newUid("1"), SequenceNumbersService.UNASSIGNED_SEQ_NO, 1L, VersionType.INTERNAL, PRIMARY, 0); + Engine.Delete delete = new Engine.Delete("test", "1", newUid("1"), SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 1L, VersionType.INTERNAL, PRIMARY, 0); Engine.DeleteResult deleteResult = engine.delete(delete); assertTrue(deleteResult.hasFailure()); assertThat(deleteResult.getFailure(), instanceOf(VersionConflictEngineException.class)); // future versions should not work as well - delete = new Engine.Delete("test", "1", newUid("1"), SequenceNumbersService.UNASSIGNED_SEQ_NO, 3L, VersionType.INTERNAL, PRIMARY, 0); + delete = new Engine.Delete("test", "1", newUid("1"), SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 3L, VersionType.INTERNAL, PRIMARY, 0); deleteResult = engine.delete(delete); assertTrue(deleteResult.hasFailure()); assertThat(deleteResult.getFailure(), instanceOf(VersionConflictEngineException.class)); @@ -1414,14 +1419,14 @@ public class InternalEngineTests extends ESTestCase { engine.flush(); // now actually delete - delete = new Engine.Delete("test", "1", newUid("1"), SequenceNumbersService.UNASSIGNED_SEQ_NO, 2L, VersionType.INTERNAL, PRIMARY, 0); + delete = new Engine.Delete("test", "1", newUid("1"), SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 2L, VersionType.INTERNAL, PRIMARY, 0); deleteResult = engine.delete(delete); assertThat(deleteResult.getVersion(), equalTo(3L)); engine.flush(); // now check if we can index to a delete doc with version - index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 2L, VersionType.INTERNAL, PRIMARY, 0, -1, false); + index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 2L, VersionType.INTERNAL, PRIMARY, 0, -1, false); indexResult = engine.index(index); assertTrue(indexResult.hasFailure()); assertThat(indexResult.getFailure(), instanceOf(VersionConflictEngineException.class)); @@ -1429,11 +1434,11 @@ public class InternalEngineTests extends ESTestCase { public void testVersioningCreateExistsException() { ParsedDocument doc = testParsedDocument("1", "1", "test", null, testDocument(), B_1, null); - Engine.Index create = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, Versions.MATCH_DELETED, VersionType.INTERNAL, PRIMARY, 0, -1, false); + Engine.Index create = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, Versions.MATCH_DELETED, VersionType.INTERNAL, PRIMARY, 0, -1, false); Engine.IndexResult indexResult = engine.index(create); assertThat(indexResult.getVersion(), equalTo(1L)); - create = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, Versions.MATCH_DELETED, VersionType.INTERNAL, PRIMARY, 0, -1, false); + create = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, Versions.MATCH_DELETED, VersionType.INTERNAL, PRIMARY, 0, -1, false); indexResult = engine.index(create); assertTrue(indexResult.hasFailure()); assertThat(indexResult.getFailure(), instanceOf(VersionConflictEngineException.class)); @@ -1441,13 +1446,13 @@ public class InternalEngineTests extends ESTestCase { public void testVersioningCreateExistsExceptionWithFlush() { ParsedDocument doc = testParsedDocument("1", "1", "test", null, testDocument(), B_1, null); - Engine.Index create = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, Versions.MATCH_DELETED, VersionType.INTERNAL, PRIMARY, 0, -1, false); + Engine.Index create = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, Versions.MATCH_DELETED, VersionType.INTERNAL, PRIMARY, 0, -1, false); Engine.IndexResult indexResult = engine.index(create); assertThat(indexResult.getVersion(), equalTo(1L)); engine.flush(); - create = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, Versions.MATCH_DELETED, VersionType.INTERNAL, PRIMARY, 0, -1, false); + create = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, Versions.MATCH_DELETED, VersionType.INTERNAL, PRIMARY, 0, -1, false); indexResult = engine.index(create); assertTrue(indexResult.hasFailure()); assertThat(indexResult.getFailure(), instanceOf(VersionConflictEngineException.class)); @@ -1464,19 +1469,20 @@ public class InternalEngineTests extends ESTestCase { assertThat(indexResult.getVersion(), equalTo(2L)); // apply the second index to the replica, should work fine - index = new Engine.Index(newUid("1"), doc, indexResult.getSeqNo(), indexResult.getVersion(), VersionType.INTERNAL.versionTypeForReplicationAndRecovery(), REPLICA, 0, -1, false); + index = new Engine.Index(newUid("1"), doc, indexResult.getSeqNo(), index.primaryTerm(), indexResult.getVersion(), VersionType.INTERNAL.versionTypeForReplicationAndRecovery(), REPLICA, 0, -1, false); indexResult = replicaEngine.index(index); assertThat(indexResult.getVersion(), equalTo(2L)); long seqNo = indexResult.getSeqNo(); + long primaryTerm = index.primaryTerm(); // now, the old one should not work - index = new Engine.Index(newUid("1"), doc, seqNo, 1L, VersionType.INTERNAL.versionTypeForReplicationAndRecovery(), REPLICA, 0, -1, false); + index = new Engine.Index(newUid("1"), doc, seqNo, primaryTerm, 1L, VersionType.INTERNAL.versionTypeForReplicationAndRecovery(), REPLICA, 0, -1, false); indexResult = replicaEngine.index(index); assertTrue(indexResult.hasFailure()); assertThat(indexResult.getFailure(), instanceOf(VersionConflictEngineException.class)); // second version on replica should fail as well - index = new Engine.Index(newUid("1"), doc, seqNo, 2L + index = new Engine.Index(newUid("1"), doc, seqNo, primaryTerm, 2L , VersionType.INTERNAL.versionTypeForReplicationAndRecovery(), REPLICA, 0, -1, false); indexResult = replicaEngine.index(index); assertThat(indexResult.getVersion(), equalTo(2L)); @@ -1490,8 +1496,8 @@ public class InternalEngineTests extends ESTestCase { assertThat(indexResult.getVersion(), equalTo(1L)); // apply the first index to the replica, should work fine - index = new Engine.Index(newUid("1"), doc, indexResult.getSeqNo(), 1L - , VersionType.INTERNAL.versionTypeForReplicationAndRecovery(), REPLICA, 0, -1, false); + index = new Engine.Index(newUid("1"), doc, indexResult.getSeqNo(), index.primaryTerm(), 1L, + VersionType.INTERNAL.versionTypeForReplicationAndRecovery(), REPLICA, 0, -1, false); indexResult = replicaEngine.index(index); assertThat(indexResult.getVersion(), equalTo(1L)); @@ -1506,20 +1512,20 @@ public class InternalEngineTests extends ESTestCase { assertThat(deleteResult.getVersion(), equalTo(3L)); // apply the delete on the replica (skipping the second index) - delete = new Engine.Delete("test", "1", newUid("1"), deleteResult.getSeqNo(), 3L + delete = new Engine.Delete("test", "1", newUid("1"), deleteResult.getSeqNo(), delete.primaryTerm(), 3L , VersionType.INTERNAL.versionTypeForReplicationAndRecovery(), REPLICA, 0); deleteResult = replicaEngine.delete(delete); assertThat(deleteResult.getVersion(), equalTo(3L)); // second time delete with same version should fail - delete = new Engine.Delete("test", "1", newUid("1"), deleteResult.getSeqNo(), 3L + delete = new Engine.Delete("test", "1", newUid("1"), deleteResult.getSeqNo(), delete.primaryTerm(), 3L , VersionType.INTERNAL.versionTypeForReplicationAndRecovery(), REPLICA, 0); deleteResult = replicaEngine.delete(delete); assertTrue(deleteResult.hasFailure()); assertThat(deleteResult.getFailure(), instanceOf(VersionConflictEngineException.class)); // now do the second index on the replica, it should fail - index = new Engine.Index(newUid("1"), doc, deleteResult.getSeqNo(), 2L, VersionType.INTERNAL.versionTypeForReplicationAndRecovery(), REPLICA, 0, -1, false); + index = new Engine.Index(newUid("1"), doc, deleteResult.getSeqNo(), delete.primaryTerm(), 2L, VersionType.INTERNAL.versionTypeForReplicationAndRecovery(), REPLICA, 0, -1, false); indexResult = replicaEngine.index(index); assertTrue(indexResult.hasFailure()); assertThat(indexResult.getFailure(), instanceOf(VersionConflictEngineException.class)); @@ -1638,7 +1644,7 @@ public class InternalEngineTests extends ESTestCase { // we have some docs indexed, so delete one of them id = randomFrom(indexedIds); final Engine.Delete delete = new Engine.Delete( - "test", id, newUid("test#" + id), SequenceNumbersService.UNASSIGNED_SEQ_NO, + "test", id, newUid("test#" + id), SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, rarely() ? 100 : Versions.MATCH_ANY, VersionType.INTERNAL, PRIMARY, 0); final Engine.DeleteResult result = initialEngine.delete(delete); if (!result.hasFailure()) { @@ -1655,7 +1661,7 @@ public class InternalEngineTests extends ESTestCase { id = randomFrom(ids); ParsedDocument doc = testParsedDocument("test#" + id, id, "test", null, testDocumentWithTextField(), SOURCE, null); final Engine.Index index = new Engine.Index(newUid("test#" + id), doc, - SequenceNumbersService.UNASSIGNED_SEQ_NO, + SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, rarely() ? 100 : Versions.MATCH_ANY, VersionType.INTERNAL, PRIMARY, 0, -1, false); final Engine.IndexResult result = initialEngine.index(index); @@ -1794,7 +1800,7 @@ public class InternalEngineTests extends ESTestCase { assertThat(localCheckpoint, greaterThanOrEqualTo(prevLocalCheckpoint)); assertThat(maxSeqNo, greaterThanOrEqualTo(prevMaxSeqNo)); try (IndexReader reader = DirectoryReader.open(commit)) { - FieldStats stats = SeqNoFieldMapper.Defaults.FIELD_TYPE.stats(reader); + FieldStats stats = SeqNoFieldMapper.SeqNoDefaults.FIELD_TYPE.stats(reader); final long highestSeqNo; if (stats != null) { highestSeqNo = (long) stats.getMaxValue(); @@ -1887,10 +1893,10 @@ public class InternalEngineTests extends ESTestCase { document.add(new TextField("value", "test1", Field.Store.YES)); ParsedDocument doc = testParsedDocument("1", "1", "test", null, document, B_2, null); - engine.index(new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 1, VersionType.EXTERNAL, Engine.Operation.Origin.PRIMARY, System.nanoTime(), -1, false)); + engine.index(new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 1, VersionType.EXTERNAL, Engine.Operation.Origin.PRIMARY, System.nanoTime(), -1, false)); // Delete document we just added: - engine.delete(new Engine.Delete("test", "1", newUid("1"), SequenceNumbersService.UNASSIGNED_SEQ_NO, 10, VersionType.EXTERNAL, Engine.Operation.Origin.PRIMARY, System.nanoTime())); + engine.delete(new Engine.Delete("test", "1", newUid("1"), SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 10, VersionType.EXTERNAL, Engine.Operation.Origin.PRIMARY, System.nanoTime())); // Get should not find the document Engine.GetResult getResult = engine.get(new Engine.Get(true, newUid("1"))); @@ -1904,14 +1910,14 @@ public class InternalEngineTests extends ESTestCase { } // Delete non-existent document - engine.delete(new Engine.Delete("test", "2", newUid("2"), SequenceNumbersService.UNASSIGNED_SEQ_NO, 10, VersionType.EXTERNAL, Engine.Operation.Origin.PRIMARY, System.nanoTime())); + engine.delete(new Engine.Delete("test", "2", newUid("2"), SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 10, VersionType.EXTERNAL, Engine.Operation.Origin.PRIMARY, System.nanoTime())); // Get should not find the document (we never indexed uid=2): getResult = engine.get(new Engine.Get(true, newUid("2"))); assertThat(getResult.exists(), equalTo(false)); // Try to index uid=1 with a too-old version, should fail: - Engine.Index index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 2, VersionType.EXTERNAL, Engine.Operation.Origin.PRIMARY, System.nanoTime(), -1, false); + Engine.Index index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 2, VersionType.EXTERNAL, Engine.Operation.Origin.PRIMARY, System.nanoTime(), -1, false); Engine.IndexResult indexResult = engine.index(index); assertTrue(indexResult.hasFailure()); assertThat(indexResult.getFailure(), instanceOf(VersionConflictEngineException.class)); @@ -1921,7 +1927,7 @@ public class InternalEngineTests extends ESTestCase { assertThat(getResult.exists(), equalTo(false)); // Try to index uid=2 with a too-old version, should fail: - Engine.Index index1 = new Engine.Index(newUid("2"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 2, VersionType.EXTERNAL, Engine.Operation.Origin.PRIMARY, System.nanoTime(), -1, false); + Engine.Index index1 = new Engine.Index(newUid("2"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 2, VersionType.EXTERNAL, Engine.Operation.Origin.PRIMARY, System.nanoTime(), -1, false); indexResult = engine.index(index1); assertTrue(indexResult.hasFailure()); assertThat(indexResult.getFailure(), instanceOf(VersionConflictEngineException.class)); @@ -2019,7 +2025,7 @@ public class InternalEngineTests extends ESTestCase { final int numDocs = randomIntBetween(1, 10); for (int i = 0; i < numDocs; i++) { ParsedDocument doc = testParsedDocument(Integer.toString(i), Integer.toString(i), "test", null, testDocument(), new BytesArray("{}"), null); - Engine.Index firstIndexRequest = new Engine.Index(newUid(Integer.toString(i)), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, Versions.MATCH_DELETED, VersionType.INTERNAL, PRIMARY, System.nanoTime(), -1, false); + Engine.Index firstIndexRequest = new Engine.Index(newUid(Integer.toString(i)), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, Versions.MATCH_DELETED, VersionType.INTERNAL, PRIMARY, System.nanoTime(), -1, false); Engine.IndexResult indexResult = engine.index(firstIndexRequest); assertThat(indexResult.getVersion(), equalTo(1L)); } @@ -2069,7 +2075,7 @@ public class InternalEngineTests extends ESTestCase { final int numDocs = randomIntBetween(1, 10); for (int i = 0; i < numDocs; i++) { ParsedDocument doc = testParsedDocument(Integer.toString(i), Integer.toString(i), "test", null, testDocument(), new BytesArray("{}"), null); - Engine.Index firstIndexRequest = new Engine.Index(newUid(Integer.toString(i)), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, Versions.MATCH_DELETED, VersionType.INTERNAL, PRIMARY, System.nanoTime(), -1, false); + Engine.Index firstIndexRequest = new Engine.Index(newUid(Integer.toString(i)), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, Versions.MATCH_DELETED, VersionType.INTERNAL, PRIMARY, System.nanoTime(), -1, false); Engine.IndexResult indexResult = engine.index(firstIndexRequest); assertThat(indexResult.getVersion(), equalTo(1L)); } @@ -2162,7 +2168,7 @@ public class InternalEngineTests extends ESTestCase { final int numExtraDocs = randomIntBetween(1, 10); for (int i = 0; i < numExtraDocs; i++) { ParsedDocument doc = testParsedDocument("extra" + Integer.toString(i), "extra" + Integer.toString(i), "test", null, testDocument(), new BytesArray("{}"), null); - Engine.Index firstIndexRequest = new Engine.Index(newUid(Integer.toString(i)), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, Versions.MATCH_DELETED, VersionType.INTERNAL, PRIMARY, System.nanoTime(), -1, false); + Engine.Index firstIndexRequest = new Engine.Index(newUid(Integer.toString(i)), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, Versions.MATCH_DELETED, VersionType.INTERNAL, PRIMARY, System.nanoTime(), -1, false); Engine.IndexResult indexResult = engine.index(firstIndexRequest); assertThat(indexResult.getVersion(), equalTo(1L)); } @@ -2191,7 +2197,7 @@ public class InternalEngineTests extends ESTestCase { final int numDocs = randomIntBetween(1, 10); for (int i = 0; i < numDocs; i++) { ParsedDocument doc = testParsedDocument(Integer.toString(i), Integer.toString(i), "test", null, testDocument(), new BytesArray("{}"), null); - Engine.Index firstIndexRequest = new Engine.Index(newUid(Integer.toString(i)), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, Versions.MATCH_DELETED, VersionType.INTERNAL, PRIMARY, System.nanoTime(), -1, false); + Engine.Index firstIndexRequest = new Engine.Index(newUid(Integer.toString(i)), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, Versions.MATCH_DELETED, VersionType.INTERNAL, PRIMARY, System.nanoTime(), -1, false); Engine.IndexResult indexResult = engine.index(firstIndexRequest); assertThat(indexResult.getVersion(), equalTo(1L)); } @@ -2234,7 +2240,7 @@ public class InternalEngineTests extends ESTestCase { int randomId = randomIntBetween(numDocs + 1, numDocs + 10); String uuidValue = "test#" + Integer.toString(randomId); ParsedDocument doc = testParsedDocument(uuidValue, Integer.toString(randomId), "test", null, testDocument(), new BytesArray("{}"), null); - Engine.Index firstIndexRequest = new Engine.Index(newUid(uuidValue), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 1, VersionType.EXTERNAL, PRIMARY, System.nanoTime(), -1, false); + Engine.Index firstIndexRequest = new Engine.Index(newUid(uuidValue), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 1, VersionType.EXTERNAL, PRIMARY, System.nanoTime(), -1, false); Engine.IndexResult indexResult = engine.index(firstIndexRequest); assertThat(indexResult.getVersion(), equalTo(1L)); if (flush) { @@ -2242,7 +2248,7 @@ public class InternalEngineTests extends ESTestCase { } doc = testParsedDocument(uuidValue, Integer.toString(randomId), "test", null, testDocument(), new BytesArray("{}"), null); - Engine.Index idxRequest = new Engine.Index(newUid(uuidValue), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 2, VersionType.EXTERNAL, PRIMARY, System.nanoTime(), -1, false); + Engine.Index idxRequest = new Engine.Index(newUid(uuidValue), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, 2, VersionType.EXTERNAL, PRIMARY, System.nanoTime(), -1, false); Engine.IndexResult result = engine.index(idxRequest); engine.refresh("test"); assertThat(result.getVersion(), equalTo(2L)); @@ -2308,7 +2314,7 @@ public class InternalEngineTests extends ESTestCase { final int numDocs = randomIntBetween(1, 10); for (int i = 0; i < numDocs; i++) { ParsedDocument doc = testParsedDocument(Integer.toString(i), Integer.toString(i), "test", null, testDocument(), new BytesArray("{}"), null); - Engine.Index firstIndexRequest = new Engine.Index(newUid(Integer.toString(i)), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, Versions.MATCH_DELETED, VersionType.INTERNAL, PRIMARY, System.nanoTime(), -1, false); + Engine.Index firstIndexRequest = new Engine.Index(newUid(Integer.toString(i)), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, Versions.MATCH_DELETED, VersionType.INTERNAL, PRIMARY, System.nanoTime(), -1, false); Engine.IndexResult index = engine.index(firstIndexRequest); assertThat(index.getVersion(), equalTo(1L)); } @@ -2396,7 +2402,7 @@ public class InternalEngineTests extends ESTestCase { // create { ParsedDocument doc = testParsedDocument(Integer.toString(0), Integer.toString(0), "test", null, testDocument(), new BytesArray("{}"), null); - Engine.Index firstIndexRequest = new Engine.Index(newUid(Integer.toString(0)), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, Versions.MATCH_DELETED, VersionType.INTERNAL, PRIMARY, System.nanoTime(), -1, false); + Engine.Index firstIndexRequest = new Engine.Index(newUid(Integer.toString(0)), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, Versions.MATCH_DELETED, VersionType.INTERNAL, PRIMARY, System.nanoTime(), -1, false); try (InternalEngine engine = new InternalEngine(copy(config, EngineConfig.OpenMode.CREATE_INDEX_AND_TRANSLOG))){ assertFalse(engine.isRecovering()); @@ -2523,7 +2529,7 @@ public class InternalEngineTests extends ESTestCase { final int numDocs = randomIntBetween(2, 10); // at least 2 documents otherwise we don't see any deletes below for (int i = 0; i < numDocs; i++) { ParsedDocument doc = testParsedDocument(Integer.toString(i), Integer.toString(i), "test", null, testDocument(), new BytesArray("{}"), null); - Engine.Index firstIndexRequest = new Engine.Index(newUid(Integer.toString(i)), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, Versions.MATCH_ANY, VersionType.INTERNAL, PRIMARY, System.nanoTime(), -1, false); + Engine.Index firstIndexRequest = new Engine.Index(newUid(Integer.toString(i)), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, Versions.MATCH_ANY, VersionType.INTERNAL, PRIMARY, System.nanoTime(), -1, false); Engine.IndexResult indexResult = engine.index(firstIndexRequest); assertThat(indexResult.getVersion(), equalTo(1L)); } @@ -2533,7 +2539,7 @@ public class InternalEngineTests extends ESTestCase { engine.forceMerge(randomBoolean(), 1, false, false, false); ParsedDocument doc = testParsedDocument(Integer.toString(0), Integer.toString(0), "test", null, testDocument(), new BytesArray("{}"), null); - Engine.Index firstIndexRequest = new Engine.Index(newUid(Integer.toString(0)), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, Versions.MATCH_ANY, VersionType.INTERNAL, PRIMARY, System.nanoTime(), -1, false); + Engine.Index firstIndexRequest = new Engine.Index(newUid(Integer.toString(0)), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, Versions.MATCH_ANY, VersionType.INTERNAL, PRIMARY, System.nanoTime(), -1, false); Engine.IndexResult index = engine.index(firstIndexRequest); assertThat(index.getVersion(), equalTo(2L)); engine.flush(); // flush - buffered deletes are not counted @@ -2607,16 +2613,16 @@ public class InternalEngineTests extends ESTestCase { boolean isRetry = false; long autoGeneratedIdTimestamp = 0; - Engine.Index index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, Versions.MATCH_ANY, VersionType.INTERNAL, PRIMARY, System.nanoTime(), autoGeneratedIdTimestamp, isRetry); + Engine.Index index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, Versions.MATCH_ANY, VersionType.INTERNAL, PRIMARY, System.nanoTime(), autoGeneratedIdTimestamp, isRetry); Engine.IndexResult indexResult = engine.index(index); assertThat(indexResult.getVersion(), equalTo(1L)); - index = new Engine.Index(newUid("1"), doc, indexResult.getSeqNo(), indexResult.getVersion(), index.versionType().versionTypeForReplicationAndRecovery(), REPLICA, System.nanoTime(), autoGeneratedIdTimestamp, isRetry); + index = new Engine.Index(newUid("1"), doc, indexResult.getSeqNo(), index.primaryTerm(), indexResult.getVersion(), index.versionType().versionTypeForReplicationAndRecovery(), REPLICA, System.nanoTime(), autoGeneratedIdTimestamp, isRetry); indexResult = replicaEngine.index(index); assertThat(indexResult.getVersion(), equalTo(1L)); isRetry = true; - index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, Versions.MATCH_ANY, VersionType.INTERNAL, PRIMARY, System.nanoTime(), autoGeneratedIdTimestamp, isRetry); + index = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, Versions.MATCH_ANY, VersionType.INTERNAL, PRIMARY, System.nanoTime(), autoGeneratedIdTimestamp, isRetry); indexResult = engine.index(index); assertThat(indexResult.getVersion(), equalTo(1L)); engine.refresh("test"); @@ -2625,7 +2631,7 @@ public class InternalEngineTests extends ESTestCase { assertEquals(1, topDocs.totalHits); } - index = new Engine.Index(newUid("1"), doc, indexResult.getSeqNo(), indexResult.getVersion(), index.versionType().versionTypeForReplicationAndRecovery(), REPLICA, System.nanoTime(), autoGeneratedIdTimestamp, isRetry); + index = new Engine.Index(newUid("1"), doc, indexResult.getSeqNo(), index.primaryTerm(), indexResult.getVersion(), index.versionType().versionTypeForReplicationAndRecovery(), REPLICA, System.nanoTime(), autoGeneratedIdTimestamp, isRetry); indexResult = replicaEngine.index(index); assertThat(indexResult.hasFailure(), equalTo(false)); replicaEngine.refresh("test"); @@ -2641,16 +2647,16 @@ public class InternalEngineTests extends ESTestCase { boolean isRetry = true; long autoGeneratedIdTimestamp = 0; - Engine.Index firstIndexRequest = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, Versions.MATCH_ANY, VersionType.INTERNAL, PRIMARY, System.nanoTime(), autoGeneratedIdTimestamp, isRetry); + Engine.Index firstIndexRequest = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, Versions.MATCH_ANY, VersionType.INTERNAL, PRIMARY, System.nanoTime(), autoGeneratedIdTimestamp, isRetry); Engine.IndexResult result = engine.index(firstIndexRequest); assertThat(result.getVersion(), equalTo(1L)); - Engine.Index firstIndexRequestReplica = new Engine.Index(newUid("1"), doc, result.getSeqNo(), result.getVersion(), firstIndexRequest.versionType().versionTypeForReplicationAndRecovery(), REPLICA, System.nanoTime(), autoGeneratedIdTimestamp, isRetry); + Engine.Index firstIndexRequestReplica = new Engine.Index(newUid("1"), doc, result.getSeqNo(), firstIndexRequest.primaryTerm(), result.getVersion(), firstIndexRequest.versionType().versionTypeForReplicationAndRecovery(), REPLICA, System.nanoTime(), autoGeneratedIdTimestamp, isRetry); Engine.IndexResult indexReplicaResult = replicaEngine.index(firstIndexRequestReplica); assertThat(indexReplicaResult.getVersion(), equalTo(1L)); isRetry = false; - Engine.Index secondIndexRequest = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, Versions.MATCH_ANY, VersionType.INTERNAL, PRIMARY, System.nanoTime(), autoGeneratedIdTimestamp, isRetry); + Engine.Index secondIndexRequest = new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, Versions.MATCH_ANY, VersionType.INTERNAL, PRIMARY, System.nanoTime(), autoGeneratedIdTimestamp, isRetry); Engine.IndexResult indexResult = engine.index(secondIndexRequest); assertTrue(indexResult.isCreated()); engine.refresh("test"); @@ -2659,7 +2665,7 @@ public class InternalEngineTests extends ESTestCase { assertEquals(1, topDocs.totalHits); } - Engine.Index secondIndexRequestReplica = new Engine.Index(newUid("1"), doc, result.getSeqNo(), result.getVersion(), firstIndexRequest.versionType().versionTypeForReplicationAndRecovery(), REPLICA, System.nanoTime(), autoGeneratedIdTimestamp, isRetry); + Engine.Index secondIndexRequestReplica = new Engine.Index(newUid("1"), doc, result.getSeqNo(), secondIndexRequest.primaryTerm(), result.getVersion(), firstIndexRequest.versionType().versionTypeForReplicationAndRecovery(), REPLICA, System.nanoTime(), autoGeneratedIdTimestamp, isRetry); replicaEngine.index(secondIndexRequestReplica); replicaEngine.refresh("test"); try (Engine.Searcher searcher = replicaEngine.acquireSearcher("test")) { @@ -2670,9 +2676,9 @@ public class InternalEngineTests extends ESTestCase { public Engine.Index randomAppendOnly(int docId, ParsedDocument doc, boolean retry) { if (randomBoolean()) { - return new Engine.Index(newUid(Integer.toString(docId)), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, Versions.MATCH_ANY, VersionType.INTERNAL, Engine.Operation.Origin.PRIMARY, System.nanoTime(), docId, retry); + return new Engine.Index(newUid(Integer.toString(docId)), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, Versions.MATCH_ANY, VersionType.INTERNAL, Engine.Operation.Origin.PRIMARY, System.nanoTime(), docId, retry); } - return new Engine.Index(newUid(Integer.toString(docId)), doc, 0, 1, VersionType.EXTERNAL, Engine.Operation.Origin.REPLICA, System.nanoTime(), docId, retry); + return new Engine.Index(newUid(Integer.toString(docId)), doc, 0, 0, 1, VersionType.EXTERNAL, Engine.Operation.Origin.REPLICA, System.nanoTime(), docId, retry); } public void testRetryConcurrently() throws InterruptedException, IOException { @@ -2857,37 +2863,74 @@ public class InternalEngineTests extends ESTestCase { } } - public void testTragicEventErrorBubblesUp() throws IOException { - engine.close(); - final AtomicBoolean failWithFatalError = new AtomicBoolean(true); - final VirtualMachineError error = randomFrom( - new InternalError(), - new OutOfMemoryError(), - new StackOverflowError(), - new UnknownError()); - engine = new InternalEngine(copy(engine.config(), EngineConfig.OpenMode.OPEN_INDEX_AND_TRANSLOG, new Analyzer() { - @Override - protected TokenStreamComponents createComponents(String fieldName) { - return new TokenStreamComponents(new Tokenizer() { - @Override - public boolean incrementToken() throws IOException { - if (failWithFatalError.get()) { - throw error; - } else { - throw new AssertionError("should not get to this point"); - } - } - }); - } - })); - final Document document = testDocument(); - document.add(new TextField("value", "test", Field.Store.YES)); - final ParsedDocument doc = testParsedDocument("1", "1", "test", null, document, B_1, null); - final Engine.Index first = new Engine.Index(newUid("1"), doc); - expectThrows(error.getClass(), () -> engine.index(first)); - failWithFatalError.set(false); - expectThrows(error.getClass(), () -> engine.index(first)); - assertNull(engine.failedEngine.get()); + public void testSequenceIDs() throws Exception { + Tuple seqID = getSequenceID(engine, new Engine.Get(false, newUid("1"))); + // Non-existent doc returns no seqnum and no primary term + assertThat(seqID.v1(), equalTo(SequenceNumbersService.UNASSIGNED_SEQ_NO)); + assertThat(seqID.v2(), equalTo(0L)); + + // create a document + Document document = testDocumentWithTextField(); + document.add(new Field(SourceFieldMapper.NAME, BytesReference.toBytes(B_1), SourceFieldMapper.Defaults.FIELD_TYPE)); + ParsedDocument doc = testParsedDocument("1", "1", "test", null, document, B_1, null); + engine.index(new Engine.Index(newUid("1"), doc)); + engine.refresh("test"); + + seqID = getSequenceID(engine, new Engine.Get(false, newUid("1"))); + logger.info("--> got seqID: {}", seqID); + assertThat(seqID.v1(), equalTo(0L)); + assertThat(seqID.v2(), equalTo(0L)); + + // Index the same document again + document = testDocumentWithTextField(); + document.add(new Field(SourceFieldMapper.NAME, BytesReference.toBytes(B_1), SourceFieldMapper.Defaults.FIELD_TYPE)); + doc = testParsedDocument("1", "1", "test", null, document, B_1, null); + engine.index(new Engine.Index(newUid("1"), doc)); + engine.refresh("test"); + + seqID = getSequenceID(engine, new Engine.Get(false, newUid("1"))); + logger.info("--> got seqID: {}", seqID); + assertThat(seqID.v1(), equalTo(1L)); + assertThat(seqID.v2(), equalTo(0L)); + + // Index the same document for the third time, this time changing the primary term + document = testDocumentWithTextField(); + document.add(new Field(SourceFieldMapper.NAME, BytesReference.toBytes(B_1), SourceFieldMapper.Defaults.FIELD_TYPE)); + doc = testParsedDocument("1", "1", "test", null, document, B_1, null); + engine.index(new Engine.Index(newUid("1"), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 1, + Versions.MATCH_ANY, VersionType.INTERNAL, Engine.Operation.Origin.PRIMARY, + System.nanoTime(), -1, false)); + engine.refresh("test"); + + seqID = getSequenceID(engine, new Engine.Get(false, newUid("1"))); + logger.info("--> got seqID: {}", seqID); + assertThat(seqID.v1(), equalTo(2L)); + assertThat(seqID.v2(), equalTo(1L)); + + // we can query by the _seq_no + Engine.Searcher searchResult = engine.acquireSearcher("test"); + MatcherAssert.assertThat(searchResult, EngineSearcherTotalHitsMatcher.engineSearcherTotalHits(1)); + MatcherAssert.assertThat(searchResult, EngineSearcherTotalHitsMatcher.engineSearcherTotalHits(LongPoint.newExactQuery("_seq_no", 2), 1)); + searchResult.close(); + } + + /** + * Return a tuple representing the sequence ID for the given {@code Get} + * operation. The first value in the tuple is the sequence number, the + * second is the primary term. + */ + private Tuple getSequenceID(Engine engine, Engine.Get get) throws EngineException { + final Searcher searcher = engine.acquireSearcher("get"); + try { + long seqNum = Versions.loadSeqNo(searcher.reader(), get.uid()); + long primaryTerm = Versions.loadPrimaryTerm(searcher.reader(), get.uid()); + return new Tuple(seqNum, primaryTerm); + } catch (Exception e) { + Releasables.closeWhileHandlingException(searcher); + throw new EngineException(shardId, "unable to retrieve sequence id", e); + } finally { + searcher.close(); + } } } diff --git a/core/src/test/java/org/elasticsearch/index/engine/ShadowEngineTests.java b/core/src/test/java/org/elasticsearch/index/engine/ShadowEngineTests.java index 50ea9c08716..a3c58f25ea9 100644 --- a/core/src/test/java/org/elasticsearch/index/engine/ShadowEngineTests.java +++ b/core/src/test/java/org/elasticsearch/index/engine/ShadowEngineTests.java @@ -54,6 +54,7 @@ import org.elasticsearch.index.codec.CodecService; import org.elasticsearch.index.mapper.Mapping; import org.elasticsearch.index.mapper.ParseContext; import org.elasticsearch.index.mapper.ParsedDocument; +import org.elasticsearch.index.mapper.SeqNoFieldMapper; import org.elasticsearch.index.mapper.SourceFieldMapper; import org.elasticsearch.index.mapper.UidFieldMapper; import org.elasticsearch.index.seqno.SequenceNumbersService; @@ -174,11 +175,14 @@ public class ShadowEngineTests extends ESTestCase { private ParsedDocument testParsedDocument(String uid, String id, String type, String routing, ParseContext.Document document, BytesReference source, Mapping mappingsUpdate) { Field uidField = new Field("_uid", uid, UidFieldMapper.Defaults.FIELD_TYPE); Field versionField = new NumericDocValuesField("_version", 0); - Field seqNoField = new NumericDocValuesField("_seq_no", 0); + SeqNoFieldMapper.SequenceID seqID = SeqNoFieldMapper.SequenceID.emptySeqID(); document.add(uidField); document.add(versionField); + document.add(seqID.seqNo); + document.add(seqID.seqNoDocValue); + document.add(seqID.primaryTerm); document.add(new LongPoint("point_field", 42)); // so that points report memory/disk usage - return new ParsedDocument(versionField, seqNoField, id, type, routing, Arrays.asList(document), source, mappingsUpdate); + return new ParsedDocument(versionField, seqID, id, type, routing, Arrays.asList(document), source, mappingsUpdate); } protected Store createStore(Path p) throws IOException { @@ -984,7 +988,7 @@ public class ShadowEngineTests extends ESTestCase { final int numDocs = randomIntBetween(2, 10); // at least 2 documents otherwise we don't see any deletes below for (int i = 0; i < numDocs; i++) { ParsedDocument doc = testParsedDocument(Integer.toString(i), Integer.toString(i), "test", null, testDocument(), new BytesArray("{}"), null); - Engine.Index firstIndexRequest = new Engine.Index(newUid(Integer.toString(i)), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, Versions.MATCH_ANY, VersionType.INTERNAL, PRIMARY, System.nanoTime(), -1, false); + Engine.Index firstIndexRequest = new Engine.Index(newUid(Integer.toString(i)), doc, SequenceNumbersService.UNASSIGNED_SEQ_NO, 0, Versions.MATCH_ANY, VersionType.INTERNAL, PRIMARY, System.nanoTime(), -1, false); Engine.IndexResult indexResult = primaryEngine.index(firstIndexRequest); assertThat(indexResult.getVersion(), equalTo(1L)); } diff --git a/core/src/test/java/org/elasticsearch/index/fielddata/AbstractFieldDataImplTestCase.java b/core/src/test/java/org/elasticsearch/index/fielddata/AbstractFieldDataImplTestCase.java index b6ae9948675..75f53b8a7e3 100644 --- a/core/src/test/java/org/elasticsearch/index/fielddata/AbstractFieldDataImplTestCase.java +++ b/core/src/test/java/org/elasticsearch/index/fielddata/AbstractFieldDataImplTestCase.java @@ -31,6 +31,7 @@ import org.apache.lucene.util.BytesRef; import org.elasticsearch.common.Strings; import org.elasticsearch.search.MultiValueMode; +import java.util.List; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.greaterThanOrEqualTo; @@ -71,57 +72,61 @@ public abstract class AbstractFieldDataImplTestCase extends AbstractFieldDataTes public void testDeletedDocs() throws Exception { add2SingleValuedDocumentsAndDeleteOneOfThem(); IndexFieldData indexFieldData = getForField("value"); - LeafReaderContext readerContext = refreshReader(); - AtomicFieldData fieldData = indexFieldData.load(readerContext); - SortedBinaryDocValues values = fieldData.getBytesValues(); - for (int i = 0; i < readerContext.reader().maxDoc(); ++i) { - values.setDocument(i); - assertThat(values.count(), greaterThanOrEqualTo(1)); + List readerContexts = refreshReader(); + for (LeafReaderContext readerContext : readerContexts) { + AtomicFieldData fieldData = indexFieldData.load(readerContext); + SortedBinaryDocValues values = fieldData.getBytesValues(); + for (int i = 0; i < readerContext.reader().maxDoc(); ++i) { + values.setDocument(i); + assertThat(values.count(), greaterThanOrEqualTo(1)); + } } } public void testSingleValueAllSet() throws Exception { fillSingleValueAllSet(); IndexFieldData indexFieldData = getForField("value"); - LeafReaderContext readerContext = refreshReader(); - AtomicFieldData fieldData = indexFieldData.load(readerContext); - assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed())); + List readerContexts = refreshReader(); + for (LeafReaderContext readerContext : readerContexts) { + AtomicFieldData fieldData = indexFieldData.load(readerContext); + assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed())); - SortedBinaryDocValues bytesValues = fieldData.getBytesValues(); + SortedBinaryDocValues bytesValues = fieldData.getBytesValues(); - bytesValues.setDocument(0); - assertThat(bytesValues.count(), equalTo(1)); - assertThat(bytesValues.valueAt(0), equalTo(new BytesRef(two()))); - bytesValues.setDocument(1); - assertThat(bytesValues.count(), equalTo(1)); - assertThat(bytesValues.valueAt(0), equalTo(new BytesRef(one()))); - bytesValues.setDocument(2); - assertThat(bytesValues.count(), equalTo(1)); - assertThat(bytesValues.valueAt(0), equalTo(new BytesRef(three()))); + bytesValues.setDocument(0); + assertThat(bytesValues.count(), equalTo(1)); + assertThat(bytesValues.valueAt(0), equalTo(new BytesRef(two()))); + bytesValues.setDocument(1); + assertThat(bytesValues.count(), equalTo(1)); + assertThat(bytesValues.valueAt(0), equalTo(new BytesRef(one()))); + bytesValues.setDocument(2); + assertThat(bytesValues.count(), equalTo(1)); + assertThat(bytesValues.valueAt(0), equalTo(new BytesRef(three()))); - assertValues(bytesValues, 0, two()); - assertValues(bytesValues, 1, one()); - assertValues(bytesValues, 2, three()); + assertValues(bytesValues, 0, two()); + assertValues(bytesValues, 1, one()); + assertValues(bytesValues, 2, three()); - IndexSearcher searcher = new IndexSearcher(readerContext.reader()); - TopFieldDocs topDocs; + IndexSearcher searcher = new IndexSearcher(readerContext.reader()); + TopFieldDocs topDocs; - topDocs = searcher.search(new MatchAllDocsQuery(), 10, - new Sort(new SortField("value", indexFieldData.comparatorSource(null, MultiValueMode.MIN, null)))); - assertThat(topDocs.totalHits, equalTo(3)); - assertThat(topDocs.scoreDocs[0].doc, equalTo(1)); - assertThat(toString(((FieldDoc) topDocs.scoreDocs[0]).fields[0]), equalTo(one())); - assertThat(topDocs.scoreDocs[1].doc, equalTo(0)); - assertThat(toString(((FieldDoc) topDocs.scoreDocs[1]).fields[0]), equalTo(two())); - assertThat(topDocs.scoreDocs[2].doc, equalTo(2)); - assertThat(toString(((FieldDoc) topDocs.scoreDocs[2]).fields[0]), equalTo(three())); + topDocs = searcher.search(new MatchAllDocsQuery(), 10, + new Sort(new SortField("value", indexFieldData.comparatorSource(null, MultiValueMode.MIN, null)))); + assertThat(topDocs.totalHits, equalTo(3)); + assertThat(topDocs.scoreDocs[0].doc, equalTo(1)); + assertThat(toString(((FieldDoc) topDocs.scoreDocs[0]).fields[0]), equalTo(one())); + assertThat(topDocs.scoreDocs[1].doc, equalTo(0)); + assertThat(toString(((FieldDoc) topDocs.scoreDocs[1]).fields[0]), equalTo(two())); + assertThat(topDocs.scoreDocs[2].doc, equalTo(2)); + assertThat(toString(((FieldDoc) topDocs.scoreDocs[2]).fields[0]), equalTo(three())); - topDocs = searcher.search(new MatchAllDocsQuery(), 10, - new Sort(new SortField("value", indexFieldData.comparatorSource(null, MultiValueMode.MAX, null), true))); - assertThat(topDocs.totalHits, equalTo(3)); - assertThat(topDocs.scoreDocs[0].doc, equalTo(2)); - assertThat(topDocs.scoreDocs[1].doc, equalTo(0)); - assertThat(topDocs.scoreDocs[2].doc, equalTo(1)); + topDocs = searcher.search(new MatchAllDocsQuery(), 10, + new Sort(new SortField("value", indexFieldData.comparatorSource(null, MultiValueMode.MAX, null), true))); + assertThat(topDocs.totalHits, equalTo(3)); + assertThat(topDocs.scoreDocs[0].doc, equalTo(2)); + assertThat(topDocs.scoreDocs[1].doc, equalTo(0)); + assertThat(topDocs.scoreDocs[2].doc, equalTo(1)); + } } protected abstract void fillSingleValueWithMissing() throws Exception; @@ -145,45 +150,52 @@ public abstract class AbstractFieldDataImplTestCase extends AbstractFieldDataTes public void testSingleValueWithMissing() throws Exception { fillSingleValueWithMissing(); IndexFieldData indexFieldData = getForField("value"); - AtomicFieldData fieldData = indexFieldData.load(refreshReader()); - assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed())); + List readerContexts = refreshReader(); + for (LeafReaderContext readerContext : readerContexts) { + AtomicFieldData fieldData = indexFieldData.load(readerContext); + assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed())); - SortedBinaryDocValues bytesValues = fieldData - .getBytesValues(); + SortedBinaryDocValues bytesValues = fieldData.getBytesValues(); - assertValues(bytesValues, 0, two()); - assertValues(bytesValues, 1, Strings.EMPTY_ARRAY); - assertValues(bytesValues, 2, three()); + assertValues(bytesValues, 0, two()); + assertValues(bytesValues, 1, Strings.EMPTY_ARRAY); + assertValues(bytesValues, 2, three()); + } } protected abstract void fillMultiValueAllSet() throws Exception; public void testMultiValueAllSet() throws Exception { fillMultiValueAllSet(); + // the segments are force merged to a single segment so that the sorted binary doc values can be asserted within a single segment. + // Previously we used the SlowCompositeReaderWrapper but this is an unideal solution so force merging is a better idea. + writer.forceMerge(1); IndexFieldData indexFieldData = getForField("value"); - AtomicFieldData fieldData = indexFieldData.load(refreshReader()); - assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed())); + List readerContexts = refreshReader(); + for (LeafReaderContext readerContext : readerContexts) { + AtomicFieldData fieldData = indexFieldData.load(readerContext); + assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed())); - SortedBinaryDocValues bytesValues = fieldData.getBytesValues(); + SortedBinaryDocValues bytesValues = fieldData.getBytesValues(); + assertValues(bytesValues, 0, two(), four()); + assertValues(bytesValues, 1, one()); + assertValues(bytesValues, 2, three()); - assertValues(bytesValues, 0, two(), four()); - assertValues(bytesValues, 1, one()); - assertValues(bytesValues, 2, three()); + IndexSearcher searcher = new IndexSearcher(DirectoryReader.open(writer)); + TopFieldDocs topDocs = searcher.search(new MatchAllDocsQuery(), 10, new Sort(new SortField("value", indexFieldData.comparatorSource(null, MultiValueMode.MIN, null)))); + assertThat(topDocs.totalHits, equalTo(3)); + assertThat(topDocs.scoreDocs.length, equalTo(3)); + assertThat(topDocs.scoreDocs[0].doc, equalTo(1)); + assertThat(topDocs.scoreDocs[1].doc, equalTo(0)); + assertThat(topDocs.scoreDocs[2].doc, equalTo(2)); - IndexSearcher searcher = new IndexSearcher(DirectoryReader.open(writer)); - TopFieldDocs topDocs = searcher.search(new MatchAllDocsQuery(), 10, new Sort(new SortField("value", indexFieldData.comparatorSource(null, MultiValueMode.MIN, null)))); - assertThat(topDocs.totalHits, equalTo(3)); - assertThat(topDocs.scoreDocs.length, equalTo(3)); - assertThat(topDocs.scoreDocs[0].doc, equalTo(1)); - assertThat(topDocs.scoreDocs[1].doc, equalTo(0)); - assertThat(topDocs.scoreDocs[2].doc, equalTo(2)); - - topDocs = searcher.search(new MatchAllDocsQuery(), 10, new Sort(new SortField("value", indexFieldData.comparatorSource(null, MultiValueMode.MAX, null), true))); - assertThat(topDocs.totalHits, equalTo(3)); - assertThat(topDocs.scoreDocs.length, equalTo(3)); - assertThat(topDocs.scoreDocs[0].doc, equalTo(0)); - assertThat(topDocs.scoreDocs[1].doc, equalTo(2)); - assertThat(topDocs.scoreDocs[2].doc, equalTo(1)); + topDocs = searcher.search(new MatchAllDocsQuery(), 10, new Sort(new SortField("value", indexFieldData.comparatorSource(null, MultiValueMode.MAX, null), true))); + assertThat(topDocs.totalHits, equalTo(3)); + assertThat(topDocs.scoreDocs.length, equalTo(3)); + assertThat(topDocs.scoreDocs[0].doc, equalTo(0)); + assertThat(topDocs.scoreDocs[1].doc, equalTo(2)); + assertThat(topDocs.scoreDocs[2].doc, equalTo(1)); + } } protected abstract void fillMultiValueWithMissing() throws Exception; @@ -191,33 +203,39 @@ public abstract class AbstractFieldDataImplTestCase extends AbstractFieldDataTes public void testMultiValueWithMissing() throws Exception { fillMultiValueWithMissing(); IndexFieldData indexFieldData = getForField("value"); - AtomicFieldData fieldData = indexFieldData.load(refreshReader()); - assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed())); + List readerContexts = refreshReader(); + for (LeafReaderContext readerContext : readerContexts) { + AtomicFieldData fieldData = indexFieldData.load(readerContext); + assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed())); - SortedBinaryDocValues bytesValues = fieldData.getBytesValues(); + SortedBinaryDocValues bytesValues = fieldData.getBytesValues(); - assertValues(bytesValues, 0, two(), four()); - assertValues(bytesValues, 1, Strings.EMPTY_ARRAY); - assertValues(bytesValues, 2, three()); + assertValues(bytesValues, 0, two(), four()); + assertValues(bytesValues, 1, Strings.EMPTY_ARRAY); + assertValues(bytesValues, 2, three()); + } } public void testMissingValueForAll() throws Exception { fillAllMissing(); IndexFieldData indexFieldData = getForField("value"); - AtomicFieldData fieldData = indexFieldData.load(refreshReader()); - // Some impls (FST) return size 0 and some (PagedBytes) do take size in the case no actual data is loaded - assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(0L)); + List readerContexts = refreshReader(); + for (LeafReaderContext readerContext : readerContexts) { + AtomicFieldData fieldData = indexFieldData.load(readerContext); + // Some impls (FST) return size 0 and some (PagedBytes) do take size in the case no actual data is loaded + assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(0L)); - SortedBinaryDocValues bytesValues = fieldData.getBytesValues(); + SortedBinaryDocValues bytesValues = fieldData.getBytesValues(); - assertValues(bytesValues, 0, Strings.EMPTY_ARRAY); - assertValues(bytesValues, 1, Strings.EMPTY_ARRAY); - assertValues(bytesValues, 2, Strings.EMPTY_ARRAY); - SortedBinaryDocValues hashedBytesValues = fieldData.getBytesValues(); + assertValues(bytesValues, 0, Strings.EMPTY_ARRAY); + assertValues(bytesValues, 1, Strings.EMPTY_ARRAY); + assertValues(bytesValues, 2, Strings.EMPTY_ARRAY); + SortedBinaryDocValues hashedBytesValues = fieldData.getBytesValues(); - assertValues(hashedBytesValues, 0, Strings.EMPTY_ARRAY); - assertValues(hashedBytesValues, 1, Strings.EMPTY_ARRAY); - assertValues(hashedBytesValues, 2, Strings.EMPTY_ARRAY); + assertValues(hashedBytesValues, 0, Strings.EMPTY_ARRAY); + assertValues(hashedBytesValues, 1, Strings.EMPTY_ARRAY); + assertValues(hashedBytesValues, 2, Strings.EMPTY_ARRAY); + } } protected abstract void fillAllMissing() throws Exception; diff --git a/core/src/test/java/org/elasticsearch/index/fielddata/AbstractFieldDataTestCase.java b/core/src/test/java/org/elasticsearch/index/fielddata/AbstractFieldDataTestCase.java index 5e26f26978e..641d1eaae36 100644 --- a/core/src/test/java/org/elasticsearch/index/fielddata/AbstractFieldDataTestCase.java +++ b/core/src/test/java/org/elasticsearch/index/fielddata/AbstractFieldDataTestCase.java @@ -29,7 +29,6 @@ import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.index.LeafReader; import org.apache.lucene.index.LeafReaderContext; import org.apache.lucene.index.LogByteSizeMergePolicy; -import org.apache.lucene.index.SlowCompositeReaderWrapper; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.store.RAMDirectory; @@ -61,6 +60,7 @@ import org.junit.Before; import java.io.IOException; import java.util.Collection; +import java.util.List; import static org.elasticsearch.index.fielddata.IndexFieldData.XFieldComparatorSource.Nested; import static org.hamcrest.Matchers.equalTo; @@ -73,8 +73,8 @@ public abstract class AbstractFieldDataTestCase extends ESSingleNodeTestCase { protected IndexFieldDataService ifdService; protected MapperService mapperService; protected IndexWriter writer; - protected LeafReaderContext readerContext; - protected DirectoryReader topLevelReader; + protected List readerContexts = null; + protected DirectoryReader topLevelReader = null; protected IndicesFieldDataCache indicesFieldDataCache; protected abstract String getFieldDataType(); @@ -146,22 +146,21 @@ public abstract class AbstractFieldDataTestCase extends ESSingleNodeTestCase { writer = new IndexWriter(new RAMDirectory(), new IndexWriterConfig(new StandardAnalyzer()).setMergePolicy(new LogByteSizeMergePolicy())); } - protected final LeafReaderContext refreshReader() throws Exception { - if (readerContext != null) { - readerContext.reader().close(); + protected final List refreshReader() throws Exception { + if (readerContexts != null && topLevelReader != null) { + topLevelReader.close(); } topLevelReader = ElasticsearchDirectoryReader.wrap(DirectoryReader.open(writer), new ShardId("foo", "_na_", 1)); - LeafReader reader = SlowCompositeReaderWrapper.wrap(topLevelReader); - readerContext = reader.getContext(); - return readerContext; + readerContexts = topLevelReader.leaves(); + return readerContexts; } @Override @After public void tearDown() throws Exception { super.tearDown(); - if (readerContext != null) { - readerContext.reader().close(); + if (topLevelReader != null) { + topLevelReader.close(); } writer.close(); } @@ -179,14 +178,16 @@ public abstract class AbstractFieldDataTestCase extends ESSingleNodeTestCase { IndexFieldData fieldData = getForField("non_existing_field"); int max = randomInt(7); - AtomicFieldData previous = null; - for (int i = 0; i < max; i++) { - AtomicFieldData current = fieldData.load(readerContext); - assertThat(current.ramBytesUsed(), equalTo(0L)); - if (previous != null) { - assertThat(current, not(sameInstance(previous))); + for (LeafReaderContext readerContext : readerContexts) { + AtomicFieldData previous = null; + for (int i = 0; i < max; i++) { + AtomicFieldData current = fieldData.load(readerContext); + assertThat(current.ramBytesUsed(), equalTo(0L)); + if (previous != null) { + assertThat(current, not(sameInstance(previous))); + } + previous = current; } - previous = current; } } } diff --git a/core/src/test/java/org/elasticsearch/index/fielddata/AbstractStringFieldDataTestCase.java b/core/src/test/java/org/elasticsearch/index/fielddata/AbstractStringFieldDataTestCase.java index 13f194a23ba..b3652ec9167 100644 --- a/core/src/test/java/org/elasticsearch/index/fielddata/AbstractStringFieldDataTestCase.java +++ b/core/src/test/java/org/elasticsearch/index/fielddata/AbstractStringFieldDataTestCase.java @@ -557,37 +557,40 @@ public abstract class AbstractStringFieldDataTestCase extends AbstractFieldDataI public void testTermsEnum() throws Exception { fillExtendedMvSet(); - LeafReaderContext atomicReaderContext = refreshReader(); + writer.forceMerge(1); + List atomicReaderContexts = refreshReader(); IndexOrdinalsFieldData ifd = getForField("value"); - AtomicOrdinalsFieldData afd = ifd.load(atomicReaderContext); + for (LeafReaderContext atomicReaderContext : atomicReaderContexts) { + AtomicOrdinalsFieldData afd = ifd.load(atomicReaderContext); - TermsEnum termsEnum = afd.getOrdinalsValues().termsEnum(); - int size = 0; - while (termsEnum.next() != null) { - size++; + TermsEnum termsEnum = afd.getOrdinalsValues().termsEnum(); + int size = 0; + while (termsEnum.next() != null) { + size++; + } + assertThat(size, equalTo(12)); + + assertThat(termsEnum.seekExact(new BytesRef("10")), is(true)); + assertThat(termsEnum.term().utf8ToString(), equalTo("10")); + assertThat(termsEnum.next(), nullValue()); + + assertThat(termsEnum.seekExact(new BytesRef("08")), is(true)); + assertThat(termsEnum.term().utf8ToString(), equalTo("08")); + size = 0; + while (termsEnum.next() != null) { + size++; + } + assertThat(size, equalTo(2)); + + termsEnum.seekExact(8); + assertThat(termsEnum.term().utf8ToString(), equalTo("07")); + size = 0; + while (termsEnum.next() != null) { + size++; + } + assertThat(size, equalTo(3)); } - assertThat(size, equalTo(12)); - - assertThat(termsEnum.seekExact(new BytesRef("10")), is(true)); - assertThat(termsEnum.term().utf8ToString(), equalTo("10")); - assertThat(termsEnum.next(), nullValue()); - - assertThat(termsEnum.seekExact(new BytesRef("08")), is(true)); - assertThat(termsEnum.term().utf8ToString(), equalTo("08")); - size = 0; - while (termsEnum.next() != null) { - size++; - } - assertThat(size, equalTo(2)); - - termsEnum.seekExact(8); - assertThat(termsEnum.term().utf8ToString(), equalTo("07")); - size = 0; - while (termsEnum.next() != null) { - size++; - } - assertThat(size, equalTo(3)); } public void testGlobalOrdinalsGetRemovedOnceIndexReaderCloses() throws Exception { diff --git a/core/src/test/java/org/elasticsearch/index/fielddata/BinaryDVFieldDataTests.java b/core/src/test/java/org/elasticsearch/index/fielddata/BinaryDVFieldDataTests.java index eb5b1f2b874..5231ccfc380 100644 --- a/core/src/test/java/org/elasticsearch/index/fielddata/BinaryDVFieldDataTests.java +++ b/core/src/test/java/org/elasticsearch/index/fielddata/BinaryDVFieldDataTests.java @@ -30,6 +30,7 @@ import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.index.mapper.DocumentMapper; import org.elasticsearch.index.mapper.ParsedDocument; +import java.util.List; import static org.hamcrest.Matchers.equalTo; public class BinaryDVFieldDataTests extends AbstractFieldDataTestCase { @@ -75,30 +76,32 @@ public class BinaryDVFieldDataTests extends AbstractFieldDataTestCase { d = mapper.parse("test", "test", "4", doc.bytes()); writer.addDocument(d.rootDoc()); - LeafReaderContext reader = refreshReader(); + List readers = refreshReader(); IndexFieldData indexFieldData = getForField("field"); - AtomicFieldData fieldData = indexFieldData.load(reader); + for (LeafReaderContext reader : readers) { + AtomicFieldData fieldData = indexFieldData.load(reader); - SortedBinaryDocValues bytesValues = fieldData.getBytesValues(); + SortedBinaryDocValues bytesValues = fieldData.getBytesValues(); - CollectionUtils.sortAndDedup(bytesList1); - bytesValues.setDocument(0); - assertThat(bytesValues.count(), equalTo(2)); - assertThat(bytesValues.valueAt(0), equalTo(new BytesRef(bytesList1.get(0)))); - assertThat(bytesValues.valueAt(1), equalTo(new BytesRef(bytesList1.get(1)))); + CollectionUtils.sortAndDedup(bytesList1); + bytesValues.setDocument(0); + assertThat(bytesValues.count(), equalTo(2)); + assertThat(bytesValues.valueAt(0), equalTo(new BytesRef(bytesList1.get(0)))); + assertThat(bytesValues.valueAt(1), equalTo(new BytesRef(bytesList1.get(1)))); - bytesValues.setDocument(1); - assertThat(bytesValues.count(), equalTo(1)); - assertThat(bytesValues.valueAt(0), equalTo(new BytesRef(bytes1))); + bytesValues.setDocument(1); + assertThat(bytesValues.count(), equalTo(1)); + assertThat(bytesValues.valueAt(0), equalTo(new BytesRef(bytes1))); - bytesValues.setDocument(2); - assertThat(bytesValues.count(), equalTo(0)); + bytesValues.setDocument(2); + assertThat(bytesValues.count(), equalTo(0)); - CollectionUtils.sortAndDedup(bytesList2); - bytesValues.setDocument(3); - assertThat(bytesValues.count(), equalTo(2)); - assertThat(bytesValues.valueAt(0), equalTo(new BytesRef(bytesList2.get(0)))); - assertThat(bytesValues.valueAt(1), equalTo(new BytesRef(bytesList2.get(1)))); + CollectionUtils.sortAndDedup(bytesList2); + bytesValues.setDocument(3); + assertThat(bytesValues.count(), equalTo(2)); + assertThat(bytesValues.valueAt(0), equalTo(new BytesRef(bytesList2.get(0)))); + assertThat(bytesValues.valueAt(1), equalTo(new BytesRef(bytesList2.get(1)))); + } } private byte[] randomBytes() { diff --git a/core/src/test/java/org/elasticsearch/index/fielddata/FilterFieldDataTests.java b/core/src/test/java/org/elasticsearch/index/fielddata/FilterFieldDataTests.java index d15a50300ea..33ecd57b130 100644 --- a/core/src/test/java/org/elasticsearch/index/fielddata/FilterFieldDataTests.java +++ b/core/src/test/java/org/elasticsearch/index/fielddata/FilterFieldDataTests.java @@ -28,6 +28,7 @@ import org.elasticsearch.index.mapper.MappedFieldType; import org.elasticsearch.index.mapper.TextFieldMapper; import org.elasticsearch.index.mapper.Mapper.BuilderContext; +import java.util.List; import java.util.Random; import static org.hamcrest.Matchers.equalTo; @@ -58,7 +59,7 @@ public class FilterFieldDataTests extends AbstractFieldDataTestCase { writer.addDocument(d); } writer.forceMerge(1, true); - LeafReaderContext context = refreshReader(); + List contexts = refreshReader(); final BuilderContext builderCtx = new BuilderContext(indexService.getIndexSettings().getSettings(), new ContentPath(1)); { @@ -68,11 +69,13 @@ public class FilterFieldDataTests extends AbstractFieldDataTestCase { .fielddataFrequencyFilter(0, random.nextBoolean() ? 100 : 0.5d, 0) .build(builderCtx).fieldType(); IndexOrdinalsFieldData fieldData = ifdService.getForField(ft); - AtomicOrdinalsFieldData loadDirect = fieldData.loadDirect(context); - RandomAccessOrds bytesValues = loadDirect.getOrdinalsValues(); - assertThat(2L, equalTo(bytesValues.getValueCount())); - assertThat(bytesValues.lookupOrd(0).utf8ToString(), equalTo("10")); - assertThat(bytesValues.lookupOrd(1).utf8ToString(), equalTo("100")); + for (LeafReaderContext context : contexts) { + AtomicOrdinalsFieldData loadDirect = fieldData.loadDirect(context); + RandomAccessOrds bytesValues = loadDirect.getOrdinalsValues(); + assertThat(2L, equalTo(bytesValues.getValueCount())); + assertThat(bytesValues.lookupOrd(0).utf8ToString(), equalTo("10")); + assertThat(bytesValues.lookupOrd(1).utf8ToString(), equalTo("100")); + } } { ifdService.clear(); @@ -81,10 +84,12 @@ public class FilterFieldDataTests extends AbstractFieldDataTestCase { .fielddataFrequencyFilter(random.nextBoolean() ? 101 : 101d/200.0d, 201, 100) .build(builderCtx).fieldType(); IndexOrdinalsFieldData fieldData = ifdService.getForField(ft); - AtomicOrdinalsFieldData loadDirect = fieldData.loadDirect(context); - RandomAccessOrds bytesValues = loadDirect.getOrdinalsValues(); - assertThat(1L, equalTo(bytesValues.getValueCount())); - assertThat(bytesValues.lookupOrd(0).utf8ToString(), equalTo("5")); + for (LeafReaderContext context : contexts) { + AtomicOrdinalsFieldData loadDirect = fieldData.loadDirect(context); + RandomAccessOrds bytesValues = loadDirect.getOrdinalsValues(); + assertThat(1L, equalTo(bytesValues.getValueCount())); + assertThat(bytesValues.lookupOrd(0).utf8ToString(), equalTo("5")); + } } { @@ -94,11 +99,13 @@ public class FilterFieldDataTests extends AbstractFieldDataTestCase { .fielddataFrequencyFilter(random.nextBoolean() ? 101 : 101d/200.0d, Integer.MAX_VALUE, 101) .build(builderCtx).fieldType(); IndexOrdinalsFieldData fieldData = ifdService.getForField(ft); - AtomicOrdinalsFieldData loadDirect = fieldData.loadDirect(context); - RandomAccessOrds bytesValues = loadDirect.getOrdinalsValues(); - assertThat(2L, equalTo(bytesValues.getValueCount())); - assertThat(bytesValues.lookupOrd(0).utf8ToString(), equalTo("10")); - assertThat(bytesValues.lookupOrd(1).utf8ToString(), equalTo("100")); + for (LeafReaderContext context : contexts) { + AtomicOrdinalsFieldData loadDirect = fieldData.loadDirect(context); + RandomAccessOrds bytesValues = loadDirect.getOrdinalsValues(); + assertThat(2L, equalTo(bytesValues.getValueCount())); + assertThat(bytesValues.lookupOrd(0).utf8ToString(), equalTo("10")); + assertThat(bytesValues.lookupOrd(1).utf8ToString(), equalTo("100")); + } } { @@ -108,11 +115,13 @@ public class FilterFieldDataTests extends AbstractFieldDataTestCase { .fielddataFrequencyFilter(random.nextBoolean() ? 101 : 101d/200.0d, Integer.MAX_VALUE, 101) .build(builderCtx).fieldType(); IndexOrdinalsFieldData fieldData = ifdService.getForField(ft); - AtomicOrdinalsFieldData loadDirect = fieldData.loadDirect(context); - RandomAccessOrds bytesValues = loadDirect.getOrdinalsValues(); - assertThat(2L, equalTo(bytesValues.getValueCount())); - assertThat(bytesValues.lookupOrd(0).utf8ToString(), equalTo("10")); - assertThat(bytesValues.lookupOrd(1).utf8ToString(), equalTo("100")); + for (LeafReaderContext context : contexts) { + AtomicOrdinalsFieldData loadDirect = fieldData.loadDirect(context); + RandomAccessOrds bytesValues = loadDirect.getOrdinalsValues(); + assertThat(2L, equalTo(bytesValues.getValueCount())); + assertThat(bytesValues.lookupOrd(0).utf8ToString(), equalTo("10")); + assertThat(bytesValues.lookupOrd(1).utf8ToString(), equalTo("100")); + } } } diff --git a/core/src/test/java/org/elasticsearch/index/fielddata/GeoFieldDataTests.java b/core/src/test/java/org/elasticsearch/index/fielddata/GeoFieldDataTests.java index 04ae9bd0840..3c362d48c11 100644 --- a/core/src/test/java/org/elasticsearch/index/fielddata/GeoFieldDataTests.java +++ b/core/src/test/java/org/elasticsearch/index/fielddata/GeoFieldDataTests.java @@ -25,6 +25,7 @@ import org.apache.lucene.index.LeafReaderContext; import org.apache.lucene.index.Term; import org.elasticsearch.index.fielddata.plain.AbstractAtomicGeoPointFieldData; +import java.util.List; import static org.hamcrest.Matchers.greaterThanOrEqualTo; /** @@ -153,55 +154,64 @@ public class GeoFieldDataTests extends AbstractGeoFieldDataTestCase { public void testSingleValueAllSet() throws Exception { fillSingleValueAllSet(); IndexFieldData indexFieldData = getForField("value"); - LeafReaderContext readerContext = refreshReader(); - AtomicFieldData fieldData = indexFieldData.load(readerContext); - assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed())); + List readerContexts = refreshReader(); + for (LeafReaderContext readerContext : readerContexts) { + AtomicFieldData fieldData = indexFieldData.load(readerContext); + assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed())); - MultiGeoPointValues fieldValues = ((AbstractAtomicGeoPointFieldData)fieldData).getGeoPointValues(); - assertValues(fieldValues, 0); - assertValues(fieldValues, 1); - assertValues(fieldValues, 2); + MultiGeoPointValues fieldValues = ((AbstractAtomicGeoPointFieldData)fieldData).getGeoPointValues(); + assertValues(fieldValues, 0); + assertValues(fieldValues, 1); + assertValues(fieldValues, 2); + } } @Override public void testSingleValueWithMissing() throws Exception { fillSingleValueWithMissing(); IndexFieldData indexFieldData = getForField("value"); - LeafReaderContext readerContext = refreshReader(); - AtomicFieldData fieldData = indexFieldData.load(readerContext); - assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed())); + List readerContexts = refreshReader(); + for (LeafReaderContext readerContext : readerContexts) { + AtomicFieldData fieldData = indexFieldData.load(readerContext); + assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed())); - MultiGeoPointValues fieldValues = ((AbstractAtomicGeoPointFieldData)fieldData).getGeoPointValues(); - assertValues(fieldValues, 0); - assertMissing(fieldValues, 1); - assertValues(fieldValues, 2); + MultiGeoPointValues fieldValues = ((AbstractAtomicGeoPointFieldData)fieldData).getGeoPointValues(); + assertValues(fieldValues, 0); + assertMissing(fieldValues, 1); + assertValues(fieldValues, 2); + } } @Override public void testMultiValueAllSet() throws Exception { fillMultiValueAllSet(); IndexFieldData indexFieldData = getForField("value"); - LeafReaderContext readerContext = refreshReader(); - AtomicFieldData fieldData = indexFieldData.load(readerContext); - assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed())); + List readerContexts = refreshReader(); + for (LeafReaderContext readerContext : readerContexts) { + AtomicFieldData fieldData = indexFieldData.load(readerContext); + assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed())); - MultiGeoPointValues fieldValues = ((AbstractAtomicGeoPointFieldData)fieldData).getGeoPointValues(); - assertValues(fieldValues, 0); - assertValues(fieldValues, 1); - assertValues(fieldValues, 2); + MultiGeoPointValues fieldValues = ((AbstractAtomicGeoPointFieldData)fieldData).getGeoPointValues(); + assertValues(fieldValues, 0); + assertValues(fieldValues, 1); + assertValues(fieldValues, 2); + } } @Override public void testMultiValueWithMissing() throws Exception { fillMultiValueWithMissing(); IndexFieldData indexFieldData = getForField("value"); - AtomicFieldData fieldData = indexFieldData.load(refreshReader()); - assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed())); + List readerContexts = refreshReader(); + for (LeafReaderContext readerContext : readerContexts) { + AtomicFieldData fieldData = indexFieldData.load(readerContext); + assertThat(fieldData.ramBytesUsed(), greaterThanOrEqualTo(minRamBytesUsed())); - MultiGeoPointValues fieldValues = ((AbstractAtomicGeoPointFieldData)fieldData).getGeoPointValues(); + MultiGeoPointValues fieldValues = ((AbstractAtomicGeoPointFieldData)fieldData).getGeoPointValues(); - assertValues(fieldValues, 0); - assertMissing(fieldValues, 1); - assertValues(fieldValues, 2); + assertValues(fieldValues, 0); + assertMissing(fieldValues, 1); + assertValues(fieldValues, 2); + } } } diff --git a/core/src/test/java/org/elasticsearch/index/fielddata/ParentChildFieldDataTests.java b/core/src/test/java/org/elasticsearch/index/fielddata/ParentChildFieldDataTests.java index e9cfff5a4fb..b200a42b3f8 100644 --- a/core/src/test/java/org/elasticsearch/index/fielddata/ParentChildFieldDataTests.java +++ b/core/src/test/java/org/elasticsearch/index/fielddata/ParentChildFieldDataTests.java @@ -47,6 +47,7 @@ import org.elasticsearch.search.MultiValueMode; import org.junit.Before; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicReference; @@ -124,44 +125,48 @@ public class ParentChildFieldDataTests extends AbstractFieldDataTestCase { } public void testGetBytesValues() throws Exception { + writer.forceMerge(1); // force merge to 1 segment so we can iterate through documents IndexFieldData indexFieldData = getForField(childType); - AtomicFieldData fieldData = indexFieldData.load(refreshReader()); + List readerContexts = refreshReader(); + for (LeafReaderContext readerContext : readerContexts) { + AtomicFieldData fieldData = indexFieldData.load(readerContext); - SortedBinaryDocValues bytesValues = fieldData.getBytesValues(); - bytesValues.setDocument(0); - assertThat(bytesValues.count(), equalTo(1)); - assertThat(bytesValues.valueAt(0).utf8ToString(), equalTo("1")); + SortedBinaryDocValues bytesValues = fieldData.getBytesValues(); + bytesValues.setDocument(0); + assertThat(bytesValues.count(), equalTo(1)); + assertThat(bytesValues.valueAt(0).utf8ToString(), equalTo("1")); - bytesValues.setDocument(1); - assertThat(bytesValues.count(), equalTo(2)); - assertThat(bytesValues.valueAt(0).utf8ToString(), equalTo("1")); - assertThat(bytesValues.valueAt(1).utf8ToString(), equalTo("2")); + bytesValues.setDocument(1); + assertThat(bytesValues.count(), equalTo(2)); + assertThat(bytesValues.valueAt(0).utf8ToString(), equalTo("1")); + assertThat(bytesValues.valueAt(1).utf8ToString(), equalTo("2")); - bytesValues.setDocument(2); - assertThat(bytesValues.count(), equalTo(2)); - assertThat(bytesValues.valueAt(0).utf8ToString(), equalTo("1")); - assertThat(bytesValues.valueAt(1).utf8ToString(), equalTo("3")); + bytesValues.setDocument(2); + assertThat(bytesValues.count(), equalTo(2)); + assertThat(bytesValues.valueAt(0).utf8ToString(), equalTo("1")); + assertThat(bytesValues.valueAt(1).utf8ToString(), equalTo("3")); - bytesValues.setDocument(3); - assertThat(bytesValues.count(), equalTo(1)); - assertThat(bytesValues.valueAt(0).utf8ToString(), equalTo("2")); + bytesValues.setDocument(3); + assertThat(bytesValues.count(), equalTo(1)); + assertThat(bytesValues.valueAt(0).utf8ToString(), equalTo("2")); - bytesValues.setDocument(4); - assertThat(bytesValues.count(), equalTo(2)); - assertThat(bytesValues.valueAt(0).utf8ToString(), equalTo("2")); - assertThat(bytesValues.valueAt(1).utf8ToString(), equalTo("4")); + bytesValues.setDocument(4); + assertThat(bytesValues.count(), equalTo(2)); + assertThat(bytesValues.valueAt(0).utf8ToString(), equalTo("2")); + assertThat(bytesValues.valueAt(1).utf8ToString(), equalTo("4")); - bytesValues.setDocument(5); - assertThat(bytesValues.count(), equalTo(2)); - assertThat(bytesValues.valueAt(0).utf8ToString(), equalTo("1")); - assertThat(bytesValues.valueAt(1).utf8ToString(), equalTo("5")); + bytesValues.setDocument(5); + assertThat(bytesValues.count(), equalTo(2)); + assertThat(bytesValues.valueAt(0).utf8ToString(), equalTo("1")); + assertThat(bytesValues.valueAt(1).utf8ToString(), equalTo("5")); - bytesValues.setDocument(6); - assertThat(bytesValues.count(), equalTo(1)); - assertThat(bytesValues.valueAt(0).utf8ToString(), equalTo("2")); + bytesValues.setDocument(6); + assertThat(bytesValues.count(), equalTo(1)); + assertThat(bytesValues.valueAt(0).utf8ToString(), equalTo("2")); - bytesValues.setDocument(7); - assertThat(bytesValues.count(), equalTo(0)); + bytesValues.setDocument(7); + assertThat(bytesValues.count(), equalTo(0)); + } } public void testSorting() throws Exception { diff --git a/core/src/test/java/org/elasticsearch/index/mapper/FieldNamesFieldMapperTests.java b/core/src/test/java/org/elasticsearch/index/mapper/FieldNamesFieldMapperTests.java index 8e508d084e0..8292970d38c 100644 --- a/core/src/test/java/org/elasticsearch/index/mapper/FieldNamesFieldMapperTests.java +++ b/core/src/test/java/org/elasticsearch/index/mapper/FieldNamesFieldMapperTests.java @@ -97,7 +97,7 @@ public class FieldNamesFieldMapperTests extends ESSingleNodeTestCase { .endObject() .bytes()); - assertFieldNames(set("a", "a.keyword", "b", "b.c", "_uid", "_type", "_version", "_seq_no", "_source", "_all"), doc); + assertFieldNames(set("a", "a.keyword", "b", "b.c", "_uid", "_type", "_version", "_seq_no", "_primary_term", "_source", "_all"), doc); } public void testExplicitEnabled() throws Exception { @@ -114,7 +114,7 @@ public class FieldNamesFieldMapperTests extends ESSingleNodeTestCase { .endObject() .bytes()); - assertFieldNames(set("field", "field.keyword", "_uid", "_type", "_version", "_seq_no", "_source", "_all"), doc); + assertFieldNames(set("field", "field.keyword", "_uid", "_type", "_version", "_seq_no", "_primary_term", "_source", "_all"), doc); } public void testDisabled() throws Exception { diff --git a/core/src/test/java/org/elasticsearch/index/shard/IndexShardIT.java b/core/src/test/java/org/elasticsearch/index/shard/IndexShardIT.java index d32ae8e03ed..ef938376940 100644 --- a/core/src/test/java/org/elasticsearch/index/shard/IndexShardIT.java +++ b/core/src/test/java/org/elasticsearch/index/shard/IndexShardIT.java @@ -55,6 +55,7 @@ import org.elasticsearch.index.flush.FlushStats; import org.elasticsearch.index.mapper.Mapping; import org.elasticsearch.index.mapper.ParseContext; import org.elasticsearch.index.mapper.ParsedDocument; +import org.elasticsearch.index.mapper.SeqNoFieldMapper; import org.elasticsearch.index.mapper.UidFieldMapper; import org.elasticsearch.index.seqno.SequenceNumbersService; import org.elasticsearch.index.translog.Translog; @@ -102,12 +103,15 @@ public class IndexShardIT extends ESSingleNodeTestCase { private ParsedDocument testParsedDocument(String uid, String id, String type, String routing, long seqNo, ParseContext.Document document, BytesReference source, Mapping mappingUpdate) { Field uidField = new Field("_uid", uid, UidFieldMapper.Defaults.FIELD_TYPE); - Field seqNoField = new NumericDocValuesField("_seq_no", seqNo); Field versionField = new NumericDocValuesField("_version", 0); + SeqNoFieldMapper.SequenceID seqID = SeqNoFieldMapper.SequenceID.emptySeqID(); document.add(uidField); document.add(versionField); - return new ParsedDocument(versionField, seqNoField, id, type, routing, Collections.singletonList(document), source, - mappingUpdate); + document.add(seqID.seqNo); + document.add(seqID.seqNoDocValue); + document.add(seqID.primaryTerm); + return new ParsedDocument(versionField, seqID, id, type, routing, + Collections.singletonList(document), source, mappingUpdate); } public void testLockTryingToDelete() throws Exception { diff --git a/core/src/test/java/org/elasticsearch/index/shard/IndexShardTests.java b/core/src/test/java/org/elasticsearch/index/shard/IndexShardTests.java index 4ab702c33de..036faa9b903 100644 --- a/core/src/test/java/org/elasticsearch/index/shard/IndexShardTests.java +++ b/core/src/test/java/org/elasticsearch/index/shard/IndexShardTests.java @@ -70,6 +70,7 @@ import org.elasticsearch.index.mapper.MappedFieldType; import org.elasticsearch.index.mapper.Mapping; import org.elasticsearch.index.mapper.ParseContext; import org.elasticsearch.index.mapper.ParsedDocument; +import org.elasticsearch.index.mapper.SeqNoFieldMapper; import org.elasticsearch.index.mapper.Uid; import org.elasticsearch.index.mapper.UidFieldMapper; import org.elasticsearch.index.snapshots.IndexShardSnapshotStatus; @@ -542,10 +543,13 @@ public class IndexShardTests extends IndexShardTestCase { ParseContext.Document document, BytesReference source, Mapping mappingUpdate) { Field uidField = new Field("_uid", uid, UidFieldMapper.Defaults.FIELD_TYPE); Field versionField = new NumericDocValuesField("_version", 0); - Field seqNoField = new NumericDocValuesField("_seq_no", 0); + SeqNoFieldMapper.SequenceID seqID = SeqNoFieldMapper.SequenceID.emptySeqID(); document.add(uidField); document.add(versionField); - return new ParsedDocument(versionField, seqNoField, id, type, routing, Arrays.asList(document), source, mappingUpdate); + document.add(seqID.seqNo); + document.add(seqID.seqNoDocValue); + document.add(seqID.primaryTerm); + return new ParsedDocument(versionField, seqID, id, type, routing, Arrays.asList(document), source, mappingUpdate); } public void testIndexingOperationsListeners() throws IOException { diff --git a/core/src/test/java/org/elasticsearch/index/shard/RefreshListenersTests.java b/core/src/test/java/org/elasticsearch/index/shard/RefreshListenersTests.java index 0598646c163..57e40a03295 100644 --- a/core/src/test/java/org/elasticsearch/index/shard/RefreshListenersTests.java +++ b/core/src/test/java/org/elasticsearch/index/shard/RefreshListenersTests.java @@ -47,6 +47,7 @@ import org.elasticsearch.index.engine.InternalEngineTests.TranslogHandler; import org.elasticsearch.index.fieldvisitor.SingleFieldsVisitor; import org.elasticsearch.index.mapper.ParseContext.Document; import org.elasticsearch.index.mapper.ParsedDocument; +import org.elasticsearch.index.mapper.SeqNoFieldMapper; import org.elasticsearch.index.mapper.UidFieldMapper; import org.elasticsearch.index.store.DirectoryService; import org.elasticsearch.index.store.Store; @@ -273,11 +274,14 @@ public class RefreshListenersTests extends ESTestCase { document.add(new TextField("test", testFieldValue, Field.Store.YES)); Field uidField = new Field("_uid", type + ":" + id, UidFieldMapper.Defaults.FIELD_TYPE); Field versionField = new NumericDocValuesField("_version", Versions.MATCH_ANY); - Field seqNoField = new NumericDocValuesField("_seq_no", 0); + SeqNoFieldMapper.SequenceID seqID = SeqNoFieldMapper.SequenceID.emptySeqID(); document.add(uidField); document.add(versionField); + document.add(seqID.seqNo); + document.add(seqID.seqNoDocValue); + document.add(seqID.primaryTerm); BytesReference source = new BytesArray(new byte[] { 1 }); - ParsedDocument doc = new ParsedDocument(versionField, seqNoField, id, type, null, Arrays.asList(document), source, null); + ParsedDocument doc = new ParsedDocument(versionField, seqID, id, type, null, Arrays.asList(document), source, null); Engine.Index index = new Engine.Index(new Term("_uid", uid), doc); return engine.index(index); } diff --git a/core/src/test/java/org/elasticsearch/index/translog/TranslogTests.java b/core/src/test/java/org/elasticsearch/index/translog/TranslogTests.java index 0bd1c9c6140..41118d6efa2 100644 --- a/core/src/test/java/org/elasticsearch/index/translog/TranslogTests.java +++ b/core/src/test/java/org/elasticsearch/index/translog/TranslogTests.java @@ -301,7 +301,7 @@ public class TranslogTests extends ESTestCase { assertThat(stats.estimatedNumberOfOperations(), equalTo(0L)); assertThat(stats.getTranslogSizeInBytes(), equalTo(firstOperationPosition)); assertEquals(6, total.estimatedNumberOfOperations()); - assertEquals(413, total.getTranslogSizeInBytes()); + assertEquals(419, total.getTranslogSizeInBytes()); BytesStreamOutput out = new BytesStreamOutput(); total.writeTo(out); @@ -309,13 +309,13 @@ public class TranslogTests extends ESTestCase { copy.readFrom(out.bytes().streamInput()); assertEquals(6, copy.estimatedNumberOfOperations()); - assertEquals(413, copy.getTranslogSizeInBytes()); + assertEquals(419, copy.getTranslogSizeInBytes()); try (XContentBuilder builder = XContentFactory.jsonBuilder()) { builder.startObject(); copy.toXContent(builder, ToXContent.EMPTY_PARAMS); builder.endObject(); - assertEquals("{\"translog\":{\"operations\":6,\"size_in_bytes\":413}}", builder.string()); + assertEquals("{\"translog\":{\"operations\":6,\"size_in_bytes\":419}}", builder.string()); } try { @@ -1137,7 +1137,7 @@ public class TranslogTests extends ESTestCase { try (Translog ignored = new Translog(config, translogGeneration, () -> SequenceNumbersService.UNASSIGNED_SEQ_NO)) { fail("corrupted"); } catch (IllegalStateException ex) { - assertEquals(ex.getMessage(), "Checkpoint file translog-2.ckp already exists but has corrupted content expected: Checkpoint{offset=2298, numOps=55, translogFileGeneration=2, globalCheckpoint=-2} but got: Checkpoint{offset=0, numOps=0, translogFileGeneration=0, globalCheckpoint=-2}"); + assertEquals(ex.getMessage(), "Checkpoint file translog-2.ckp already exists but has corrupted content expected: Checkpoint{offset=2353, numOps=55, translogFileGeneration=2, globalCheckpoint=-2} but got: Checkpoint{offset=0, numOps=0, translogFileGeneration=0, globalCheckpoint=-2}"); } Checkpoint.write(FileChannel::open, config.getTranslogPath().resolve(Translog.getCommitCheckpointFileName(read.generation)), read, StandardOpenOption.WRITE, StandardOpenOption.TRUNCATE_EXISTING); try (Translog translog = new Translog(config, translogGeneration, () -> SequenceNumbersService.UNASSIGNED_SEQ_NO)) { @@ -1303,6 +1303,7 @@ public class TranslogTests extends ESTestCase { op = new Translog.Delete( new Term("_uid", threadId + "_" + opCount), opCount, + 0, 1 + randomInt(100000), randomFrom(VersionType.values())); break; diff --git a/modules/percolator/src/test/java/org/elasticsearch/percolator/PercolatorFieldMapperTests.java b/modules/percolator/src/test/java/org/elasticsearch/percolator/PercolatorFieldMapperTests.java index fad3cc27d23..533c56afac5 100644 --- a/modules/percolator/src/test/java/org/elasticsearch/percolator/PercolatorFieldMapperTests.java +++ b/modules/percolator/src/test/java/org/elasticsearch/percolator/PercolatorFieldMapperTests.java @@ -359,7 +359,7 @@ public class PercolatorFieldMapperTests extends ESSingleNodeTestCase { .field("query_field2", queryBuilder) .endObject().bytes() ); - assertThat(doc.rootDoc().getFields().size(), equalTo(12)); // also includes all other meta fields + assertThat(doc.rootDoc().getFields().size(), equalTo(14)); // also includes all other meta fields BytesRef queryBuilderAsBytes = doc.rootDoc().getField("query_field1.query_builder_field").binaryValue(); assertQueryBuilder(queryBuilderAsBytes, queryBuilder); @@ -389,7 +389,7 @@ public class PercolatorFieldMapperTests extends ESSingleNodeTestCase { .field("query_field", queryBuilder) .endObject().endObject().bytes() ); - assertThat(doc.rootDoc().getFields().size(), equalTo(9)); // also includes all other meta fields + assertThat(doc.rootDoc().getFields().size(), equalTo(11)); // also includes all other meta fields BytesRef queryBuilderAsBytes = doc.rootDoc().getField("object_field.query_field.query_builder_field").binaryValue(); assertQueryBuilder(queryBuilderAsBytes, queryBuilder); @@ -400,7 +400,7 @@ public class PercolatorFieldMapperTests extends ESSingleNodeTestCase { .endArray() .endObject().bytes() ); - assertThat(doc.rootDoc().getFields().size(), equalTo(9)); // also includes all other meta fields + assertThat(doc.rootDoc().getFields().size(), equalTo(11)); // also includes all other meta fields queryBuilderAsBytes = doc.rootDoc().getField("object_field.query_field.query_builder_field").binaryValue(); assertQueryBuilder(queryBuilderAsBytes, queryBuilder); From 7f79c99e9a8f7cb79e9a0ad99e351e631784e555 Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Wed, 7 Dec 2016 12:09:09 -0500 Subject: [PATCH 12/51] Add descriptions to bulk tasks Related to #21768 --- .../org/elasticsearch/action/bulk/BulkRequest.java | 14 +++++++++++++- .../action/bulk/BulkShardRequest.java | 5 +++++ .../action/admin/cluster/node/tasks/TasksIT.java | 7 ++++++- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/elasticsearch/action/bulk/BulkRequest.java b/core/src/main/java/org/elasticsearch/action/bulk/BulkRequest.java index 5351579278d..843e718a94e 100644 --- a/core/src/main/java/org/elasticsearch/action/bulk/BulkRequest.java +++ b/core/src/main/java/org/elasticsearch/action/bulk/BulkRequest.java @@ -48,9 +48,10 @@ import org.elasticsearch.search.fetch.subphase.FetchSourceContext; import java.io.IOException; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import java.util.Objects; -import java.util.stream.Collectors; +import java.util.Set; import static org.elasticsearch.action.ValidateActions.addValidationError; @@ -73,6 +74,7 @@ public class BulkRequest extends ActionRequest implements CompositeIndicesReques * the one with the least casts. */ final List requests = new ArrayList<>(); + private final Set indices = new HashSet<>(); List payloads = null; protected TimeValue timeout = BulkShardRequest.DEFAULT_TIMEOUT; @@ -114,6 +116,7 @@ public class BulkRequest extends ActionRequest implements CompositeIndicesReques } else { throw new IllegalArgumentException("No support for request [" + request + "]"); } + indices.add(request.index()); return this; } @@ -145,6 +148,7 @@ public class BulkRequest extends ActionRequest implements CompositeIndicesReques addPayload(payload); // lack of source is validated in validate() method sizeInBytes += (request.source() != null ? request.source().length() : 0) + REQUEST_OVERHEAD; + indices.add(request.index()); return this; } @@ -172,6 +176,7 @@ public class BulkRequest extends ActionRequest implements CompositeIndicesReques if (request.script() != null) { sizeInBytes += request.script().getIdOrCode().length() * 2; } + indices.add(request.index()); return this; } @@ -187,6 +192,7 @@ public class BulkRequest extends ActionRequest implements CompositeIndicesReques requests.add(request); addPayload(payload); sizeInBytes += REQUEST_OVERHEAD; + indices.add(request.index()); return this; } @@ -548,4 +554,10 @@ public class BulkRequest extends ActionRequest implements CompositeIndicesReques refreshPolicy.writeTo(out); timeout.writeTo(out); } + + @Override + public String getDescription() { + return "requests[" + requests.size() + "], indices[" + Strings.collectionToDelimitedString(indices, ", ") + "]"; + } + } diff --git a/core/src/main/java/org/elasticsearch/action/bulk/BulkShardRequest.java b/core/src/main/java/org/elasticsearch/action/bulk/BulkShardRequest.java index 25366d034ca..d53e9f8997e 100644 --- a/core/src/main/java/org/elasticsearch/action/bulk/BulkShardRequest.java +++ b/core/src/main/java/org/elasticsearch/action/bulk/BulkShardRequest.java @@ -100,6 +100,11 @@ public class BulkShardRequest extends ReplicatedWriteRequest { return b.toString(); } + @Override + public String getDescription() { + return "requests[" + items.length + "], index[" + index + "]"; + } + @Override public void onRetry() { for (BulkItemRequest item : items) { diff --git a/core/src/test/java/org/elasticsearch/action/admin/cluster/node/tasks/TasksIT.java b/core/src/test/java/org/elasticsearch/action/admin/cluster/node/tasks/TasksIT.java index 994cb3b4308..7f490ebab90 100644 --- a/core/src/test/java/org/elasticsearch/action/admin/cluster/node/tasks/TasksIT.java +++ b/core/src/test/java/org/elasticsearch/action/admin/cluster/node/tasks/TasksIT.java @@ -303,7 +303,9 @@ public class TasksIT extends ESIntegTestCase { client().prepareBulk().add(client().prepareIndex("test", "doc", "test_id").setSource("{\"foo\": \"bar\"}")).get(); // the bulk operation should produce one main task - assertEquals(1, numberOfEvents(BulkAction.NAME, Tuple::v1)); + List topTask = findEvents(BulkAction.NAME, Tuple::v1); + assertEquals(1, topTask.size()); + assertEquals("requests[1], indices[test]", topTask.get(0).getDescription()); // we should also get 1 or 2 [s] operation with main operation as a parent // in case the primary is located on the coordinating node we will have 1 operation, otherwise - 2 @@ -317,17 +319,20 @@ public class TasksIT extends ESIntegTestCase { shardTask = shardTasks.get(0); // and it should have the main task as a parent assertParentTask(shardTask, findEvents(BulkAction.NAME, Tuple::v1).get(0)); + assertEquals("requests[1], index[test]", shardTask.getDescription()); } else { if (shardTasks.get(0).getParentTaskId().equals(shardTasks.get(1).getTaskId())) { // task 1 is the parent of task 0, that means that task 0 will control [s][p] and [s][r] tasks shardTask = shardTasks.get(0); // in turn the parent of the task 1 should be the main task assertParentTask(shardTasks.get(1), findEvents(BulkAction.NAME, Tuple::v1).get(0)); + assertEquals("requests[1], index[test]", shardTask.getDescription()); } else { // otherwise task 1 will control [s][p] and [s][r] tasks shardTask = shardTasks.get(1); // in turn the parent of the task 0 should be the main task assertParentTask(shardTasks.get(0), findEvents(BulkAction.NAME, Tuple::v1).get(0)); + assertEquals("requests[1], index[test]", shardTask.getDescription()); } } From b1cef5fdf8e1f8e9982a4724986b2731ca4d522b Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Thu, 8 Dec 2016 21:48:35 -0800 Subject: [PATCH 13/51] Remove 2.0 prerelease version constants (#22004) * Remove 2.0 prerelease version constants This is a start to addressing #21887. This removes: * pre 2.0 snapshot format support * automatic units addition to cluster settings * bwc check for delete by query in pre 2.0 indexes --- .../main/java/org/elasticsearch/Version.java | 12 -- .../cluster/metadata/MetaData.java | 74 --------- .../gateway/MetaStateService.java | 9 +- .../blobstore/BlobStoreRepository.java | 141 ++---------------- .../blobstore/LegacyBlobStoreFormat.java | 60 -------- .../snapshots/RestoreService.java | 11 +- .../java/org/elasticsearch/VersionTests.java | 17 ++- .../OldIndexBackwardsCompatibilityIT.java | 12 -- .../snapshots/BlobStoreFormatIT.java | 63 -------- .../remote/RemoteRequestBuildersTests.java | 11 +- .../test/AbstractQueryTestCase.java | 2 +- 11 files changed, 27 insertions(+), 385 deletions(-) delete mode 100644 core/src/main/java/org/elasticsearch/repositories/blobstore/LegacyBlobStoreFormat.java diff --git a/core/src/main/java/org/elasticsearch/Version.java b/core/src/main/java/org/elasticsearch/Version.java index 236a8936ff8..3120616fcd5 100644 --- a/core/src/main/java/org/elasticsearch/Version.java +++ b/core/src/main/java/org/elasticsearch/Version.java @@ -35,12 +35,6 @@ public class Version { * values below 25 are for alpha builder (since 5.0), and above 25 and below 50 are beta builds, and below 99 are RC builds, with 99 * indicating a release the (internal) format of the id is there so we can easily do after/before checks on the id */ - public static final int V_2_0_0_beta1_ID = 2000001; - public static final Version V_2_0_0_beta1 = new Version(V_2_0_0_beta1_ID, org.apache.lucene.util.Version.LUCENE_5_2_1); - public static final int V_2_0_0_beta2_ID = 2000002; - public static final Version V_2_0_0_beta2 = new Version(V_2_0_0_beta2_ID, org.apache.lucene.util.Version.LUCENE_5_2_1); - public static final int V_2_0_0_rc1_ID = 2000051; - public static final Version V_2_0_0_rc1 = new Version(V_2_0_0_rc1_ID, org.apache.lucene.util.Version.LUCENE_5_2_1); public static final int V_2_0_0_ID = 2000099; public static final Version V_2_0_0 = new Version(V_2_0_0_ID, org.apache.lucene.util.Version.LUCENE_5_2_1); public static final int V_2_0_1_ID = 2000199; @@ -190,12 +184,6 @@ public class Version { return V_2_0_1; case V_2_0_0_ID: return V_2_0_0; - case V_2_0_0_rc1_ID: - return V_2_0_0_rc1; - case V_2_0_0_beta2_ID: - return V_2_0_0_beta2; - case V_2_0_0_beta1_ID: - return V_2_0_0_beta1; default: return new Version(id, org.apache.lucene.util.Version.LATEST); } diff --git a/core/src/main/java/org/elasticsearch/cluster/metadata/MetaData.java b/core/src/main/java/org/elasticsearch/cluster/metadata/MetaData.java index 9e9923a92d5..f091159aaec 100644 --- a/core/src/main/java/org/elasticsearch/cluster/metadata/MetaData.java +++ b/core/src/main/java/org/elasticsearch/cluster/metadata/MetaData.java @@ -753,80 +753,6 @@ public class MetaData implements Iterable, Diffable, Fr return new Builder(metaData); } - /** All known byte-sized cluster settings. */ - public static final Set CLUSTER_BYTES_SIZE_SETTINGS = unmodifiableSet(newHashSet( - RecoverySettings.INDICES_RECOVERY_MAX_BYTES_PER_SEC_SETTING.getKey())); - - - /** All known time cluster settings. */ - public static final Set CLUSTER_TIME_SETTINGS = unmodifiableSet(newHashSet( - RecoverySettings.INDICES_RECOVERY_RETRY_DELAY_STATE_SYNC_SETTING.getKey(), - RecoverySettings.INDICES_RECOVERY_RETRY_DELAY_NETWORK_SETTING.getKey(), - RecoverySettings.INDICES_RECOVERY_ACTIVITY_TIMEOUT_SETTING.getKey(), - RecoverySettings.INDICES_RECOVERY_INTERNAL_ACTION_TIMEOUT_SETTING.getKey(), - RecoverySettings.INDICES_RECOVERY_INTERNAL_LONG_ACTION_TIMEOUT_SETTING.getKey(), - DiskThresholdSettings.CLUSTER_ROUTING_ALLOCATION_REROUTE_INTERVAL_SETTING.getKey(), - InternalClusterInfoService.INTERNAL_CLUSTER_INFO_UPDATE_INTERVAL_SETTING.getKey(), - InternalClusterInfoService.INTERNAL_CLUSTER_INFO_TIMEOUT_SETTING.getKey(), - DiscoverySettings.PUBLISH_TIMEOUT_SETTING.getKey(), - ClusterService.CLUSTER_SERVICE_SLOW_TASK_LOGGING_THRESHOLD_SETTING.getKey())); - - /** As of 2.0 we require units for time and byte-sized settings. This methods adds default units to any cluster settings that don't - * specify a unit. */ - public static MetaData addDefaultUnitsIfNeeded(Logger logger, MetaData metaData) { - Settings.Builder newPersistentSettings = null; - for(Map.Entry ent : metaData.persistentSettings().getAsMap().entrySet()) { - String settingName = ent.getKey(); - String settingValue = ent.getValue(); - if (CLUSTER_BYTES_SIZE_SETTINGS.contains(settingName)) { - try { - Long.parseLong(settingValue); - } catch (NumberFormatException nfe) { - continue; - } - // It's a naked number that previously would be interpreted as default unit (bytes); now we add it: - logger.warn("byte-sized cluster setting [{}] with value [{}] is missing units; assuming default units (b) but in future versions this will be a hard error", settingName, settingValue); - if (newPersistentSettings == null) { - newPersistentSettings = Settings.builder(); - newPersistentSettings.put(metaData.persistentSettings()); - } - newPersistentSettings.put(settingName, settingValue + "b"); - } - if (CLUSTER_TIME_SETTINGS.contains(settingName)) { - try { - Long.parseLong(settingValue); - } catch (NumberFormatException nfe) { - continue; - } - // It's a naked number that previously would be interpreted as default unit (ms); now we add it: - logger.warn("time cluster setting [{}] with value [{}] is missing units; assuming default units (ms) but in future versions this will be a hard error", settingName, settingValue); - if (newPersistentSettings == null) { - newPersistentSettings = Settings.builder(); - newPersistentSettings.put(metaData.persistentSettings()); - } - newPersistentSettings.put(settingName, settingValue + "ms"); - } - } - - if (newPersistentSettings != null) { - return new MetaData( - metaData.clusterUUID(), - metaData.version(), - metaData.transientSettings(), - newPersistentSettings.build(), - metaData.getIndices(), - metaData.getTemplates(), - metaData.getCustoms(), - metaData.getConcreteAllIndices(), - metaData.getConcreteAllOpenIndices(), - metaData.getConcreteAllClosedIndices(), - metaData.getAliasAndIndexLookup()); - } else { - // No changes: - return metaData; - } - } - public static class Builder { private String clusterUUID; diff --git a/core/src/main/java/org/elasticsearch/gateway/MetaStateService.java b/core/src/main/java/org/elasticsearch/gateway/MetaStateService.java index e58a48d41b4..1673a653a6b 100644 --- a/core/src/main/java/org/elasticsearch/gateway/MetaStateService.java +++ b/core/src/main/java/org/elasticsearch/gateway/MetaStateService.java @@ -106,14 +106,7 @@ public class MetaStateService extends AbstractComponent { * Loads the global state, *without* index state, see {@link #loadFullState()} for that. */ MetaData loadGlobalState() throws IOException { - MetaData globalState = MetaData.FORMAT.loadLatestState(logger, nodeEnv.nodeDataPaths()); - // ES 2.0 now requires units for all time and byte-sized settings, so we add the default unit if it's missing - // TODO: can we somehow only do this for pre-2.0 cluster state? - if (globalState != null) { - return MetaData.addDefaultUnitsIfNeeded(logger, globalState); - } else { - return null; - } + return MetaData.FORMAT.loadLatestState(logger, nodeEnv.nodeDataPaths()); } /** diff --git a/core/src/main/java/org/elasticsearch/repositories/blobstore/BlobStoreRepository.java b/core/src/main/java/org/elasticsearch/repositories/blobstore/BlobStoreRepository.java index c17b9258f58..23807c84475 100644 --- a/core/src/main/java/org/elasticsearch/repositories/blobstore/BlobStoreRepository.java +++ b/core/src/main/java/org/elasticsearch/repositories/blobstore/BlobStoreRepository.java @@ -169,8 +169,6 @@ public abstract class BlobStoreRepository extends AbstractLifecycleComponent imp private static final int BUFFER_SIZE = 4096; - private static final String LEGACY_SNAPSHOT_PREFIX = "snapshot-"; - private static final String SNAPSHOT_PREFIX = "snap-"; private static final String SNAPSHOT_CODEC = "snapshot"; @@ -185,14 +183,10 @@ public abstract class BlobStoreRepository extends AbstractLifecycleComponent imp private static final String METADATA_NAME_FORMAT = "meta-%s.dat"; - private static final String LEGACY_METADATA_NAME_FORMAT = "metadata-%s"; - private static final String METADATA_CODEC = "metadata"; private static final String INDEX_METADATA_CODEC = "index-metadata"; - protected static final String LEGACY_SNAPSHOT_NAME_FORMAT = LEGACY_SNAPSHOT_PREFIX + "%s"; - protected static final String SNAPSHOT_NAME_FORMAT = SNAPSHOT_PREFIX + "%s.dat"; protected static final String SNAPSHOT_INDEX_PREFIX = "index-"; @@ -213,24 +207,16 @@ public abstract class BlobStoreRepository extends AbstractLifecycleComponent imp private ChecksumBlobStoreFormat globalMetaDataFormat; - private LegacyBlobStoreFormat globalMetaDataLegacyFormat; - private ChecksumBlobStoreFormat indexMetaDataFormat; - private LegacyBlobStoreFormat indexMetaDataLegacyFormat; - private ChecksumBlobStoreFormat snapshotFormat; - private LegacyBlobStoreFormat snapshotLegacyFormat; - private final boolean readOnly; private final ParseFieldMatcher parseFieldMatcher; private final ChecksumBlobStoreFormat indexShardSnapshotFormat; - private final LegacyBlobStoreFormat indexShardSnapshotLegacyFormat; - private final ChecksumBlobStoreFormat indexShardSnapshotsFormat; /** @@ -247,7 +233,6 @@ public abstract class BlobStoreRepository extends AbstractLifecycleComponent imp restoreRateLimiter = getRateLimiter(metadata.settings(), "max_restore_bytes_per_sec", new ByteSizeValue(40, ByteSizeUnit.MB)); readOnly = metadata.settings().getAsBoolean("readonly", false); indexShardSnapshotFormat = new ChecksumBlobStoreFormat<>(SNAPSHOT_CODEC, SNAPSHOT_NAME_FORMAT, BlobStoreIndexShardSnapshot.PROTO, parseFieldMatcher, isCompress()); - indexShardSnapshotLegacyFormat = new LegacyBlobStoreFormat<>(LEGACY_SNAPSHOT_NAME_FORMAT, BlobStoreIndexShardSnapshot.PROTO, parseFieldMatcher); indexShardSnapshotsFormat = new ChecksumBlobStoreFormat<>(SNAPSHOT_INDEX_CODEC, SNAPSHOT_INDEX_NAME_FORMAT, BlobStoreIndexShardSnapshots.PROTO, parseFieldMatcher, isCompress()); } @@ -255,16 +240,10 @@ public abstract class BlobStoreRepository extends AbstractLifecycleComponent imp @Override protected void doStart() { this.snapshotsBlobContainer = blobStore().blobContainer(basePath()); - ParseFieldMatcher parseFieldMatcher = new ParseFieldMatcher(settings); globalMetaDataFormat = new ChecksumBlobStoreFormat<>(METADATA_CODEC, METADATA_NAME_FORMAT, MetaData.PROTO, parseFieldMatcher, isCompress()); - globalMetaDataLegacyFormat = new LegacyBlobStoreFormat<>(LEGACY_METADATA_NAME_FORMAT, MetaData.PROTO, parseFieldMatcher); - indexMetaDataFormat = new ChecksumBlobStoreFormat<>(INDEX_METADATA_CODEC, METADATA_NAME_FORMAT, IndexMetaData.PROTO, parseFieldMatcher, isCompress()); - indexMetaDataLegacyFormat = new LegacyBlobStoreFormat<>(LEGACY_SNAPSHOT_NAME_FORMAT, IndexMetaData.PROTO, parseFieldMatcher); - snapshotFormat = new ChecksumBlobStoreFormat<>(SNAPSHOT_CODEC, SNAPSHOT_NAME_FORMAT, SnapshotInfo.PROTO, parseFieldMatcher, isCompress()); - snapshotLegacyFormat = new LegacyBlobStoreFormat<>(LEGACY_SNAPSHOT_NAME_FORMAT, SnapshotInfo.PROTO, parseFieldMatcher); } @Override @@ -325,8 +304,7 @@ public abstract class BlobStoreRepository extends AbstractLifecycleComponent imp if (getSnapshots().stream().anyMatch(s -> s.getName().equals(snapshotName))) { throw new SnapshotCreationException(metadata.name(), snapshotId, "snapshot with the same name already exists"); } - if (snapshotFormat.exists(snapshotsBlobContainer, snapshotId.getUUID()) || - snapshotLegacyFormat.exists(snapshotsBlobContainer, snapshotName)) { + if (snapshotFormat.exists(snapshotsBlobContainer, snapshotId.getUUID())) { throw new SnapshotCreationException(metadata.name(), snapshotId, "snapshot with such name already exists"); } @@ -345,42 +323,6 @@ public abstract class BlobStoreRepository extends AbstractLifecycleComponent imp } } - // Older repository index files (index-N) only contain snapshot info, not indices info, - // so if the repository data is of the older format, populate it with the indices entries - // so we know which indices of snapshots have blob ids in the older format. - private RepositoryData upgradeRepositoryData(final RepositoryData repositoryData) throws IOException { - final Map> indexToSnapshots = new HashMap<>(); - for (final SnapshotId snapshotId : repositoryData.getSnapshotIds()) { - final SnapshotInfo snapshotInfo; - try { - snapshotInfo = getSnapshotInfo(snapshotId); - } catch (SnapshotException e) { - logger.warn((Supplier) () -> new ParameterizedMessage("[{}] repository is on a pre-5.0 format with an index file that contains snapshot [{}] but " + - "the corresponding snap-{}.dat file cannot be read. The snapshot will no longer be included in " + - "the repository but its data directories will remain.", getMetadata().name(), snapshotId, snapshotId.getUUID()), e); - continue; - } - for (final String indexName : snapshotInfo.indices()) { - final IndexId indexId = new IndexId(indexName, indexName); - if (indexToSnapshots.containsKey(indexId)) { - indexToSnapshots.get(indexId).add(snapshotId); - } else { - indexToSnapshots.put(indexId, Sets.newHashSet(snapshotId)); - } - } - } - try { - final RepositoryData updatedRepoData = repositoryData.initIndices(indexToSnapshots); - if (isReadOnly() == false) { - // write the new index gen file with the indices included - writeIndexGen(updatedRepoData); - } - return updatedRepoData; - } catch (IOException e) { - throw new RepositoryException(metadata.name(), "failed to update the repository index blob with indices data on startup", e); - } - } - @Override public void deleteSnapshot(SnapshotId snapshotId) { if (isReadOnly()) { @@ -476,17 +418,11 @@ public abstract class BlobStoreRepository extends AbstractLifecycleComponent imp logger.warn((Supplier) () -> new ParameterizedMessage("[{}] Unable to delete snapshot file [{}]", snapshotInfo.snapshotId(), blobId), e); } } else { - // we don't know the version, first try the current format, then the legacy format try { snapshotFormat.delete(snapshotsBlobContainer, blobId); } catch (IOException e) { - // now try legacy format - try { - snapshotLegacyFormat.delete(snapshotsBlobContainer, blobId); - } catch (IOException e2) { - // neither snapshot file could be deleted, log the error - logger.warn((Supplier) () -> new ParameterizedMessage("Unable to delete snapshot file [{}]", blobId), e); - } + // snapshot file could not be deleted, log the error + logger.warn((Supplier) () -> new ParameterizedMessage("Unable to delete snapshot file [{}]", blobId), e); } } } @@ -500,17 +436,11 @@ public abstract class BlobStoreRepository extends AbstractLifecycleComponent imp logger.warn((Supplier) () -> new ParameterizedMessage("[{}] Unable to delete global metadata file [{}]", snapshotInfo.snapshotId(), blobId), e); } } else { - // we don't know the version, first try the current format, then the legacy format try { globalMetaDataFormat.delete(snapshotsBlobContainer, blobId); } catch (IOException e) { - // now try legacy format - try { - globalMetaDataLegacyFormat.delete(snapshotsBlobContainer, blobId); - } catch (IOException e2) { - // neither global metadata file could be deleted, log the error - logger.warn((Supplier) () -> new ParameterizedMessage("Unable to delete global metadata file [{}]", blobId), e); - } + // global metadata file could not be deleted, log the error + logger.warn((Supplier) () -> new ParameterizedMessage("Unable to delete global metadata file [{}]", blobId), e); } } } @@ -559,14 +489,7 @@ public abstract class BlobStoreRepository extends AbstractLifecycleComponent imp try { return snapshotFormat.read(snapshotsBlobContainer, snapshotId.getUUID()); } catch (FileNotFoundException | NoSuchFileException ex) { - // File is missing - let's try legacy format instead - try { - return snapshotLegacyFormat.read(snapshotsBlobContainer, snapshotId.getName()); - } catch (FileNotFoundException | NoSuchFileException ex1) { - throw new SnapshotMissingException(metadata.name(), snapshotId, ex); - } catch (IOException | NotXContentException ex1) { - throw new SnapshotException(metadata.name(), snapshotId, "failed to get snapshots", ex1); - } + throw new SnapshotMissingException(metadata.name(), snapshotId, ex); } catch (IOException | NotXContentException ex) { throw new SnapshotException(metadata.name(), snapshotId, "failed to get snapshots", ex); } @@ -580,8 +503,6 @@ public abstract class BlobStoreRepository extends AbstractLifecycleComponent imp assert ignoreIndexErrors; if (globalMetaDataFormat.exists(snapshotsBlobContainer, snapshotId.getUUID())) { snapshotVersion = Version.CURRENT; - } else if (globalMetaDataLegacyFormat.exists(snapshotsBlobContainer, snapshotId.getName())) { - throw new SnapshotException(metadata.name(), snapshotId, "snapshot is too old"); } else { throw new SnapshotMissingException(metadata.name(), snapshotId); } @@ -632,41 +553,21 @@ public abstract class BlobStoreRepository extends AbstractLifecycleComponent imp * Returns appropriate global metadata format based on the provided version of the snapshot */ private BlobStoreFormat globalMetaDataFormat(Version version) { - if(legacyMetaData(version)) { - return globalMetaDataLegacyFormat; - } else { - return globalMetaDataFormat; - } + return globalMetaDataFormat; } /** * Returns appropriate snapshot format based on the provided version of the snapshot */ private BlobStoreFormat snapshotFormat(Version version) { - if(legacyMetaData(version)) { - return snapshotLegacyFormat; - } else { - return snapshotFormat; - } - } - - /** - * In v2.0.0 we changed the metadata file format - * @return true if legacy version should be used false otherwise - */ - public static boolean legacyMetaData(Version version) { - return version.before(Version.V_2_0_0_beta1); + return snapshotFormat; } /** * Returns appropriate index metadata format based on the provided version of the snapshot */ private BlobStoreFormat indexMetaDataFormat(Version version) { - if(legacyMetaData(version)) { - return indexMetaDataLegacyFormat; - } else { - return indexMetaDataFormat; - } + return indexMetaDataFormat; } @Override @@ -719,17 +620,7 @@ public abstract class BlobStoreRepository extends AbstractLifecycleComponent imp public RepositoryData getRepositoryData() { try { final long indexGen = latestIndexBlobId(); - final String snapshotsIndexBlobName; - final boolean legacyFormat; - if (indexGen == -1) { - // index-N file doesn't exist, either its a fresh repository, or its in the - // old format, so look for the older index file before returning an empty list - snapshotsIndexBlobName = SNAPSHOTS_FILE; - legacyFormat = true; - } else { - snapshotsIndexBlobName = INDEX_FILE_PREFIX + Long.toString(indexGen); - legacyFormat = false; - } + final String snapshotsIndexBlobName = INDEX_FILE_PREFIX + Long.toString(indexGen); RepositoryData repositoryData; try (InputStream blob = snapshotsBlobContainer.readBlob(snapshotsIndexBlobName)) { @@ -739,10 +630,6 @@ public abstract class BlobStoreRepository extends AbstractLifecycleComponent imp repositoryData = RepositoryData.fromXContent(parser); } } - if (legacyFormat) { - // pre 5.0 repository data needs to be updated to include the indices - repositoryData = upgradeRepositoryData(repositoryData); - } return repositoryData; } catch (NoSuchFileException nsfe) { // repository doesn't have an index blob, its a new blank repo @@ -968,11 +855,7 @@ public abstract class BlobStoreRepository extends AbstractLifecycleComponent imp } BlobStoreFormat indexShardSnapshotFormat(Version version) { - if (BlobStoreRepository.legacyMetaData(version)) { - return indexShardSnapshotLegacyFormat; - } else { - return indexShardSnapshotFormat; - } + return indexShardSnapshotFormat; } /** @@ -1170,8 +1053,6 @@ public abstract class BlobStoreRepository extends AbstractLifecycleComponent imp BlobStoreIndexShardSnapshot snapshot = null; if (name.startsWith(SNAPSHOT_PREFIX)) { snapshot = indexShardSnapshotFormat.readBlob(blobContainer, name); - } else if (name.startsWith(LEGACY_SNAPSHOT_PREFIX)) { - snapshot = indexShardSnapshotLegacyFormat.readBlob(blobContainer, name); } if (snapshot != null) { snapshots.add(new SnapshotFiles(snapshot.snapshot(), snapshot.indexFiles())); diff --git a/core/src/main/java/org/elasticsearch/repositories/blobstore/LegacyBlobStoreFormat.java b/core/src/main/java/org/elasticsearch/repositories/blobstore/LegacyBlobStoreFormat.java deleted file mode 100644 index 206371261e7..00000000000 --- a/core/src/main/java/org/elasticsearch/repositories/blobstore/LegacyBlobStoreFormat.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.elasticsearch.repositories.blobstore; - -import org.elasticsearch.common.ParseFieldMatcher; -import org.elasticsearch.common.blobstore.BlobContainer; -import org.elasticsearch.common.io.Streams; -import org.elasticsearch.common.io.stream.BytesStreamOutput; -import org.elasticsearch.common.xcontent.FromXContentBuilder; -import org.elasticsearch.common.xcontent.ToXContent; - -import java.io.IOException; -import java.io.InputStream; - -/** - * Snapshot metadata file format used before v2.0 - */ -public class LegacyBlobStoreFormat extends BlobStoreFormat { - - /** - * @param blobNameFormat format of the blobname in {@link String#format} format - * @param reader the prototype object that can deserialize objects with type T - */ - public LegacyBlobStoreFormat(String blobNameFormat, FromXContentBuilder reader, ParseFieldMatcher parseFieldMatcher) { - super(blobNameFormat, reader, parseFieldMatcher); - } - - /** - * Reads and parses the blob with given name. - * - * If required the checksum of the blob will be verified. - * - * @param blobContainer blob container - * @param blobName blob name - * @return parsed blob object - */ - public T readBlob(BlobContainer blobContainer, String blobName) throws IOException { - try (InputStream inputStream = blobContainer.readBlob(blobName)) { - BytesStreamOutput out = new BytesStreamOutput(); - Streams.copy(inputStream, out); - return read(out.bytes()); - } - } -} diff --git a/core/src/main/java/org/elasticsearch/snapshots/RestoreService.java b/core/src/main/java/org/elasticsearch/snapshots/RestoreService.java index 6ce6ee61938..7ef62ef2db5 100644 --- a/core/src/main/java/org/elasticsearch/snapshots/RestoreService.java +++ b/core/src/main/java/org/elasticsearch/snapshots/RestoreService.java @@ -185,16 +185,7 @@ public class RestoreService extends AbstractComponent implements ClusterStateLis final SnapshotInfo snapshotInfo = repository.getSnapshotInfo(snapshotId); final Snapshot snapshot = new Snapshot(request.repositoryName, snapshotId); List filteredIndices = SnapshotUtils.filterIndices(snapshotInfo.indices(), request.indices(), request.indicesOptions()); - MetaData metaDataIn = repository.getSnapshotMetaData(snapshotInfo, repositoryData.resolveIndices(filteredIndices)); - - final MetaData metaData; - if (snapshotInfo.version().before(Version.V_2_0_0_beta1)) { - // ES 2.0 now requires units for all time and byte-sized settings, so we add the default unit if it's missing in this snapshot: - metaData = MetaData.addDefaultUnitsIfNeeded(logger, metaDataIn); - } else { - // Units are already enforced: - metaData = metaDataIn; - } + MetaData metaData = repository.getSnapshotMetaData(snapshotInfo, repositoryData.resolveIndices(filteredIndices)); // Make sure that we can restore from this snapshot validateSnapshotRestorable(request.repositoryName, snapshotInfo); diff --git a/core/src/test/java/org/elasticsearch/VersionTests.java b/core/src/test/java/org/elasticsearch/VersionTests.java index 51f7dd8f857..1c9964547b0 100644 --- a/core/src/test/java/org/elasticsearch/VersionTests.java +++ b/core/src/test/java/org/elasticsearch/VersionTests.java @@ -153,11 +153,12 @@ public class VersionTests extends ESTestCase { } public void testMinCompatVersion() { - assertThat(Version.V_2_0_0_beta1.minimumCompatibilityVersion(), equalTo(Version.V_2_0_0_beta1)); - assertThat(Version.V_2_1_0.minimumCompatibilityVersion(), equalTo(Version.V_2_0_0)); - assertThat(Version.V_2_2_0.minimumCompatibilityVersion(), equalTo(Version.V_2_0_0)); - assertThat(Version.V_2_3_0.minimumCompatibilityVersion(), equalTo(Version.V_2_0_0)); - assertThat(Version.V_5_0_0_alpha1.minimumCompatibilityVersion(), equalTo(Version.V_5_0_0_alpha1)); + Version prerelease = VersionUtils.getFirstVersion(); + assertThat(prerelease.minimumCompatibilityVersion(), equalTo(prerelease)); + Version major = Version.fromString("2.0.0"); + assertThat(Version.fromString("2.0.0").minimumCompatibilityVersion(), equalTo(major)); + assertThat(Version.fromString("2.2.0").minimumCompatibilityVersion(), equalTo(major)); + assertThat(Version.fromString("2.3.0").minimumCompatibilityVersion(), equalTo(major)); // from 6.0 on we are supporting the latest minor of the previous major... this might fail once we add a new version ie. 5.x is // released since we need to bump the supported minor in Version#minimumCompatibilityVersion() Version lastVersion = VersionUtils.getPreviousVersion(Version.V_6_0_0_alpha1_UNRELEASED); @@ -169,9 +170,9 @@ public class VersionTests extends ESTestCase { public void testToString() { // with 2.0.beta we lowercase - assertEquals("2.0.0-beta1", Version.V_2_0_0_beta1.toString()); + assertEquals("2.0.0-beta1", Version.fromString("2.0.0-beta1").toString()); assertEquals("5.0.0-alpha1", Version.V_5_0_0_alpha1.toString()); - assertEquals("2.3.0", Version.V_2_3_0.toString()); + assertEquals("2.3.0", Version.fromString("2.3.0").toString()); assertEquals("0.90.0.Beta1", Version.fromString("0.90.0.Beta1").toString()); assertEquals("1.0.0.Beta1", Version.fromString("1.0.0.Beta1").toString()); assertEquals("2.0.0-beta1", Version.fromString("2.0.0-beta1").toString()); @@ -180,7 +181,7 @@ public class VersionTests extends ESTestCase { } public void testIsBeta() { - assertTrue(Version.V_2_0_0_beta1.isBeta()); + assertTrue(Version.fromString("2.0.0-beta1").isBeta()); assertTrue(Version.fromString("1.0.0.Beta1").isBeta()); assertTrue(Version.fromString("0.90.0.Beta1").isBeta()); } diff --git a/core/src/test/java/org/elasticsearch/bwcompat/OldIndexBackwardsCompatibilityIT.java b/core/src/test/java/org/elasticsearch/bwcompat/OldIndexBackwardsCompatibilityIT.java index 307b47edacf..0ad3072fe1c 100644 --- a/core/src/test/java/org/elasticsearch/bwcompat/OldIndexBackwardsCompatibilityIT.java +++ b/core/src/test/java/org/elasticsearch/bwcompat/OldIndexBackwardsCompatibilityIT.java @@ -240,7 +240,6 @@ public class OldIndexBackwardsCompatibilityIT extends ESIntegTestCase { assertRealtimeGetWorks(indexName); assertNewReplicasWork(indexName); assertUpgradeWorks(client(), indexName, version); - assertDeleteByQueryWorked(indexName, version); assertPositionIncrementGapDefaults(indexName, version); assertAliasWithBadName(indexName, version); unloadIndex(indexName); @@ -409,17 +408,6 @@ public class OldIndexBackwardsCompatibilityIT extends ESIntegTestCase { // TODO: do something with the replicas! query? index? } - // #10067: create-bwc-index.py deleted any doc with long_sort:[10-20] - void assertDeleteByQueryWorked(String indexName, Version version) throws Exception { - if (version.onOrAfter(Version.V_2_0_0_beta1)) { - // TODO: remove this once #10262 is fixed - return; - } - // these documents are supposed to be deleted by a delete by query operation in the translog - SearchRequestBuilder searchReq = client().prepareSearch(indexName).setQuery(QueryBuilders.queryStringQuery("long_sort:[10 TO 20]")); - assertEquals(0, searchReq.get().getHits().getTotalHits()); - } - void assertPositionIncrementGapDefaults(String indexName, Version version) throws Exception { client().prepareIndex(indexName, "doc", "position_gap_test").setSource("string", Arrays.asList("one", "two three")) .setRefreshPolicy(RefreshPolicy.IMMEDIATE).get(); diff --git a/core/src/test/java/org/elasticsearch/snapshots/BlobStoreFormatIT.java b/core/src/test/java/org/elasticsearch/snapshots/BlobStoreFormatIT.java index 183fd17b60f..617fcf9ebc3 100644 --- a/core/src/test/java/org/elasticsearch/snapshots/BlobStoreFormatIT.java +++ b/core/src/test/java/org/elasticsearch/snapshots/BlobStoreFormatIT.java @@ -28,22 +28,17 @@ import org.elasticsearch.common.blobstore.BlobPath; import org.elasticsearch.common.blobstore.BlobStore; import org.elasticsearch.common.blobstore.fs.FsBlobStore; import org.elasticsearch.common.bytes.BytesArray; -import org.elasticsearch.common.bytes.BytesReference; -import org.elasticsearch.common.compress.CompressorFactory; import org.elasticsearch.common.io.Streams; import org.elasticsearch.common.io.stream.BytesStreamOutput; import org.elasticsearch.common.io.stream.StreamInput; -import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.FromXContentBuilder; import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; -import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.index.translog.BufferedChecksumStreamOutput; import org.elasticsearch.repositories.blobstore.ChecksumBlobStoreFormat; -import org.elasticsearch.repositories.blobstore.LegacyBlobStoreFormat; import java.io.EOFException; import java.io.IOException; @@ -116,67 +111,17 @@ public class BlobStoreFormatIT extends AbstractSnapshotIntegTestCase { } } - /** - * Extends legacy format with writing functionality. It's used to simulate legacy file formats in tests. - */ - private static final class LegacyEmulationBlobStoreFormat extends LegacyBlobStoreFormat { - - protected final XContentType xContentType; - - protected final boolean compress; - - public LegacyEmulationBlobStoreFormat(String blobNameFormat, FromXContentBuilder reader, ParseFieldMatcher parseFieldMatcher, boolean compress, XContentType xContentType) { - super(blobNameFormat, reader, parseFieldMatcher); - this.xContentType = xContentType; - this.compress = compress; - } - - public void write(T obj, BlobContainer blobContainer, String blobName) throws IOException { - BytesReference bytes = write(obj); - try (StreamInput stream = bytes.streamInput()) { - blobContainer.writeBlob(blobName, stream, bytes.length()); - } - } - - private BytesReference write(T obj) throws IOException { - try (BytesStreamOutput bytesStreamOutput = new BytesStreamOutput()) { - if (compress) { - try (StreamOutput compressedStreamOutput = CompressorFactory.COMPRESSOR.streamOutput(bytesStreamOutput)) { - write(obj, compressedStreamOutput); - } - } else { - write(obj, bytesStreamOutput); - } - return bytesStreamOutput.bytes(); - } - } - - private void write(T obj, StreamOutput streamOutput) throws IOException { - XContentBuilder builder = XContentFactory.contentBuilder(xContentType, streamOutput); - builder.startObject(); - obj.toXContent(builder, SNAPSHOT_ONLY_FORMAT_PARAMS); - builder.endObject(); - builder.close(); - } - } - public void testBlobStoreOperations() throws IOException { BlobStore blobStore = createTestBlobStore(); BlobContainer blobContainer = blobStore.blobContainer(BlobPath.cleanPath()); ChecksumBlobStoreFormat checksumJSON = new ChecksumBlobStoreFormat<>(BLOB_CODEC, "%s", BlobObj.PROTO, parseFieldMatcher, false, XContentType.JSON); ChecksumBlobStoreFormat checksumSMILE = new ChecksumBlobStoreFormat<>(BLOB_CODEC, "%s", BlobObj.PROTO, parseFieldMatcher, false, XContentType.SMILE); ChecksumBlobStoreFormat checksumSMILECompressed = new ChecksumBlobStoreFormat<>(BLOB_CODEC, "%s", BlobObj.PROTO, parseFieldMatcher, true, XContentType.SMILE); - LegacyEmulationBlobStoreFormat legacyJSON = new LegacyEmulationBlobStoreFormat<>("%s", BlobObj.PROTO, parseFieldMatcher, false, XContentType.JSON); - LegacyEmulationBlobStoreFormat legacySMILE = new LegacyEmulationBlobStoreFormat<>("%s", BlobObj.PROTO, parseFieldMatcher, false, XContentType.SMILE); - LegacyEmulationBlobStoreFormat legacySMILECompressed = new LegacyEmulationBlobStoreFormat<>("%s", BlobObj.PROTO, parseFieldMatcher, true, XContentType.SMILE); // Write blobs in different formats checksumJSON.write(new BlobObj("checksum json"), blobContainer, "check-json"); checksumSMILE.write(new BlobObj("checksum smile"), blobContainer, "check-smile"); checksumSMILECompressed.write(new BlobObj("checksum smile compressed"), blobContainer, "check-smile-comp"); - legacyJSON.write(new BlobObj("legacy json"), blobContainer, "legacy-json"); - legacySMILE.write(new BlobObj("legacy smile"), blobContainer, "legacy-smile"); - legacySMILECompressed.write(new BlobObj("legacy smile compressed"), blobContainer, "legacy-smile-comp"); // Assert that all checksum blobs can be read by all formats assertEquals(checksumJSON.read(blobContainer, "check-json").getText(), "checksum json"); @@ -185,14 +130,6 @@ public class BlobStoreFormatIT extends AbstractSnapshotIntegTestCase { assertEquals(checksumSMILE.read(blobContainer, "check-smile").getText(), "checksum smile"); assertEquals(checksumJSON.read(blobContainer, "check-smile-comp").getText(), "checksum smile compressed"); assertEquals(checksumSMILE.read(blobContainer, "check-smile-comp").getText(), "checksum smile compressed"); - - // Assert that all legacy blobs can be read be all formats - assertEquals(legacyJSON.read(blobContainer, "legacy-json").getText(), "legacy json"); - assertEquals(legacySMILE.read(blobContainer, "legacy-json").getText(), "legacy json"); - assertEquals(legacyJSON.read(blobContainer, "legacy-smile").getText(), "legacy smile"); - assertEquals(legacySMILE.read(blobContainer, "legacy-smile").getText(), "legacy smile"); - assertEquals(legacyJSON.read(blobContainer, "legacy-smile-comp").getText(), "legacy smile compressed"); - assertEquals(legacySMILE.read(blobContainer, "legacy-smile-comp").getText(), "legacy smile compressed"); } public void testCompressionIsApplied() throws IOException { diff --git a/modules/reindex/src/test/java/org/elasticsearch/index/reindex/remote/RemoteRequestBuildersTests.java b/modules/reindex/src/test/java/org/elasticsearch/index/reindex/remote/RemoteRequestBuildersTests.java index 9f2eaad0a67..dec5263352a 100644 --- a/modules/reindex/src/test/java/org/elasticsearch/index/reindex/remote/RemoteRequestBuildersTests.java +++ b/modules/reindex/src/test/java/org/elasticsearch/index/reindex/remote/RemoteRequestBuildersTests.java @@ -28,6 +28,7 @@ import org.elasticsearch.common.io.Streams; import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.test.VersionUtils; import java.io.IOException; import java.io.InputStreamReader; @@ -113,7 +114,7 @@ public class RemoteRequestBuildersTests extends ESTestCase { SearchRequest searchRequest = new SearchRequest().source(new SearchSourceBuilder()); // Test request without any fields - Version remoteVersion = Version.fromId(between(Version.V_2_0_0_beta1_ID, Version.CURRENT.id)); + Version remoteVersion = VersionUtils.randomVersion(random()); assertThat(initialSearchParams(searchRequest, remoteVersion), not(either(hasKey("stored_fields")).or(hasKey("fields")))); @@ -121,16 +122,12 @@ public class RemoteRequestBuildersTests extends ESTestCase { searchRequest.source().storedField("_source").storedField("_id"); // Test stored_fields for versions that support it - remoteVersion = Version.fromId(between(Version.V_5_0_0_alpha4_ID, Version.CURRENT.id)); + remoteVersion = VersionUtils.randomVersionBetween(random(), Version.V_5_0_0_alpha4, null); assertThat(initialSearchParams(searchRequest, remoteVersion), hasEntry("stored_fields", "_source,_id")); // Test fields for versions that support it - remoteVersion = Version.fromId(between(Version.V_2_0_0_beta1_ID, Version.V_5_0_0_alpha4_ID - 1)); + remoteVersion = VersionUtils.randomVersionBetween(random(), null, Version.V_5_0_0_alpha3); assertThat(initialSearchParams(searchRequest, remoteVersion), hasEntry("fields", "_source,_id")); - - // Test extra fields for versions that need it - remoteVersion = Version.fromId(between(0, Version.V_2_0_0_beta1_ID - 1)); - assertThat(initialSearchParams(searchRequest, remoteVersion), hasEntry("fields", "_source,_id,_parent,_routing,_ttl")); } public void testInitialSearchParamsMisc() { diff --git a/test/framework/src/main/java/org/elasticsearch/test/AbstractQueryTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/AbstractQueryTestCase.java index a24017a994a..62fd7c9c195 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/AbstractQueryTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/AbstractQueryTestCase.java @@ -184,7 +184,7 @@ public abstract class AbstractQueryTestCase> public static void beforeClass() { // we have to prefer CURRENT since with the range of versions we support it's rather unlikely to get the current actually. Version indexVersionCreated = randomBoolean() ? Version.CURRENT - : VersionUtils.randomVersionBetween(random(), Version.V_2_0_0_beta1, Version.CURRENT); + : VersionUtils.randomVersionBetween(random(), null, Version.CURRENT); nodeSettings = Settings.builder() .put("node.name", AbstractQueryTestCase.class.toString()) .put(Environment.PATH_HOME_SETTING.getKey(), createTempDir()) From 36f598138afec1ff16afe9d160850a9ca19db83c Mon Sep 17 00:00:00 2001 From: Adrien Grand Date: Fri, 9 Dec 2016 09:45:16 +0100 Subject: [PATCH 14/51] Start using `ObjectParser` for aggs. (#22048) This is an attempt to start moving aggs parsing to `ObjectParser`. There is still A LOT to do, but ObjectParser is way better than the way aggregations parsing works today. For instance in most cases, we reject numbers that are provided as strings, which we are supposed to accept since some client languages (looking at you Perl) cannot make sure to use the appropriate types. Relates to #22009 --- .../cluster/metadata/IndexGraveyard.java | 4 +- .../common/xcontent/AbstractObjectParser.java | 21 +- .../xcontent/ConstructingObjectParser.java | 7 +- .../common/xcontent/ContextParser.java | 30 +++ .../common/xcontent/ObjectParser.java | 6 +- .../ingest/PipelineConfiguration.java | 5 +- .../elasticsearch/search/SearchModule.java | 82 +++--- .../geogrid/GeoGridAggregationBuilder.java | 22 +- .../bucket/geogrid/GeoHashGridParser.java | 85 ------ .../DateHistogramAggregationBuilder.java | 79 ++++++ .../bucket/histogram/DateHistogramParser.java | 156 ----------- .../HistogramAggregationBuilder.java | 71 +++++ .../bucket/histogram/HistogramParser.java | 147 ----------- .../missing/MissingAggregationBuilder.java | 13 + .../bucket/missing/MissingParser.java | 48 ---- .../bucket/range/RangeAggregationBuilder.java | 26 ++ .../bucket/range/RangeParser.java | 92 ------- .../date/DateRangeAggregationBuilder.java | 26 ++ .../bucket/range/date/DateRangeParser.java | 52 ---- .../GeoDistanceAggregationBuilder.java | 189 +++++++++++++- .../range/geodistance/GeoDistanceParser.java | 172 ------------- .../GeoDistanceRangeAggregatorFactory.java | 2 +- .../range/ip/IpRangeAggregationBuilder.java | 62 +++++ .../bucket/range/ip/IpRangeParser.java | 128 --------- .../DiversifiedAggregationBuilder.java | 17 ++ .../sampler/DiversifiedSamplerParser.java | 79 ------ .../SignificantTermsAggregationBuilder.java | 49 ++++ .../significant/SignificantTermsParser.java | 107 -------- .../bucket/significant/heuristics/GND.java | 8 +- .../significant/heuristics/JLHScore.java | 6 +- .../heuristics/NXYSignificanceHeuristic.java | 10 +- .../heuristics/PercentageScore.java | 6 +- .../heuristics/ScriptHeuristic.java | 8 +- .../SignificanceHeuristicParser.java | 4 +- .../bucket/terms/AbstractTermsParser.java | 137 ---------- .../bucket/terms/TermsAggregationBuilder.java | 97 ++++++- .../bucket/terms/TermsAggregator.java | 4 +- .../bucket/terms/TermsParser.java | 172 ------------- .../bucket/terms/support/IncludeExclude.java | 243 +++++++----------- .../metrics/avg/AvgAggregationBuilder.java | 14 + .../aggregations/metrics/avg/AvgParser.java | 48 ---- .../CardinalityAggregationBuilder.java | 17 ++ .../cardinality/CardinalityParser.java | 66 ----- .../GeoBoundsAggregationBuilder.java | 15 ++ .../metrics/geobounds/GeoBoundsParser.java | 61 ----- .../GeoCentroidAggregationBuilder.java | 14 + .../geocentroid/GeoCentroidParser.java | 52 ---- .../metrics/max/MaxAggregationBuilder.java | 14 + .../aggregations/metrics/max/MaxParser.java | 48 ---- .../metrics/min/MinAggregationBuilder.java | 15 ++ .../aggregations/metrics/min/MinParser.java | 48 ---- .../AbstractPercentilesParser.java | 137 ---------- .../PercentileRanksAggregationBuilder.java | 74 +++++- .../percentiles/PercentileRanksParser.java | 60 ----- .../PercentilesAggregationBuilder.java | 82 +++++- .../percentiles/PercentilesMethod.java | 29 +-- .../percentiles/PercentilesParser.java | 62 ----- .../stats/StatsAggregationBuilder.java | 14 + .../metrics/stats/StatsParser.java | 48 ---- .../ExtendedStatsAggregationBuilder.java | 15 ++ .../stats/extended/ExtendedStatsParser.java | 59 ----- .../metrics/sum/SumAggregationBuilder.java | 14 + .../aggregations/metrics/sum/SumParser.java | 48 ---- .../ValueCountAggregationBuilder.java | 14 + .../metrics/valuecount/ValueCountParser.java | 50 ---- .../support/AbstractValuesSourceParser.java | 216 ---------------- .../aggregations/support/GeoPointParser.java | 97 ------- .../support/ValuesSourceParserHelper.java | 102 ++++++++ .../support/XContentParseContext.java | 65 ----- .../ConstructingObjectParserTests.java | 1 - .../common/xcontent/ObjectParserTests.java | 1 - .../search/SearchModuleTests.java | 4 +- .../bucket/GeoDistanceRangeTests.java | 2 +- .../SignificantTermsSignificanceScoreIT.java | 6 +- .../bucket/SignificantTermsTests.java | 4 +- .../aggregations/bucket/TermsTests.java | 12 +- .../geogrid/GeoHashGridParserTests.java | 31 ++- .../SignificanceHeuristicTests.java | 14 +- .../reindex/remote/RemoteResponseParsers.java | 4 +- 79 files changed, 1261 insertions(+), 2888 deletions(-) create mode 100644 core/src/main/java/org/elasticsearch/common/xcontent/ContextParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRangeParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ip/IpRangeParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedSamplerParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/AbstractTermsParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/metrics/avg/AvgParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/metrics/cardinality/CardinalityParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/metrics/geobounds/GeoBoundsParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/GeoCentroidParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/metrics/max/MaxParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/metrics/min/MinParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/AbstractPercentilesParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/PercentileRanksParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/PercentilesParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/StatsParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/extended/ExtendedStatsParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/metrics/valuecount/ValueCountParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/support/AbstractValuesSourceParser.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/support/GeoPointParser.java create mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceParserHelper.java delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/support/XContentParseContext.java diff --git a/core/src/main/java/org/elasticsearch/cluster/metadata/IndexGraveyard.java b/core/src/main/java/org/elasticsearch/cluster/metadata/IndexGraveyard.java index f6a54fc82d7..1a2cfe90ad6 100644 --- a/core/src/main/java/org/elasticsearch/cluster/metadata/IndexGraveyard.java +++ b/core/src/main/java/org/elasticsearch/cluster/metadata/IndexGraveyard.java @@ -29,6 +29,7 @@ import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.common.joda.Joda; import org.elasticsearch.common.settings.Setting; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.xcontent.ContextParser; import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; @@ -43,7 +44,6 @@ import java.util.EnumSet; import java.util.List; import java.util.Objects; import java.util.concurrent.TimeUnit; -import java.util.function.BiFunction; /** * A collection of tombstones for explicitly marking indices as deleted in the cluster state. @@ -367,7 +367,7 @@ public final class IndexGraveyard implements MetaData.Custom { TOMBSTONE_PARSER.declareString((b, s) -> {}, new ParseField(DELETE_DATE_KEY)); } - static BiFunction getParser() { + static ContextParser getParser() { return (p, c) -> TOMBSTONE_PARSER.apply(p, c).build(); } diff --git a/core/src/main/java/org/elasticsearch/common/xcontent/AbstractObjectParser.java b/core/src/main/java/org/elasticsearch/common/xcontent/AbstractObjectParser.java index a623a86c9b1..64a5fa4c119 100644 --- a/core/src/main/java/org/elasticsearch/common/xcontent/AbstractObjectParser.java +++ b/core/src/main/java/org/elasticsearch/common/xcontent/AbstractObjectParser.java @@ -35,14 +35,7 @@ import java.util.function.BiFunction; * Superclass for {@link ObjectParser} and {@link ConstructingObjectParser}. Defines most of the "declare" methods so they can be shared. */ public abstract class AbstractObjectParser - implements BiFunction { - /** - * Reads an object from a parser using some context. - */ - @FunctionalInterface - public interface ContextParser { - T parse(XContentParser p, Context c) throws IOException; - } + implements BiFunction, ContextParser { /** * Reads an object right from the parser without any context. @@ -54,7 +47,7 @@ public abstract class AbstractObjectParser void declareField(BiConsumer consumer, ContextParser parser, ParseField parseField, ValueType type); @@ -66,8 +59,8 @@ public abstract class AbstractObjectParser parser.parse(p), parseField, type); } - public void declareObject(BiConsumer consumer, BiFunction objectParser, ParseField field) { - declareField(consumer, (p, c) -> objectParser.apply(p, c), field, ValueType.OBJECT); + public void declareObject(BiConsumer consumer, ContextParser objectParser, ParseField field) { + declareField(consumer, (p, c) -> objectParser.parse(p, c), field, ValueType.OBJECT); } public void declareFloat(BiConsumer consumer, ParseField field) { @@ -103,9 +96,9 @@ public abstract class AbstractObjectParser void declareObjectArray(BiConsumer> consumer, BiFunction objectParser, + public void declareObjectArray(BiConsumer> consumer, ContextParser objectParser, ParseField field) { - declareField(consumer, (p, c) -> parseArray(p, () -> objectParser.apply(p, c)), field, ValueType.OBJECT_ARRAY); + declareField(consumer, (p, c) -> parseArray(p, () -> objectParser.parse(p, c)), field, ValueType.OBJECT_ARRAY); } public void declareStringArray(BiConsumer> consumer, ParseField field) { @@ -144,7 +137,7 @@ public abstract class AbstractObjectParser List parseArray(XContentParser parser, IOSupplier supplier) throws IOException { List list = new ArrayList<>(); - if (parser.currentToken().isValue()) { + if (parser.currentToken().isValue() || parser.currentToken() == XContentParser.Token.START_OBJECT) { list.add(supplier.get()); // single value } else { while (parser.nextToken() != XContentParser.Token.END_ARRAY) { diff --git a/core/src/main/java/org/elasticsearch/common/xcontent/ConstructingObjectParser.java b/core/src/main/java/org/elasticsearch/common/xcontent/ConstructingObjectParser.java index 1d30b79e295..6e646094d06 100644 --- a/core/src/main/java/org/elasticsearch/common/xcontent/ConstructingObjectParser.java +++ b/core/src/main/java/org/elasticsearch/common/xcontent/ConstructingObjectParser.java @@ -140,12 +140,17 @@ public final class ConstructingObjectParser { + T parse(XContentParser p, Context c) throws IOException; +} diff --git a/core/src/main/java/org/elasticsearch/common/xcontent/ObjectParser.java b/core/src/main/java/org/elasticsearch/common/xcontent/ObjectParser.java index 2abd6e66df8..8bd3b634d69 100644 --- a/core/src/main/java/org/elasticsearch/common/xcontent/ObjectParser.java +++ b/core/src/main/java/org/elasticsearch/common/xcontent/ObjectParser.java @@ -47,8 +47,8 @@ import static org.elasticsearch.common.xcontent.XContentParser.Token.VALUE_STRIN /** * A declarative, stateless parser that turns XContent into setter calls. A single parser should be defined for each object being parsed, - * nested elements can be added via {@link #declareObject(BiConsumer, BiFunction, ParseField)} which should be satisfied where possible by - * passing another instance of {@link ObjectParser}, this one customized for that Object. + * nested elements can be added via {@link #declareObject(BiConsumer, ContextParser, ParseField)} which should be satisfied where possible + * by passing another instance of {@link ObjectParser}, this one customized for that Object. *

* This class works well for object that do have a constructor argument or that can be built using information available from earlier in the * XContent. For objects that have constructors with required arguments that are specified on the same level as other fields see @@ -126,6 +126,7 @@ public final class ObjectParser tokens; diff --git a/core/src/main/java/org/elasticsearch/ingest/PipelineConfiguration.java b/core/src/main/java/org/elasticsearch/ingest/PipelineConfiguration.java index 56f4e2c6a79..9e15e445f12 100644 --- a/core/src/main/java/org/elasticsearch/ingest/PipelineConfiguration.java +++ b/core/src/main/java/org/elasticsearch/ingest/PipelineConfiguration.java @@ -25,15 +25,14 @@ import org.elasticsearch.common.ParseFieldMatcherSupplier; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.common.xcontent.ContextParser; import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentHelper; -import org.elasticsearch.common.xcontent.XContentParser; import java.io.IOException; import java.util.Map; -import java.util.function.BiFunction; /** * Encapsulates a pipeline's id and configuration as a blob @@ -55,7 +54,7 @@ public final class PipelineConfiguration extends AbstractDiffable getParser() { + public static ContextParser getParser() { return (p, c) -> PARSER.apply(p ,c).build(); } private static class Builder { diff --git a/core/src/main/java/org/elasticsearch/search/SearchModule.java b/core/src/main/java/org/elasticsearch/search/SearchModule.java index 7e55d70f3bf..cdfcaeab90b 100644 --- a/core/src/main/java/org/elasticsearch/search/SearchModule.java +++ b/core/src/main/java/org/elasticsearch/search/SearchModule.java @@ -103,19 +103,15 @@ import org.elasticsearch.search.aggregations.bucket.filter.InternalFilter; import org.elasticsearch.search.aggregations.bucket.filters.FiltersAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.filters.InternalFilters; import org.elasticsearch.search.aggregations.bucket.geogrid.GeoGridAggregationBuilder; -import org.elasticsearch.search.aggregations.bucket.geogrid.GeoHashGridParser; import org.elasticsearch.search.aggregations.bucket.geogrid.InternalGeoHashGrid; import org.elasticsearch.search.aggregations.bucket.global.GlobalAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.global.InternalGlobal; import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramAggregationBuilder; -import org.elasticsearch.search.aggregations.bucket.histogram.DateHistogramParser; import org.elasticsearch.search.aggregations.bucket.histogram.HistogramAggregationBuilder; -import org.elasticsearch.search.aggregations.bucket.histogram.HistogramParser; import org.elasticsearch.search.aggregations.bucket.histogram.InternalDateHistogram; import org.elasticsearch.search.aggregations.bucket.histogram.InternalHistogram; import org.elasticsearch.search.aggregations.bucket.missing.InternalMissing; import org.elasticsearch.search.aggregations.bucket.missing.MissingAggregationBuilder; -import org.elasticsearch.search.aggregations.bucket.missing.MissingParser; import org.elasticsearch.search.aggregations.bucket.nested.InternalNested; import org.elasticsearch.search.aggregations.bucket.nested.InternalReverseNested; import org.elasticsearch.search.aggregations.bucket.nested.NestedAggregationBuilder; @@ -123,24 +119,18 @@ import org.elasticsearch.search.aggregations.bucket.nested.ReverseNestedAggregat import org.elasticsearch.search.aggregations.bucket.range.InternalBinaryRange; import org.elasticsearch.search.aggregations.bucket.range.InternalRange; import org.elasticsearch.search.aggregations.bucket.range.RangeAggregationBuilder; -import org.elasticsearch.search.aggregations.bucket.range.RangeParser; import org.elasticsearch.search.aggregations.bucket.range.date.DateRangeAggregationBuilder; -import org.elasticsearch.search.aggregations.bucket.range.date.DateRangeParser; import org.elasticsearch.search.aggregations.bucket.range.date.InternalDateRange; import org.elasticsearch.search.aggregations.bucket.range.geodistance.GeoDistanceAggregationBuilder; -import org.elasticsearch.search.aggregations.bucket.range.geodistance.GeoDistanceParser; import org.elasticsearch.search.aggregations.bucket.range.geodistance.InternalGeoDistance; import org.elasticsearch.search.aggregations.bucket.range.ip.IpRangeAggregationBuilder; -import org.elasticsearch.search.aggregations.bucket.range.ip.IpRangeParser; import org.elasticsearch.search.aggregations.bucket.sampler.DiversifiedAggregationBuilder; -import org.elasticsearch.search.aggregations.bucket.sampler.DiversifiedSamplerParser; import org.elasticsearch.search.aggregations.bucket.sampler.InternalSampler; import org.elasticsearch.search.aggregations.bucket.sampler.SamplerAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.sampler.UnmappedSampler; import org.elasticsearch.search.aggregations.bucket.significant.SignificantLongTerms; import org.elasticsearch.search.aggregations.bucket.significant.SignificantStringTerms; import org.elasticsearch.search.aggregations.bucket.significant.SignificantTermsAggregationBuilder; -import org.elasticsearch.search.aggregations.bucket.significant.SignificantTermsParser; import org.elasticsearch.search.aggregations.bucket.significant.UnmappedSignificantTerms; import org.elasticsearch.search.aggregations.bucket.significant.heuristics.ChiSquare; import org.elasticsearch.search.aggregations.bucket.significant.heuristics.GND; @@ -154,30 +144,21 @@ import org.elasticsearch.search.aggregations.bucket.terms.DoubleTerms; import org.elasticsearch.search.aggregations.bucket.terms.LongTerms; import org.elasticsearch.search.aggregations.bucket.terms.StringTerms; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; -import org.elasticsearch.search.aggregations.bucket.terms.TermsParser; import org.elasticsearch.search.aggregations.bucket.terms.UnmappedTerms; import org.elasticsearch.search.aggregations.metrics.avg.AvgAggregationBuilder; -import org.elasticsearch.search.aggregations.metrics.avg.AvgParser; import org.elasticsearch.search.aggregations.metrics.avg.InternalAvg; import org.elasticsearch.search.aggregations.metrics.cardinality.CardinalityAggregationBuilder; -import org.elasticsearch.search.aggregations.metrics.cardinality.CardinalityParser; import org.elasticsearch.search.aggregations.metrics.cardinality.InternalCardinality; import org.elasticsearch.search.aggregations.metrics.geobounds.GeoBoundsAggregationBuilder; -import org.elasticsearch.search.aggregations.metrics.geobounds.GeoBoundsParser; import org.elasticsearch.search.aggregations.metrics.geobounds.InternalGeoBounds; import org.elasticsearch.search.aggregations.metrics.geocentroid.GeoCentroidAggregationBuilder; -import org.elasticsearch.search.aggregations.metrics.geocentroid.GeoCentroidParser; import org.elasticsearch.search.aggregations.metrics.geocentroid.InternalGeoCentroid; import org.elasticsearch.search.aggregations.metrics.max.InternalMax; import org.elasticsearch.search.aggregations.metrics.max.MaxAggregationBuilder; -import org.elasticsearch.search.aggregations.metrics.max.MaxParser; import org.elasticsearch.search.aggregations.metrics.min.InternalMin; import org.elasticsearch.search.aggregations.metrics.min.MinAggregationBuilder; -import org.elasticsearch.search.aggregations.metrics.min.MinParser; import org.elasticsearch.search.aggregations.metrics.percentiles.PercentileRanksAggregationBuilder; -import org.elasticsearch.search.aggregations.metrics.percentiles.PercentileRanksParser; import org.elasticsearch.search.aggregations.metrics.percentiles.PercentilesAggregationBuilder; -import org.elasticsearch.search.aggregations.metrics.percentiles.PercentilesParser; import org.elasticsearch.search.aggregations.metrics.percentiles.hdr.InternalHDRPercentileRanks; import org.elasticsearch.search.aggregations.metrics.percentiles.hdr.InternalHDRPercentiles; import org.elasticsearch.search.aggregations.metrics.percentiles.tdigest.InternalTDigestPercentileRanks; @@ -186,18 +167,14 @@ import org.elasticsearch.search.aggregations.metrics.scripted.InternalScriptedMe import org.elasticsearch.search.aggregations.metrics.scripted.ScriptedMetricAggregationBuilder; import org.elasticsearch.search.aggregations.metrics.stats.InternalStats; import org.elasticsearch.search.aggregations.metrics.stats.StatsAggregationBuilder; -import org.elasticsearch.search.aggregations.metrics.stats.StatsParser; import org.elasticsearch.search.aggregations.metrics.stats.extended.ExtendedStatsAggregationBuilder; -import org.elasticsearch.search.aggregations.metrics.stats.extended.ExtendedStatsParser; import org.elasticsearch.search.aggregations.metrics.stats.extended.InternalExtendedStats; import org.elasticsearch.search.aggregations.metrics.sum.InternalSum; import org.elasticsearch.search.aggregations.metrics.sum.SumAggregationBuilder; -import org.elasticsearch.search.aggregations.metrics.sum.SumParser; import org.elasticsearch.search.aggregations.metrics.tophits.InternalTopHits; import org.elasticsearch.search.aggregations.metrics.tophits.TopHitsAggregationBuilder; import org.elasticsearch.search.aggregations.metrics.valuecount.InternalValueCount; import org.elasticsearch.search.aggregations.metrics.valuecount.ValueCountAggregationBuilder; -import org.elasticsearch.search.aggregations.metrics.valuecount.ValueCountParser; import org.elasticsearch.search.aggregations.pipeline.InternalSimpleValue; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; import org.elasticsearch.search.aggregations.pipeline.bucketmetrics.InternalBucketMetricValue; @@ -372,34 +349,34 @@ public class SearchModule { } private void registerAggregations(List plugins) { - registerAggregation(new AggregationSpec(AvgAggregationBuilder.NAME, AvgAggregationBuilder::new, new AvgParser()) + registerAggregation(new AggregationSpec(AvgAggregationBuilder.NAME, AvgAggregationBuilder::new, AvgAggregationBuilder::parse) .addResultReader(InternalAvg::new)); - registerAggregation(new AggregationSpec(SumAggregationBuilder.NAME, SumAggregationBuilder::new, new SumParser()) + registerAggregation(new AggregationSpec(SumAggregationBuilder.NAME, SumAggregationBuilder::new, SumAggregationBuilder::parse) .addResultReader(InternalSum::new)); - registerAggregation(new AggregationSpec(MinAggregationBuilder.NAME, MinAggregationBuilder::new, new MinParser()) + registerAggregation(new AggregationSpec(MinAggregationBuilder.NAME, MinAggregationBuilder::new, MinAggregationBuilder::parse) .addResultReader(InternalMin::new)); - registerAggregation(new AggregationSpec(MaxAggregationBuilder.NAME, MaxAggregationBuilder::new, new MaxParser()) + registerAggregation(new AggregationSpec(MaxAggregationBuilder.NAME, MaxAggregationBuilder::new, MaxAggregationBuilder::parse) .addResultReader(InternalMax::new)); - registerAggregation(new AggregationSpec(StatsAggregationBuilder.NAME, StatsAggregationBuilder::new, new StatsParser()) + registerAggregation(new AggregationSpec(StatsAggregationBuilder.NAME, StatsAggregationBuilder::new, StatsAggregationBuilder::parse) .addResultReader(InternalStats::new)); registerAggregation(new AggregationSpec(ExtendedStatsAggregationBuilder.NAME, ExtendedStatsAggregationBuilder::new, - new ExtendedStatsParser()).addResultReader(InternalExtendedStats::new)); + ExtendedStatsAggregationBuilder::parse).addResultReader(InternalExtendedStats::new)); registerAggregation(new AggregationSpec(ValueCountAggregationBuilder.NAME, ValueCountAggregationBuilder::new, - new ValueCountParser()).addResultReader(InternalValueCount::new)); + ValueCountAggregationBuilder::parse).addResultReader(InternalValueCount::new)); registerAggregation(new AggregationSpec(PercentilesAggregationBuilder.NAME, PercentilesAggregationBuilder::new, - new PercentilesParser()) + PercentilesAggregationBuilder::parse) .addResultReader(InternalTDigestPercentiles.NAME, InternalTDigestPercentiles::new) .addResultReader(InternalHDRPercentiles.NAME, InternalHDRPercentiles::new)); registerAggregation(new AggregationSpec(PercentileRanksAggregationBuilder.NAME, PercentileRanksAggregationBuilder::new, - new PercentileRanksParser()) + PercentileRanksAggregationBuilder::parse) .addResultReader(InternalTDigestPercentileRanks.NAME, InternalTDigestPercentileRanks::new) .addResultReader(InternalHDRPercentileRanks.NAME, InternalHDRPercentileRanks::new)); registerAggregation(new AggregationSpec(CardinalityAggregationBuilder.NAME, CardinalityAggregationBuilder::new, - new CardinalityParser()).addResultReader(InternalCardinality::new)); + CardinalityAggregationBuilder::parse).addResultReader(InternalCardinality::new)); registerAggregation(new AggregationSpec(GlobalAggregationBuilder.NAME, GlobalAggregationBuilder::new, GlobalAggregationBuilder::parse).addResultReader(InternalGlobal::new)); - registerAggregation(new AggregationSpec(MissingAggregationBuilder.NAME, MissingAggregationBuilder::new, new MissingParser()) - .addResultReader(InternalMissing::new)); + registerAggregation(new AggregationSpec(MissingAggregationBuilder.NAME, MissingAggregationBuilder::new, + MissingAggregationBuilder::parse).addResultReader(InternalMissing::new)); registerAggregation(new AggregationSpec(FilterAggregationBuilder.NAME, FilterAggregationBuilder::new, FilterAggregationBuilder::parse).addResultReader(InternalFilter::new)); registerAggregation(new AggregationSpec(FiltersAggregationBuilder.NAME, FiltersAggregationBuilder::new, @@ -409,42 +386,43 @@ public class SearchModule { .addResultReader(InternalSampler.NAME, InternalSampler::new) .addResultReader(UnmappedSampler.NAME, UnmappedSampler::new)); registerAggregation(new AggregationSpec(DiversifiedAggregationBuilder.NAME, DiversifiedAggregationBuilder::new, - new DiversifiedSamplerParser()) + DiversifiedAggregationBuilder::parse) /* Reuses result readers from SamplerAggregator*/); - registerAggregation(new AggregationSpec(TermsAggregationBuilder.NAME, TermsAggregationBuilder::new, new TermsParser()) + registerAggregation(new AggregationSpec(TermsAggregationBuilder.NAME, TermsAggregationBuilder::new, + TermsAggregationBuilder::parse) .addResultReader(StringTerms.NAME, StringTerms::new) .addResultReader(UnmappedTerms.NAME, UnmappedTerms::new) .addResultReader(LongTerms.NAME, LongTerms::new) .addResultReader(DoubleTerms.NAME, DoubleTerms::new)); registerAggregation(new AggregationSpec(SignificantTermsAggregationBuilder.NAME, SignificantTermsAggregationBuilder::new, - new SignificantTermsParser(significanceHeuristicParserRegistry, queryParserRegistry)) + SignificantTermsAggregationBuilder.getParser(significanceHeuristicParserRegistry)) .addResultReader(SignificantStringTerms.NAME, SignificantStringTerms::new) .addResultReader(SignificantLongTerms.NAME, SignificantLongTerms::new) .addResultReader(UnmappedSignificantTerms.NAME, UnmappedSignificantTerms::new)); registerAggregation(new AggregationSpec(RangeAggregationBuilder.NAME, RangeAggregationBuilder::new, - new RangeParser()).addResultReader(InternalRange::new)); - registerAggregation(new AggregationSpec(DateRangeAggregationBuilder.NAME, DateRangeAggregationBuilder::new, new DateRangeParser()) - .addResultReader(InternalDateRange::new)); - registerAggregation(new AggregationSpec(IpRangeAggregationBuilder.NAME, IpRangeAggregationBuilder::new, new IpRangeParser()) - .addResultReader(InternalBinaryRange::new)); - registerAggregation(new AggregationSpec(HistogramAggregationBuilder.NAME, HistogramAggregationBuilder::new, new HistogramParser()) - .addResultReader(InternalHistogram::new)); + RangeAggregationBuilder::parse).addResultReader(InternalRange::new)); + registerAggregation(new AggregationSpec(DateRangeAggregationBuilder.NAME, DateRangeAggregationBuilder::new, + DateRangeAggregationBuilder::parse).addResultReader(InternalDateRange::new)); + registerAggregation(new AggregationSpec(IpRangeAggregationBuilder.NAME, IpRangeAggregationBuilder::new, + IpRangeAggregationBuilder::parse).addResultReader(InternalBinaryRange::new)); + registerAggregation(new AggregationSpec(HistogramAggregationBuilder.NAME, HistogramAggregationBuilder::new, + HistogramAggregationBuilder::parse).addResultReader(InternalHistogram::new)); registerAggregation(new AggregationSpec(DateHistogramAggregationBuilder.NAME, DateHistogramAggregationBuilder::new, - new DateHistogramParser()).addResultReader(InternalDateHistogram::new)); + DateHistogramAggregationBuilder::parse).addResultReader(InternalDateHistogram::new)); registerAggregation(new AggregationSpec(GeoDistanceAggregationBuilder.NAME, GeoDistanceAggregationBuilder::new, - new GeoDistanceParser()).addResultReader(InternalGeoDistance::new)); - registerAggregation(new AggregationSpec(GeoGridAggregationBuilder.NAME, GeoGridAggregationBuilder::new, new GeoHashGridParser()) - .addResultReader(InternalGeoHashGrid::new)); + GeoDistanceAggregationBuilder::parse).addResultReader(InternalGeoDistance::new)); + registerAggregation(new AggregationSpec(GeoGridAggregationBuilder.NAME, GeoGridAggregationBuilder::new, + GeoGridAggregationBuilder::parse).addResultReader(InternalGeoHashGrid::new)); registerAggregation(new AggregationSpec(NestedAggregationBuilder.NAME, NestedAggregationBuilder::new, NestedAggregationBuilder::parse).addResultReader(InternalNested::new)); registerAggregation(new AggregationSpec(ReverseNestedAggregationBuilder.NAME, ReverseNestedAggregationBuilder::new, ReverseNestedAggregationBuilder::parse).addResultReader(InternalReverseNested::new)); registerAggregation(new AggregationSpec(TopHitsAggregationBuilder.NAME, TopHitsAggregationBuilder::new, TopHitsAggregationBuilder::parse).addResultReader(InternalTopHits::new)); - registerAggregation(new AggregationSpec(GeoBoundsAggregationBuilder.NAME, GeoBoundsAggregationBuilder::new, new GeoBoundsParser()) - .addResultReader(InternalGeoBounds::new)); + registerAggregation(new AggregationSpec(GeoBoundsAggregationBuilder.NAME, GeoBoundsAggregationBuilder::new, + GeoBoundsAggregationBuilder::parse).addResultReader(InternalGeoBounds::new)); registerAggregation(new AggregationSpec(GeoCentroidAggregationBuilder.NAME, GeoCentroidAggregationBuilder::new, - new GeoCentroidParser()).addResultReader(InternalGeoCentroid::new)); + GeoCentroidAggregationBuilder::parse).addResultReader(InternalGeoCentroid::new)); registerAggregation(new AggregationSpec(ScriptedMetricAggregationBuilder.NAME, ScriptedMetricAggregationBuilder::new, ScriptedMetricAggregationBuilder::parse).addResultReader(InternalScriptedMetric::new)); registerAggregation(new AggregationSpec(ChildrenAggregationBuilder.NAME, ChildrenAggregationBuilder::new, diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoGridAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoGridAggregationBuilder.java index 24d5999e698..e85e1a9c92a 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoGridAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoGridAggregationBuilder.java @@ -26,11 +26,13 @@ import org.elasticsearch.common.geo.GeoHashUtils; import org.elasticsearch.common.geo.GeoPoint; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.index.fielddata.MultiGeoPointValues; import org.elasticsearch.index.fielddata.SortedBinaryDocValues; import org.elasticsearch.index.fielddata.SortedNumericDoubleValues; import org.elasticsearch.index.fielddata.SortingNumericDocValues; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; @@ -41,6 +43,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -49,9 +52,24 @@ import java.util.Objects; public class GeoGridAggregationBuilder extends ValuesSourceAggregationBuilder { public static final String NAME = "geohash_grid"; private static final Type TYPE = new Type(NAME); + public static final int DEFAULT_PRECISION = 5; + public static final int DEFAULT_MAX_NUM_CELLS = 10000; - private int precision = GeoHashGridParser.DEFAULT_PRECISION; - private int requiredSize = GeoHashGridParser.DEFAULT_MAX_NUM_CELLS; + private static final ObjectParser PARSER; + static { + PARSER = new ObjectParser<>(GeoGridAggregationBuilder.NAME); + ValuesSourceParserHelper.declareGeoFields(PARSER, false, false); + PARSER.declareInt(GeoGridAggregationBuilder::precision, GeoHashGridParams.FIELD_PRECISION); + PARSER.declareInt(GeoGridAggregationBuilder::size, GeoHashGridParams.FIELD_SIZE); + PARSER.declareInt(GeoGridAggregationBuilder::shardSize, GeoHashGridParams.FIELD_SHARD_SIZE); + } + + public static GeoGridAggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + return PARSER.parse(context.parser(), new GeoGridAggregationBuilder(aggregationName), context); + } + + private int precision = DEFAULT_PRECISION; + private int requiredSize = DEFAULT_MAX_NUM_CELLS; private int shardSize = -1; public GeoGridAggregationBuilder(String name) { diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridParser.java deleted file mode 100644 index e669ee8b9d9..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridParser.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.elasticsearch.search.aggregations.bucket.geogrid; - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.common.xcontent.XContentParser.Token; -import org.elasticsearch.index.query.GeoBoundingBoxQueryBuilder; -import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.GeoPointValuesSourceParser; -import org.elasticsearch.search.aggregations.support.XContentParseContext; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; - -import java.io.IOException; -import java.util.Map; - -/** - * Aggregates Geo information into cells determined by geohashes of a given precision. - * WARNING - for high-precision geohashes it may prove necessary to use a {@link GeoBoundingBoxQueryBuilder} - * aggregation to focus in on a smaller area to avoid generating too many buckets and using too much RAM - */ -public class GeoHashGridParser extends GeoPointValuesSourceParser { - - public static final int DEFAULT_PRECISION = 5; - public static final int DEFAULT_MAX_NUM_CELLS = 10000; - - public GeoHashGridParser() { - super(false, false); - } - - @Override - protected GeoGridAggregationBuilder createFactory( - String aggregationName, ValuesSourceType valuesSourceType, - ValueType targetValueType, Map otherOptions) { - GeoGridAggregationBuilder factory = new GeoGridAggregationBuilder(aggregationName); - Integer precision = (Integer) otherOptions.get(GeoHashGridParams.FIELD_PRECISION); - if (precision != null) { - factory.precision(precision); - } - Integer size = (Integer) otherOptions.get(GeoHashGridParams.FIELD_SIZE); - if (size != null) { - factory.size(size); - } - Integer shardSize = (Integer) otherOptions.get(GeoHashGridParams.FIELD_SHARD_SIZE); - if (shardSize != null) { - factory.shardSize(shardSize); - } - return factory; - } - - @Override - protected boolean token(String aggregationName, String currentFieldName, Token token, - XContentParseContext context, Map otherOptions) throws IOException { - XContentParser parser = context.getParser(); - if (token == XContentParser.Token.VALUE_NUMBER || token == XContentParser.Token.VALUE_STRING) { - if (context.matchField(currentFieldName, GeoHashGridParams.FIELD_PRECISION)) { - otherOptions.put(GeoHashGridParams.FIELD_PRECISION, parser.intValue()); - return true; - } else if (context.matchField(currentFieldName, GeoHashGridParams.FIELD_SIZE)) { - otherOptions.put(GeoHashGridParams.FIELD_SIZE, parser.intValue()); - return true; - } else if (context.matchField(currentFieldName, GeoHashGridParams.FIELD_SHARD_SIZE)) { - otherOptions.put(GeoHashGridParams.FIELD_SHARD_SIZE, parser.intValue()); - return true; - } - } - return false; - } -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregationBuilder.java index b20cf1b346a..3fe64220c84 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregationBuilder.java @@ -19,12 +19,17 @@ package org.elasticsearch.search.aggregations.bucket.histogram; +import org.elasticsearch.common.ParsingException; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.rounding.DateTimeUnit; import org.elasticsearch.common.rounding.Rounding; import org.elasticsearch.common.unit.TimeValue; +import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.common.xcontent.XContentParser.Token; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.support.AggregationContext; @@ -34,6 +39,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -73,6 +79,48 @@ public class DateHistogramAggregationBuilder DATE_FIELD_UNITS = unmodifiableMap(dateFieldUnits); } + private static final ObjectParser PARSER; + static { + PARSER = new ObjectParser<>(DateHistogramAggregationBuilder.NAME); + ValuesSourceParserHelper.declareNumericFields(PARSER, true, true, true); + + PARSER.declareField((histogram, interval) -> { + if (interval instanceof Long) { + histogram.interval((long) interval); + } else { + histogram.dateHistogramInterval((DateHistogramInterval) interval); + } + }, p -> { + if (p.currentToken() == XContentParser.Token.VALUE_NUMBER) { + return p.longValue(); + } else { + return new DateHistogramInterval(p.text()); + } + }, Histogram.INTERVAL_FIELD, ObjectParser.ValueType.LONG); + + PARSER.declareField(DateHistogramAggregationBuilder::offset, p -> { + if (p.currentToken() == XContentParser.Token.VALUE_NUMBER) { + return p.longValue(); + } else { + return DateHistogramAggregationBuilder.parseStringOffset(p.text()); + } + }, Histogram.OFFSET_FIELD, ObjectParser.ValueType.LONG); + + PARSER.declareBoolean(DateHistogramAggregationBuilder::keyed, Histogram.KEYED_FIELD); + + PARSER.declareLong(DateHistogramAggregationBuilder::minDocCount, Histogram.MIN_DOC_COUNT_FIELD); + + PARSER.declareField(DateHistogramAggregationBuilder::extendedBounds, ExtendedBounds.PARSER::apply, + ExtendedBounds.EXTENDED_BOUNDS_FIELD, ObjectParser.ValueType.OBJECT); + + PARSER.declareField(DateHistogramAggregationBuilder::order, DateHistogramAggregationBuilder::parseOrder, + Histogram.ORDER_FIELD, ObjectParser.ValueType.OBJECT); + } + + public static DateHistogramAggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + return PARSER.parse(context.parser(), new DateHistogramAggregationBuilder(aggregationName), context); + } + private long interval; private DateHistogramInterval dateHistogramInterval; private long offset = 0; @@ -322,4 +370,35 @@ public class DateHistogramAggregationBuilder && Objects.equals(offset, other.offset) && Objects.equals(extendedBounds, other.extendedBounds); } + + // similar to the parsing oh histogram orders, but also accepts _time as an alias for _key + private static InternalOrder parseOrder(XContentParser parser, QueryParseContext context) throws IOException { + InternalOrder order = null; + Token token; + String currentFieldName = null; + while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { + if (token == XContentParser.Token.FIELD_NAME) { + currentFieldName = parser.currentName(); + } else if (token == XContentParser.Token.VALUE_STRING) { + String dir = parser.text(); + boolean asc = "asc".equals(dir); + if (!asc && !"desc".equals(dir)) { + throw new ParsingException(parser.getTokenLocation(), "Unknown order direction: [" + dir + + "]. Should be either [asc] or [desc]"); + } + order = resolveOrder(currentFieldName, asc); + } + } + return order; + } + + static InternalOrder resolveOrder(String key, boolean asc) { + if ("_key".equals(key) || "_time".equals(key)) { + return (InternalOrder) (asc ? InternalOrder.KEY_ASC : InternalOrder.KEY_DESC); + } + if ("_count".equals(key)) { + return (InternalOrder) (asc ? InternalOrder.COUNT_ASC : InternalOrder.COUNT_DESC); + } + return new InternalOrder.Aggregation(key, asc); + } } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramParser.java deleted file mode 100644 index 952a0e2568f..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramParser.java +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.elasticsearch.search.aggregations.bucket.histogram; - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.ParsingException; -import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.common.xcontent.XContentParser.Token; -import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.NumericValuesSourceParser; -import org.elasticsearch.search.aggregations.support.XContentParseContext; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; - -import java.io.IOException; -import java.util.Map; - -/** - * A parser for date histograms. This translates json into a - * {@link DateHistogramAggregationBuilder} instance. - */ -public class DateHistogramParser extends NumericValuesSourceParser { - - public DateHistogramParser() { - super(true, true, true); - } - - @Override - protected DateHistogramAggregationBuilder createFactory(String aggregationName, ValuesSourceType valuesSourceType, - ValueType targetValueType, Map otherOptions) { - DateHistogramAggregationBuilder factory = new DateHistogramAggregationBuilder(aggregationName); - Object interval = otherOptions.get(Histogram.INTERVAL_FIELD); - if (interval == null) { - throw new ParsingException(null, "Missing required field [interval] for histogram aggregation [" + aggregationName + "]"); - } else if (interval instanceof Long) { - factory.interval((Long) interval); - } else if (interval instanceof DateHistogramInterval) { - factory.dateHistogramInterval((DateHistogramInterval) interval); - } else { - throw new IllegalStateException("Unexpected interval class: " + interval.getClass()); - } - Long offset = (Long) otherOptions.get(Histogram.OFFSET_FIELD); - if (offset != null) { - factory.offset(offset); - } - - ExtendedBounds extendedBounds = (ExtendedBounds) otherOptions.get(ExtendedBounds.EXTENDED_BOUNDS_FIELD); - if (extendedBounds != null) { - factory.extendedBounds(extendedBounds); - } - Boolean keyed = (Boolean) otherOptions.get(Histogram.KEYED_FIELD); - if (keyed != null) { - factory.keyed(keyed); - } - Long minDocCount = (Long) otherOptions.get(Histogram.MIN_DOC_COUNT_FIELD); - if (minDocCount != null) { - factory.minDocCount(minDocCount); - } - InternalOrder order = (InternalOrder) otherOptions.get(Histogram.ORDER_FIELD); - if (order != null) { - factory.order(order); - } - return factory; - } - - @Override - protected boolean token(String aggregationName, String currentFieldName, Token token, - XContentParseContext context, Map otherOptions) throws IOException { - XContentParser parser = context.getParser(); - if (token.isValue()) { - if (context.matchField(currentFieldName, Histogram.INTERVAL_FIELD)) { - if (token == XContentParser.Token.VALUE_STRING) { - otherOptions.put(Histogram.INTERVAL_FIELD, new DateHistogramInterval(parser.text())); - return true; - } else { - otherOptions.put(Histogram.INTERVAL_FIELD, parser.longValue()); - return true; - } - } else if (context.matchField(currentFieldName, Histogram.MIN_DOC_COUNT_FIELD)) { - otherOptions.put(Histogram.MIN_DOC_COUNT_FIELD, parser.longValue()); - return true; - } else if (context.matchField(currentFieldName, Histogram.KEYED_FIELD)) { - otherOptions.put(Histogram.KEYED_FIELD, parser.booleanValue()); - return true; - } else if (context.matchField(currentFieldName, Histogram.OFFSET_FIELD)) { - if (token == XContentParser.Token.VALUE_STRING) { - otherOptions.put(Histogram.OFFSET_FIELD, - DateHistogramAggregationBuilder.parseStringOffset(parser.text())); - return true; - } else { - otherOptions.put(Histogram.OFFSET_FIELD, parser.longValue()); - return true; - } - } else { - return false; - } - } else if (token == XContentParser.Token.START_OBJECT) { - if (context.matchField(currentFieldName, Histogram.ORDER_FIELD)) { - InternalOrder order = null; - while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { - if (token == XContentParser.Token.FIELD_NAME) { - currentFieldName = parser.currentName(); - } else if (token == XContentParser.Token.VALUE_STRING) { - String dir = parser.text(); - boolean asc = "asc".equals(dir); - if (!asc && !"desc".equals(dir)) { - throw new ParsingException(parser.getTokenLocation(), "Unknown order direction in aggregation [" - + aggregationName + "]: [" + dir - + "]. Should be either [asc] or [desc]"); - } - order = resolveOrder(currentFieldName, asc); - } - } - otherOptions.put(Histogram.ORDER_FIELD, order); - return true; - } else if (context.matchField(currentFieldName, ExtendedBounds.EXTENDED_BOUNDS_FIELD)) { - try { - otherOptions.put(ExtendedBounds.EXTENDED_BOUNDS_FIELD, - ExtendedBounds.PARSER.apply(parser, context::getParseFieldMatcher)); - } catch (Exception e) { - throw new ParsingException(parser.getTokenLocation(), "Error parsing [{}]", e, aggregationName); - } - return true; - } else { - return false; - } - } else { - return false; - } - } - - static InternalOrder resolveOrder(String key, boolean asc) { - if ("_key".equals(key) || "_time".equals(key)) { - return (InternalOrder) (asc ? InternalOrder.KEY_ASC : InternalOrder.KEY_DESC); - } - if ("_count".equals(key)) { - return (InternalOrder) (asc ? InternalOrder.COUNT_ASC : InternalOrder.COUNT_DESC); - } - return new InternalOrder.Aggregation(key, asc); - } -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregationBuilder.java index 03ff1ee935a..06b82daf94b 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregationBuilder.java @@ -19,9 +19,16 @@ package org.elasticsearch.search.aggregations.bucket.histogram; +import org.elasticsearch.common.ParseField; +import org.elasticsearch.common.ParseFieldMatcherSupplier; +import org.elasticsearch.common.ParsingException; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.common.xcontent.XContentParser.Token; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.support.AggregationContext; @@ -31,6 +38,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -43,6 +51,39 @@ public class HistogramAggregationBuilder extends ValuesSourceAggregationBuilder { public static final String NAME = InternalHistogram.TYPE.name(); + private static final ObjectParser EXTENDED_BOUNDS_PARSER = new ObjectParser<>( + Histogram.EXTENDED_BOUNDS_FIELD.getPreferredName(), + () -> new double[]{ Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY }); + static { + EXTENDED_BOUNDS_PARSER.declareDouble((bounds, d) -> bounds[0] = d, new ParseField("min")); + EXTENDED_BOUNDS_PARSER.declareDouble((bounds, d) -> bounds[1] = d, new ParseField("max")); + } + + private static final ObjectParser PARSER; + static { + PARSER = new ObjectParser<>(HistogramAggregationBuilder.NAME); + ValuesSourceParserHelper.declareNumericFields(PARSER, true, true, false); + + PARSER.declareDouble(HistogramAggregationBuilder::interval, Histogram.INTERVAL_FIELD); + + PARSER.declareDouble(HistogramAggregationBuilder::offset, Histogram.OFFSET_FIELD); + + PARSER.declareBoolean(HistogramAggregationBuilder::keyed, Histogram.KEYED_FIELD); + + PARSER.declareLong(HistogramAggregationBuilder::minDocCount, Histogram.MIN_DOC_COUNT_FIELD); + + PARSER.declareField((histogram, extendedBounds) -> { + histogram.extendedBounds(extendedBounds[0], extendedBounds[1]); + }, EXTENDED_BOUNDS_PARSER::apply, ExtendedBounds.EXTENDED_BOUNDS_FIELD, ObjectParser.ValueType.OBJECT); + + PARSER.declareField(HistogramAggregationBuilder::order, HistogramAggregationBuilder::parseOrder, + Histogram.ORDER_FIELD, ObjectParser.ValueType.OBJECT); + } + + public static HistogramAggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + return PARSER.parse(context.parser(), new HistogramAggregationBuilder(aggregationName), context); + } + private double interval; private double offset = 0; private double minBound = Double.POSITIVE_INFINITY; @@ -246,4 +287,34 @@ public class HistogramAggregationBuilder && Objects.equals(minBound, other.minBound) && Objects.equals(maxBound, other.maxBound); } + + private static InternalOrder parseOrder(XContentParser parser, QueryParseContext context) throws IOException { + InternalOrder order = null; + Token token; + String currentFieldName = null; + while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { + if (token == XContentParser.Token.FIELD_NAME) { + currentFieldName = parser.currentName(); + } else if (token == XContentParser.Token.VALUE_STRING) { + String dir = parser.text(); + boolean asc = "asc".equals(dir); + if (!asc && !"desc".equals(dir)) { + throw new ParsingException(parser.getTokenLocation(), "Unknown order direction: [" + dir + + "]. Should be either [asc] or [desc]"); + } + order = resolveOrder(currentFieldName, asc); + } + } + return order; + } + + static InternalOrder resolveOrder(String key, boolean asc) { + if ("_key".equals(key)) { + return (InternalOrder) (asc ? InternalOrder.KEY_ASC : InternalOrder.KEY_DESC); + } + if ("_count".equals(key)) { + return (InternalOrder) (asc ? InternalOrder.COUNT_ASC : InternalOrder.COUNT_DESC); + } + return new InternalOrder.Aggregation(key, asc); + } } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramParser.java deleted file mode 100644 index f27677a1a66..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramParser.java +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.elasticsearch.search.aggregations.bucket.histogram; - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.ParseFieldMatcherSupplier; -import org.elasticsearch.common.ParsingException; -import org.elasticsearch.common.xcontent.ObjectParser; -import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.common.xcontent.XContentParser.Token; -import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.NumericValuesSourceParser; -import org.elasticsearch.search.aggregations.support.XContentParseContext; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; - -import java.io.IOException; -import java.util.Map; - -/** - * A parser for date histograms. This translates json into an - * {@link HistogramAggregationBuilder} instance. - */ -public class HistogramParser extends NumericValuesSourceParser { - - private static final ObjectParser EXTENDED_BOUNDS_PARSER = new ObjectParser<>( - Histogram.EXTENDED_BOUNDS_FIELD.getPreferredName(), - () -> new double[]{ Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY }); - static { - EXTENDED_BOUNDS_PARSER.declareDouble((bounds, d) -> bounds[0] = d, new ParseField("min")); - EXTENDED_BOUNDS_PARSER.declareDouble((bounds, d) -> bounds[1] = d, new ParseField("max")); - } - - public HistogramParser() { - super(true, true, false); - } - - @Override - protected HistogramAggregationBuilder createFactory(String aggregationName, ValuesSourceType valuesSourceType, - ValueType targetValueType, Map otherOptions) { - HistogramAggregationBuilder factory = new HistogramAggregationBuilder(aggregationName); - Double interval = (Double) otherOptions.get(Histogram.INTERVAL_FIELD); - if (interval == null) { - throw new ParsingException(null, "Missing required field [interval] for histogram aggregation [" + aggregationName + "]"); - } else { - factory.interval(interval); - } - Double offset = (Double) otherOptions.get(Histogram.OFFSET_FIELD); - if (offset != null) { - factory.offset(offset); - } - - double[] extendedBounds = (double[]) otherOptions.get(Histogram.EXTENDED_BOUNDS_FIELD); - if (extendedBounds != null) { - factory.extendedBounds(extendedBounds[0], extendedBounds[1]); - } - Boolean keyed = (Boolean) otherOptions.get(Histogram.KEYED_FIELD); - if (keyed != null) { - factory.keyed(keyed); - } - Long minDocCount = (Long) otherOptions.get(Histogram.MIN_DOC_COUNT_FIELD); - if (minDocCount != null) { - factory.minDocCount(minDocCount); - } - InternalOrder order = (InternalOrder) otherOptions.get(Histogram.ORDER_FIELD); - if (order != null) { - factory.order(order); - } - return factory; - } - - @Override - protected boolean token(String aggregationName, String currentFieldName, Token token, - XContentParseContext context, Map otherOptions) throws IOException { - XContentParser parser = context.getParser(); - if (token.isValue()) { - if (context.matchField(currentFieldName, Histogram.INTERVAL_FIELD)) { - otherOptions.put(Histogram.INTERVAL_FIELD, parser.doubleValue()); - return true; - } else if (context.matchField(currentFieldName, Histogram.MIN_DOC_COUNT_FIELD)) { - otherOptions.put(Histogram.MIN_DOC_COUNT_FIELD, parser.longValue()); - return true; - } else if (context.matchField(currentFieldName, Histogram.KEYED_FIELD)) { - otherOptions.put(Histogram.KEYED_FIELD, parser.booleanValue()); - return true; - } else if (context.matchField(currentFieldName, Histogram.OFFSET_FIELD)) { - otherOptions.put(Histogram.OFFSET_FIELD, parser.doubleValue()); - return true; - } else { - return false; - } - } else if (token == XContentParser.Token.START_OBJECT) { - if (context.matchField(currentFieldName, Histogram.ORDER_FIELD)) { - InternalOrder order = null; - while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { - if (token == XContentParser.Token.FIELD_NAME) { - currentFieldName = parser.currentName(); - } else if (token == XContentParser.Token.VALUE_STRING) { - String dir = parser.text(); - boolean asc = "asc".equals(dir); - if (!asc && !"desc".equals(dir)) { - throw new ParsingException(parser.getTokenLocation(), "Unknown order direction in aggregation [" - + aggregationName + "]: [" + dir - + "]. Should be either [asc] or [desc]"); - } - order = resolveOrder(currentFieldName, asc); - } - } - otherOptions.put(Histogram.ORDER_FIELD, order); - return true; - } else if (context.matchField(currentFieldName, Histogram.EXTENDED_BOUNDS_FIELD)) { - double[] bounds = EXTENDED_BOUNDS_PARSER.apply(parser, context::getParseFieldMatcher); - otherOptions.put(Histogram.EXTENDED_BOUNDS_FIELD, bounds); - return true; - } else { - return false; - } - } else { - return false; - } - } - - static InternalOrder resolveOrder(String key, boolean asc) { - if ("_key".equals(key)) { - return (InternalOrder) (asc ? InternalOrder.KEY_ASC : InternalOrder.KEY_DESC); - } - if ("_count".equals(key)) { - return (InternalOrder) (asc ? InternalOrder.COUNT_ASC : InternalOrder.COUNT_DESC); - } - return new InternalOrder.Aggregation(key, asc); - } -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregationBuilder.java index 09916acfdf8..36232c00f03 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregationBuilder.java @@ -21,7 +21,9 @@ package org.elasticsearch.search.aggregations.bucket.missing; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; @@ -31,6 +33,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -39,6 +42,16 @@ public class MissingAggregationBuilder extends ValuesSourceAggregationBuilder PARSER; + static { + PARSER = new ObjectParser<>(MissingAggregationBuilder.NAME); + ValuesSourceParserHelper.declareAnyFields(PARSER, true, true); + } + + public static MissingAggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + return PARSER.parse(context.parser(), new MissingAggregationBuilder(aggregationName, null), context); + } + public MissingAggregationBuilder(String name, ValueType targetValueType) { super(name, TYPE, ValuesSourceType.ANY, targetValueType); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingParser.java deleted file mode 100644 index 5d6844ebbd2..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingParser.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.elasticsearch.search.aggregations.bucket.missing; - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.AnyValuesSourceParser; -import org.elasticsearch.search.aggregations.support.XContentParseContext; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; - -import java.io.IOException; -import java.util.Map; - -public class MissingParser extends AnyValuesSourceParser { - - public MissingParser() { - super(true, true); - } - - @Override - protected boolean token(String aggregationName, String currentFieldName, XContentParser.Token token, - XContentParseContext context, Map otherOptions) throws IOException { - return false; - } - - @Override - protected MissingAggregationBuilder createFactory(String aggregationName, ValuesSourceType valuesSourceType, - ValueType targetValueType, Map otherOptions) { - return new MissingAggregationBuilder(aggregationName, targetValueType); - } -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeAggregationBuilder.java index 73a4d86819a..95018cf465b 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeAggregationBuilder.java @@ -20,13 +20,18 @@ package org.elasticsearch.search.aggregations.bucket.range; import org.elasticsearch.common.io.stream.StreamInput; +import org.elasticsearch.common.xcontent.ObjectParser; +import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; +import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator.Range; import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import java.io.IOException; @@ -34,6 +39,27 @@ public class RangeAggregationBuilder extends AbstractRangeBuilder PARSER; + static { + PARSER = new ObjectParser<>(RangeAggregationBuilder.NAME); + ValuesSourceParserHelper.declareNumericFields(PARSER, true, true, false); + PARSER.declareBoolean(RangeAggregationBuilder::keyed, RangeAggregator.KEYED_FIELD); + + PARSER.declareObjectArray((agg, ranges) -> { + for (Range range : ranges) { + agg.addRange(range); + } + }, RangeAggregationBuilder::parseRange, RangeAggregator.RANGES_FIELD); + } + + public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + return PARSER.parse(context.parser(), new RangeAggregationBuilder(aggregationName), context); + } + + private static Range parseRange(XContentParser parser, QueryParseContext context) throws IOException { + return Range.fromXContent(parser, context.getParseFieldMatcher()); + } + public RangeAggregationBuilder(String name) { super(name, InternalRange.FACTORY); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeParser.java deleted file mode 100644 index 51c732e9523..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeParser.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.elasticsearch.search.aggregations.bucket.range; - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.ParseFieldMatcher; -import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.common.xcontent.XContentParser.Token; -import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator.Range; -import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.NumericValuesSourceParser; -import org.elasticsearch.search.aggregations.support.XContentParseContext; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -public class RangeParser extends NumericValuesSourceParser { - - public RangeParser() { - this(true, true, false); - } - - /** - * Used by subclasses that parse slightly different kinds of ranges. - */ - protected RangeParser(boolean scriptable, boolean formattable, boolean timezoneAware) { - super(scriptable, formattable, timezoneAware); - } - - @Override - protected AbstractRangeBuilder createFactory(String aggregationName, ValuesSourceType valuesSourceType, - ValueType targetValueType, Map otherOptions) { - RangeAggregationBuilder factory = new RangeAggregationBuilder(aggregationName); - @SuppressWarnings("unchecked") - List ranges = (List) otherOptions.get(RangeAggregator.RANGES_FIELD); - for (Range range : ranges) { - factory.addRange(range); - } - Boolean keyed = (Boolean) otherOptions.get(RangeAggregator.KEYED_FIELD); - if (keyed != null) { - factory.keyed(keyed); - } - return factory; - } - - @Override - protected boolean token(String aggregationName, String currentFieldName, Token token, - XContentParseContext context, Map otherOptions) throws IOException { - XContentParser parser = context.getParser(); - if (token == XContentParser.Token.START_ARRAY) { - if (context.matchField(currentFieldName, RangeAggregator.RANGES_FIELD)) { - List ranges = new ArrayList<>(); - while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { - Range range = parseRange(parser, context.getParseFieldMatcher()); - ranges.add(range); - } - otherOptions.put(RangeAggregator.RANGES_FIELD, ranges); - return true; - } - } else if (token == XContentParser.Token.VALUE_BOOLEAN) { - if (context.matchField(currentFieldName, RangeAggregator.KEYED_FIELD)) { - boolean keyed = parser.booleanValue(); - otherOptions.put(RangeAggregator.KEYED_FIELD, keyed); - return true; - } - } - return false; - } - - protected Range parseRange(XContentParser parser, ParseFieldMatcher parseFieldMatcher) throws IOException { - return Range.fromXContent(parser, parseFieldMatcher); - } -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRangeAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRangeAggregationBuilder.java index c8a8e16640b..12e07f7187d 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRangeAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRangeAggregationBuilder.java @@ -20,7 +20,11 @@ package org.elasticsearch.search.aggregations.bucket.range.date; import org.elasticsearch.common.io.stream.StreamInput; +import org.elasticsearch.common.xcontent.ObjectParser; +import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; +import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.bucket.range.AbstractRangeBuilder; @@ -29,6 +33,7 @@ import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator.Range; import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.joda.time.DateTime; import java.io.IOException; @@ -37,6 +42,27 @@ public class DateRangeAggregationBuilder extends AbstractRangeBuilder PARSER; + static { + PARSER = new ObjectParser<>(DateRangeAggregationBuilder.NAME); + ValuesSourceParserHelper.declareNumericFields(PARSER, true, true, true); + PARSER.declareBoolean(DateRangeAggregationBuilder::keyed, RangeAggregator.KEYED_FIELD); + + PARSER.declareObjectArray((agg, ranges) -> { + for (Range range : ranges) { + agg.addRange(range); + } + }, DateRangeAggregationBuilder::parseRange, RangeAggregator.RANGES_FIELD); + } + + public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + return PARSER.parse(context.parser(), new DateRangeAggregationBuilder(aggregationName), context); + } + + private static Range parseRange(XContentParser parser, QueryParseContext context) throws IOException { + return Range.fromXContent(parser, context.getParseFieldMatcher()); + } + public DateRangeAggregationBuilder(String name) { super(name, InternalDateRange.FACTORY); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRangeParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRangeParser.java deleted file mode 100644 index 9277a2d6a3d..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRangeParser.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.elasticsearch.search.aggregations.bucket.range.date; - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator; -import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator.Range; -import org.elasticsearch.search.aggregations.bucket.range.RangeParser; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; - -import java.util.List; -import java.util.Map; - -public class DateRangeParser extends RangeParser { - - public DateRangeParser() { - super(true, true, true); - } - - @Override - protected DateRangeAggregationBuilder createFactory(String aggregationName, ValuesSourceType valuesSourceType, - ValueType targetValueType, Map otherOptions) { - DateRangeAggregationBuilder factory = new DateRangeAggregationBuilder(aggregationName); - @SuppressWarnings("unchecked") - List ranges = (List) otherOptions.get(RangeAggregator.RANGES_FIELD); - for (Range range : ranges) { - factory.addRange(range); - } - Boolean keyed = (Boolean) otherOptions.get(RangeAggregator.KEYED_FIELD); - if (keyed != null) { - factory.keyed(keyed); - } - return factory; - } -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceAggregationBuilder.java index 583bc83feb4..a51b6ce046b 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceAggregationBuilder.java @@ -19,23 +19,31 @@ package org.elasticsearch.search.aggregations.bucket.range.geodistance; +import org.elasticsearch.common.ParseField; +import org.elasticsearch.common.ParseFieldMatcher; +import org.elasticsearch.common.ParsingException; import org.elasticsearch.common.geo.GeoDistance; import org.elasticsearch.common.geo.GeoPoint; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.unit.DistanceUnit; +import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.common.xcontent.XContentParser.Token; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; +import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.bucket.range.InternalRange; import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator; -import org.elasticsearch.search.aggregations.bucket.range.geodistance.GeoDistanceParser.Range; import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import java.io.IOException; import java.util.ArrayList; @@ -45,8 +53,156 @@ import java.util.Objects; public class GeoDistanceAggregationBuilder extends ValuesSourceAggregationBuilder { public static final String NAME = "geo_distance"; public static final Type TYPE = new Type(NAME); + static final ParseField ORIGIN_FIELD = new ParseField("origin", "center", "point", "por"); + static final ParseField UNIT_FIELD = new ParseField("unit"); + static final ParseField DISTANCE_TYPE_FIELD = new ParseField("distance_type"); - private final GeoPoint origin; + private static final ObjectParser PARSER; + static { + PARSER = new ObjectParser<>(GeoDistanceAggregationBuilder.NAME); + ValuesSourceParserHelper.declareGeoFields(PARSER, true, false); + + PARSER.declareBoolean(GeoDistanceAggregationBuilder::keyed, RangeAggregator.KEYED_FIELD); + + PARSER.declareObjectArray((agg, ranges) -> { + for (Range range : ranges) { + agg.addRange(range); + } + }, GeoDistanceAggregationBuilder::parseRange, RangeAggregator.RANGES_FIELD); + + PARSER.declareField(GeoDistanceAggregationBuilder::unit, p -> DistanceUnit.fromString(p.text()), + UNIT_FIELD, ObjectParser.ValueType.STRING); + + PARSER.declareField(GeoDistanceAggregationBuilder::distanceType, p -> GeoDistance.fromString(p.text()), + DISTANCE_TYPE_FIELD, ObjectParser.ValueType.STRING); + + PARSER.declareField(GeoDistanceAggregationBuilder::origin, GeoDistanceAggregationBuilder::parseGeoPoint, + ORIGIN_FIELD, ObjectParser.ValueType.OBJECT_ARRAY_OR_STRING); + } + + public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + GeoDistanceAggregationBuilder builder = PARSER.parse(context.parser(), new GeoDistanceAggregationBuilder(aggregationName), context); + if (builder.origin() == null) { + throw new IllegalArgumentException("Aggregation [" + aggregationName + "] must define an [origin]."); + } + return builder; + } + + public static class Range extends RangeAggregator.Range { + public Range(String key, Double from, Double to) { + super(key(key, from, to), from == null ? 0 : from, to); + } + + /** + * Read from a stream. + */ + public Range(StreamInput in) throws IOException { + super(in.readOptionalString(), in.readDouble(), in.readDouble()); + } + + @Override + public void writeTo(StreamOutput out) throws IOException { + out.writeOptionalString(key); + out.writeDouble(from); + out.writeDouble(to); + } + + private static String key(String key, Double from, Double to) { + if (key != null) { + return key; + } + StringBuilder sb = new StringBuilder(); + sb.append((from == null || from == 0) ? "*" : from); + sb.append("-"); + sb.append((to == null || Double.isInfinite(to)) ? "*" : to); + return sb.toString(); + } + } + + private static GeoPoint parseGeoPoint(XContentParser parser, QueryParseContext context) throws IOException { + Token token = parser.currentToken(); + if (token == XContentParser.Token.VALUE_STRING) { + GeoPoint point = new GeoPoint(); + point.resetFromString(parser.text()); + return point; + } + if (token == XContentParser.Token.START_ARRAY) { + double lat = Double.NaN; + double lon = Double.NaN; + while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { + if (Double.isNaN(lon)) { + lon = parser.doubleValue(); + } else if (Double.isNaN(lat)) { + lat = parser.doubleValue(); + } else { + throw new ParsingException(parser.getTokenLocation(), "malformed [" + ORIGIN_FIELD.getPreferredName() + + "]: a geo point array must be of the form [lon, lat]"); + } + } + return new GeoPoint(lat, lon); + } + if (token == XContentParser.Token.START_OBJECT) { + String currentFieldName = null; + double lat = Double.NaN; + double lon = Double.NaN; + while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { + if (token == XContentParser.Token.FIELD_NAME) { + currentFieldName = parser.currentName(); + } else if (token == XContentParser.Token.VALUE_NUMBER) { + if ("lat".equals(currentFieldName)) { + lat = parser.doubleValue(); + } else if ("lon".equals(currentFieldName)) { + lon = parser.doubleValue(); + } + } + } + if (Double.isNaN(lat) || Double.isNaN(lon)) { + throw new ParsingException(parser.getTokenLocation(), + "malformed [" + currentFieldName + "] geo point object. either [lat] or [lon] (or both) are " + "missing"); + } + return new GeoPoint(lat, lon); + } + + // should not happen since we only parse geo points when we encounter a string, an object or an array + throw new IllegalArgumentException("Unexpected token [" + token + "] while parsing geo point"); + } + + private static Range parseRange(XContentParser parser, QueryParseContext context) throws IOException { + ParseFieldMatcher parseFieldMatcher = context.getParseFieldMatcher(); + String fromAsStr = null; + String toAsStr = null; + double from = 0.0; + double to = Double.POSITIVE_INFINITY; + String key = null; + String toOrFromOrKey = null; + Token token; + while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { + if (token == XContentParser.Token.FIELD_NAME) { + toOrFromOrKey = parser.currentName(); + } else if (token == XContentParser.Token.VALUE_NUMBER) { + if (parseFieldMatcher.match(toOrFromOrKey, Range.FROM_FIELD)) { + from = parser.doubleValue(); + } else if (parseFieldMatcher.match(toOrFromOrKey, Range.TO_FIELD)) { + to = parser.doubleValue(); + } + } else if (token == XContentParser.Token.VALUE_STRING) { + if (parseFieldMatcher.match(toOrFromOrKey, Range.KEY_FIELD)) { + key = parser.text(); + } else if (parseFieldMatcher.match(toOrFromOrKey, Range.FROM_FIELD)) { + fromAsStr = parser.text(); + } else if (parseFieldMatcher.match(toOrFromOrKey, Range.TO_FIELD)) { + toAsStr = parser.text(); + } + } + } + if (fromAsStr != null || toAsStr != null) { + return new Range(key, Double.parseDouble(fromAsStr), Double.parseDouble(toAsStr)); + } else { + return new Range(key, from, to); + } + } + + private GeoPoint origin; private List ranges = new ArrayList<>(); private DistanceUnit unit = DistanceUnit.DEFAULT; private GeoDistance distanceType = GeoDistance.DEFAULT; @@ -54,14 +210,14 @@ public class GeoDistanceAggregationBuilder extends ValuesSourceAggregationBuilde public GeoDistanceAggregationBuilder(String name, GeoPoint origin) { this(name, origin, InternalGeoDistance.FACTORY); + if (origin == null) { + throw new IllegalArgumentException("[origin] must not be null: [" + name + "]"); + } } private GeoDistanceAggregationBuilder(String name, GeoPoint origin, InternalRange.Factory rangeFactory) { super(name, rangeFactory.type(), rangeFactory.getValueSourceType(), rangeFactory.getValueType()); - if (origin == null) { - throw new IllegalArgumentException("[origin] must not be null: [" + name + "]"); - } this.origin = origin; } @@ -82,6 +238,23 @@ public class GeoDistanceAggregationBuilder extends ValuesSourceAggregationBuilde unit = DistanceUnit.readFromStream(in); } + // for parsing + GeoDistanceAggregationBuilder(String name) { + this(name, null, InternalGeoDistance.FACTORY); + } + + GeoDistanceAggregationBuilder origin(GeoPoint origin) { + this.origin = origin; + return this; + } + + /** + * Return the {@link GeoPoint} that is used for distance computations. + */ + public GeoPoint origin() { + return origin; + } + @Override protected void innerWriteTo(StreamOutput out) throws IOException { out.writeDouble(origin.lat()); @@ -222,11 +395,11 @@ public class GeoDistanceAggregationBuilder extends ValuesSourceAggregationBuilde @Override protected XContentBuilder doXContentBody(XContentBuilder builder, Params params) throws IOException { - builder.field(GeoDistanceParser.ORIGIN_FIELD.getPreferredName(), origin); + builder.field(ORIGIN_FIELD.getPreferredName(), origin); builder.field(RangeAggregator.RANGES_FIELD.getPreferredName(), ranges); builder.field(RangeAggregator.KEYED_FIELD.getPreferredName(), keyed); - builder.field(GeoDistanceParser.UNIT_FIELD.getPreferredName(), unit); - builder.field(GeoDistanceParser.DISTANCE_TYPE_FIELD.getPreferredName(), distanceType); + builder.field(UNIT_FIELD.getPreferredName(), unit); + builder.field(DISTANCE_TYPE_FIELD.getPreferredName(), distanceType); return builder; } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceParser.java deleted file mode 100644 index d43c2218018..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceParser.java +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.elasticsearch.search.aggregations.bucket.range.geodistance; - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.geo.GeoDistance; -import org.elasticsearch.common.geo.GeoPoint; -import org.elasticsearch.common.io.stream.StreamInput; -import org.elasticsearch.common.io.stream.StreamOutput; -import org.elasticsearch.common.unit.DistanceUnit; -import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.common.xcontent.XContentParser.Token; -import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator; -import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.GeoPointValuesSourceParser; -import org.elasticsearch.search.aggregations.support.GeoPointParser; -import org.elasticsearch.search.aggregations.support.XContentParseContext; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -public class GeoDistanceParser extends GeoPointValuesSourceParser { - - static final ParseField ORIGIN_FIELD = new ParseField("origin", "center", "point", "por"); - static final ParseField UNIT_FIELD = new ParseField("unit"); - static final ParseField DISTANCE_TYPE_FIELD = new ParseField("distance_type"); - - private GeoPointParser geoPointParser = new GeoPointParser(GeoDistanceAggregationBuilder.TYPE, ORIGIN_FIELD); - - public GeoDistanceParser() { - super(true, false); - } - - public static class Range extends RangeAggregator.Range { - public Range(String key, Double from, Double to) { - super(key(key, from, to), from == null ? 0 : from, to); - } - - /** - * Read from a stream. - */ - public Range(StreamInput in) throws IOException { - super(in.readOptionalString(), in.readDouble(), in.readDouble()); - } - - @Override - public void writeTo(StreamOutput out) throws IOException { - out.writeOptionalString(key); - out.writeDouble(from); - out.writeDouble(to); - } - - private static String key(String key, Double from, Double to) { - if (key != null) { - return key; - } - StringBuilder sb = new StringBuilder(); - sb.append((from == null || from == 0) ? "*" : from); - sb.append("-"); - sb.append((to == null || Double.isInfinite(to)) ? "*" : to); - return sb.toString(); - } - } - - @Override - protected GeoDistanceAggregationBuilder createFactory( - String aggregationName, ValuesSourceType valuesSourceType, ValueType targetValueType, Map otherOptions) { - GeoPoint origin = (GeoPoint) otherOptions.get(ORIGIN_FIELD); - GeoDistanceAggregationBuilder factory = new GeoDistanceAggregationBuilder(aggregationName, origin); - @SuppressWarnings("unchecked") - List ranges = (List) otherOptions.get(RangeAggregator.RANGES_FIELD); - for (Range range : ranges) { - factory.addRange(range); - } - Boolean keyed = (Boolean) otherOptions.get(RangeAggregator.KEYED_FIELD); - if (keyed != null) { - factory.keyed(keyed); - } - DistanceUnit unit = (DistanceUnit) otherOptions.get(UNIT_FIELD); - if (unit != null) { - factory.unit(unit); - } - GeoDistance distanceType = (GeoDistance) otherOptions.get(DISTANCE_TYPE_FIELD); - if (distanceType != null) { - factory.distanceType(distanceType); - } - return factory; - } - - @Override - protected boolean token(String aggregationName, String currentFieldName, Token token, - XContentParseContext context, Map otherOptions) throws IOException { - XContentParser parser = context.getParser(); - if (geoPointParser.token(aggregationName, currentFieldName, token, parser, context.getParseFieldMatcher(), otherOptions)) { - return true; - } else if (token == XContentParser.Token.VALUE_STRING) { - if (context.matchField(currentFieldName, UNIT_FIELD)) { - DistanceUnit unit = DistanceUnit.fromString(parser.text()); - otherOptions.put(UNIT_FIELD, unit); - return true; - } else if (context.matchField(currentFieldName, DISTANCE_TYPE_FIELD)) { - GeoDistance distanceType = GeoDistance.fromString(parser.text()); - otherOptions.put(DISTANCE_TYPE_FIELD, distanceType); - return true; - } - } else if (token == XContentParser.Token.VALUE_BOOLEAN) { - if (context.matchField(currentFieldName, RangeAggregator.KEYED_FIELD)) { - boolean keyed = parser.booleanValue(); - otherOptions.put(RangeAggregator.KEYED_FIELD, keyed); - return true; - } - } else if (token == XContentParser.Token.START_ARRAY) { - if (context.matchField(currentFieldName, RangeAggregator.RANGES_FIELD)) { - List ranges = new ArrayList<>(); - while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { - String fromAsStr = null; - String toAsStr = null; - double from = 0.0; - double to = Double.POSITIVE_INFINITY; - String key = null; - String toOrFromOrKey = null; - while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { - if (token == XContentParser.Token.FIELD_NAME) { - toOrFromOrKey = parser.currentName(); - } else if (token == XContentParser.Token.VALUE_NUMBER) { - if (context.matchField(toOrFromOrKey, Range.FROM_FIELD)) { - from = parser.doubleValue(); - } else if (context.matchField(toOrFromOrKey, Range.TO_FIELD)) { - to = parser.doubleValue(); - } - } else if (token == XContentParser.Token.VALUE_STRING) { - if (context.matchField(toOrFromOrKey, Range.KEY_FIELD)) { - key = parser.text(); - } else if (context.matchField(toOrFromOrKey, Range.FROM_FIELD)) { - fromAsStr = parser.text(); - } else if (context.matchField(toOrFromOrKey, Range.TO_FIELD)) { - toAsStr = parser.text(); - } - } - } - if (fromAsStr != null || toAsStr != null) { - ranges.add(new Range(key, Double.parseDouble(fromAsStr), Double.parseDouble(toAsStr))); - } else { - ranges.add(new Range(key, from, to)); - } - } - otherOptions.put(RangeAggregator.RANGES_FIELD, ranges); - return true; - } - } - return false; - } -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceRangeAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceRangeAggregatorFactory.java index 62aa18b168a..d216e8eb6c7 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceRangeAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceRangeAggregatorFactory.java @@ -35,7 +35,7 @@ import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.bucket.range.InternalRange; import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator; import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator.Unmapped; -import org.elasticsearch.search.aggregations.bucket.range.geodistance.GeoDistanceParser.Range; +import org.elasticsearch.search.aggregations.bucket.range.geodistance.GeoDistanceAggregationBuilder.Range; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ip/IpRangeAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ip/IpRangeAggregationBuilder.java index cc044ed6235..9ebd3fc2ead 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ip/IpRangeAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ip/IpRangeAggregationBuilder.java @@ -20,13 +20,21 @@ package org.elasticsearch.search.aggregations.bucket.range.ip; import org.apache.lucene.document.InetAddressPoint; import org.apache.lucene.util.BytesRef; +import org.elasticsearch.common.ParseField; +import org.elasticsearch.common.ParseFieldMatcher; +import org.elasticsearch.common.ParsingException; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.network.InetAddresses; +import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.common.xcontent.XContentParser.Token; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.script.Script; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; +import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation; import org.elasticsearch.search.aggregations.bucket.range.BinaryRangeAggregator; @@ -38,6 +46,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -53,6 +62,59 @@ public final class IpRangeAggregationBuilder extends ValuesSourceAggregationBuilder { public static final String NAME = "ip_range"; private static final InternalAggregation.Type TYPE = new InternalAggregation.Type(NAME); + private static final ParseField MASK_FIELD = new ParseField("mask"); + + private static final ObjectParser PARSER; + static { + PARSER = new ObjectParser<>(IpRangeAggregationBuilder.NAME); + ValuesSourceParserHelper.declareBytesFields(PARSER, false, false); + + PARSER.declareBoolean(IpRangeAggregationBuilder::keyed, RangeAggregator.KEYED_FIELD); + + PARSER.declareObjectArray((agg, ranges) -> { + for (Range range : ranges) agg.addRange(range); + }, IpRangeAggregationBuilder::parseRange, RangeAggregator.RANGES_FIELD); + } + + public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + return PARSER.parse(context.parser(), new IpRangeAggregationBuilder(aggregationName), context); + } + + private static Range parseRange(XContentParser parser, QueryParseContext context) throws IOException { + final ParseFieldMatcher parseFieldMatcher = context.getParseFieldMatcher(); + String key = null; + String from = null; + String to = null; + String mask = null; + + if (parser.currentToken() != Token.START_OBJECT) { + throw new ParsingException(parser.getTokenLocation(), "[ranges] must contain objects, but hit a " + parser.currentToken()); + } + while (parser.nextToken() != Token.END_OBJECT) { + if (parser.currentToken() == Token.FIELD_NAME) { + continue; + } + if (parseFieldMatcher.match(parser.currentName(), RangeAggregator.Range.KEY_FIELD)) { + key = parser.text(); + } else if (parseFieldMatcher.match(parser.currentName(), RangeAggregator.Range.FROM_FIELD)) { + from = parser.textOrNull(); + } else if (parseFieldMatcher.match(parser.currentName(), RangeAggregator.Range.TO_FIELD)) { + to = parser.textOrNull(); + } else if (parseFieldMatcher.match(parser.currentName(), MASK_FIELD)) { + mask = parser.text(); + } else { + throw new ParsingException(parser.getTokenLocation(), "Unexpected ip range parameter: [" + parser.currentName() + "]"); + } + } + if (mask != null) { + if (key == null) { + key = mask; + } + return new Range(key, mask); + } else { + return new Range(key, from, to); + } + } public static class Range implements ToXContent { diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ip/IpRangeParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ip/IpRangeParser.java deleted file mode 100644 index 1f4afebdbe0..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ip/IpRangeParser.java +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.elasticsearch.search.aggregations.bucket.range.ip; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.ParseFieldMatcher; -import org.elasticsearch.common.ParsingException; -import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.common.xcontent.XContentParser.Token; -import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.BytesValuesSourceParser; -import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator; -import org.elasticsearch.search.aggregations.bucket.range.ip.IpRangeAggregationBuilder.Range; -import org.elasticsearch.search.aggregations.support.XContentParseContext; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSource; -import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; - -/** - * A parser for ip range aggregations. - */ -public class IpRangeParser extends BytesValuesSourceParser { - - private static final ParseField MASK_FIELD = new ParseField("mask"); - - public IpRangeParser() { - super(false, false); - } - - @Override - protected ValuesSourceAggregationBuilder createFactory( - String aggregationName, ValuesSourceType valuesSourceType, - ValueType targetValueType, Map otherOptions) { - IpRangeAggregationBuilder range = new IpRangeAggregationBuilder(aggregationName); - @SuppressWarnings("unchecked") - Iterable ranges = (Iterable) otherOptions.get(RangeAggregator.RANGES_FIELD); - if (otherOptions.containsKey(RangeAggregator.RANGES_FIELD)) { - for (Range r : ranges) { - range.addRange(r); - } - } - if (otherOptions.containsKey(RangeAggregator.KEYED_FIELD)) { - range.keyed((Boolean) otherOptions.get(RangeAggregator.KEYED_FIELD)); - } - return range; - } - - private Range parseRange(XContentParser parser, ParseFieldMatcher parseFieldMatcher) throws IOException { - String key = null; - String from = null; - String to = null; - String mask = null; - - if (parser.currentToken() != Token.START_OBJECT) { - throw new ParsingException(parser.getTokenLocation(), "[ranges] must contain objects, but hit a " + parser.currentToken()); - } - while (parser.nextToken() != Token.END_OBJECT) { - if (parser.currentToken() == Token.FIELD_NAME) { - continue; - } - if (parseFieldMatcher.match(parser.currentName(), RangeAggregator.Range.KEY_FIELD)) { - key = parser.text(); - } else if (parseFieldMatcher.match(parser.currentName(), RangeAggregator.Range.FROM_FIELD)) { - from = parser.textOrNull(); - } else if (parseFieldMatcher.match(parser.currentName(), RangeAggregator.Range.TO_FIELD)) { - to = parser.textOrNull(); - } else if (parseFieldMatcher.match(parser.currentName(), MASK_FIELD)) { - mask = parser.text(); - } else { - throw new ParsingException(parser.getTokenLocation(), "Unexpected ip range parameter: [" + parser.currentName() + "]"); - } - } - if (mask != null) { - if (key == null) { - key = mask; - } - return new Range(key, mask); - } else { - return new Range(key, from, to); - } - } - - @Override - protected boolean token(String aggregationName, String currentFieldName, - Token token, - XContentParseContext context, - Map otherOptions) throws IOException { - XContentParser parser = context.getParser(); - if (context.matchField(currentFieldName, RangeAggregator.RANGES_FIELD)) { - if (parser.currentToken() != Token.START_ARRAY) { - throw new ParsingException(parser.getTokenLocation(), "[ranges] must be passed as an array, but got a " + token); - } - List ranges = new ArrayList<>(); - while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { - Range range = parseRange(parser, context.getParseFieldMatcher()); - ranges.add(range); - } - otherOptions.put(RangeAggregator.RANGES_FIELD, ranges); - return true; - } else if (context.matchField(parser.currentName(), RangeAggregator.KEYED_FIELD)) { - otherOptions.put(RangeAggregator.KEYED_FIELD, parser.booleanValue()); - return true; - } - return false; - } - -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregationBuilder.java index 8a83fabcab2..3d5192e17ac 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregationBuilder.java @@ -21,8 +21,11 @@ package org.elasticsearch.search.aggregations.bucket.sampler; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; +import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.support.AggregationContext; @@ -30,6 +33,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -41,6 +45,19 @@ public class DiversifiedAggregationBuilder extends ValuesSourceAggregationBuilde public static final int MAX_DOCS_PER_VALUE_DEFAULT = 1; + private static final ObjectParser PARSER; + static { + PARSER = new ObjectParser<>(DiversifiedAggregationBuilder.NAME); + ValuesSourceParserHelper.declareAnyFields(PARSER, true, false); + PARSER.declareInt(DiversifiedAggregationBuilder::shardSize, SamplerAggregator.SHARD_SIZE_FIELD); + PARSER.declareInt(DiversifiedAggregationBuilder::maxDocsPerValue, SamplerAggregator.MAX_DOCS_PER_VALUE_FIELD); + PARSER.declareString(DiversifiedAggregationBuilder::executionHint, SamplerAggregator.EXECUTION_HINT_FIELD); + } + + public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + return PARSER.parse(context.parser(), new DiversifiedAggregationBuilder(aggregationName), context); + } + private int shardSize = SamplerAggregationBuilder.DEFAULT_SHARD_SAMPLE_SIZE; private int maxDocsPerValue = MAX_DOCS_PER_VALUE_DEFAULT; private String executionHint = null; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedSamplerParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedSamplerParser.java deleted file mode 100644 index 49f941b36b7..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedSamplerParser.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.elasticsearch.search.aggregations.bucket.sampler; - - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.AnyValuesSourceParser; -import org.elasticsearch.search.aggregations.support.XContentParseContext; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; - -import java.io.IOException; -import java.util.Map; - -public class DiversifiedSamplerParser extends AnyValuesSourceParser { - public DiversifiedSamplerParser() { - super(true, false); - } - - @Override - protected DiversifiedAggregationBuilder createFactory(String aggregationName, ValuesSourceType valuesSourceType, - ValueType targetValueType, Map otherOptions) { - DiversifiedAggregationBuilder factory = new DiversifiedAggregationBuilder(aggregationName); - Integer shardSize = (Integer) otherOptions.get(SamplerAggregator.SHARD_SIZE_FIELD); - if (shardSize != null) { - factory.shardSize(shardSize); - } - Integer maxDocsPerValue = (Integer) otherOptions.get(SamplerAggregator.MAX_DOCS_PER_VALUE_FIELD); - if (maxDocsPerValue != null) { - factory.maxDocsPerValue(maxDocsPerValue); - } - String executionHint = (String) otherOptions.get(SamplerAggregator.EXECUTION_HINT_FIELD); - if (executionHint != null) { - factory.executionHint(executionHint); - } - return factory; - } - - @Override - protected boolean token(String aggregationName, String currentFieldName, XContentParser.Token token, - XContentParseContext context, Map otherOptions) throws IOException { - XContentParser parser = context.getParser(); - if (token == XContentParser.Token.VALUE_NUMBER) { - if (context.matchField(currentFieldName, SamplerAggregator.SHARD_SIZE_FIELD)) { - int shardSize = parser.intValue(); - otherOptions.put(SamplerAggregator.SHARD_SIZE_FIELD, shardSize); - return true; - } else if (context.matchField(currentFieldName, SamplerAggregator.MAX_DOCS_PER_VALUE_FIELD)) { - int maxDocsPerValue = parser.intValue(); - otherOptions.put(SamplerAggregator.MAX_DOCS_PER_VALUE_FIELD, maxDocsPerValue); - return true; - } - } else if (token == XContentParser.Token.VALUE_STRING) { - if (context.matchField(currentFieldName, SamplerAggregator.EXECUTION_HINT_FIELD)) { - String executionHint = parser.text(); - otherOptions.put(SamplerAggregator.EXECUTION_HINT_FIELD, executionHint); - return true; - } - } - return false; - } -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregationBuilder.java index 5af538965d1..e1b52ad0b30 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregationBuilder.java @@ -21,14 +21,20 @@ package org.elasticsearch.search.aggregations.bucket.significant; import org.elasticsearch.common.ParseField; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.common.xcontent.ObjectParser; +import org.elasticsearch.common.xcontent.ParseFieldRegistry; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.index.query.QueryBuilder; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; +import org.elasticsearch.search.aggregations.AggregationBuilder; +import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.bucket.significant.heuristics.JLHScore; import org.elasticsearch.search.aggregations.bucket.significant.heuristics.SignificanceHeuristic; +import org.elasticsearch.search.aggregations.bucket.significant.heuristics.SignificanceHeuristicParser; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregator; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregator.BucketCountThresholds; @@ -39,6 +45,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -55,6 +62,48 @@ public class SignificantTermsAggregationBuilder extends ValuesSourceAggregationB 3, 0, 10, -1); static final SignificanceHeuristic DEFAULT_SIGNIFICANCE_HEURISTIC = new JLHScore(); + public static Aggregator.Parser getParser(ParseFieldRegistry significanceHeuristicParserRegistry) { + ObjectParser parser = + new ObjectParser<>(SignificantTermsAggregationBuilder.NAME); + ValuesSourceParserHelper.declareAnyFields(parser, true, true); + + parser.declareInt(SignificantTermsAggregationBuilder::shardSize, TermsAggregationBuilder.SHARD_SIZE_FIELD_NAME); + + parser.declareLong(SignificantTermsAggregationBuilder::minDocCount, TermsAggregationBuilder.MIN_DOC_COUNT_FIELD_NAME); + + parser.declareLong(SignificantTermsAggregationBuilder::shardMinDocCount, TermsAggregationBuilder.SHARD_MIN_DOC_COUNT_FIELD_NAME); + + parser.declareInt(SignificantTermsAggregationBuilder::size, TermsAggregationBuilder.REQUIRED_SIZE_FIELD_NAME); + + parser.declareString(SignificantTermsAggregationBuilder::executionHint, TermsAggregationBuilder.EXECUTION_HINT_FIELD_NAME); + + parser.declareObject((b, v) -> { if (v.isPresent()) b.backgroundFilter(v.get()); }, + (p, context) -> context.parseInnerQueryBuilder(), + SignificantTermsAggregationBuilder.BACKGROUND_FILTER); + + parser.declareField((b, v) -> b.includeExclude(IncludeExclude.merge(v, b.includeExclude())), + IncludeExclude::parseInclude, IncludeExclude.INCLUDE_FIELD, ObjectParser.ValueType.OBJECT_ARRAY_OR_STRING); + + parser.declareField((b, v) -> b.includeExclude(IncludeExclude.merge(b.includeExclude(), v)), + IncludeExclude::parseExclude, IncludeExclude.EXCLUDE_FIELD, ObjectParser.ValueType.STRING_ARRAY); + + for (String name : significanceHeuristicParserRegistry.getNames()) { + parser.declareObject(SignificantTermsAggregationBuilder::significanceHeuristic, + (p, context) -> { + SignificanceHeuristicParser significanceHeuristicParser = significanceHeuristicParserRegistry + .lookupReturningNullIfNotFound(name, context.getParseFieldMatcher()); + return significanceHeuristicParser.parse(context); + }, + new ParseField(name)); + } + return new Aggregator.Parser() { + @Override + public AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + return parser.parse(context.parser(), new SignificantTermsAggregationBuilder(aggregationName, null), context); + } + }; + } + private IncludeExclude includeExclude = null; private String executionHint = null; private QueryBuilder filterBuilder = null; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsParser.java deleted file mode 100644 index 5f40fe73546..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsParser.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.elasticsearch.search.aggregations.bucket.significant; - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.xcontent.ParseFieldRegistry; -import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.common.xcontent.XContentParser.Token; -import org.elasticsearch.index.query.QueryBuilder; -import org.elasticsearch.index.query.QueryParseContext; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; -import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode; -import org.elasticsearch.search.aggregations.bucket.significant.heuristics.SignificanceHeuristic; -import org.elasticsearch.search.aggregations.bucket.significant.heuristics.SignificanceHeuristicParser; -import org.elasticsearch.search.aggregations.bucket.terms.AbstractTermsParser; -import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregator; -import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregator.BucketCountThresholds; -import org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude; -import org.elasticsearch.search.aggregations.support.XContentParseContext; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; - -import java.io.IOException; -import java.util.Map; -import java.util.Optional; - -public class SignificantTermsParser extends AbstractTermsParser { - private final ParseFieldRegistry significanceHeuristicParserRegistry; - private final IndicesQueriesRegistry queriesRegistry; - - public SignificantTermsParser(ParseFieldRegistry significanceHeuristicParserRegistry, - IndicesQueriesRegistry queriesRegistry) { - this.significanceHeuristicParserRegistry = significanceHeuristicParserRegistry; - this.queriesRegistry = queriesRegistry; - } - - @Override - protected SignificantTermsAggregationBuilder doCreateFactory(String aggregationName, ValuesSourceType valuesSourceType, - ValueType targetValueType, BucketCountThresholds bucketCountThresholds, - SubAggCollectionMode collectMode, String executionHint, - IncludeExclude incExc, Map otherOptions) { - SignificantTermsAggregationBuilder factory = new SignificantTermsAggregationBuilder(aggregationName, targetValueType); - if (bucketCountThresholds != null) { - factory.bucketCountThresholds(bucketCountThresholds); - } - if (executionHint != null) { - factory.executionHint(executionHint); - } - if (incExc != null) { - factory.includeExclude(incExc); - } - QueryBuilder backgroundFilter = (QueryBuilder) otherOptions.get(SignificantTermsAggregationBuilder.BACKGROUND_FILTER); - if (backgroundFilter != null) { - factory.backgroundFilter(backgroundFilter); - } - SignificanceHeuristic significanceHeuristic = - (SignificanceHeuristic) otherOptions.get(SignificantTermsAggregationBuilder.HEURISTIC); - if (significanceHeuristic != null) { - factory.significanceHeuristic(significanceHeuristic); - } - return factory; - } - - @Override - public boolean parseSpecial(String aggregationName, XContentParseContext context, Token token, - String currentFieldName, Map otherOptions) throws IOException { - if (token == XContentParser.Token.START_OBJECT) { - SignificanceHeuristicParser significanceHeuristicParser = significanceHeuristicParserRegistry - .lookupReturningNullIfNotFound(currentFieldName, context.getParseFieldMatcher()); - if (significanceHeuristicParser != null) { - SignificanceHeuristic significanceHeuristic = significanceHeuristicParser.parse(context); - otherOptions.put(SignificantTermsAggregationBuilder.HEURISTIC, significanceHeuristic); - return true; - } else if (context.matchField(currentFieldName, SignificantTermsAggregationBuilder.BACKGROUND_FILTER)) { - QueryParseContext queryParseContext = new QueryParseContext(context.getDefaultScriptLanguage(), queriesRegistry, - context.getParser(), context.getParseFieldMatcher()); - Optional filter = queryParseContext.parseInnerQueryBuilder(); - if (filter.isPresent()) { - otherOptions.put(SignificantTermsAggregationBuilder.BACKGROUND_FILTER, filter.get()); - } - return true; - } - } - return false; - } - - @Override - protected BucketCountThresholds getDefaultBucketCountThresholds() { - return new TermsAggregator.BucketCountThresholds(SignificantTermsAggregationBuilder.DEFAULT_BUCKET_COUNT_THRESHOLDS); - } -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/GND.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/GND.java index 3ae26639aa9..6c392f0f283 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/GND.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/GND.java @@ -26,8 +26,8 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryShardException; -import org.elasticsearch.search.aggregations.support.XContentParseContext; import java.io.IOException; @@ -113,13 +113,13 @@ public class GND extends NXYSignificanceHeuristic { } @Override - public SignificanceHeuristic parse(XContentParseContext context) throws IOException, QueryShardException { - XContentParser parser = context.getParser(); + public SignificanceHeuristic parse(QueryParseContext context) throws IOException, QueryShardException { + XContentParser parser = context.parser(); String givenName = parser.currentName(); boolean backgroundIsSuperset = true; XContentParser.Token token = parser.nextToken(); while (!token.equals(XContentParser.Token.END_OBJECT)) { - if (context.matchField(parser.currentName(), BACKGROUND_IS_SUPERSET)) { + if (context.getParseFieldMatcher().match(parser.currentName(), BACKGROUND_IS_SUPERSET)) { parser.nextToken(); backgroundIsSuperset = parser.booleanValue(); } else { diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/JLHScore.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/JLHScore.java index 58f8060a108..d8009818f7f 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/JLHScore.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/JLHScore.java @@ -26,8 +26,8 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryShardException; -import org.elasticsearch.search.aggregations.support.XContentParseContext; import java.io.IOException; @@ -104,9 +104,9 @@ public class JLHScore extends SignificanceHeuristic { return builder; } - public static SignificanceHeuristic parse(XContentParseContext context) + public static SignificanceHeuristic parse(QueryParseContext context) throws IOException, QueryShardException { - XContentParser parser = context.getParser(); + XContentParser parser = context.parser(); // move to the closing bracket if (!parser.nextToken().equals(XContentParser.Token.END_OBJECT)) { throw new ElasticsearchParseException( diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/NXYSignificanceHeuristic.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/NXYSignificanceHeuristic.java index d6064ca37fd..69a759a77fd 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/NXYSignificanceHeuristic.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/NXYSignificanceHeuristic.java @@ -27,8 +27,8 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryShardException; -import org.elasticsearch.search.aggregations.support.XContentParseContext; import java.io.IOException; @@ -152,18 +152,18 @@ public abstract class NXYSignificanceHeuristic extends SignificanceHeuristic { public abstract static class NXYParser implements SignificanceHeuristicParser { @Override - public SignificanceHeuristic parse(XContentParseContext context) + public SignificanceHeuristic parse(QueryParseContext context) throws IOException, QueryShardException { - XContentParser parser = context.getParser(); + XContentParser parser = context.parser(); String givenName = parser.currentName(); boolean includeNegatives = false; boolean backgroundIsSuperset = true; XContentParser.Token token = parser.nextToken(); while (!token.equals(XContentParser.Token.END_OBJECT)) { - if (context.matchField(parser.currentName(), INCLUDE_NEGATIVES_FIELD)) { + if (context.getParseFieldMatcher().match(parser.currentName(), INCLUDE_NEGATIVES_FIELD)) { parser.nextToken(); includeNegatives = parser.booleanValue(); - } else if (context.matchField(parser.currentName(), BACKGROUND_IS_SUPERSET)) { + } else if (context.getParseFieldMatcher().match(parser.currentName(), BACKGROUND_IS_SUPERSET)) { parser.nextToken(); backgroundIsSuperset = parser.booleanValue(); } else { diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/PercentageScore.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/PercentageScore.java index c7e5c7ead6f..f4a61fbfae0 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/PercentageScore.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/PercentageScore.java @@ -26,8 +26,8 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryShardException; -import org.elasticsearch.search.aggregations.support.XContentParseContext; import java.io.IOException; @@ -56,9 +56,9 @@ public class PercentageScore extends SignificanceHeuristic { return builder; } - public static SignificanceHeuristic parse(XContentParseContext context) + public static SignificanceHeuristic parse(QueryParseContext context) throws IOException, QueryShardException { - XContentParser parser = context.getParser(); + XContentParser parser = context.parser(); // move to the closing bracket if (!parser.nextToken().equals(XContentParser.Token.END_OBJECT)) { throw new ElasticsearchParseException("failed to parse [percentage] significance heuristic. expected an empty object, but got [{}] instead", parser.currentToken()); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/ScriptHeuristic.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/ScriptHeuristic.java index 9519a95d3a5..b5ee7e09ee5 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/ScriptHeuristic.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/ScriptHeuristic.java @@ -26,12 +26,12 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryShardException; import org.elasticsearch.script.ExecutableScript; import org.elasticsearch.script.Script; import org.elasticsearch.script.ScriptContext; import org.elasticsearch.search.aggregations.InternalAggregation; -import org.elasticsearch.search.aggregations.support.XContentParseContext; import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; @@ -146,9 +146,9 @@ public class ScriptHeuristic extends SignificanceHeuristic { return Objects.equals(script, other.script); } - public static SignificanceHeuristic parse(XContentParseContext context) + public static SignificanceHeuristic parse(QueryParseContext context) throws IOException, QueryShardException { - XContentParser parser = context.getParser(); + XContentParser parser = context.parser(); String heuristicName = parser.currentName(); Script script = null; XContentParser.Token token; @@ -157,7 +157,7 @@ public class ScriptHeuristic extends SignificanceHeuristic { if (token.equals(XContentParser.Token.FIELD_NAME)) { currentFieldName = parser.currentName(); } else { - if (context.matchField(currentFieldName, Script.SCRIPT_PARSE_FIELD)) { + if (context.getParseFieldMatcher().match(currentFieldName, Script.SCRIPT_PARSE_FIELD)) { script = Script.parse(parser, context.getParseFieldMatcher(), context.getDefaultScriptLanguage()); } else { throw new ElasticsearchParseException("failed to parse [{}] significance heuristic. unknown object [{}]", heuristicName, currentFieldName); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/SignificanceHeuristicParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/SignificanceHeuristicParser.java index 26fd552a6b1..3c6f98c155e 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/SignificanceHeuristicParser.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/heuristics/SignificanceHeuristicParser.java @@ -22,7 +22,7 @@ package org.elasticsearch.search.aggregations.bucket.significant.heuristics; import org.elasticsearch.common.ParsingException; import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.search.aggregations.support.XContentParseContext; +import org.elasticsearch.index.query.QueryParseContext; import java.io.IOException; @@ -31,5 +31,5 @@ import java.io.IOException; */ @FunctionalInterface public interface SignificanceHeuristicParser { - SignificanceHeuristic parse(XContentParseContext context) throws IOException, ParsingException; + SignificanceHeuristic parse(QueryParseContext context) throws IOException, ParsingException; } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/AbstractTermsParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/AbstractTermsParser.java deleted file mode 100644 index a106cea3a15..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/AbstractTermsParser.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.elasticsearch.search.aggregations.bucket.terms; - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.common.xcontent.XContentParser.Token; -import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode; -import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregator.BucketCountThresholds; -import org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude; -import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.AnyValuesSourceParser; -import org.elasticsearch.search.aggregations.support.XContentParseContext; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSource; -import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; - -import java.io.IOException; -import java.util.Map; - -public abstract class AbstractTermsParser extends AnyValuesSourceParser { - - public static final ParseField EXECUTION_HINT_FIELD_NAME = new ParseField("execution_hint"); - public static final ParseField SHARD_SIZE_FIELD_NAME = new ParseField("shard_size"); - public static final ParseField MIN_DOC_COUNT_FIELD_NAME = new ParseField("min_doc_count"); - public static final ParseField SHARD_MIN_DOC_COUNT_FIELD_NAME = new ParseField("shard_min_doc_count"); - public static final ParseField REQUIRED_SIZE_FIELD_NAME = new ParseField("size"); - - public IncludeExclude.Parser incExcParser = new IncludeExclude.Parser(); - - protected AbstractTermsParser() { - super(true, true); - } - - @Override - protected final ValuesSourceAggregationBuilder createFactory(String aggregationName, - ValuesSourceType valuesSourceType, - ValueType targetValueType, - Map otherOptions) { - BucketCountThresholds bucketCountThresholds = getDefaultBucketCountThresholds(); - Integer requiredSize = (Integer) otherOptions.get(REQUIRED_SIZE_FIELD_NAME); - if (requiredSize != null && requiredSize != -1) { - bucketCountThresholds.setRequiredSize(requiredSize); - } - Integer shardSize = (Integer) otherOptions.get(SHARD_SIZE_FIELD_NAME); - if (shardSize != null && shardSize != -1) { - bucketCountThresholds.setShardSize(shardSize); - } - Long minDocCount = (Long) otherOptions.get(MIN_DOC_COUNT_FIELD_NAME); - if (minDocCount != null && minDocCount != -1) { - bucketCountThresholds.setMinDocCount(minDocCount); - } - Long shardMinDocCount = (Long) otherOptions.get(SHARD_MIN_DOC_COUNT_FIELD_NAME); - if (shardMinDocCount != null && shardMinDocCount != -1) { - bucketCountThresholds.setShardMinDocCount(shardMinDocCount); - } - SubAggCollectionMode collectMode = (SubAggCollectionMode) otherOptions.get(SubAggCollectionMode.KEY); - String executionHint = (String) otherOptions.get(EXECUTION_HINT_FIELD_NAME); - IncludeExclude incExc = incExcParser.createIncludeExclude(otherOptions); - return doCreateFactory(aggregationName, valuesSourceType, targetValueType, bucketCountThresholds, collectMode, executionHint, - incExc, - otherOptions); - } - - protected abstract ValuesSourceAggregationBuilder doCreateFactory(String aggregationName, - ValuesSourceType valuesSourceType, - ValueType targetValueType, - BucketCountThresholds bucketCountThresholds, - SubAggCollectionMode collectMode, - String executionHint, - IncludeExclude incExc, - Map otherOptions); - - @Override - protected boolean token(String aggregationName, String currentFieldName, Token token, - XContentParseContext context, Map otherOptions) throws IOException { - XContentParser parser = context.getParser(); - if (incExcParser.token(currentFieldName, token, parser, context.getParseFieldMatcher(), otherOptions)) { - return true; - } else if (token == XContentParser.Token.VALUE_STRING) { - if (context.matchField(currentFieldName, EXECUTION_HINT_FIELD_NAME)) { - otherOptions.put(EXECUTION_HINT_FIELD_NAME, parser.text()); - return true; - } else if (context.matchField(currentFieldName, SubAggCollectionMode.KEY)) { - otherOptions.put(SubAggCollectionMode.KEY, SubAggCollectionMode.parse(parser.text(), context.getParseFieldMatcher())); - return true; - } else if (context.matchField(currentFieldName, REQUIRED_SIZE_FIELD_NAME)) { - otherOptions.put(REQUIRED_SIZE_FIELD_NAME, parser.intValue()); - return true; - } else if (parseSpecial(aggregationName, context, token, currentFieldName, otherOptions)) { - return true; - } - } else if (token == XContentParser.Token.VALUE_NUMBER) { - if (context.matchField(currentFieldName, REQUIRED_SIZE_FIELD_NAME)) { - otherOptions.put(REQUIRED_SIZE_FIELD_NAME, parser.intValue()); - return true; - } else if (context.matchField(currentFieldName, SHARD_SIZE_FIELD_NAME)) { - otherOptions.put(SHARD_SIZE_FIELD_NAME, parser.intValue()); - return true; - } else if (context.matchField(currentFieldName, MIN_DOC_COUNT_FIELD_NAME)) { - otherOptions.put(MIN_DOC_COUNT_FIELD_NAME, parser.longValue()); - return true; - } else if (context.matchField(currentFieldName, SHARD_MIN_DOC_COUNT_FIELD_NAME)) { - otherOptions.put(SHARD_MIN_DOC_COUNT_FIELD_NAME, parser.longValue()); - return true; - } else if (parseSpecial(aggregationName, context, token, currentFieldName, otherOptions)) { - return true; - } - } else if (parseSpecial(aggregationName, context, token, currentFieldName, otherOptions)) { - return true; - } - return false; - } - - public abstract boolean parseSpecial(String aggregationName, XContentParseContext context, - Token token, String currentFieldName, Map otherOptions) throws IOException; - - protected abstract TermsAggregator.BucketCountThresholds getDefaultBucketCountThresholds(); - -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregationBuilder.java index e34c3bcbed4..06c6de59305 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregationBuilder.java @@ -19,14 +19,20 @@ package org.elasticsearch.search.aggregations.bucket.terms; import org.elasticsearch.common.ParseField; +import org.elasticsearch.common.ParsingException; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; +import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation; import org.elasticsearch.search.aggregations.InternalAggregation.Type; +import org.elasticsearch.search.aggregations.bucket.terms.Terms.Order; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregator.BucketCountThresholds; import org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude; import org.elasticsearch.search.aggregations.support.AggregationContext; @@ -35,6 +41,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -56,6 +63,42 @@ public class TermsAggregationBuilder extends ValuesSourceAggregationBuilder PARSER; + static { + PARSER = new ObjectParser<>(TermsAggregationBuilder.NAME); + ValuesSourceParserHelper.declareAnyFields(PARSER, true, true); + + PARSER.declareBoolean(TermsAggregationBuilder::showTermDocCountError, + TermsAggregationBuilder.SHOW_TERM_DOC_COUNT_ERROR); + + PARSER.declareInt(TermsAggregationBuilder::shardSize, SHARD_SIZE_FIELD_NAME); + + PARSER.declareLong(TermsAggregationBuilder::minDocCount, MIN_DOC_COUNT_FIELD_NAME); + + PARSER.declareLong(TermsAggregationBuilder::shardMinDocCount, SHARD_MIN_DOC_COUNT_FIELD_NAME); + + PARSER.declareInt(TermsAggregationBuilder::size, REQUIRED_SIZE_FIELD_NAME); + + PARSER.declareString(TermsAggregationBuilder::executionHint, EXECUTION_HINT_FIELD_NAME); + + PARSER.declareField(TermsAggregationBuilder::collectMode, + (p, c) -> SubAggCollectionMode.parse(p.text(), c.getParseFieldMatcher()), + SubAggCollectionMode.KEY, ObjectParser.ValueType.STRING); + + PARSER.declareObjectArray(TermsAggregationBuilder::order, TermsAggregationBuilder::parseOrderParam, + TermsAggregationBuilder.ORDER_FIELD); + + PARSER.declareField((b, v) -> b.includeExclude(IncludeExclude.merge(v, b.includeExclude())), + IncludeExclude::parseInclude, IncludeExclude.INCLUDE_FIELD, ObjectParser.ValueType.OBJECT_ARRAY_OR_STRING); + + PARSER.declareField((b, v) -> b.includeExclude(IncludeExclude.merge(b.includeExclude(), v)), + IncludeExclude::parseExclude, IncludeExclude.EXCLUDE_FIELD, ObjectParser.ValueType.STRING_ARRAY); + } + + public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + return PARSER.parse(context.parser(), new TermsAggregationBuilder(aggregationName, null), context); + } + private Terms.Order order = Terms.Order.compound(Terms.Order.count(false), Terms.Order.term(true)); private IncludeExclude includeExclude = null; private String executionHint = null; @@ -96,18 +139,6 @@ public class TermsAggregationBuilder extends ValuesSourceAggregationBuilder otherOptions) { - TermsAggregationBuilder factory = new TermsAggregationBuilder(aggregationName, targetValueType); - @SuppressWarnings("unchecked") - List orderElements = (List) otherOptions.get(TermsAggregationBuilder.ORDER_FIELD); - if (orderElements != null) { - List orders = new ArrayList<>(orderElements.size()); - for (OrderElement orderElement : orderElements) { - orders.add(resolveOrder(orderElement.key(), orderElement.asc())); - } - factory.order(orders); - } - if (bucketCountThresholds != null) { - factory.bucketCountThresholds(bucketCountThresholds); - } - if (collectMode != null) { - factory.collectMode(collectMode); - } - if (executionHint != null) { - factory.executionHint(executionHint); - } - if (incExc != null) { - factory.includeExclude(incExc); - } - Boolean showTermDocCountError = (Boolean) otherOptions.get(TermsAggregationBuilder.SHOW_TERM_DOC_COUNT_ERROR); - if (showTermDocCountError != null) { - factory.showTermDocCountError(showTermDocCountError); - } - return factory; - } - - @Override - public boolean parseSpecial(String aggregationName, XContentParseContext context, Token token, - String currentFieldName, Map otherOptions) throws IOException { - XContentParser parser = context.getParser(); - if (token == XContentParser.Token.START_OBJECT) { - if (context.matchField(currentFieldName, TermsAggregationBuilder.ORDER_FIELD)) { - otherOptions.put(TermsAggregationBuilder.ORDER_FIELD, Collections.singletonList(parseOrderParam(aggregationName, parser))); - return true; - } - } else if (token == XContentParser.Token.START_ARRAY) { - if (context.matchField(currentFieldName, TermsAggregationBuilder.ORDER_FIELD)) { - List orderElements = new ArrayList<>(); - while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { - if (token == XContentParser.Token.START_OBJECT) { - OrderElement orderParam = parseOrderParam(aggregationName, parser); - orderElements.add(orderParam); - } else { - throw new ParsingException(parser.getTokenLocation(), - "Order elements must be of type object in [" + aggregationName + "] found token of type [" + token + "]."); - } - } - otherOptions.put(TermsAggregationBuilder.ORDER_FIELD, orderElements); - return true; - } - } else if (token == XContentParser.Token.VALUE_BOOLEAN) { - if (context.matchField(currentFieldName, TermsAggregationBuilder.SHOW_TERM_DOC_COUNT_ERROR)) { - otherOptions.put(TermsAggregationBuilder.SHOW_TERM_DOC_COUNT_ERROR, parser.booleanValue()); - return true; - } - } - return false; - } - - private OrderElement parseOrderParam(String aggregationName, XContentParser parser) throws IOException { - XContentParser.Token token; - OrderElement orderParam = null; - String orderKey = null; - boolean orderAsc = false; - while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { - if (token == XContentParser.Token.FIELD_NAME) { - orderKey = parser.currentName(); - } else if (token == XContentParser.Token.VALUE_STRING) { - String dir = parser.text(); - if ("asc".equalsIgnoreCase(dir)) { - orderAsc = true; - } else if ("desc".equalsIgnoreCase(dir)) { - orderAsc = false; - } else { - throw new ParsingException(parser.getTokenLocation(), - "Unknown terms order direction [" + dir + "] in terms aggregation [" + aggregationName + "]"); - } - } else { - throw new ParsingException(parser.getTokenLocation(), - "Unexpected token " + token + " for [order] in [" + aggregationName + "]."); - } - } - if (orderKey == null) { - throw new ParsingException(parser.getTokenLocation(), - "Must specify at least one field for [order] in [" + aggregationName + "]."); - } else { - orderParam = new OrderElement(orderKey, orderAsc); - } - return orderParam; - } - - static class OrderElement { - private final String key; - private final boolean asc; - - public OrderElement(String key, boolean asc) { - this.key = key; - this.asc = asc; - } - - public String key() { - return key; - } - - public boolean asc() { - return asc; - } - - } - - @Override - public TermsAggregator.BucketCountThresholds getDefaultBucketCountThresholds() { - return new TermsAggregator.BucketCountThresholds(TermsAggregationBuilder.DEFAULT_BUCKET_COUNT_THRESHOLDS); - } - - static Terms.Order resolveOrder(String key, boolean asc) { - if ("_term".equals(key)) { - return Order.term(asc); - } - if ("_count".equals(key)) { - return Order.count(asc); - } - return Order.aggregation(key, asc); - } -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/support/IncludeExclude.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/support/IncludeExclude.java index 98e7ebdbb19..942dc86ac33 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/support/IncludeExclude.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/support/IncludeExclude.java @@ -45,12 +45,12 @@ import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.DocValueFormat; import java.io.IOException; import java.nio.ByteBuffer; import java.util.HashSet; -import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.SortedSet; @@ -61,11 +61,85 @@ import java.util.TreeSet; * exclusion has precedence, where the {@code include} is evaluated first and then the {@code exclude}. */ public class IncludeExclude implements Writeable, ToXContent { - private static final ParseField INCLUDE_FIELD = new ParseField("include"); - private static final ParseField EXCLUDE_FIELD = new ParseField("exclude"); - private static final ParseField PATTERN_FIELD = new ParseField("pattern"); - private static final ParseField PARTITION_FIELD = new ParseField("partition"); - private static final ParseField NUM_PARTITIONS_FIELD = new ParseField("num_partitions"); + public static final ParseField INCLUDE_FIELD = new ParseField("include"); + public static final ParseField EXCLUDE_FIELD = new ParseField("exclude"); + public static final ParseField PATTERN_FIELD = new ParseField("pattern"); + public static final ParseField PARTITION_FIELD = new ParseField("partition"); + public static final ParseField NUM_PARTITIONS_FIELD = new ParseField("num_partitions"); + + // for parsing purposes only + // TODO: move all aggs to the same package so that this stuff could be pkg-private + public static IncludeExclude merge(IncludeExclude include, IncludeExclude exclude) { + if (include == null) { + return exclude; + } + if (exclude == null) { + return include; + } + if (include.isPartitionBased()) { + throw new IllegalArgumentException("Cannot specify any excludes when using a partition-based include"); + } + String includeMethod = include.isRegexBased() ? "regex" : "set"; + String excludeMethod = exclude.isRegexBased() ? "regex" : "set"; + if (includeMethod.equals(excludeMethod) == false) { + throw new IllegalArgumentException("Cannot mix a " + includeMethod + "-based include with a " + + excludeMethod + "-based method"); + } + if (include.isRegexBased()) { + return new IncludeExclude(include.include, exclude.exclude); + } else { + return new IncludeExclude(include.includeValues, exclude.excludeValues); + } + } + + public static IncludeExclude parseInclude(XContentParser parser, QueryParseContext context) throws IOException { + XContentParser.Token token = parser.currentToken(); + if (token == XContentParser.Token.VALUE_STRING) { + return new IncludeExclude(parser.text(), null); + } else if (token == XContentParser.Token.START_ARRAY) { + return new IncludeExclude(new TreeSet<>(parseArrayToSet(parser)), null); + } else if (token == XContentParser.Token.START_OBJECT) { + ParseFieldMatcher parseFieldMatcher = context.getParseFieldMatcher(); + String currentFieldName = null; + Integer partition = null, numPartitions = null; + while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { + // This "include":{"pattern":"foo.*"} syntax is undocumented since 2.0 + // Regexes should be "include":"foo.*" + if (parseFieldMatcher.match(currentFieldName, PATTERN_FIELD)) { + return new IncludeExclude(parser.text(), null); + } else if (parseFieldMatcher.match(currentFieldName, NUM_PARTITIONS_FIELD)) { + numPartitions = parser.intValue(); + } else if (parseFieldMatcher.match(currentFieldName, PARTITION_FIELD)) { + partition = parser.intValue(); + } else { + throw new ElasticsearchParseException( + "Unknown parameter in Include/Exclude clause: " + currentFieldName); + } + } + if (partition == null) { + throw new IllegalArgumentException("Missing [" + PARTITION_FIELD.getPreferredName() + + "] parameter for partition-based include"); + } + if (numPartitions == null) { + throw new IllegalArgumentException("Missing [" + NUM_PARTITIONS_FIELD.getPreferredName() + + "] parameter for partition-based include"); + } + return new IncludeExclude(partition, numPartitions); + } else { + throw new IllegalArgumentException("Unrecognized token for an include [" + token + "]"); + } + } + + public static IncludeExclude parseExclude(XContentParser parser, QueryParseContext context) throws IOException { + XContentParser.Token token = parser.currentToken(); + if (token == XContentParser.Token.VALUE_STRING) { + return new IncludeExclude(null, parser.text()); + } else if (token == XContentParser.Token.START_ARRAY) { + return new IncludeExclude(null, new TreeSet<>(parseArrayToSet(parser))); + } else { + throw new IllegalArgumentException("Unrecognized token for an exclude [" + token + "]"); + } + } // The includeValue and excludeValue ByteRefs which are the result of the parsing // process are converted into a LongFilter when used on numeric fields @@ -485,157 +559,18 @@ public class IncludeExclude implements Writeable, ToXContent { } - - - public static class Parser { - - public boolean token(String currentFieldName, XContentParser.Token token, XContentParser parser, - ParseFieldMatcher parseFieldMatcher, Map otherOptions) throws IOException { - - if (token == XContentParser.Token.VALUE_STRING) { - if (parseFieldMatcher.match(currentFieldName, INCLUDE_FIELD)) { - otherOptions.put(INCLUDE_FIELD, parser.text()); - } else if (parseFieldMatcher.match(currentFieldName, EXCLUDE_FIELD)) { - otherOptions.put(EXCLUDE_FIELD, parser.text()); - } else { - return false; - } - return true; - } - - if (token == XContentParser.Token.START_ARRAY) { - if (parseFieldMatcher.match(currentFieldName, INCLUDE_FIELD)) { - otherOptions.put(INCLUDE_FIELD, new TreeSet<>(parseArrayToSet(parser))); - return true; - } - if (parseFieldMatcher.match(currentFieldName, EXCLUDE_FIELD)) { - otherOptions.put(EXCLUDE_FIELD, new TreeSet<>(parseArrayToSet(parser))); - return true; - } - return false; - } - - if (token == XContentParser.Token.START_OBJECT) { - if (parseFieldMatcher.match(currentFieldName, INCLUDE_FIELD)) { - while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { - - // This "include":{"pattern":"foo.*"} syntax is undocumented since 2.0 - // Regexes should be "include":"foo.*" - if (token == XContentParser.Token.FIELD_NAME) { - currentFieldName = parser.currentName(); - } else if (token == XContentParser.Token.VALUE_STRING) { - if (parseFieldMatcher.match(currentFieldName, PATTERN_FIELD)) { - otherOptions.put(INCLUDE_FIELD, parser.text()); - } else { - throw new ElasticsearchParseException( - "Unknown string parameter in Include/Exclude clause: " + currentFieldName); - } - } else if (token == XContentParser.Token.VALUE_NUMBER) { - if (parseFieldMatcher.match(currentFieldName, NUM_PARTITIONS_FIELD)) { - otherOptions.put(NUM_PARTITIONS_FIELD, parser.intValue()); - } else if (parseFieldMatcher.match(currentFieldName, PARTITION_FIELD)) { - otherOptions.put(INCLUDE_FIELD, parser.intValue()); - } else { - throw new ElasticsearchParseException( - "Unknown numeric parameter in Include/Exclude clause: " + currentFieldName); - } - } - } - } else if (parseFieldMatcher.match(currentFieldName, EXCLUDE_FIELD)) { - while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { - if (token == XContentParser.Token.FIELD_NAME) { - currentFieldName = parser.currentName(); - } else if (token == XContentParser.Token.VALUE_STRING) { - if (parseFieldMatcher.match(currentFieldName, PATTERN_FIELD)) { - otherOptions.put(EXCLUDE_FIELD, parser.text()); - } - } - } - } else { - return false; - } - return true; - } - - return false; + private static Set parseArrayToSet(XContentParser parser) throws IOException { + final Set set = new HashSet<>(); + if (parser.currentToken() != XContentParser.Token.START_ARRAY) { + throw new ElasticsearchParseException("Missing start of array in include/exclude clause"); } - - private Set parseArrayToSet(XContentParser parser) throws IOException { - final Set set = new HashSet<>(); - if (parser.currentToken() != XContentParser.Token.START_ARRAY) { - throw new ElasticsearchParseException("Missing start of array in include/exclude clause"); - } - while (parser.nextToken() != XContentParser.Token.END_ARRAY) { - if (!parser.currentToken().isValue()) { - throw new ElasticsearchParseException("Array elements in include/exclude clauses should be string values"); - } - set.add(new BytesRef(parser.text())); - } - return set; - } - - public IncludeExclude createIncludeExclude(Map otherOptions) { - Object includeObject = otherOptions.get(INCLUDE_FIELD); - String include = null; - int partition = -1; - int numPartitions = -1; - SortedSet includeValues = null; - if (includeObject != null) { - if (includeObject instanceof String) { - include = (String) includeObject; - } else if (includeObject instanceof SortedSet) { - includeValues = (SortedSet) includeObject; - } else if (includeObject instanceof Integer) { - partition = (Integer) includeObject; - Object numPartitionsObject = otherOptions.get(NUM_PARTITIONS_FIELD); - if (numPartitionsObject instanceof Integer) { - numPartitions = (Integer) numPartitionsObject; - if (numPartitions < 2) { - throw new IllegalArgumentException(NUM_PARTITIONS_FIELD.getPreferredName() + " must be >1"); - } - if (partition < 0 || partition >= numPartitions) { - throw new IllegalArgumentException( - PARTITION_FIELD.getPreferredName() + " must be >=0 and <" + numPartitions); - } - } else { - if (numPartitionsObject == null) { - throw new IllegalArgumentException(NUM_PARTITIONS_FIELD.getPreferredName() + " parameter is missing"); - } - throw new IllegalArgumentException(NUM_PARTITIONS_FIELD.getPreferredName() + " value must be an integer"); - } - } - } - Object excludeObject = otherOptions.get(EXCLUDE_FIELD); - if (numPartitions >0 ){ - if(excludeObject!=null){ - throw new IllegalArgumentException("Partitioned Include cannot be used in combination with excludes"); - } - return new IncludeExclude(partition, numPartitions); - } - - - String exclude = null; - SortedSet excludeValues = null; - if (excludeObject != null) { - if (excludeObject instanceof String) { - exclude = (String) excludeObject; - } else if (excludeObject instanceof SortedSet) { - excludeValues = (SortedSet) excludeObject; - } - } - RegExp includePattern = include != null ? new RegExp(include) : null; - RegExp excludePattern = exclude != null ? new RegExp(exclude) : null; - if (includePattern != null || excludePattern != null) { - if (includeValues != null || excludeValues != null) { - throw new IllegalArgumentException("Can only use regular expression include/exclude or a set of values, not both"); - } - return new IncludeExclude(includePattern, excludePattern); - } else if (includeValues != null || excludeValues != null) { - return new IncludeExclude(includeValues, excludeValues); - } else { - return null; + while (parser.nextToken() != XContentParser.Token.END_ARRAY) { + if (!parser.currentToken().isValue()) { + throw new ElasticsearchParseException("Array elements in include/exclude clauses should be string values"); } + set.add(new BytesRef(parser.text())); } + return set; } public boolean isRegexBased() { diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/avg/AvgAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/avg/AvgAggregationBuilder.java index 37d67887822..726e17dce13 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/avg/AvgAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/avg/AvgAggregationBuilder.java @@ -21,8 +21,11 @@ package org.elasticsearch.search.aggregations.metrics.avg; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; +import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.support.AggregationContext; @@ -31,6 +34,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -39,6 +43,16 @@ public class AvgAggregationBuilder extends ValuesSourceAggregationBuilder.LeafOn public static final String NAME = "avg"; private static final Type TYPE = new Type(NAME); + private static final ObjectParser PARSER; + static { + PARSER = new ObjectParser<>(AvgAggregationBuilder.NAME); + ValuesSourceParserHelper.declareNumericFields(PARSER, true, true, false); + } + + public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + return PARSER.parse(context.parser(), new AvgAggregationBuilder(aggregationName), context); + } + public AvgAggregationBuilder(String name) { super(name, TYPE, ValuesSourceType.NUMERIC, ValueType.NUMERIC); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/avg/AvgParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/avg/AvgParser.java deleted file mode 100644 index 49c9e1bb3a0..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/avg/AvgParser.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.elasticsearch.search.aggregations.metrics.avg; - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.NumericValuesSourceParser; -import org.elasticsearch.search.aggregations.support.XContentParseContext; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; - -import java.io.IOException; -import java.util.Map; - -public class AvgParser extends NumericValuesSourceParser { - - public AvgParser() { - super(true, true, false); - } - - @Override - protected boolean token(String aggregationName, String currentFieldName, XContentParser.Token token, - XContentParseContext context, Map otherOptions) throws IOException { - return false; - } - - @Override - protected AvgAggregationBuilder createFactory(String aggregationName, ValuesSourceType valuesSourceType, - ValueType targetValueType, Map otherOptions) { - return new AvgAggregationBuilder(aggregationName); - } -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/cardinality/CardinalityAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/cardinality/CardinalityAggregationBuilder.java index d545cfce23e..79c3bbd0304 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/cardinality/CardinalityAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/cardinality/CardinalityAggregationBuilder.java @@ -22,8 +22,11 @@ package org.elasticsearch.search.aggregations.metrics.cardinality; import org.elasticsearch.common.ParseField; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; +import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.support.AggregationContext; @@ -31,6 +34,7 @@ import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -42,8 +46,21 @@ public final class CardinalityAggregationBuilder public static final String NAME = "cardinality"; private static final Type TYPE = new Type(NAME); + private static final ParseField REHASH = new ParseField("rehash").withAllDeprecated("no replacement - values will always be rehashed"); public static final ParseField PRECISION_THRESHOLD_FIELD = new ParseField("precision_threshold"); + private static final ObjectParser PARSER; + static { + PARSER = new ObjectParser<>(CardinalityAggregationBuilder.NAME); + ValuesSourceParserHelper.declareAnyFields(PARSER, true, false); + PARSER.declareLong(CardinalityAggregationBuilder::precisionThreshold, CardinalityAggregationBuilder.PRECISION_THRESHOLD_FIELD); + PARSER.declareLong((b, v) -> {/*ignore*/}, REHASH); + } + + public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + return PARSER.parse(context.parser(), new CardinalityAggregationBuilder(aggregationName, null), context); + } + private Long precisionThreshold = null; public CardinalityAggregationBuilder(String name, ValueType targetValueType) { diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/cardinality/CardinalityParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/cardinality/CardinalityParser.java deleted file mode 100644 index e40e0767994..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/cardinality/CardinalityParser.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.elasticsearch.search.aggregations.metrics.cardinality; - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.xcontent.XContentParser.Token; -import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.AnyValuesSourceParser; -import org.elasticsearch.search.aggregations.support.XContentParseContext; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; - -import java.io.IOException; -import java.util.Map; - - -public class CardinalityParser extends AnyValuesSourceParser { - - private static final ParseField REHASH = new ParseField("rehash").withAllDeprecated("no replacement - values will always be rehashed"); - - public CardinalityParser() { - super(true, false); - } - - @Override - protected CardinalityAggregationBuilder createFactory(String aggregationName, ValuesSourceType valuesSourceType, - ValueType targetValueType, Map otherOptions) { - CardinalityAggregationBuilder factory = new CardinalityAggregationBuilder(aggregationName, targetValueType); - Long precisionThreshold = (Long) otherOptions.get(CardinalityAggregationBuilder.PRECISION_THRESHOLD_FIELD); - if (precisionThreshold != null) { - factory.precisionThreshold(precisionThreshold); - } - return factory; - } - - @Override - protected boolean token(String aggregationName, String currentFieldName, Token token, - XContentParseContext context, Map otherOptions) throws IOException { - if (token.isValue()) { - if (context.matchField(currentFieldName, CardinalityAggregationBuilder.PRECISION_THRESHOLD_FIELD)) { - otherOptions.put(CardinalityAggregationBuilder.PRECISION_THRESHOLD_FIELD, context.getParser().longValue()); - return true; - } else if (context.matchField(currentFieldName, REHASH)) { - // ignore - return true; - } - } - return false; - } -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geobounds/GeoBoundsAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geobounds/GeoBoundsAggregationBuilder.java index c3565d794a8..c4202830ba2 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geobounds/GeoBoundsAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geobounds/GeoBoundsAggregationBuilder.java @@ -21,8 +21,11 @@ package org.elasticsearch.search.aggregations.metrics.geobounds; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; +import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.support.AggregationContext; @@ -30,6 +33,7 @@ import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -39,6 +43,17 @@ public class GeoBoundsAggregationBuilder extends ValuesSourceAggregationBuilder< public static final String NAME = "geo_bounds"; private static final Type TYPE = new Type(NAME); + private static final ObjectParser PARSER; + static { + PARSER = new ObjectParser<>(GeoBoundsAggregationBuilder.NAME); + ValuesSourceParserHelper.declareGeoFields(PARSER, false, false); + PARSER.declareBoolean(GeoBoundsAggregationBuilder::wrapLongitude, GeoBoundsAggregator.WRAP_LONGITUDE_FIELD); + } + + public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + return PARSER.parse(context.parser(), new GeoBoundsAggregationBuilder(aggregationName), context); + } + private boolean wrapLongitude = true; public GeoBoundsAggregationBuilder(String name) { diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geobounds/GeoBoundsParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geobounds/GeoBoundsParser.java deleted file mode 100644 index c42de23949b..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geobounds/GeoBoundsParser.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.elasticsearch.search.aggregations.metrics.geobounds; - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.common.xcontent.XContentParser.Token; -import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.GeoPointValuesSourceParser; -import org.elasticsearch.search.aggregations.support.XContentParseContext; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; - -import java.io.IOException; -import java.util.Map; - -public class GeoBoundsParser extends GeoPointValuesSourceParser { - - public GeoBoundsParser() { - super(false, false); - } - - @Override - protected GeoBoundsAggregationBuilder createFactory(String aggregationName, ValuesSourceType valuesSourceType, - ValueType targetValueType, Map otherOptions) { - GeoBoundsAggregationBuilder factory = new GeoBoundsAggregationBuilder(aggregationName); - Boolean wrapLongitude = (Boolean) otherOptions.get(GeoBoundsAggregator.WRAP_LONGITUDE_FIELD); - if (wrapLongitude != null) { - factory.wrapLongitude(wrapLongitude); - } - return factory; - } - - @Override - protected boolean token(String aggregationName, String currentFieldName, Token token, - XContentParseContext context, Map otherOptions) throws IOException { - if (token == XContentParser.Token.VALUE_BOOLEAN) { - if (context.matchField(currentFieldName, GeoBoundsAggregator.WRAP_LONGITUDE_FIELD)) { - otherOptions.put(GeoBoundsAggregator.WRAP_LONGITUDE_FIELD, context.getParser().booleanValue()); - return true; - } - } - return false; - } -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/GeoCentroidAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/GeoCentroidAggregationBuilder.java index 3c5208f8738..5f832f0df95 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/GeoCentroidAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/GeoCentroidAggregationBuilder.java @@ -21,8 +21,11 @@ package org.elasticsearch.search.aggregations.metrics.geocentroid; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; +import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.support.AggregationContext; @@ -30,6 +33,7 @@ import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -39,6 +43,16 @@ public class GeoCentroidAggregationBuilder public static final String NAME = "geo_centroid"; public static final Type TYPE = new Type(NAME); + private static final ObjectParser PARSER; + static { + PARSER = new ObjectParser<>(GeoCentroidAggregationBuilder.NAME); + ValuesSourceParserHelper.declareGeoFields(PARSER, true, false); + } + + public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + return PARSER.parse(context.parser(), new GeoCentroidAggregationBuilder(aggregationName), context); + } + public GeoCentroidAggregationBuilder(String name) { super(name, TYPE, ValuesSourceType.GEOPOINT, ValueType.GEOPOINT); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/GeoCentroidParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/GeoCentroidParser.java deleted file mode 100644 index 8e88a11c6b6..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/GeoCentroidParser.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.elasticsearch.search.aggregations.metrics.geocentroid; - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.xcontent.XContentParser.Token; -import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.GeoPointValuesSourceParser; -import org.elasticsearch.search.aggregations.support.XContentParseContext; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; - -import java.io.IOException; -import java.util.Map; - -/** - * Parser class for {@link org.elasticsearch.search.aggregations.metrics.geocentroid.GeoCentroidAggregator} - */ -public class GeoCentroidParser extends GeoPointValuesSourceParser { - - public GeoCentroidParser() { - super(true, false); - } - - @Override - protected boolean token(String aggregationName, String currentFieldName, Token token, - XContentParseContext context, Map otherOptions) throws IOException { - return false; - } - - @Override - protected GeoCentroidAggregationBuilder createFactory(String aggregationName, ValuesSourceType valuesSourceType, - ValueType targetValueType, Map otherOptions) { - return new GeoCentroidAggregationBuilder(aggregationName); - } -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/max/MaxAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/max/MaxAggregationBuilder.java index 117b360992a..60583a9080d 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/max/MaxAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/max/MaxAggregationBuilder.java @@ -21,8 +21,11 @@ package org.elasticsearch.search.aggregations.metrics.max; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; +import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.support.AggregationContext; @@ -31,6 +34,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -39,6 +43,16 @@ public class MaxAggregationBuilder extends ValuesSourceAggregationBuilder.LeafOn public static final String NAME = "max"; public static final Type TYPE = new Type(NAME); + private static final ObjectParser PARSER; + static { + PARSER = new ObjectParser<>(MaxAggregationBuilder.NAME); + ValuesSourceParserHelper.declareNumericFields(PARSER, true, true, false); + } + + public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + return PARSER.parse(context.parser(), new MaxAggregationBuilder(aggregationName), context); + } + public MaxAggregationBuilder(String name) { super(name, TYPE, ValuesSourceType.NUMERIC, ValueType.NUMERIC); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/max/MaxParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/max/MaxParser.java deleted file mode 100644 index 355b602b82c..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/max/MaxParser.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.elasticsearch.search.aggregations.metrics.max; - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.NumericValuesSourceParser; -import org.elasticsearch.search.aggregations.support.XContentParseContext; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; - -import java.io.IOException; -import java.util.Map; - -public class MaxParser extends NumericValuesSourceParser { - - public MaxParser() { - super(true, true, false); - } - - @Override - protected boolean token(String aggregationName, String currentFieldName, XContentParser.Token token, - XContentParseContext context, Map otherOptions) throws IOException { - return false; - } - - @Override - protected MaxAggregationBuilder createFactory(String aggregationName, ValuesSourceType valuesSourceType, - ValueType targetValueType, Map otherOptions) { - return new MaxAggregationBuilder(aggregationName); - } -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/min/MinAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/min/MinAggregationBuilder.java index 248b83db0c9..f56d4e91507 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/min/MinAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/min/MinAggregationBuilder.java @@ -21,16 +21,21 @@ package org.elasticsearch.search.aggregations.metrics.min; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; +import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; +import org.elasticsearch.search.aggregations.metrics.avg.AvgAggregationBuilder; import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -39,6 +44,16 @@ public class MinAggregationBuilder extends ValuesSourceAggregationBuilder.LeafOn public static final String NAME = "min"; private static final Type TYPE = new Type(NAME); + private static final ObjectParser PARSER; + static { + PARSER = new ObjectParser<>(AvgAggregationBuilder.NAME); + ValuesSourceParserHelper.declareNumericFields(PARSER, true, true, false); + } + + public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + return PARSER.parse(context.parser(), new MinAggregationBuilder(aggregationName), context); + } + public MinAggregationBuilder(String name) { super(name, TYPE, ValuesSourceType.NUMERIC, ValueType.NUMERIC); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/min/MinParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/min/MinParser.java deleted file mode 100644 index 13dd61f44b6..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/min/MinParser.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.elasticsearch.search.aggregations.metrics.min; - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.xcontent.XContentParser.Token; -import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.NumericValuesSourceParser; -import org.elasticsearch.search.aggregations.support.XContentParseContext; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; - -import java.io.IOException; -import java.util.Map; - -public class MinParser extends NumericValuesSourceParser { - - public MinParser() { - super(true, true, false); - } - - @Override - protected boolean token(String aggregationName, String currentFieldName, Token token, - XContentParseContext context, Map otherOptions) throws IOException { - return false; - } - - @Override - protected MinAggregationBuilder createFactory(String aggregationName, ValuesSourceType valuesSourceType, - ValueType targetValueType, Map otherOptions) { - return new MinAggregationBuilder(aggregationName); - } -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/AbstractPercentilesParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/AbstractPercentilesParser.java deleted file mode 100644 index 053a415c971..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/AbstractPercentilesParser.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.elasticsearch.search.aggregations.metrics.percentiles; - -import com.carrotsearch.hppc.DoubleArrayList; -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.common.xcontent.XContentParser.Token; -import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.NumericValuesSourceParser; -import org.elasticsearch.search.aggregations.support.XContentParseContext; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; -import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; - -import java.io.IOException; -import java.util.Map; - -public abstract class AbstractPercentilesParser extends NumericValuesSourceParser { - - public static final ParseField KEYED_FIELD = new ParseField("keyed"); - public static final ParseField METHOD_FIELD = new ParseField("method"); - public static final ParseField COMPRESSION_FIELD = new ParseField("compression"); - public static final ParseField NUMBER_SIGNIFICANT_DIGITS_FIELD = new ParseField("number_of_significant_value_digits"); - - public AbstractPercentilesParser(boolean formattable) { - super(true, formattable, false); - } - - @Override - protected boolean token(String aggregationName, String currentFieldName, Token token, - XContentParseContext context, Map otherOptions) throws IOException { - XContentParser parser = context.getParser(); - if (token == XContentParser.Token.START_ARRAY) { - if (context.matchField(currentFieldName, keysField())) { - DoubleArrayList values = new DoubleArrayList(10); - while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { - double value = parser.doubleValue(); - values.add(value); - } - double[] keys = values.toArray(); - otherOptions.put(keysField(), keys); - return true; - } else { - return false; - } - } else if (token == XContentParser.Token.VALUE_BOOLEAN) { - if (context.matchField(currentFieldName, KEYED_FIELD)) { - boolean keyed = parser.booleanValue(); - otherOptions.put(KEYED_FIELD, keyed); - return true; - } else { - return false; - } - } else if (token == XContentParser.Token.START_OBJECT) { - PercentilesMethod method = PercentilesMethod.resolveFromName(currentFieldName); - if (method == null) { - return false; - } else { - otherOptions.put(METHOD_FIELD, method); - switch (method) { - case TDIGEST: - while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { - if (token == XContentParser.Token.FIELD_NAME) { - currentFieldName = parser.currentName(); - } else if (token == XContentParser.Token.VALUE_NUMBER) { - if (context.matchField(currentFieldName, COMPRESSION_FIELD)) { - double compression = parser.doubleValue(); - otherOptions.put(COMPRESSION_FIELD, compression); - } else { - return false; - } - } else { - return false; - } - } - break; - case HDR: - while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { - if (token == XContentParser.Token.FIELD_NAME) { - currentFieldName = parser.currentName(); - } else if (token == XContentParser.Token.VALUE_NUMBER) { - if (context.matchField(currentFieldName, NUMBER_SIGNIFICANT_DIGITS_FIELD)) { - int numberOfSignificantValueDigits = parser.intValue(); - otherOptions.put(NUMBER_SIGNIFICANT_DIGITS_FIELD, numberOfSignificantValueDigits); - } else { - return false; - } - } else { - return false; - } - } - break; - } - return true; - } - } - return false; - } - - @Override - protected ValuesSourceAggregationBuilder createFactory(String aggregationName, ValuesSourceType valuesSourceType, - ValueType targetValueType, Map otherOptions) { - PercentilesMethod method = (PercentilesMethod) otherOptions.getOrDefault(METHOD_FIELD, PercentilesMethod.TDIGEST); - - double[] cdfValues = (double[]) otherOptions.get(keysField()); - Double compression = (Double) otherOptions.get(COMPRESSION_FIELD); - Integer numberOfSignificantValueDigits = (Integer) otherOptions.get(NUMBER_SIGNIFICANT_DIGITS_FIELD); - Boolean keyed = (Boolean) otherOptions.get(KEYED_FIELD); - return buildFactory(aggregationName, cdfValues, method, compression, numberOfSignificantValueDigits, keyed); - } - - protected abstract ValuesSourceAggregationBuilder buildFactory(String aggregationName, double[] cdfValues, - PercentilesMethod method, - Double compression, - Integer numberOfSignificantValueDigits, Boolean keyed); - - protected abstract ParseField keysField(); - -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/PercentileRanksAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/PercentileRanksAggregationBuilder.java index e4811902f89..7507a1e0d74 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/PercentileRanksAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/PercentileRanksAggregationBuilder.java @@ -19,9 +19,13 @@ package org.elasticsearch.search.aggregations.metrics.percentiles; +import org.elasticsearch.common.ParseField; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.query.QueryParseContext; +import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; @@ -34,6 +38,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder.LeafOnly; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -44,6 +49,59 @@ public class PercentileRanksAggregationBuilder extends LeafOnly TDIGEST_OPTIONS_PARSER = + new ObjectParser<>(PercentilesMethod.TDIGEST.getParseField().getPreferredName(), TDigestOptions::new); + static { + TDIGEST_OPTIONS_PARSER.declareDouble((opts, compression) -> opts.compression = compression, new ParseField("compression")); + } + + private static class HDROptions { + Integer numberOfSigDigits; + } + + private static final ObjectParser HDR_OPTIONS_PARSER = + new ObjectParser<>(PercentilesMethod.HDR.getParseField().getPreferredName(), HDROptions::new); + static { + HDR_OPTIONS_PARSER.declareInt((opts, numberOfSigDigits) -> opts.numberOfSigDigits = numberOfSigDigits, + new ParseField("number_of_significant_value_digits")); + } + + private static final ObjectParser PARSER; + static { + PARSER = new ObjectParser<>(PercentileRanksAggregationBuilder.NAME); + ValuesSourceParserHelper.declareNumericFields(PARSER, true, false, false); + + PARSER.declareDoubleArray( + (b, v) -> b.values(v.stream().mapToDouble(Double::doubleValue).toArray()), + VALUES_FIELD); + + PARSER.declareBoolean(PercentileRanksAggregationBuilder::keyed, PercentilesAggregationBuilder.KEYED_FIELD); + + PARSER.declareField((b, v) -> { + b.method(PercentilesMethod.TDIGEST); + if (v.compression != null) { + b.compression(v.compression); + } + }, TDIGEST_OPTIONS_PARSER::parse, PercentilesMethod.TDIGEST.getParseField(), ObjectParser.ValueType.OBJECT); + + PARSER.declareField((b, v) -> { + b.method(PercentilesMethod.HDR); + if (v.numberOfSigDigits != null) { + b.numberOfSignificantValueDigits(v.numberOfSigDigits); + } + }, HDR_OPTIONS_PARSER::parse, PercentilesMethod.HDR.getParseField(), ObjectParser.ValueType.OBJECT); + } + + public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + return PARSER.parse(context.parser(), new PercentileRanksAggregationBuilder(aggregationName), context); + } + private double[] values; private PercentilesMethod method = PercentilesMethod.TDIGEST; private int numberOfSignificantValueDigits = 3; @@ -174,19 +232,19 @@ public class PercentileRanksAggregationBuilder extends LeafOnly buildFactory(String aggregationName, double[] keys, PercentilesMethod method, - Double compression, Integer numberOfSignificantValueDigits, - Boolean keyed) { - PercentileRanksAggregationBuilder factory = new PercentileRanksAggregationBuilder(aggregationName); - if (keys != null) { - factory.values(keys); - } - if (method != null) { - factory.method(method); - } - if (compression != null) { - factory.compression(compression); - } - if (numberOfSignificantValueDigits != null) { - factory.numberOfSignificantValueDigits(numberOfSignificantValueDigits); - } - if (keyed != null) { - factory.keyed(keyed); - } - return factory; - } -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/PercentilesAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/PercentilesAggregationBuilder.java index 13d9b919f20..9c7a47d303b 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/PercentilesAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/PercentilesAggregationBuilder.java @@ -19,10 +19,14 @@ package org.elasticsearch.search.aggregations.metrics.percentiles; +import org.elasticsearch.common.ParseField; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; +import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.metrics.percentiles.hdr.HDRPercentilesAggregatorFactory; @@ -34,6 +38,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder.LeafOnly; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -44,7 +49,66 @@ public class PercentilesAggregationBuilder extends LeafOnly TDIGEST_OPTIONS_PARSER = + new ObjectParser<>(PercentilesMethod.TDIGEST.getParseField().getPreferredName(), TDigestOptions::new); + static { + TDIGEST_OPTIONS_PARSER.declareDouble((opts, compression) -> opts.compression = compression, COMPRESSION_FIELD); + } + + private static class HDROptions { + Integer numberOfSigDigits; + } + + private static final ObjectParser HDR_OPTIONS_PARSER = + new ObjectParser<>(PercentilesMethod.HDR.getParseField().getPreferredName(), HDROptions::new); + static { + HDR_OPTIONS_PARSER.declareInt( + (opts, numberOfSigDigits) -> opts.numberOfSigDigits = numberOfSigDigits, + NUMBER_SIGNIFICANT_DIGITS_FIELD); + } + + private static final ObjectParser PARSER; + static { + PARSER = new ObjectParser<>(PercentilesAggregationBuilder.NAME); + ValuesSourceParserHelper.declareNumericFields(PARSER, true, true, false); + + PARSER.declareDoubleArray( + (b, v) -> b.percentiles(v.stream().mapToDouble(Double::doubleValue).toArray()), + PERCENTS_FIELD); + + PARSER.declareBoolean(PercentilesAggregationBuilder::keyed, KEYED_FIELD); + + PARSER.declareField((b, v) -> { + b.method(PercentilesMethod.TDIGEST); + if (v.compression != null) { + b.compression(v.compression); + } + }, TDIGEST_OPTIONS_PARSER::parse, PercentilesMethod.TDIGEST.getParseField(), ObjectParser.ValueType.OBJECT); + + PARSER.declareField((b, v) -> { + b.method(PercentilesMethod.HDR); + if (v.numberOfSigDigits != null) { + b.numberOfSignificantValueDigits(v.numberOfSigDigits); + } + }, HDR_OPTIONS_PARSER::parse, PercentilesMethod.HDR.getParseField(), ObjectParser.ValueType.OBJECT); + } + + public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + return PARSER.parse(context.parser(), new PercentilesAggregationBuilder(aggregationName), context); + } + + private double[] percents = DEFAULT_PERCENTS; private PercentilesMethod method = PercentilesMethod.TDIGEST; private int numberOfSignificantValueDigits = 3; private double compression = 100.0; @@ -174,19 +238,19 @@ public class PercentilesAggregationBuilder extends LeafOnlynull if no {@link PercentilesMethod} exists for the name. - */ - public static PercentilesMethod resolveFromName(String name) { - for (PercentilesMethod method : values()) { - if (method.name.equalsIgnoreCase(name)) { - return method; - } - } - return null; + @Override + public String toString() { + return parseField.getPreferredName(); } } \ No newline at end of file diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/PercentilesParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/PercentilesParser.java deleted file mode 100644 index 237c66f28ce..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/PercentilesParser.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.elasticsearch.search.aggregations.metrics.percentiles; - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; -import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; - -public class PercentilesParser extends AbstractPercentilesParser { - - public static final ParseField PERCENTS_FIELD = new ParseField("percents"); - - public PercentilesParser() { - super(true); - } - - public static final double[] DEFAULT_PERCENTS = new double[] { 1, 5, 25, 50, 75, 95, 99 }; - - @Override - protected ParseField keysField() { - return PERCENTS_FIELD; - } - - @Override - protected ValuesSourceAggregationBuilder buildFactory(String aggregationName, double[] keys, PercentilesMethod method, - Double compression, Integer numberOfSignificantValueDigits, - Boolean keyed) { - PercentilesAggregationBuilder factory = new PercentilesAggregationBuilder(aggregationName); - if (keys != null) { - factory.percentiles(keys); - } - if (method != null) { - factory.method(method); - } - if (compression != null) { - factory.compression(compression); - } - if (numberOfSignificantValueDigits != null) { - factory.numberOfSignificantValueDigits(numberOfSignificantValueDigits); - } - if (keyed != null) { - factory.keyed(keyed); - } - return factory; - } -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/StatsAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/StatsAggregationBuilder.java index e26edbcc290..6e3b328a39c 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/StatsAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/StatsAggregationBuilder.java @@ -21,8 +21,11 @@ package org.elasticsearch.search.aggregations.metrics.stats; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; +import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.support.AggregationContext; @@ -31,6 +34,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -39,6 +43,16 @@ public class StatsAggregationBuilder extends ValuesSourceAggregationBuilder.Leaf public static final String NAME = "stats"; private static final Type TYPE = new Type(NAME); + private static final ObjectParser PARSER; + static { + PARSER = new ObjectParser<>(StatsAggregationBuilder.NAME); + ValuesSourceParserHelper.declareNumericFields(PARSER, true, true, false); + } + + public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + return PARSER.parse(context.parser(), new StatsAggregationBuilder(aggregationName), context); + } + public StatsAggregationBuilder(String name) { super(name, TYPE, ValuesSourceType.NUMERIC, ValueType.NUMERIC); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/StatsParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/StatsParser.java deleted file mode 100644 index bca81226125..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/StatsParser.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.elasticsearch.search.aggregations.metrics.stats; - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.NumericValuesSourceParser; -import org.elasticsearch.search.aggregations.support.XContentParseContext; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; - -import java.io.IOException; -import java.util.Map; - -public class StatsParser extends NumericValuesSourceParser { - - public StatsParser() { - super(true, true, false); - } - - @Override - protected boolean token(String aggregationName, String currentFieldName, XContentParser.Token token, - XContentParseContext context, Map otherOptions) throws IOException { - return false; - } - - @Override - protected StatsAggregationBuilder createFactory(String aggregationName, ValuesSourceType valuesSourceType, - ValueType targetValueType, Map otherOptions) { - return new StatsAggregationBuilder(aggregationName); - } -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/extended/ExtendedStatsAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/extended/ExtendedStatsAggregationBuilder.java index a20b8fa6764..dc33a9b8a86 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/extended/ExtendedStatsAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/extended/ExtendedStatsAggregationBuilder.java @@ -21,8 +21,11 @@ package org.elasticsearch.search.aggregations.metrics.stats.extended; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; +import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.support.AggregationContext; @@ -31,6 +34,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -41,6 +45,17 @@ public class ExtendedStatsAggregationBuilder public static final String NAME = "extended_stats"; public static final Type TYPE = new Type(NAME); + private static final ObjectParser PARSER; + static { + PARSER = new ObjectParser<>(ExtendedStatsAggregationBuilder.NAME); + ValuesSourceParserHelper.declareNumericFields(PARSER, true, true, false); + PARSER.declareDouble(ExtendedStatsAggregationBuilder::sigma, ExtendedStatsAggregator.SIGMA_FIELD); + } + + public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + return PARSER.parse(context.parser(), new ExtendedStatsAggregationBuilder(aggregationName), context); + } + private double sigma = 2.0; public ExtendedStatsAggregationBuilder(String name) { diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/extended/ExtendedStatsParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/extended/ExtendedStatsParser.java deleted file mode 100644 index 3e61d2ccab6..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/extended/ExtendedStatsParser.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.elasticsearch.search.aggregations.metrics.stats.extended; - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.NumericValuesSourceParser; -import org.elasticsearch.search.aggregations.support.XContentParseContext; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; - -import java.io.IOException; -import java.util.Map; - -public class ExtendedStatsParser extends NumericValuesSourceParser { - - public ExtendedStatsParser() { - super(true, true, false); - } - - @Override - protected boolean token(String aggregationName, String currentFieldName, XContentParser.Token token, - XContentParseContext context, Map otherOptions) throws IOException { - if (context.matchField(currentFieldName, ExtendedStatsAggregator.SIGMA_FIELD)) { - if (token.isValue()) { - otherOptions.put(ExtendedStatsAggregator.SIGMA_FIELD, context.getParser().doubleValue()); - return true; - } - } - return false; - } - - @Override - protected ExtendedStatsAggregationBuilder createFactory(String aggregationName, ValuesSourceType valuesSourceType, - ValueType targetValueType, Map otherOptions) { - ExtendedStatsAggregationBuilder factory = new ExtendedStatsAggregationBuilder(aggregationName); - Double sigma = (Double) otherOptions.get(ExtendedStatsAggregator.SIGMA_FIELD); - if (sigma != null) { - factory.sigma(sigma); - } - return factory; - } -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumAggregationBuilder.java index 2f285b146c1..8ad8fda6338 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumAggregationBuilder.java @@ -21,8 +21,11 @@ package org.elasticsearch.search.aggregations.metrics.sum; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; +import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.support.AggregationContext; @@ -31,6 +34,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -39,6 +43,16 @@ public class SumAggregationBuilder extends ValuesSourceAggregationBuilder.LeafOn public static final String NAME = "sum"; private static final Type TYPE = new Type(NAME); + private static final ObjectParser PARSER; + static { + PARSER = new ObjectParser<>(SumAggregationBuilder.NAME); + ValuesSourceParserHelper.declareNumericFields(PARSER, true, true, false); + } + + public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + return PARSER.parse(context.parser(), new SumAggregationBuilder(aggregationName), context); + } + public SumAggregationBuilder(String name) { super(name, TYPE, ValuesSourceType.NUMERIC, ValueType.NUMERIC); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumParser.java deleted file mode 100644 index ac2ec65b01e..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumParser.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.elasticsearch.search.aggregations.metrics.sum; - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.NumericValuesSourceParser; -import org.elasticsearch.search.aggregations.support.XContentParseContext; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; - -import java.io.IOException; -import java.util.Map; - -public class SumParser extends NumericValuesSourceParser { - - public SumParser() { - super(true, true, false); - } - - @Override - protected boolean token(String aggregationName, String currentFieldName, XContentParser.Token token, - XContentParseContext context, Map otherOptions) throws IOException { - return false; - } - - @Override - protected SumAggregationBuilder createFactory(String aggregationName, ValuesSourceType valuesSourceType, - ValueType targetValueType, Map otherOptions) { - return new SumAggregationBuilder(aggregationName); - } -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/valuecount/ValueCountAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/valuecount/ValueCountAggregationBuilder.java index ce0c1fd3e5b..9063c574a6a 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/valuecount/ValueCountAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/valuecount/ValueCountAggregationBuilder.java @@ -21,7 +21,10 @@ package org.elasticsearch.search.aggregations.metrics.valuecount; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; +import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.index.query.QueryParseContext; +import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; @@ -30,6 +33,7 @@ import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; import java.io.IOException; @@ -38,6 +42,16 @@ public class ValueCountAggregationBuilder extends ValuesSourceAggregationBuilder public static final String NAME = "value_count"; public static final Type TYPE = new Type(NAME); + private static final ObjectParser PARSER; + static { + PARSER = new ObjectParser<>(ValueCountAggregationBuilder.NAME); + ValuesSourceParserHelper.declareAnyFields(PARSER, true, true); + } + + public static AggregationBuilder parse(String aggregationName, QueryParseContext context) throws IOException { + return PARSER.parse(context.parser(), new ValueCountAggregationBuilder(aggregationName, null), context); + } + public ValueCountAggregationBuilder(String name, ValueType targetValueType) { super(name, TYPE, ValuesSourceType.ANY, targetValueType); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/valuecount/ValueCountParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/valuecount/ValueCountParser.java deleted file mode 100644 index 50505ef8f5f..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/valuecount/ValueCountParser.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.elasticsearch.search.aggregations.metrics.valuecount; - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.search.aggregations.support.AbstractValuesSourceParser.AnyValuesSourceParser; -import org.elasticsearch.search.aggregations.support.XContentParseContext; -import org.elasticsearch.search.aggregations.support.ValueType; -import org.elasticsearch.search.aggregations.support.ValuesSource; -import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; -import org.elasticsearch.search.aggregations.support.ValuesSourceType; - -import java.io.IOException; -import java.util.Map; - -public class ValueCountParser extends AnyValuesSourceParser { - - public ValueCountParser() { - super(true, true); - } - - @Override - protected boolean token(String aggregationName, String currentFieldName, XContentParser.Token token, - XContentParseContext context, Map otherOptions) throws IOException { - return false; - } - - @Override - protected ValuesSourceAggregationBuilder createFactory( - String aggregationName, ValuesSourceType valuesSourceType, ValueType targetValueType, Map otherOptions) { - return new ValueCountAggregationBuilder(aggregationName, targetValueType); - } -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/support/AbstractValuesSourceParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/support/AbstractValuesSourceParser.java deleted file mode 100644 index 7e8c5c1b271..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/support/AbstractValuesSourceParser.java +++ /dev/null @@ -1,216 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.elasticsearch.search.aggregations.support; - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.ParsingException; -import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.index.query.QueryParseContext; -import org.elasticsearch.script.Script; -import org.elasticsearch.search.aggregations.Aggregator; -import org.joda.time.DateTimeZone; - -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - -public abstract class AbstractValuesSourceParser - implements Aggregator.Parser { - static final ParseField TIME_ZONE = new ParseField("time_zone"); - - public abstract static class AnyValuesSourceParser extends AbstractValuesSourceParser { - - protected AnyValuesSourceParser(boolean scriptable, boolean formattable) { - super(scriptable, formattable, false, ValuesSourceType.ANY, null); - } - } - - public abstract static class NumericValuesSourceParser extends AbstractValuesSourceParser { - - protected NumericValuesSourceParser(boolean scriptable, boolean formattable, boolean timezoneAware) { - super(scriptable, formattable, timezoneAware, ValuesSourceType.NUMERIC, ValueType.NUMERIC); - } - } - - public abstract static class BytesValuesSourceParser extends AbstractValuesSourceParser { - - protected BytesValuesSourceParser(boolean scriptable, boolean formattable) { - super(scriptable, formattable, false, ValuesSourceType.BYTES, ValueType.STRING); - } - } - - public abstract static class GeoPointValuesSourceParser extends AbstractValuesSourceParser { - - protected GeoPointValuesSourceParser(boolean scriptable, boolean formattable) { - super(scriptable, formattable, false, ValuesSourceType.GEOPOINT, ValueType.GEOPOINT); - } - } - - private boolean scriptable = true; - private boolean formattable = false; - private boolean timezoneAware = false; - private ValuesSourceType valuesSourceType = null; - private ValueType targetValueType = null; - - private AbstractValuesSourceParser(boolean scriptable, boolean formattable, boolean timezoneAware, ValuesSourceType valuesSourceType, - ValueType targetValueType) { - this.timezoneAware = timezoneAware; - this.valuesSourceType = valuesSourceType; - this.targetValueType = targetValueType; - this.scriptable = scriptable; - this.formattable = formattable; - } - - @Override - public final ValuesSourceAggregationBuilder parse(String aggregationName, QueryParseContext context) - throws IOException { - - XContentParser parser = context.parser(); - String field = null; - Script script = null; - ValueType valueType = null; - String format = null; - Object missing = null; - DateTimeZone timezone = null; - Map otherOptions = new HashMap<>(); - XContentParseContext parserContext = - new XContentParseContext(parser, context.getParseFieldMatcher(), context.getDefaultScriptLanguage()); - - XContentParser.Token token; - String currentFieldName = null; - while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { - if (token == XContentParser.Token.FIELD_NAME) { - currentFieldName = parser.currentName(); - } else if ("missing".equals(currentFieldName) && token.isValue()) { - missing = parser.objectText(); - } else if (timezoneAware && context.getParseFieldMatcher().match(currentFieldName, TIME_ZONE)) { - if (token == XContentParser.Token.VALUE_STRING) { - timezone = DateTimeZone.forID(parser.text()); - } else if (token == XContentParser.Token.VALUE_NUMBER) { - timezone = DateTimeZone.forOffsetHours(parser.intValue()); - } else { - throw new ParsingException(parser.getTokenLocation(), - "Unexpected token " + token + " [" + currentFieldName + "] in [" + aggregationName + "]."); - } - } else if (token == XContentParser.Token.VALUE_STRING) { - if ("field".equals(currentFieldName)) { - field = parser.text(); - } else if (formattable && "format".equals(currentFieldName)) { - format = parser.text(); - } else if (scriptable) { - if ("value_type".equals(currentFieldName) || "valueType".equals(currentFieldName)) { - valueType = ValueType.resolveForScript(parser.text()); - if (targetValueType != null && valueType.isNotA(targetValueType)) { - throw new ParsingException(parser.getTokenLocation(), - "Aggregation [" + aggregationName + "] was configured with an incompatible value type [" - + valueType + "]. It can only work on value of type [" - + targetValueType + "]"); - } - } else if (!token(aggregationName, currentFieldName, token, parserContext, otherOptions)) { - throw new ParsingException(parser.getTokenLocation(), - "Unexpected token " + token + " [" + currentFieldName + "] in [" + aggregationName + "]."); - } - } else if (!token(aggregationName, currentFieldName, token, parserContext, otherOptions)) { - throw new ParsingException(parser.getTokenLocation(), - "Unexpected token " + token + " [" + currentFieldName + "] in [" + aggregationName + "]."); - } - } else if (scriptable && token == XContentParser.Token.START_OBJECT) { - if (context.getParseFieldMatcher().match(currentFieldName, Script.SCRIPT_PARSE_FIELD)) { - script = Script.parse(parser, context.getParseFieldMatcher(), context.getDefaultScriptLanguage()); - } else if (!token(aggregationName, currentFieldName, token, parserContext, otherOptions)) { - throw new ParsingException(parser.getTokenLocation(), - "Unexpected token " + token + " [" + currentFieldName + "] in [" + aggregationName + "]."); - } - } else if (!token(aggregationName, currentFieldName, token, parserContext, otherOptions)) { - throw new ParsingException(parser.getTokenLocation(), - "Unexpected token " + token + " [" + currentFieldName + "] in [" + aggregationName + "]."); - } - } - - ValuesSourceAggregationBuilder factory = createFactory(aggregationName, this.valuesSourceType, this.targetValueType, - otherOptions); - if (field != null) { - factory.field(field); - } - if (script != null) { - factory.script(script); - } - if (valueType != null) { - factory.valueType(valueType); - } - if (format != null) { - factory.format(format); - } - if (missing != null) { - factory.missing(missing); - } - if (timezone != null) { - factory.timeZone(timezone); - } - return factory; - } - - /** - * Creates a {@link ValuesSourceAggregationBuilder} from the information - * gathered by the subclass. Options parsed in - * {@link AbstractValuesSourceParser} itself will be added to the factory - * after it has been returned by this method. - * - * @param aggregationName - * the name of the aggregation - * @param valuesSourceType - * the type of the {@link ValuesSource} - * @param targetValueType - * the target type of the final value output by the aggregation - * @param otherOptions - * a {@link Map} containing the extra options parsed by the - * {@link #token(String, String, XContentParser.Token, XContentParseContext, Map)} - * method - * @return the created factory - */ - protected abstract ValuesSourceAggregationBuilder createFactory(String aggregationName, ValuesSourceType valuesSourceType, - ValueType targetValueType, Map otherOptions); - - /** - * Allows subclasses of {@link AbstractValuesSourceParser} to parse extra - * parameters and store them in a {@link Map} which will later be passed to - * {@link #createFactory(String, ValuesSourceType, ValueType, Map)}. - * - * @param aggregationName - * the name of the aggregation - * @param currentFieldName - * the name of the current field being parsed - * @param token - * the current token for the parser - * @param context - * the query context - * @param otherOptions - * a {@link Map} of options to be populated by successive calls - * to this method which will then be passed to the - * {@link #createFactory(String, ValuesSourceType, ValueType, Map)} - * method - * @return true if the current token was correctly parsed, - * false otherwise - * @throws IOException - * if an error occurs whilst parsing - */ - protected abstract boolean token(String aggregationName, String currentFieldName, XContentParser.Token token, - XContentParseContext context, Map otherOptions) throws IOException; -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/support/GeoPointParser.java b/core/src/main/java/org/elasticsearch/search/aggregations/support/GeoPointParser.java deleted file mode 100644 index 5d26cc1b359..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/support/GeoPointParser.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.elasticsearch.search.aggregations.support; - - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.ParseFieldMatcher; -import org.elasticsearch.common.ParsingException; -import org.elasticsearch.common.geo.GeoPoint; -import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.search.aggregations.InternalAggregation; - -import java.io.IOException; -import java.util.Map; - -public class GeoPointParser { - - private final InternalAggregation.Type aggType; - private final ParseField field; - - public GeoPointParser(InternalAggregation.Type aggType, ParseField field) { - this.aggType = aggType; - this.field = field; - } - - public boolean token(String aggName, String currentFieldName, XContentParser.Token token, XContentParser parser, - ParseFieldMatcher parseFieldMatcher, Map otherOptions) throws IOException { - if (!parseFieldMatcher.match(currentFieldName, field)) { - return false; - } - if (token == XContentParser.Token.VALUE_STRING) { - GeoPoint point = new GeoPoint(); - point.resetFromString(parser.text()); - otherOptions.put(field, point); - return true; - } - if (token == XContentParser.Token.START_ARRAY) { - double lat = Double.NaN; - double lon = Double.NaN; - while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { - if (Double.isNaN(lon)) { - lon = parser.doubleValue(); - } else if (Double.isNaN(lat)) { - lat = parser.doubleValue(); - } else { - throw new ParsingException(parser.getTokenLocation(), "malformed [" + currentFieldName + "] geo point array in [" - + aggName + "] " + aggType + " aggregation. a geo point array must be of the form [lon, lat]"); - } - } - GeoPoint point = new GeoPoint(lat, lon); - otherOptions.put(field, point); - return true; - } - if (token == XContentParser.Token.START_OBJECT) { - double lat = Double.NaN; - double lon = Double.NaN; - while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { - if (token == XContentParser.Token.FIELD_NAME) { - currentFieldName = parser.currentName(); - } else if (token == XContentParser.Token.VALUE_NUMBER) { - if ("lat".equals(currentFieldName)) { - lat = parser.doubleValue(); - } else if ("lon".equals(currentFieldName)) { - lon = parser.doubleValue(); - } - } - } - if (Double.isNaN(lat) || Double.isNaN(lon)) { - throw new ParsingException(parser.getTokenLocation(), - "malformed [" + currentFieldName + "] geo point object. either [lat] or [lon] (or both) are " + "missing in [" - + aggName + "] " + aggType + " aggregation"); - } - GeoPoint point = new GeoPoint(lat, lon); - otherOptions.put(field, point); - return true; - } - return false; - } - -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceParserHelper.java b/core/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceParserHelper.java new file mode 100644 index 00000000000..4116d30a658 --- /dev/null +++ b/core/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceParserHelper.java @@ -0,0 +1,102 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.search.aggregations.support; + +import org.elasticsearch.common.ParseField; +import org.elasticsearch.common.ParsingException; +import org.elasticsearch.common.xcontent.ObjectParser; +import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.index.query.QueryParseContext; +import org.elasticsearch.script.Script; +import org.joda.time.DateTimeZone; + +public final class ValuesSourceParserHelper { + static final ParseField TIME_ZONE = new ParseField("time_zone"); + + private ValuesSourceParserHelper() {} // utility class, no instantiation + + public static void declareAnyFields( + ObjectParser, QueryParseContext> objectParser, + boolean scriptable, boolean formattable) { + declareFields(objectParser, scriptable, formattable, false, ValuesSourceType.ANY, null); + } + + public static void declareNumericFields( + ObjectParser, QueryParseContext> objectParser, + boolean scriptable, boolean formattable, boolean timezoneAware) { + declareFields(objectParser, scriptable, formattable, timezoneAware, ValuesSourceType.NUMERIC, ValueType.NUMERIC); + } + + public static void declareBytesFields( + ObjectParser, QueryParseContext> objectParser, + boolean scriptable, boolean formattable) { + declareFields(objectParser, scriptable, formattable, false, ValuesSourceType.BYTES, ValueType.STRING); + } + + public static void declareGeoFields( + ObjectParser, QueryParseContext> objectParser, + boolean scriptable, boolean formattable) { + declareFields(objectParser, scriptable, formattable, false, ValuesSourceType.GEOPOINT, ValueType.GEOPOINT); + } + + private static void declareFields( + ObjectParser, QueryParseContext> objectParser, + boolean scriptable, boolean formattable, boolean timezoneAware, ValuesSourceType valuesSourceType, ValueType targetValueType) { + + + objectParser.declareField(ValuesSourceAggregationBuilder::field, XContentParser::text, + new ParseField("field"), ObjectParser.ValueType.STRING); + + objectParser.declareField(ValuesSourceAggregationBuilder::missing, XContentParser::objectText, + new ParseField("missing"), ObjectParser.ValueType.VALUE); + + if (formattable) { + objectParser.declareField(ValuesSourceAggregationBuilder::format, XContentParser::text, + new ParseField("format"), ObjectParser.ValueType.STRING); + } + + if (scriptable) { + objectParser.declareField(ValuesSourceAggregationBuilder::script, org.elasticsearch.script.Script::parse, + Script.SCRIPT_PARSE_FIELD, ObjectParser.ValueType.OBJECT_OR_STRING); + + objectParser.declareField(ValuesSourceAggregationBuilder::valueType, p -> { + ValueType valueType = ValueType.resolveForScript(p.text()); + if (targetValueType != null && valueType.isNotA(targetValueType)) { + throw new ParsingException(p.getTokenLocation(), + "Aggregation [" + objectParser.getName() + "] was configured with an incompatible value type [" + + valueType + "]. It can only work on value of type [" + + targetValueType + "]"); + } + return valueType; + }, new ParseField("value_type", "valueType"), ObjectParser.ValueType.STRING); + } + + if (timezoneAware) { + objectParser.declareField(ValuesSourceAggregationBuilder::timeZone, p -> { + if (p.currentToken() == XContentParser.Token.VALUE_STRING) { + return DateTimeZone.forID(p.text()); + } else { + return DateTimeZone.forOffsetHours(p.intValue()); + } + }, TIME_ZONE, ObjectParser.ValueType.LONG); + } + } + +} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/support/XContentParseContext.java b/core/src/main/java/org/elasticsearch/search/aggregations/support/XContentParseContext.java deleted file mode 100644 index 07c33f1f473..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/support/XContentParseContext.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.elasticsearch.search.aggregations.support; - -import org.elasticsearch.common.ParseField; -import org.elasticsearch.common.ParseFieldMatcher; -import org.elasticsearch.common.xcontent.XContentParser; - -/** - * A minimal context for parsing xcontent into aggregation builders. - * Only a minimal set of dependencies and settings are available. - */ -public final class XContentParseContext { - - private final XContentParser parser; - - private final ParseFieldMatcher parseFieldMatcher; - - private final String defaultScriptLanguage; - - public XContentParseContext(XContentParser parser, ParseFieldMatcher parseFieldMatcher, String defaultScriptLanguage) { - this.parser = parser; - this.parseFieldMatcher = parseFieldMatcher; - this.defaultScriptLanguage = defaultScriptLanguage; - } - - public XContentParser getParser() { - return parser; - } - - public ParseFieldMatcher getParseFieldMatcher() { - return parseFieldMatcher; - } - - public String getDefaultScriptLanguage() { - return defaultScriptLanguage; - } - - /** - * Returns whether the parse field we're looking for matches with the found field name. - * - * Helper that delegates to {@link ParseFieldMatcher#match(String, ParseField)}. - */ - public boolean matchField(String fieldName, ParseField parseField) { - return parseFieldMatcher.match(fieldName, parseField); - } - -} diff --git a/core/src/test/java/org/elasticsearch/common/xcontent/ConstructingObjectParserTests.java b/core/src/test/java/org/elasticsearch/common/xcontent/ConstructingObjectParserTests.java index cad712951d9..d1fefa81d40 100644 --- a/core/src/test/java/org/elasticsearch/common/xcontent/ConstructingObjectParserTests.java +++ b/core/src/test/java/org/elasticsearch/common/xcontent/ConstructingObjectParserTests.java @@ -25,7 +25,6 @@ import org.elasticsearch.common.ParseFieldMatcher; import org.elasticsearch.common.ParseFieldMatcherSupplier; import org.elasticsearch.common.ParsingException; import org.elasticsearch.common.bytes.BytesReference; -import org.elasticsearch.common.xcontent.AbstractObjectParser.ContextParser; import org.elasticsearch.common.xcontent.AbstractObjectParser.NoContextParser; import org.elasticsearch.test.ESTestCase; import org.hamcrest.Matcher; diff --git a/core/src/test/java/org/elasticsearch/common/xcontent/ObjectParserTests.java b/core/src/test/java/org/elasticsearch/common/xcontent/ObjectParserTests.java index 733d3d1775d..65b7bd8b656 100644 --- a/core/src/test/java/org/elasticsearch/common/xcontent/ObjectParserTests.java +++ b/core/src/test/java/org/elasticsearch/common/xcontent/ObjectParserTests.java @@ -22,7 +22,6 @@ import org.elasticsearch.common.ParseField; import org.elasticsearch.common.ParseFieldMatcher; import org.elasticsearch.common.ParseFieldMatcherSupplier; import org.elasticsearch.common.ParsingException; -import org.elasticsearch.common.xcontent.AbstractObjectParser.ContextParser; import org.elasticsearch.common.xcontent.AbstractObjectParser.NoContextParser; import org.elasticsearch.common.xcontent.ObjectParser.NamedObjectParser; import org.elasticsearch.common.xcontent.ObjectParser.ValueType; diff --git a/core/src/test/java/org/elasticsearch/search/SearchModuleTests.java b/core/src/test/java/org/elasticsearch/search/SearchModuleTests.java index f0dde1804d1..849bec3d782 100644 --- a/core/src/test/java/org/elasticsearch/search/SearchModuleTests.java +++ b/core/src/test/java/org/elasticsearch/search/SearchModuleTests.java @@ -42,7 +42,6 @@ import org.elasticsearch.search.aggregations.bucket.significant.heuristics.ChiSq import org.elasticsearch.search.aggregations.bucket.significant.heuristics.SignificanceHeuristic; import org.elasticsearch.search.aggregations.bucket.significant.heuristics.SignificanceHeuristicParser; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder; -import org.elasticsearch.search.aggregations.bucket.terms.TermsParser; import org.elasticsearch.search.aggregations.pipeline.AbstractPipelineAggregationBuilder; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; import org.elasticsearch.search.aggregations.pipeline.derivative.DerivativePipelineAggregationBuilder; @@ -149,7 +148,8 @@ public class SearchModuleTests extends ModuleTestCase { SearchPlugin registersDupeAggregation = new SearchPlugin() { public List getAggregations() { - return singletonList(new AggregationSpec(TermsAggregationBuilder.NAME, TermsAggregationBuilder::new, new TermsParser())); + return singletonList(new AggregationSpec(TermsAggregationBuilder.NAME, TermsAggregationBuilder::new, + TermsAggregationBuilder::parse)); } }; expectThrows(IllegalArgumentException.class, () -> new SearchModule(Settings.EMPTY, false, diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/GeoDistanceRangeTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/GeoDistanceRangeTests.java index 65b80537c7a..8a71739555f 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/GeoDistanceRangeTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/GeoDistanceRangeTests.java @@ -24,7 +24,7 @@ import org.elasticsearch.common.geo.GeoPoint; import org.elasticsearch.common.unit.DistanceUnit; import org.elasticsearch.search.aggregations.BaseAggregationTestCase; import org.elasticsearch.search.aggregations.bucket.range.geodistance.GeoDistanceAggregationBuilder; -import org.elasticsearch.search.aggregations.bucket.range.geodistance.GeoDistanceParser.Range; +import org.elasticsearch.search.aggregations.bucket.range.geodistance.GeoDistanceAggregationBuilder.Range; import org.elasticsearch.test.geo.RandomShapeGenerator; public class GeoDistanceRangeTests extends BaseAggregationTestCase { diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java index 8852716377e..c8cd235aede 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsSignificanceScoreIT.java @@ -26,6 +26,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.index.query.QueryBuilders; +import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryShardException; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.plugins.ScriptPlugin; @@ -48,7 +49,6 @@ import org.elasticsearch.search.aggregations.bucket.significant.heuristics.Signi import org.elasticsearch.search.aggregations.bucket.significant.heuristics.SignificanceHeuristicParser; import org.elasticsearch.search.aggregations.bucket.terms.StringTerms; import org.elasticsearch.search.aggregations.bucket.terms.Terms; -import org.elasticsearch.search.aggregations.support.XContentParseContext; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.test.search.aggregations.bucket.SharedSignificantTermsTestMethods; @@ -237,9 +237,9 @@ public class SignificantTermsSignificanceScoreIT extends ESIntegTestCase { return subsetFreq / subsetSize > supersetFreq / supersetSize ? 2.0 : 1.0; } - public static SignificanceHeuristic parse(XContentParseContext context) + public static SignificanceHeuristic parse(QueryParseContext context) throws IOException, QueryShardException { - context.getParser().nextToken(); + context.parser().nextToken(); return new SimpleHeuristic(); } } diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsTests.java index c8434924a38..29c8d74f984 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/SignificantTermsTests.java @@ -88,7 +88,7 @@ public class SignificantTermsTests extends BaseAggregationTestCase factory.missing("MISSING"); } if (randomBoolean()) { - factory.bucketCountThresholds().setRequiredSize(randomIntBetween(1, Integer.MAX_VALUE)); + factory.size(randomIntBetween(1, Integer.MAX_VALUE)); } if (randomBoolean()) { - factory.bucketCountThresholds().setShardSize(randomIntBetween(1, Integer.MAX_VALUE)); + factory.shardSize(randomIntBetween(1, Integer.MAX_VALUE)); } if (randomBoolean()) { int minDocCount = randomInt(4); @@ -83,12 +83,12 @@ public class TermsTests extends BaseAggregationTestCase case 2: case 3: case 4: - minDocCount = randomInt(); + minDocCount = randomIntBetween(0, Integer.MAX_VALUE); break; default: fail(); } - factory.bucketCountThresholds().setMinDocCount(minDocCount); + factory.minDocCount(minDocCount); } if (randomBoolean()) { int shardMinDocCount = randomInt(4); @@ -99,12 +99,12 @@ public class TermsTests extends BaseAggregationTestCase case 2: case 3: case 4: - shardMinDocCount = randomInt(); + shardMinDocCount = randomIntBetween(0, Integer.MAX_VALUE); break; default: fail(); } - factory.bucketCountThresholds().setShardMinDocCount(shardMinDocCount); + factory.shardMinDocCount(shardMinDocCount); } if (randomBoolean()) { factory.collectMode(randomFrom(SubAggCollectionMode.values())); diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridParserTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridParserTests.java index 9f2ecfec3e9..c75fac3606e 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridParserTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridParserTests.java @@ -26,6 +26,8 @@ import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.test.ESTestCase; +import static org.hamcrest.Matchers.instanceOf; + public class GeoHashGridParserTests extends ESTestCase { private static final IndicesQueriesRegistry mockRegistry = new IndicesQueriesRegistry(); @@ -37,9 +39,8 @@ public class GeoHashGridParserTests extends ESTestCase { stParser, ParseFieldMatcher.STRICT); XContentParser.Token token = stParser.nextToken(); assertSame(XContentParser.Token.START_OBJECT, token); - GeoHashGridParser parser = new GeoHashGridParser(); // can create a factory - assertNotNull(parser.parse("geohash_grid", parseContext)); + assertNotNull(GeoGridAggregationBuilder.parse("geohash_grid", parseContext)); } public void testParseValidFromStrings() throws Exception { @@ -49,9 +50,8 @@ public class GeoHashGridParserTests extends ESTestCase { QueryParseContext parseContext = new QueryParseContext(mockRegistry, stParser, ParseFieldMatcher.STRICT); XContentParser.Token token = stParser.nextToken(); assertSame(XContentParser.Token.START_OBJECT, token); - GeoHashGridParser parser = new GeoHashGridParser(); // can create a factory - assertNotNull(parser.parse("geohash_grid", parseContext)); + assertNotNull(GeoGridAggregationBuilder.parse("geohash_grid", parseContext)); } public void testParseErrorOnNonIntPrecision() throws Exception { @@ -59,12 +59,12 @@ public class GeoHashGridParserTests extends ESTestCase { QueryParseContext parseContext = new QueryParseContext(mockRegistry, stParser, ParseFieldMatcher.STRICT); XContentParser.Token token = stParser.nextToken(); assertSame(XContentParser.Token.START_OBJECT, token); - GeoHashGridParser parser = new GeoHashGridParser(); try { - parser.parse("geohash_grid", parseContext); + GeoGridAggregationBuilder.parse("geohash_grid", parseContext); fail(); - } catch (NumberFormatException ex) { - assertEquals("For input string: \"2.0\"", ex.getMessage()); + } catch (ParsingException ex) { + assertThat(ex.getCause(), instanceOf(NumberFormatException.class)); + assertEquals("For input string: \"2.0\"", ex.getCause().getMessage()); } } @@ -73,12 +73,11 @@ public class GeoHashGridParserTests extends ESTestCase { QueryParseContext parseContext = new QueryParseContext(mockRegistry, stParser, ParseFieldMatcher.STRICT); XContentParser.Token token = stParser.nextToken(); assertSame(XContentParser.Token.START_OBJECT, token); - GeoHashGridParser parser = new GeoHashGridParser(); try { - parser.parse("geohash_grid", parseContext); + GeoGridAggregationBuilder.parse("geohash_grid", parseContext); fail(); - } catch (ParsingException ex) { - assertEquals("Unexpected token VALUE_BOOLEAN [precision] in [geohash_grid].", ex.getMessage()); + } catch (IllegalArgumentException ex) { + assertEquals("[geohash_grid] precision doesn't support values of type: VALUE_BOOLEAN", ex.getMessage()); } } @@ -87,12 +86,12 @@ public class GeoHashGridParserTests extends ESTestCase { QueryParseContext parseContext = new QueryParseContext(mockRegistry, stParser, ParseFieldMatcher.STRICT); XContentParser.Token token = stParser.nextToken(); assertSame(XContentParser.Token.START_OBJECT, token); - GeoHashGridParser parser = new GeoHashGridParser(); try { - parser.parse("geohash_grid", parseContext); + GeoGridAggregationBuilder.parse("geohash_grid", parseContext); fail(); - } catch (IllegalArgumentException ex) { - assertEquals("Invalid geohash aggregation precision of 13. Must be between 1 and 12.", ex.getMessage()); + } catch (ParsingException ex) { + assertThat(ex.getCause(), instanceOf(IllegalArgumentException.class)); + assertEquals("Invalid geohash aggregation precision of 13. Must be between 1 and 12.", ex.getCause().getMessage()); } } } \ No newline at end of file diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificanceHeuristicTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificanceHeuristicTests.java index 93c2c1edd00..e46a61657df 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificanceHeuristicTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/significant/SignificanceHeuristicTests.java @@ -19,9 +19,9 @@ package org.elasticsearch.search.aggregations.bucket.significant; import org.apache.lucene.util.BytesRef; -import org.elasticsearch.ElasticsearchParseException; import org.elasticsearch.Version; import org.elasticsearch.common.ParseFieldMatcher; +import org.elasticsearch.common.ParsingException; import org.elasticsearch.common.io.stream.InputStreamStreamInput; import org.elasticsearch.common.io.stream.NamedWriteableAwareStreamInput; import org.elasticsearch.common.io.stream.NamedWriteableRegistry; @@ -68,6 +68,7 @@ import static java.util.Collections.emptyMap; import static java.util.Collections.singletonList; import static org.elasticsearch.search.aggregations.AggregationBuilders.significantTerms; import static org.elasticsearch.test.VersionUtils.randomVersion; +import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.greaterThan; import static org.hamcrest.Matchers.greaterThanOrEqualTo; @@ -272,10 +273,10 @@ public class SignificanceHeuristicTests extends ESTestCase { "{\"field\":\"text\", " + faultyHeuristicDefinition + ",\"min_doc_count\":200}"); QueryParseContext parseContext = new QueryParseContext(registry, stParser, ParseFieldMatcher.STRICT); stParser.nextToken(); - new SignificantTermsParser(significanceHeuristicParserRegistry, registry).parse("testagg", parseContext); + SignificantTermsAggregationBuilder.getParser(significanceHeuristicParserRegistry).parse("testagg", parseContext); fail(); - } catch (ElasticsearchParseException e) { - assertTrue(e.getMessage().contains(expectedError)); + } catch (ParsingException e) { + assertThat(e.getCause().getMessage(), containsString(expectedError)); } } @@ -295,8 +296,9 @@ public class SignificanceHeuristicTests extends ESTestCase { IndicesQueriesRegistry registry = new IndicesQueriesRegistry(); QueryParseContext parseContext = new QueryParseContext(registry, stParser, ParseFieldMatcher.STRICT); stParser.nextToken(); - SignificantTermsAggregationBuilder aggregatorFactory = (SignificantTermsAggregationBuilder) new SignificantTermsParser( - significanceHeuristicParserRegistry, registry).parse("testagg", parseContext); + SignificantTermsAggregationBuilder aggregatorFactory = + (SignificantTermsAggregationBuilder) SignificantTermsAggregationBuilder.getParser( + significanceHeuristicParserRegistry).parse("testagg", parseContext); stParser.nextToken(); assertThat(aggregatorFactory.getBucketCountThresholds().getMinDocCount(), equalTo(200L)); assertThat(stParser.currentToken(), equalTo(null)); diff --git a/modules/reindex/src/main/java/org/elasticsearch/index/reindex/remote/RemoteResponseParsers.java b/modules/reindex/src/main/java/org/elasticsearch/index/reindex/remote/RemoteResponseParsers.java index 9f1467d7cfd..42e8a598edd 100644 --- a/modules/reindex/src/main/java/org/elasticsearch/index/reindex/remote/RemoteResponseParsers.java +++ b/modules/reindex/src/main/java/org/elasticsearch/index/reindex/remote/RemoteResponseParsers.java @@ -188,7 +188,7 @@ final class RemoteResponseParsers { return new Response(timedOut, failures, totalHits, hits, scroll); }); static { - RESPONSE_PARSER.declareObject(optionalConstructorArg(), ThrowableBuilder.PARSER, new ParseField("error")); + RESPONSE_PARSER.declareObject(optionalConstructorArg(), ThrowableBuilder.PARSER::apply, new ParseField("error")); RESPONSE_PARSER.declareBoolean(optionalConstructorArg(), new ParseField("timed_out")); RESPONSE_PARSER.declareString(optionalConstructorArg(), new ParseField("_scroll_id")); RESPONSE_PARSER.declareObject(optionalConstructorArg(), HITS_PARSER, new ParseField("hits")); @@ -205,7 +205,7 @@ final class RemoteResponseParsers { PARSER = parser.andThen(ThrowableBuilder::build); parser.declareString(ThrowableBuilder::setType, new ParseField("type")); parser.declareString(ThrowableBuilder::setReason, new ParseField("reason")); - parser.declareObject(ThrowableBuilder::setCausedBy, PARSER, new ParseField("caused_by")); + parser.declareObject(ThrowableBuilder::setCausedBy, PARSER::apply, new ParseField("caused_by")); // So we can give a nice error for parsing exceptions parser.declareInt(ThrowableBuilder::setLine, new ParseField("line")); From 9524c81af97a40269ca82e303a130def98dd70bc Mon Sep 17 00:00:00 2001 From: Adrien Grand Date: Fri, 9 Dec 2016 09:45:53 +0100 Subject: [PATCH 15/51] Document the `locale` option of the `date` field. (#22050) This also adds another level of protection against using the default locale. Relates to https://discuss.elastic.co/t/mapping-for-12h-date-format/68433/3. --- .../elasticsearch/common/joda/FormatDateTimeFormatter.java | 7 ++++--- docs/reference/mapping/types/date.asciidoc | 6 ++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/org/elasticsearch/common/joda/FormatDateTimeFormatter.java b/core/src/main/java/org/elasticsearch/common/joda/FormatDateTimeFormatter.java index 428828bc0fe..72a60e8678c 100644 --- a/core/src/main/java/org/elasticsearch/common/joda/FormatDateTimeFormatter.java +++ b/core/src/main/java/org/elasticsearch/common/joda/FormatDateTimeFormatter.java @@ -22,6 +22,7 @@ package org.elasticsearch.common.joda; import org.joda.time.format.DateTimeFormatter; import java.util.Locale; +import java.util.Objects; /** * A simple wrapper around {@link DateTimeFormatter} that retains the @@ -43,9 +44,9 @@ public class FormatDateTimeFormatter { public FormatDateTimeFormatter(String format, DateTimeFormatter parser, DateTimeFormatter printer, Locale locale) { this.format = format; - this.locale = locale; - this.printer = locale == null ? printer.withDefaultYear(1970) : printer.withLocale(locale).withDefaultYear(1970); - this.parser = locale == null ? parser.withDefaultYear(1970) : parser.withLocale(locale).withDefaultYear(1970); + this.locale = Objects.requireNonNull(locale, "A locale is required as JODA otherwise uses the default locale"); + this.printer = printer.withLocale(locale).withDefaultYear(1970); + this.parser = parser.withLocale(locale).withDefaultYear(1970); } public String format() { diff --git a/docs/reference/mapping/types/date.asciidoc b/docs/reference/mapping/types/date.asciidoc index 0f3c8a7862c..d0a889f15d9 100644 --- a/docs/reference/mapping/types/date.asciidoc +++ b/docs/reference/mapping/types/date.asciidoc @@ -106,6 +106,12 @@ The following parameters are accepted by `date` fields: The date format(s) that can be parsed. Defaults to `strict_date_optional_time||epoch_millis`. +`locale`:: + + The locale to use when parsing dates since months do not have the same names + and/or abbreviations in all languages. The default is the + https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html#ROOT[`ROOT` locale], + <>:: If `true`, malformed numbers are ignored. If `false` (default), malformed From 1bdf4a2c5b15ada1c76cb6981677b2525327f74c Mon Sep 17 00:00:00 2001 From: Adrien Grand Date: Fri, 9 Dec 2016 09:48:16 +0100 Subject: [PATCH 16/51] Partition-based include-exclude does not implement equals/hashcode/serialization correctly. (#22051) --- .../bucket/terms/support/IncludeExclude.java | 14 +++++++++++--- .../search/aggregations/bucket/TermsTests.java | 7 ++++++- .../aggregations/support/IncludeExcludeTests.java | 9 +++++++++ 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/support/IncludeExclude.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/support/IncludeExclude.java index 942dc86ac33..827d661d104 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/support/IncludeExclude.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/support/IncludeExclude.java @@ -690,6 +690,10 @@ public class IncludeExclude implements Writeable, ToXContent { } builder.endArray(); } + if (isPartitionBased()) { + builder.field(PARTITION_FIELD.getPreferredName(), incZeroBasedPartition); + builder.field(NUM_PARTITIONS_FIELD.getPreferredName(), incNumPartitions); + } if (exclude != null) { builder.field(EXCLUDE_FIELD.getPreferredName(), exclude.getOriginalString()); } @@ -705,8 +709,10 @@ public class IncludeExclude implements Writeable, ToXContent { @Override public int hashCode() { - return Objects.hash(include == null ? null : include.getOriginalString(), exclude == null ? null : exclude.getOriginalString(), - includeValues, excludeValues); + return Objects.hash( + include == null ? null : include.getOriginalString(), + exclude == null ? null : exclude.getOriginalString(), + includeValues, excludeValues, incZeroBasedPartition, incNumPartitions); } @Override @@ -720,7 +726,9 @@ public class IncludeExclude implements Writeable, ToXContent { return Objects.equals(include == null ? null : include.getOriginalString(), other.include == null ? null : other.include.getOriginalString()) && Objects.equals(exclude == null ? null : exclude.getOriginalString(), other.exclude == null ? null : other.exclude.getOriginalString()) && Objects.equals(includeValues, other.includeValues) - && Objects.equals(excludeValues, other.excludeValues); + && Objects.equals(excludeValues, other.excludeValues) + && Objects.equals(incZeroBasedPartition, other.incZeroBasedPartition) + && Objects.equals(incNumPartitions, other.incNumPartitions); } } diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/TermsTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/TermsTests.java index ccb8c4524fc..2241c0a2f9b 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/TermsTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/TermsTests.java @@ -117,7 +117,7 @@ public class TermsTests extends BaseAggregationTestCase } if (randomBoolean()) { IncludeExclude incExc = null; - switch (randomInt(5)) { + switch (randomInt(6)) { case 0: incExc = new IncludeExclude(new RegExp("foobar"), null); break; @@ -158,6 +158,11 @@ public class TermsTests extends BaseAggregationTestCase } incExc = new IncludeExclude(includeValues3, excludeValues3); break; + case 6: + final int numPartitions = randomIntBetween(1, 100); + final int partition = randomIntBetween(0, numPartitions - 1); + incExc = new IncludeExclude(partition, numPartitions); + break; default: fail(); } diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/support/IncludeExcludeTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/support/IncludeExcludeTests.java index 90b8d14ef54..8929417c269 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/support/IncludeExcludeTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/support/IncludeExcludeTests.java @@ -125,4 +125,13 @@ public class IncludeExcludeTests extends ESTestCase { assertFalse(acceptedOrds.get(0)); } + public void testEquals() { + assertEquals(new IncludeExclude(3, 20), new IncludeExclude(3, 20)); + assertEquals(new IncludeExclude(3, 20).hashCode(), new IncludeExclude(3, 20).hashCode()); + assertFalse(new IncludeExclude(3, 20).equals(new IncludeExclude(4, 20))); + assertTrue(new IncludeExclude(3, 20).hashCode() != new IncludeExclude(4, 20).hashCode()); + assertFalse(new IncludeExclude(3, 20).equals(new IncludeExclude(3, 21))); + assertTrue(new IncludeExclude(3, 20).hashCode() != new IncludeExclude(3, 21).hashCode()); + } + } From 787519ee4ced81c8408f3050685d4f591622b9b8 Mon Sep 17 00:00:00 2001 From: Adrien Grand Date: Fri, 9 Dec 2016 09:48:48 +0100 Subject: [PATCH 17/51] Fix `other_bucket` on the `filters` agg to be enabled if a key is set. (#21994) Closes #21951 --- .../filters/FiltersAggregationBuilder.java | 7 +- .../aggregations/metrics/FiltersTests.java | 50 +++++ docs/build.gradle | 1 - .../bucket/filters-aggregation.asciidoc | 178 ++++++++---------- 4 files changed, 135 insertions(+), 101 deletions(-) diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregationBuilder.java index 2cd4f508ccb..989dcd45353 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregationBuilder.java @@ -209,7 +209,7 @@ public class FiltersAggregationBuilder extends AbstractAggregationBuilder { @@ -73,4 +85,42 @@ public class FiltersTests extends BaseAggregationTestCase Date: Fri, 9 Dec 2016 18:33:48 +0900 Subject: [PATCH 18/51] Fixed typo (#22066) --- docs/reference/setup/bootstrap-checks.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/reference/setup/bootstrap-checks.asciidoc b/docs/reference/setup/bootstrap-checks.asciidoc index 51750af674f..834cb7b2f43 100644 --- a/docs/reference/setup/bootstrap-checks.asciidoc +++ b/docs/reference/setup/bootstrap-checks.asciidoc @@ -29,7 +29,7 @@ fine for downloading and playing with Elasticsearch, and everyday development but it's useless for production systems. To form a cluster, Elasticsearch instances must be reachable via transport communication so they must bind transport to an external interface. Thus, we consider an -Elaticsearch instance to be in development mode if it does not bind +Elasticsearch instance to be in development mode if it does not bind transport to an external interface (the default), and is otherwise in production mode if it does bind transport to an external interface. Note that HTTP can be configured independently of transport via From 6714e02bef83580be39af1fc8f1db7226066db34 Mon Sep 17 00:00:00 2001 From: Adrien Grand Date: Fri, 9 Dec 2016 10:40:50 +0100 Subject: [PATCH 19/51] Mute RestoreBackwardsCompatIT.testRestoreUnsupportedSnapshots. --- .../org/elasticsearch/bwcompat/RestoreBackwardsCompatIT.java | 1 + 1 file changed, 1 insertion(+) diff --git a/core/src/test/java/org/elasticsearch/bwcompat/RestoreBackwardsCompatIT.java b/core/src/test/java/org/elasticsearch/bwcompat/RestoreBackwardsCompatIT.java index 5a46f50382d..edab9876d5b 100644 --- a/core/src/test/java/org/elasticsearch/bwcompat/RestoreBackwardsCompatIT.java +++ b/core/src/test/java/org/elasticsearch/bwcompat/RestoreBackwardsCompatIT.java @@ -116,6 +116,7 @@ public class RestoreBackwardsCompatIT extends AbstractSnapshotIntegTestCase { } } + @AwaitsFix(bugUrl="https://github.com/elastic/elasticsearch/issues/22068") public void testRestoreUnsupportedSnapshots() throws Exception { String repo = "test_repo"; String snapshot = "test_1"; From 613a1a6a18d811b5c3d7afb6ff16c6233ae3d98f Mon Sep 17 00:00:00 2001 From: Michael McCandless Date: Fri, 9 Dec 2016 05:32:40 -0500 Subject: [PATCH 20/51] Add stored binary fields to static backwards compatibility indices tests (#22054) Add stored binary fields to static backwards compatibility indices tests --- .../OldIndexBackwardsCompatibilityIT.java | 23 ++++++++++++++++++ .../resources/indices/bwc/index-5.0.0.zip | Bin 213729 -> 202634 bytes .../resources/indices/bwc/index-5.0.1.zip | Bin 238020 -> 364601 bytes .../resources/indices/bwc/index-5.0.2.zip | Bin 226846 -> 376235 bytes .../resources/indices/bwc/index-5.1.1.zip | Bin 123893 -> 421094 bytes .../test/resources/indices/bwc/repo-5.0.0.zip | Bin 103617 -> 177123 bytes .../test/resources/indices/bwc/repo-5.0.1.zip | Bin 115121 -> 184053 bytes .../test/resources/indices/bwc/repo-5.0.2.zip | Bin 105403 -> 191589 bytes .../test/resources/indices/bwc/repo-5.1.1.zip | Bin 97629 -> 204156 bytes dev-tools/create_bwc_index.py | 9 +++++++ 10 files changed, 32 insertions(+) diff --git a/core/src/test/java/org/elasticsearch/bwcompat/OldIndexBackwardsCompatibilityIT.java b/core/src/test/java/org/elasticsearch/bwcompat/OldIndexBackwardsCompatibilityIT.java index 0ad3072fe1c..6657a307908 100644 --- a/core/src/test/java/org/elasticsearch/bwcompat/OldIndexBackwardsCompatibilityIT.java +++ b/core/src/test/java/org/elasticsearch/bwcompat/OldIndexBackwardsCompatibilityIT.java @@ -38,6 +38,7 @@ import org.elasticsearch.action.support.WriteRequest.RefreshPolicy; import org.elasticsearch.cluster.metadata.IndexMetaData; import org.elasticsearch.cluster.metadata.MetaData; import org.elasticsearch.cluster.routing.RecoverySource; +import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.io.FileSystemUtils; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.unit.TimeValue; @@ -55,6 +56,8 @@ import org.elasticsearch.indices.recovery.RecoveryState; import org.elasticsearch.node.Node; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.search.SearchHit; +import org.elasticsearch.search.SearchHitField; +import org.elasticsearch.search.SearchHits; import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.search.aggregations.bucket.terms.Terms; @@ -242,6 +245,7 @@ public class OldIndexBackwardsCompatibilityIT extends ESIntegTestCase { assertUpgradeWorks(client(), indexName, version); assertPositionIncrementGapDefaults(indexName, version); assertAliasWithBadName(indexName, version); + assertStoredBinaryFields(indexName, version); unloadIndex(indexName); } @@ -461,6 +465,25 @@ public class OldIndexBackwardsCompatibilityIT extends ESIntegTestCase { assertFalse(client().admin().indices().prepareAliasesExist(aliasName).get().exists()); } + /** + * Make sure we can load stored binary fields. + */ + void assertStoredBinaryFields(String indexName, Version version) throws Exception { + SearchRequestBuilder builder = client().prepareSearch(indexName); + builder.setQuery(QueryBuilders.matchAllQuery()); + builder.setSize(100); + builder.addStoredField("binary"); + SearchHits hits = builder.get().getHits(); + assertEquals(100, hits.hits().length); + for(SearchHit hit : hits) { + SearchHitField field = hit.field("binary"); + assertNotNull(field); + Object value = field.value(); + assertTrue(value instanceof BytesArray); + assertEquals(16, ((BytesArray) value).length()); + } + } + private Path getNodeDir(String indexFile) throws IOException { Path unzipDir = createTempDir(); Path unzipDataDir = unzipDir.resolve("data"); diff --git a/core/src/test/resources/indices/bwc/index-5.0.0.zip b/core/src/test/resources/indices/bwc/index-5.0.0.zip index f8deb41276b811604b7f71ded03920e1b383188f..a04b829c2cf99764df8a1e46fa4d89ce7824658e 100644 GIT binary patch literal 202634 zcmdSAWpG?Uk}WJ|W{a7bnb~4ySd} zJ1h_|*byiY&|fYJ|L}I$f4SY(&e+81zuAe)-`N2F|L=tHuie1^Pi?{Y`)>Z&L~m_p zWc9Ce`!m0PIJdty3;pl=v#>R`F#4BS{xR=Q`)_wg`;WSFQZQt5mEn|7;xf_Fm(?^< zQ*<_zQ2cK?;qQ&6{~wO>-*tAx-(kk_KOV=~(ZJTp+Rp5+6J!3z=%W1&O(>wq-vfRP zljtY?{f+T=6Zz){{FjmGjjZhd5(=!p2mfQh-(lC-ol7#AovqvR`!x&%fo~#64Bl(X z=_qJ)1523|Q10r21oUSq{F{NVqp1z>C_q52l0ZO`|9b=Jn7G*Koqzl2zp^qX+oOtf zQFYMl%$i+JAs7>l#G0Ja!Q89;A*4TeqoXqI#HXB6t|G0XW}~vbUzG`tU2if8S*&;8!hg(mpHc} zMzZ7Yh>U9=kSlY?=9e@g1QT9f`mUv84`qk%!9Dn;4+2KA&SqVoECVw04e%9~L$K$H zI*P>BlxZ}&KKJ!jaqfN(WpV7?KifR6`_A)7HU#jW@1v&HUwhuYw(j_!?%nNEg#ljx zko0c^7a@(oOVR#@LvGRHU9)8&ZE}*MEhXm)R1t#AISsOxH&ztMt-SS=d(3D5KC*Url?u+8#o*Th?#`wDT2hGaekG9FaI^3L^^D zQP+(JsnoGzoWzB_RCR){*7CsCKJU{OKj+yM-GvJ!aYrYfZ?*S8QN_doLvw27R*U74 zm2NS_y0Y-%yaa&2O^6;N=LcAA`v9QHMxg8)8W=pdSZZmp^rEI^`vyZ6whDz5Zk6%T z9l#~n7NXyE{ZLCJF$x+uY3uk)>$0FVGGDs4dr}Q^f(1Xoy#9DvrG$vZ#<2bpWJ&+$ z(Q1ngstz$}D^%P2H3ldmd5q&@DN6}|CbezXuSi)8v@9$OCf-LM|J9?;yQ@@fa{ET+ zQM#8Li5(Dd@QF*XO|%f&;%40f)DcAZpvDGTe%TKw`_C1U&$|_zwZrLogBwxN8*P{! z426qd!mg1g?x-|k)sdXa+AD%~TWxv4leg{9)m@0ZO;fT-XyB9uN9w{4KntK~#c3L5 zMhh!vRd@6LUr(2f9U@wCyFvEc5H}x=a3F7SUnELA@N#h_3q*77jSWHR3zuX`OxUzi z@CPdTL`g+4HH%vSG*9ZluH9GDZktHGPUeXwj)Kr+-NCm3UnZTPT2BtL`^OFYI%js6 zUD;DAtbBN%tblYnR4zTYNT-s85{QRC{J#cd^nOn)WTW`8F<5e57xKg56Q z5vNUP4{AMP$LE|Md~0sAkHHf)Ig5*6C_T5~u%^hah{)9opD+K&3;KgxM9y zz(oh6Cs~^z6^ns&&Nv@F(`ME4!|CHU>{8 zd(F~QyaaG-hW9(bX822@&1jF0vEOjWR&Ts`Qn6CDRZ4q5mPncrH7r$^ViTC!pgfiT z+m!E3tlx63Tqset9CR?Q6b4b9LQQU+jk?>+gHWq~(@1SOj-V zGN6dC{_!z23_M-mCps zDkZokrbi}57_$ASk%gjFB~?+uUbmdrRjn5F$c$_tXbNfvaplgVHc`RMw1hZW4 zsSMzYO(2=O>puX4T&ooW${7J`CSS`9+QTV6bp=0CSjwZC9fuRMQAddmYY~ESP)VOl ztWT;E;7d{7eQV6V{LrJx7~(nX0(uKt?7R~}%qI8mBQ<;Ho&;mJh0}_a@LWe8SUemh zM#mZUSO}+_fa2e&>k}}@b?*l?liVj#Krh-x0~r$mM!!)k(#hlynb8Y5hV7GzUN!LI z<9$K}dON~<Woj)k~0_DF&G;AwsK5*TF6Wd zpZ89?lop>`b^L)gfq`^1E7cYnHeu502LQy6^S86&_&qiyy8K~-{crtO{n*>Sjg=~1 zDQN9ul4Z%d{_-x+qPAnElIt-WT?BdprKrK+vrk~1h73ccQY-2S9|PhwW%F=Lf}5hQ zYP*2T>6gaeCi&n6`kbY}U%&5(2-2F~CsC$-zCyl?TUi(P&1P_|dX7cio)?O(*#YQ- zY<0ifymPoy(Gye*Cno4XXUpX?*Zf!km4fD&N1CG@b!|nR8fEe3`XKOs6+y(_+;ns* z5~_weu%mTs`BFxeuR7UuZ{qc>0Z&N7vZ4v;s|hRvmHnIRhwk@UTh(k5mu%WjOOc%k zFf$k}aM~xBeHIM1`W(Cs?trk;k=)WzMfe-xFej~#VK2Ht++=|-*z%o zDM&)UR7Jb`vKT6x(29*2v_FpXfVcF29+Mn;TF9MnALnOjaxDeAvrcdfSW{QkpqJaIWgIkgvwt;&lE(+x zn^T{9`z|5ZxdUc`!HklKFx^$)vC+bD-S$OZZs`5440G;zh4W-<#6wW-^Z2SLjh6Jb zsKDdJXcCfr9E3Z>$!WV{xgx5QG37gbmlT50C=}ucED-PO4WFCW7U^xWU@8edDda|b zeVNC>-Wl^)P1<^bDuY3Q$Bv;ZGU=~5uFXF{#t0FTj@i^~Te5hgZ&@ysv(;Vwl-dc8#eu_d1= z@Q8<)ZJcZG0D|mD{$yRaHKyQc(}?P!rA}+xfW64wt_IZ%6G>~^rHAKuIZcZ*hEQ^iG3c{JCX z{pXzvkavqpjwcaCjJ3h{IK47f&7am)2{N$A&nTB>9bVv`E;X1rd@EowcG+n0d zNs=_l-S>Pe=uN(9V56Er3g^yZF;*ht#!yw(+cUy2if-`u&&S=ygf!ZIJR-`7Fupuq z7~9JBmF>Y9aZ`gqcA2KsoGH^M+D}#>zonPkY4$x3i)suf{`b*d@GxA;F@H9ZlpF3% zDYG0?Lw38`T^Qeq+dDhp8^6!~L;TfH9l{j~D6Y6BR6qy@wxc*hbcxz1N@$-FL*sDs zTEyH?&?bD3fb$2u8Lxe!PeXoAJ~aA{rf@9%LTJi`1g;T*lMv1F${cZ2R;`I=vhDi(+POv!%d)51fBMXoOZ0NI?}lcY0)-;> z?o=I#$h8*ibrC`lVxveOf5F4FH%zCtwJjQTGn$S~s;wm5 z!bP3y5}MH)E%5afLVcUQobMKtK{Z@NJAOC1Tf8X9?P*%Yz+AOlZq{%B{m{iDyFxKB ze;4ma8z`HvMd?u~WG@FLdw>W>4uAnhZ>ef!!+KiXI;+!a=^(YwMK#-7I{HQM={!FNe5H9jiM&Dj=pbnEragi6^$d?bN(VY1YJwc1k$aAMz6)NZ^uzzhfy>ht#7K z$T&m-Vjm!kz>x`SP~T>hx~n;uPNC#U))HM>x7T3@vUfSwbz5+lK zEez&Vfrg_qn}L(V_}lNF76ZL4m`#qkmkYOF2H%>Bsx5&w<(Ab98~O6#myV?bXk!hp zYZR&-3_htmYYO@ve4oiqqb^bW5eB;BJ}(RO<0ZNAaRv_Z&}lSfiY=jIVzn zE-zN2nTe|*2S=rGiB0X{ttv0>Ai*RnQ0;xUM=z+rS|6IIYA`4-o#^5doE5Qov2jRl zQR6^JNo$iDAgB*|2esL|4N}fgZdwv*xT_zyU9O3HZ?<`v{X~(wg7R9Ne!Qdv_HEb| z^MWAvZ9>`;mOg@*!`&ggd8z@ z-Wi5aHJ*YEfQJ+!zGlm!!6e>wc@N>`|UBEoE z8PppATd*rv@P2-!5^^_kt%2b`jbLKAj>rmyI~vO2qMZBB8Dk7(wQ0|Z_$Rh;Rz`<{ zn9G=^;OTt1pct?5aFwJ-t$br6Wv3}eRb`5cPMsB!gSaf$B^S+ZiF4vEYUQt zK}+^sL*8#!iCVH^Qfs1^6UEoB?E&7Q*?b!H!RKXp2T; z<$ZbwdW*zzyJg>Fb})bnBl0Cn2@qW?jCFHp|tS+J{X186vRem(t#SLh4kcO0gwuK0yq=*m9-r zONxE{OE7Bk<=nHqI`g287VS#tlgIyqXGq{G8Pj>^Qq=#xdh;b?Yk;$kY|U(6reT_W znGw&*X#h~dlXCrP(yRoSLSC+Gc7a=qUYX#tbHVQlZlP_ zqGU-JpADS-?OT}Nd_@V^X_KHiQix3sJ{xkfAq4y zX}W)TWBnh?QNQI)6ZgNWbAJS~f1m^ZRs8xR2MP>s;SmD^0abwk0rC8kqv;#6(wo}a z{6+8jqsaXORgQj7IWs#m&C+x$H6t@=CnGIYe;f#mBGsDv>EbQrCY6d0m7QX0*ksEf zj$x94PFfCp$8&zizJ*}kJM2&HW9kRqffb1tLOGrcn@`W`yagOA$B}D8~ z!+hb+_#3Y&1cZ3&asNwn-PrS-;H>9<2H6)+s%NqRTDbA~M=&!vUp;O{$0%uyfNLoq zeMZMR^fWYJ8`JM0r<#d3w@ynLSlb8$-p6q~WZkS(6zI79xJ}T87|liFo&AN?T( zD0%5geFMTl3WpJprQ=VX{cH1vwpzy3px8`Y7i}68w(CiF8V8TnxmHRmBF`W_}(s`0_$wP0~n zWB{(52p=q8kh=(|h;O((y-euXunHn&RhF^&cp9iHnoQ^~nJLLBf4*)FhI&e_AT}nB zfpJl=s*W<&T2dCwns`iG&SA9XowwP-J(Y!~?AaYS`h43mYG718R6bB$RONN&d@`|& zk!(Vi$ge0)uNeBHVGJP2r zBNJN_Hb#9$dV2$p|6?E@|22>;k>d4r5;M~DaP^Wk6SdIdHAenpI1ld!mdA2%<}*Em zgQ8gv=b%CV-5fkN)LbQg+b{jQ{qw7ymEPFm|GWaX|F!~=;`1`pmCjQ2le08-va}M1 z{}a1Sz8Tsu?s2XG-2VUoL3yOx;*0<9Z2z-uS-7cjQvI*VgY#d=;}2Q=CxrFqbcg=G zM;??A5r1WmtN&Nn10F6K4laFpH;MKxaV~OM(Aj}JIct;>5t>ywXe;rpa2~B?d_Ft* zUv|B>;ED+z<&eBp5^}$ zYX1#R4Ba1Ur@j9hwKFBlnfyy5c%JM^M~3q91XD2A%K9akp4HTo{iqf)ahU8 zise7<^%Lsa)+%CHxfxEAdS1)3j*U&UVnRwvQ?`$;k}!9@E9WuNG%AXz=NA^5?du|L zQxAdhXx9Z0%E?hLJyBz9hLXt?GguXp$CRqM4i> zUZw}1pSKflpX1)Qmzh=x&*1P8garFJ)<34ZL?lH;*npXU?4Qq;yhyrrpGz)_MQS@e z*`G|&ssIbH##WfCw87sE*J%3NK@A5v(!qhIML{WnexKF~Krmr=N~we<1HnEDg8>fC1rbizu*(`g>I7b2``p zZU2CMlk)Y?Dv=7f69_7`3CrNEK|xYLX^WF_U=#&6ckeqROROc3xgRmEFjPrN48DEj zBMvs!TbDO2K1QKC0RZhK$kX*RV`jYX z5d_=WfhkmCVPf#?*i|U}2w6tbDAqb33#{-)i&J_1Dowz9E&$~#km(8C`T2w8}Db%jBHL$uU3K!S( zy5$+H2&&$&X|$;xYo&NrDq@!5GPPp4*A zhtVkn6FS$2Tb*fS}l#{IsDT_OZS=k_cIV zLxL65`Y#ukw5XZEniEMgClQ;%hOV|s7JO{s7U;xvGp=c$)8WG-7t5xnu-;!kXv8?F zc0FwlsgA7=)y0Cpsar)KYI}^sobe}G!% zvJT9FAPsW+rYpXgYgEJ7Op)tj#R5`$aCQ%lq!f=!cX(ume%5I~n6bqCI3lX3V2RTmY3ZYc~5mb9Mxq|v1KVRT9~uHt}+xBhyM zt;i1UGZ6&*;ns&SVg!z7FoH&1s7#LOwAh*{QU>?oEYp!(?%Kd^>;6P+?@IOOaZP1u zlOH?3Z3yqO#fDS>&d`{KKVI?A|BrzdeKgNh62T!`7F7r@udbr;`7C z3T*IuGc@_H9(@0jM_&9bci+m+(~j5AOxwv+S4z&%`cFg&N|P<4nXe<`CjLNtly8Z8=WX=0Pyqt4G_lO(^-jGHH> zYb4TXZ#>4#if-)7Ht&(Ke`SaIns5KrKXoJOyzUOffa+@iMkW|kNL_L@Ei@TL?gK>^SukJ^$sSIRm_aAN_YqQ%648Ego;@T{c8<46JBv zFn+rg)!IxUu7;vk6cnZ86yy{X6yzo3k1}$y3A#@~cnz|N>(F(3R)&$;it=&*U@pEN zknP@`aF;!Y^e2QZx-2IICt7nDSTJ;2S#84r2CbB~GLGrZHYPME1fe8CArW)Rqsz;2 z;S6>n*mulT6sWu2@`5dUo@{GaxR$%-+ar%Gn;7(1?YH-zTj~CC^e)XU_gVul3fBq+ z9okf=+}Q&$lQU~;Vuuv=HUSF*AeXW|m(AVIvX>2*&HB%Y-uS-+<%!vq6`KjqNu}-Y zh-^_zq#tOFGez5RN0=f^TlLIbRLhu#e(4#VCVIZCKTHUFy^?Z|EO$b8WQ^)tFS9p$ zp7>mTADY|b#nev^JC*@dyo?wdT~Ay8xRGjss5b2Egv z9MYnYOQnbx3t;%}fSot(+zf}7oPwzm$MO6&8$X`Lw&;S$#nBTlYS-JWzpt&&DA3_F z^=juksNeYX6FyxQlOmo!NY571iaYX{)t82?Zy)XV*_UciU}<$>RcCXB=bE;8T5KTd zNERci=aKI_s1$=P{mR6Ywbzx8AiwTtk@6F7_V#e!^)ZZSU;BH^&T#7xvjT~8?2iX9 zSn-q%UVFlzAoRtq+kHT-t3aL6b7EID?Uh8W8!h_~9Mr6!XU-_su);UEv zGhIouv9@Z8$`>^WsKtIFOIHcg7qS1aELW`!Ri+#{45!4Ek@0=e!c>tTyFoSk+( z55p6v;cR1=bt~|k+I42rUz#_kugh;p?x1alS9fr1k1x=)$ShjhdYMSoRbL4TqxK$J#Pcs_wy&v!%kup>zqR zep2*pt!=fgvXjIDcGu)#eC^Zs_MH2vdg@E~QBi!SFm=?2v?x5puZ4)K;+<}9ial5U zAa$jzG_z^d=o07JlpOO26Y^_9PeN>$mA||mv{e1=I8LISpZ`;DyB*+X)xrFM>pi0m zhu57j;>uZ4AJTH*P=c$u1UlX*)iC~;_H^o)-1`tHSl8J+Y_uMvfJrTW%;qQ ztdmW01F3HhY+?;*E`lGX&3N8lVw4_{bzr)LY<4T?BQ!1W?H&PQ-CK3hKFKLFDBk}k zqSMF9j*);{^;$=};~|e^caY)SGw6zSh}$-t38IxWs+$5u>-A`&@Yey2`tQY!3k#fU zYzvxXhi3)=Nc+bOc{kr@Kye;#`qN9Ba#*^HUsfP*1Z15nbWSy;a`;LCOIscPge%c> zi7@xXNbzn#oFr<-_cfXO|Ml+?dNy5)tn(ls{^;X6{=*A z?@UqK4LZWgT!{^M-Z9BqmONP}CWX{ppBW2uy8HD%&qCEGYcTther%at&4eMyyAnkj{4!|-oPTP;?cL8T0Ogm@p0$pi*p}BL__S{$0 zzjQAi+ey$K9lE8MmQn-5&l_&v8=acsv$rz$83Z6+!eg2hBly4Fvg=g}Zq`(P9>3SkWoW=+<7!A)!0s&5Xbg7D{#EJ& zz!#FH$JDucsH6MlfoQnwY(kJ@xLGh`V=SW_F4rgz+~n={eNM^X*5g*9KUL_fW`Li! zHOn^K)g!vYXBvTCUfad(M@Mc(PO(t zPHO$2XIcw~egy@Bf2S@gkFv}q`P-}_}A3ys&wmm^5<9PCT^NyakA!Q#iSrMc~7j5Fct(9wtVKda>PH+v&k{%a0L(!)h++bE{-#p3&EzAweJix#p*@(Q9rM-=!BS`z5vQ^V<|=0yBo~OzG9K`1-Dv0w=dEa&+;g z5-)Du!r?rt>yz|g6tA9sS4X2Pq!Dn9ocD^K5deH+rjP3lP?e>-D)q%k>lMq!UB?Q8 z!7xA6#e(;{0N@^8BSp|lS;*jrpA3EZg`3)AEQU1+5wLdcXWUx3TlyaOqqn^>g&e*l z7>DTxA*4ytjynecS97K)fhyI?9M2q|pu7$u=sO9#n6R0zdWb%0733g0o~7qS?c@4$ zUGeqX@l!wFrSS~yj|5`dB8zN;u|ipkSb;!hRcl+EsY_h!1Zr;SQQDXsQ1pTWEi?BY zb+*2g8%XY#>mt2oa~$tnZGpcU1>uVrwq!Dzs8Za5P8RPpJNRT{g*WrpGxbrw9Dv&`$_ZlJ^}3zgeesg4>8Lto)$;b(pDU2G zl0s-H#8^U+R!zT3S(~ifjyCV*-G}ZVL*;tD$XrTy{o< z5x6jeJZ5h`%%3=y0Dg+`#oep2Zo6~J#g5-_{c&Ie($&WW|4H*`N%|PEM;K07kiBar ziLsB$XGcR{U(rSOQPQJj_JF>uviVUq4E>?|HE8iwk5cdPETy)6{5i`{+|l{edsq>s zJBE3cK$T*iHdA_^<@k%OH6tNMvMYF{=W8Gzx{X=~<1~6U)ahBl>H-`8(ynFudxcwA zY~1U`D5$&#oQwgLVU%qE=pAq>zc_PPN=MeI6)pP5M(=c8twPlu`(muEuL>*^u*3P- ziS$RincGxm%|~R_IspL~hX$E|3?J;%JFARkGPbI=Q=NNJb7}S3d7^aXnDu*VjVD)< z+JNiRODVqM?0Lp+C2Da*MtdByR3W=XIOc>7jMXs}1p&t&ChT=Ei~XQfnAxD9e4={qHNEIOKD-TIa_ zH}hBTVq_^I69XjPPO`@JV^eQ$@*T^GC7U%*g%-=3S&_pkoaIxgPcbr~%o7>WxkX2R?y^cTM;MUgf@8PUhZbt;M$Q7vI*JCL= zW>_vtzY`hH1!~UM@@SM*L zpb+!&^Pbz@f6A~)yDWv5Hin7-vgy|lAJZY&;svr*@JqA*#C8)pM~W8piBsfIOQ0OL ze{+_f#(P+34asY9@v1yE4ucPb>Aia%y_hRDM)(}oT?G5jB(Ms7<8s<~@z9~1nN@tadS~yQ0R2mw{zJiW`hhI&8 zyt$Sy%n8_9{fKUIgYDwircpEkM6b)X;QqQc!-Oew4M_59uU|7 z%LW87J^z9FsQY@tKcfA7x30dyKG_pQ|J9|`aYhH8_Wqwl(zXrq<; z6il6Zbs#o!_U2;n+f-d`%^1rWtsO*aJ!LZuW(>12Q~eZeCYIpG$)}eAa*Nx2W58yly%P$@JTgmTn+ zKDLI-{g4kFo(eI~2{4cv$HKWgVZBC%ZTZE@v2QN+&S4NvU2{5KU}gOb`^d7K!Lt15 z?5sR>bbZ^U=Oqv?PI^-N;GO?{W90mKw-Bd)1GKz=$u~LBg}olJete zY)5HJa{*1uSbBFPDrnM>OJ!C`{SwDQ{SDC2E6z0Srg}0|1%kHj*$27&Na2#_zSrQ@ z7PH833UL3O32%xdOg-x(e1>AktrL>C~8$@Um-afHOtr z{_-r^Nqte~XVY&x!>Dl^0@nf4K6cK27w@1o?G0yo=w^E_`Vud>ysEMeJ-N{N1FVAGtagQQL><(wKr|DQ1sC=npv(6l|4-X4WbcfbIi3VPOnO% zp2Bd7DXX5>q@umYP;u{{Wmo3fp4dLz-0*!`38-WT{N!ixGAUt~=FUC_6d*rz1b4-U>)H zk85Z^d?J9a{~y zO@rK49zKX7*~NaVU!Cmyv|mk~OIi-l$f0$=CboNNR!s>##GEbZgc`lldkD$gt=zUQ z^Z7X2-Eu57SS>%NuNlZaAtb8e)wXn#AaQ?x<(wE)_{O=kA~%_9NYUY7Zk>-8&imD! zysLq)j5{juB%uB^biuhy97oK;plOv>c4}$r!{$P`4-fBS;%W6=l!wrCx2`*;P%Z`g zULN6^U>)0nBen@r#Z-Xr_|V@muXPQvzOMV=6@@bfWfdg3D+BnjoUn*e;laeLFO z_0s4L?zvtH+wxeBM$YtmZHxMpH)7e4jY>va{pR8# zKC?GLF?ywHO}E-0YPA;9uZmIsZa+##XygGFYK(!OA{Kst0qz&$0>uydb%Dl*fuoN( zEWALjSIVFb<6O0KHrAg=d#_0R!Q0{42zfEtfpT@_9UaHRicLc25+CJhqCe&Cqt7Nb zM9#0A?+~7nqm~_btK}%RHxdA4!s+?|y1@_FozF2P_Y=5S0wym;xQ@;n@{j^lOmTyed);8x9a(c)kwNA|?^ zxuZ4QDlQD(h_l|7=8b(S>;2BKkZ8x~u~rX*jYN46YP3SboJMnZ&f|1Obpbtn>Y-m8 zwSF2tey_*R(Pen^`{-XVYd&A;kn|yM_XMrx`vG`(SaH>O6vb4yb5kL2i+-4&7v{h) z_tThEu2-ypL$_MiiH$xb4wuz$fY_L^rPPk{=rE@U}L7`!f$1jX)>&2ZBb~IISg9 zpCfj)oLxA}U>3@_6Urg^L{>K;7a1F!k3nd8fpk)~wMI_%WV^CgXSual;*4=JytSpK zp}40bH-bmZayb`SR3k^7_pG7V%ohwytYG2JwfL+o?X;h*)7Ha|YSqnHCPqp%WUC6z zO~mRFQ&aRzbeJqpcY!*tB62(4M(uz-9ijR$Z8ps+Kt7A}3&xyOiHmBvJq&hIX5WmLoI-38<6#wZ%!aT!Z_4k2f=#v=xq zb@L9^295{uxz}T^K5q~8=|A>&^yz=PVWPo*_ApBD0OQlr{YIJZgd(KxEVV4Y;5_LFzY+RXke1dYXRsfRNf#*QMzwl! zVssMtnd!@s(*dNjPt=@I%0ocfW`~9kKEKb&$YTq_J1UF(NyfdV%QYgJCylF5r~&lU z+#5E{fcBS-_Ce`eH5ypIq7XB8&b}*lM?!^8$!nB>F|^BX?vNJBSbCa91MHc1bpTT% z>ysM6<+JDsIajekaugaS_6!Y3Ba+1xG)(YDq~|_k%Rq{zD<&KZlX({R2k%yj>I=n$ zhXjIy10~vqL~@M%9!lt8ASz<2HTl z000!}Hz9y)CZS;qvnxn#PU#u@sBP&Pu}KFyf4+N?pKL zZd~IK9+1?wX{t}yXff#~X5t9(y)OxZL@QXoFEGjGW}+x{P+g?rr0(I&WZaaB02EmS zG8&SED6-sy;eo`M1Te$%XwjNvQRzfVDO1wG=)G^hFGY+f)AXMzOHHH5H?l^SsVp;H zW$+>cVzK7vhQ9mrW7L`2o}&u&cR|3vx}1Ul0jV__PWemX5@4jDd^Fj zM7WXPtf%V&bWp;Sdh47ZdeQ@FEZC4)^DBi^1-{qGB()kZStrvnGDqk(D>q1vppaA^ z;wD!yGM6($?$70 z4=mP{OIS$OGYHsVK5C42uCFUUb7;_TMACE&j zV=ok?tzKG{d|Z?L2Hv(oNq^vkCgP~F|7uL+{(kK&t7$k2?*50|Srn?8&vw4Rz3|!T z<)B>GU}UE)bGwniwO9F)h?YbPxK@2uyH?8sJsb+i2{H|?!30nnP(iq5FcJ-FJ`y2< zg1dr~g6+06EatMcPqE)2TeE5#g3rhT#D>+doMU*R7 zeq*XHOWBdLqaWb~)&+(I8dOsLN;%a^lnQ0CDU;smGmXY2##}NcTa42jscnKQSU*AV zo+-7@8-sNprY6ozYL8}Tgca&!;w!`ytbQLv=Px@pfsp!=jU!eHzAp++XbJtY$=`RS z)PS~J3_xqbz-q-0KBuMJ;Qdw<6}y=5iS`PCji2MZ6l7Ii4128Z{MARGcsSXD47G@x zqBpqgTNd|cf(K#=Z~FPS!l+5)QWO~_$;8r=1B*72Z-d0;{Xmonvxr8f>N83z!M#hA zS%wt-ET2)6D5bIT=R>&#h9@t{&KErbzw`$+4aC6mtZ%+U%L#IR*;WZg4_+kl#^8PE zC86jAA->59sLQ=GO~*Av9y zprP300&kUHYLtjO^p^um6y)Ru;@~7CIU-pkfOIgCG&~_#!3Z@c5S*lCI}EuPofs$b z_PG7iEz%_ZpilZM*qq?0_VDB85nSxp$MS(u9`CzV* z9HOkk%%A~FIay0#_40@v;A-2e>g0fmknsW9*>GdR7Pv`*%0|)jC zLx$AY=^`({u+UW{&oJj{_^0hPM2_o$aq1(adrWx|DU>tZk@bWb257FSHQrb2{LeLt z$Y^(exZ|Zn-PWOY*z?op^R|XR>?l>>s&7e`;B#z=d$a$DupF>SelZA4$j<23c*7;O!D(UqqDfsA3FFiWQ>`pEkbj_{X0VZO$SV(?s0b{l;Dl9LVjGbeCW^jgVp)^;>rTm1 z_-4MTR#_1;_UwCeh2n)-@63gSId%ak^mdijuMhPBYXPAn+aHTbP+cXq(>@Rd65FQ6 zXwWA}7-bGqwx_?~dC|+Ysf1IY*od2;3xI>SMy`18H+YcSN!xWxYz4%RJcDfo%~1;Y zPF%Cv&sAIWdu@K5JGgiW?zHzTF{T>kvKBX*J& z+SUJkX{F)+#nMX9zm-;U{=ZXNNlQ1L@w@Id@ps*;Qh_rQPB{If@&B~6(%yOd``3R5 z&Y#jse=*%&<==m;anbz0R}^mdZ&jB6$sb+LwRvLk#L%i!DGWiw@sPNQOhLhngTYcm zXaf?gN!S^QfD>c-K{SA^ftcsf2}wzrQHhZ2Ar87OYP|ScHdVTyCEJIvyXCuUUb!CE zoGK4}o(>N$e?HEr%jfd@y#RLOy1k!ImT#x@d~bG^D@z$Ja#K2X7YTgd_BS^_o?ad% zI5t1-_Ffq_mM1^%9CAi^eICu*ySxBf%7F6Us~7~Wl!H#VX_vTb^!2FT<$=CWKsqWY?nd?w~#7N*XPCIsLhb-_M! z@VZ8`S~$M-E&J2$jD2TQnwZCMeMBkTPzrjcPUwab$+q`x-4)r|@kZCGsUGyVMC^?t z9w|G(su`J#b)a?WLsd#o0=@)F%85^CrXH)5`J0YCm^~D?mrs@m?B9100*D5oW zIk!biBTpaMri!vjL^}3d-83(g4|+R=^et8RY2F`IhBF}p1ML9yI`Av#vD?Z(Xdk`9 zz2`J2CEXRWVEN8yaAI&rYg9I@qv4Ww6m)&a-9WkEo~aviQzHu?8Hc z6fMXO3DLNr25O%Ot^McHlVH&Da_z>{NvZV*# zq9_Fg|FO3B-XH@9LkaQ*VazU7grO{IR(R`aDo45QIZa#{9Bm;p;{m?(8L<)ycH4|C;j4n$C8jht@)tL9RH}fKU%$+pTS%f+7u}F_ zlXE35e9ZCW(&~oBMrHW-93}Vj5Cw!~ zog<+3GxD^UqvX+aSYl&Pj??iRtY292M!Hr1OqcJA4!>m^n0m|?Hy*03TccnSwgC%} z4eIH7pE%}VCc%ZeSknvxDEo^W3|Iizw7!X4PKtEoAbVad9Fk=?CUYPAL(&`7rlZGF zCh8)XapvjY>MU`T5>lNa6;&VjZ&rhtUzo4BF70h!bK0I}nuUp7U8I%bB-6H|S7Iox z_p@9p47|&cHB8q=*A5mk76RQFVQIKYSe_j#RW)*OnJ~o55YXY&k*%h<@8uk9fmRkY zKYyYr=ENgLRo;a=o2LzBey`ESG8u6Xc#p|!QejYfakL@=3uesf@R4~G^KxK3jKxM~ z3t@;AdTG30K!$t(9*B=_cZ)2`(o{_#_KDz;OM7QwAW?WN?B18p>`PXa$;MeS+5?@}`J&+pXBFqv>Xl5; z&u{dL!EZ^*>BCkTV-NbaYKSenqfkG#w?^NG8m>5U+`Y{%kCzR}hnX;SY1dikxdjMT z%t9$|49l1^Nv*-5LVssiQjK-d^2L>lPuNqbw(V^Pn?J!orzG6w$*Exqf5>sB8hulM zhrR?}?Og(F0^RaEeInh!xOjBPE`k&UGH{I2B?J!4OyX+%V*DBVo{3l~%>CjJ7wwA% zEE2)46Uyz5Vg07Cuc=iqG2JAhVOmYi$lVooN(p~e-rCY{By#)rkYaj#zu972n0D=& z!ER1<$)!Yd99b9&tAMe^f6`~c|5{-f!>I<;^L~|j4dY^ zpAwqEd=@&t1D4^s^Z9*=RZ)$=sjXTSAHp1=yrR2=p8*ci_`4so@??-9CAFW7l+cDD z*T)*;H)PzZcw>kydrbcZX?XXNn$mYpvdr0T@uH}aUU@a5?mV;9;XoTO>#i^^d_FSX z6a5eJ5C?rfqo2gn$9i9338@((fC%xeWQ<6G8YA4&eorN)o2pfW1aU`_9gVf`WWO8` zFWyOv#=I!t*lJlqVt#7|qwiERkqO-wu_jo`+mSvrO)jd#1d&d2olK=K=t-3l&ea_M zI&Y$4%yxb}Nez9zYYC=wa%LUkaS=Pz1=bU`5Nz3up|5ovl^g+CCc@DIdx_pN;`q!U z^PPbXuf3yff#1{{yT-gGl98))hbO(-^slhN(39A%(`#k=GF@cUK(!vSgGxeok7fG`3Wkm?d2TC*3y+%gXo|PCN?BsdP!8wWQ|pONJj! z_Q@yz{Oarb=VxDGgZg!g5usC!O7q+ceAdO;#h=CCC-}kK zV?1I9ehEYbkpMhma4~jhK1AJ1w`5_H$5LsM=fbAhSuH3ZaW21h-n+USC>${EHIQS` z5~<)RuZhN&rpe-(d5D8F8wbF*PdLL-CA5dT<_foU0)ar4_*%n zM?#cjM@oP`7=@Hx;RFjTr$5sa0hrLHx#`8tjau;G3QWg?i+35$mFqlGD z*=#I?hj7fVM}Nikkal1^K{+#D(FT6p$Y7SEkx=x?JxA$Atwr<3{7B{`M2Wm|1@A?< zHk%tVjPb*JMHJq30nLw#$X2SHD){Eza5jP4;VxpA>XinNhfGsuX|2VsK{o1`+n9z7 zXAHk5HpGVjTrth4_w>x|%$>{$_vuGufFh~YDTyP80&7G|BulVgh&*7AB?95!pq~+M zr*BBntE>r=OSAs{_OVUp5P7k+^J(3}zgaBL-f=`GK zEpZW0A7FW8I)*j5Ao66-YDROWZq0q|ac#-1%(cvIe0K!wgC4?ye9|H3s|8@=d377{;0BdCX%%I{&4U>!_NfmjM*#NDq zMA7hBM(hu4xsBroiPVaeZxOz{ZjkAK7BgX*&m69%ue*a>V_WeC2}#d2w=duy@i*Xm z66VnRF(dat9`uf6hLrVGn($F9Qv!44;fEpOXu_o2a06gNBxxvV^gxQM&>jm&97F>; z8HtwllC4Ok5!;49Z^5-jJ9c+ex!mg9@AU61x#hZ1x_LbaIFQ*V1r11bCg>(+H5dde zo|P^qvzmUebqosKz?7qx3p^4TI&IRu`Mxo|y#tJ5N@8l{qSNjo^`Ux(of_dt<$22}6bTd{62#=~D!r;kc~8gE>%eT%mF!Ko}6H!YB&AhHVc@amASd$n3KFf^Uyp zMGD~t2z!$}S{b5l!gjK{nqcsw-x;4u^@ex;-J-#uw{T_9uSciPC-;yIVkvUX zv}JWPwKe%248$--7|7G9oQj@Gb%xy#-#YJ`tA9Wnh<^aCLE~AsSr?5vd&*-Spa#l# zawbY+rNFdSkux~9MnXdbok77Fr!^rrYS#$2iv9bv0pJbR9`U|csd=e{>_ri3U^pLo z2Wvm?2SPaIrOKM3qgY_vk3>)MLnR$V54vNj%i>M|V_a@x0Bi_VFr=Aa6R8{BEsi>P z6~Y0?_Zobn<$mTuJv3Z{BZe;9t>MC=QW>x%T)#DkD=PVk2K-Y|>Dujy{cH>dX+!IcRp$g&Mm8 z9Y>ajenrnm9)Q2809JupK$B!?3Abmk;PK0_pTIf*F>p5NN~1Hvt>NHlXFciN8qd0rR0|G3f@l#D9i03XqdVBw@U!7KFjO(mH}P zM=#^-;?97R&_3wx4DG_)*W>f9!>&8KsG|)O=~SLHNYtCMzejq%TPGijZj<$xxrf~G zdW&3IUP^QtclLJ{-bU{w4W4{CaR#A|{276av4~kkyEm>uSSH84h-Qa1BQ%vU9XDqk z+zt!Cc;edL<-u^KsUdx1GhJcSpR0Lg+dKo%p0wgt5L3R5cUPNlS_xV$jRVS(X62m@yBl&cT{ zM2}jR0&9WCI)lrDPN1OhSL7X-LJ>t3kiVU^MgMU~GD=k94LMDSj+G;}BkJX3=bPFF zW(CGISv}Qqq*^jzdvKOT-YjvLXXj|=CRfG?Y2-jgvWu``do_Pr^NF(D+EyNJPv4sO|>89Fu0Jmi2aZ-y@=lb`Jw&zCT}j z=1Ots?#)Z{q$aZW2ntfDRNxIy&dtsop#-wZ5#G(~SZQo)dtnEvRT3d;h&4@(BFbyh z>D6jZE=pN3d}U_RX$s6nkiu5L(X7&JcOL~INF7ycR_b@_i#>cJfbL1(Y;&Jw=)t}; zwo94{&~DJG_b%(3TCGy=C^8<}wtA%B>@Xc*cu?S}Tx)DpiySMA7YIfcCZ)K>=%*2u<AD*Y8ZsG!8@TYM9 zC@iWj>Xp9AK3T+C^bco_87C1Y3Xtw#4uE~K731#_?SG8KjM$Y1PI!mz-OwGg&8W^; z&LC&$G`{ZA?pN&IH)Rz@;Km5WU;-6nor=)TMZfT3x)T}^q!IpPGSc5&-@RMuL;I>C z5iNpS_!^@DcMs<$(5Lc7a945z-cHKh(MxI;GJcdeK-|wLjM&8t*lhb$6wLG$V($n- z-i7IeBnd~(8qGRke@XcRxj_(s%e_jT@ks^Q3|nJBm6Vu z`;3rAxc`xL&vs(5V%D5Y7fBrB5NZ$+fEhv*j3<0u)Anov_Y1zuP>cK+nLGEHfL>?3 zIay$iCaXM4pb6IEo_V@%@T#-tmUQ=CB9PtN5J2+5 zXDN*D690^yZ>uBN;|2X35dsFJ@F&;P9DUr;Wkpm0@#DJ?Hjo8i1aNbE29cl90TFOr zX_XR=%9pZ+qJjCE1wSCRqZ`;oEDDGIs?C6e(YY}_FeaI*iH(G2CgLloUNKJ?_ewj8 z_Ruc@s1b%g3ZqzeWoACI973bXD`9SDyEMa{RdncQE)bs^F#)XKdjr(?UTOvq>vD{2S5;F=^%R@h@+ zj(48izWljV>IL}Xvh&z@$RU#ZprQ`8WW5QHgiddqC~ww09|0U>xny66m{3v8-D!D{ zTkvxmu^S;9B^osvc}!cP1mV6utf>Y{yg`Z6?-z`e#L%L7NZ85t?Gn!ftm&_nxS{*t z2>Xm#+p~U_5#KSbDrQLI#fc9b+ zjG>R9kE=?U#1&cXWpp*!6WDFB4=O-|!-mU%=Yms$dxsxLb{EM>I=&#^>3O(8ehcM8 zxJP@mF|6N#-7}#~r^%D%&1Xw#%zTEb;-|m(7GOqxjB)9_X1r$6bYfOG3cZ=#8Q}V~ z?{Hvn;4=QHs4F^AT>{K97?eGi&VlG-udtvobuV*UGioYnoVREReL;IgWFfiKzVGl2lSZ(z%3X@_*xl*a~-ev4S29J7; zc#T@w@!)nqn2_$^gbCTQr6~1`4?) zyncKZcCa&PbQ(+8Sffa5betK%;YR?TH6%CUbz5h9XN{}E4diXtAU4`MdNd-N2 zAn}!1;71-c94wmq=W3WQQWaAbqaBeQi5>orh->x?wqZ&uyv&cK;F~0BR|?ZvVbeyGT**r5vbUU zPT|sin$ghfY?HVW(>QDmtp)CKj(QC`jhu|TzzK^W>4^-eOhj8cpN3G9s1V8YW<68g z@;t+70QvCJ3IT0dHcinM4Z|ngw-6xak-#69N>kC^Tx*D55Imr1zCK_!>b)`#3rEjd zxiNfTym7uAJ!d}$`ZG}+mT)}XzC01jqWgl+zYg`aPzFt?mG{X#?PO;JOG9OhPv|k4=!}ifc<3@_^68JY;??Q)xHa)BmovnbqoJ_)XV@!Bp-O7TGb`LE95S4r2B|`4 zYGZm9^`=s(VFRP6Hm<}Ts-mAF;SA;)#+v`y#~O2Ikn60Q%%1VsfZ{|?72h8JKJtix zoRZv@To;&89DeBJgBvfm$z*J2aHru}Y)l;%14cE*HrbolOfI`gLUn0wF@hm5JCZOg z0Nw=QlS$Yi)CDdQzyKJAlR+n;F&52vG}ql z;w?q%kG4?t&1vjA1F^>O8pC*oaKHWM6l8V2DrY08$i2=4U+r|=Yx0-Nwpdy$cFX6V ziqE&d9$>50uSWyMA;E2OCD(DB(RAhSmKJ>ZhwIAf9T(bsg`*h;rOp;EeiNf@emVkq zIL%#>O@*~KAKB*Z)_wWcJ(Wi>_ERDi$cr!jhKgDh)RzD`^*x*29I1 zRuz7K`RPh_U5!=n5 z%O<5jw_7s1IFRGj=iBqKW0|{ou|-$kdPc)g+13auD(&4bOX#u88L^0_D!#E;O%#?B ze+=0-ld{tGN-ELD8Bm3-(4NZ2ptft=O<036wW!t4cBcXm` zsPSH7Uw<*Aua-etF_bAkQ&Ux73^4K9bJ0n#YiqtPznby?%OY@AHk|L`okfl;5s^c) zTrV`rWB(LwI~GaBG`Q?qTCNLL-w4fE_e)&%s15(Eul`%XVVqYo-~;D8TbORk>&p1j z!9U$ewa*o3EtS#c$hCYfA{H2;hTQkVz@$1~h0kf7R8_*h3(EHqH=$ox)5R)>pi`r) z90=}K?(Ohv87udj(~SWJmsK6rgF|b#)Klzw>Yp~XHxs*9l*NeOzI>3QX7T6tO3B}t z!pwu189hqT6g1v}-f#^yW@;*1XUmP_)gv8!c+>IHsV z3QNU%xqVwsneWym%FbQZGOQ+9=u34frCi1*YM82w)xKw0G?mrhl%vW3xGuLY3+nu8 z+-OtDrR8o4QR!)$Qm0?MvR{J5zDsNC2r-JNWE{Di=F%rP@F-;g7JaDA=8T%#%I-1# z5WMEVj*_uuSWr@U6kuRxw99O7IJJcb{E@G~qOE%OOwiwWppL{C5|C!RH2TIPCA>*j zRZLeK^g|+0s-0~qEq%$=0{7M4xb6cA|JRGR%MJ@4c;hf+ZOYg5Hp9_2wha49`6_tBykDSKb*VSwUX zz*ycfvIvbHotQ#SZRM2yRa+<-0W|ni>krq$dHb%(yy~*N%*>qKREmr1P|+lvdxK6P zB>BLjU1HHK`2#~Fuz`4;*GUX@apc{G%brobkqV1L^&f4Zmk-P{xB1HI-za7#{$Q0r%HRsIPFyrATz35&T& zcf)%1`mz0@pcdiv6E$bXplM8b#Hb{X-26{%iw7l!g=70pT`|F*o858!S(KAFLZez} z34YDLH!!@AvXH)6tKi;}G2e(P9XrM(Fqzd@I7FB= zwU2#Fzws@TFBoO$rgaG9QaAd_Ee;RdzNX`=0WNrqmZ&g}Y}yq6(NSR}xvi8J>;b(}5$B9jHS(Q{a_VN2P1|TKIz**} zT)BQy%sC7UA|@JbJq_IM#OkyUd+G8 zsj@!%wR?2_rF@CNUTs(Yja2IH_cXr}h3tP6fX}AjM`*YpP=av7dOC9#cz{=Il`g5UP!^c*e-AP@N&)9me)5ZAb zpnjVN%G2l5k&h|%#?P7`D1RT)j^OQ!{i|0iXk2@i*f`*7u=<`ALyAhdOM9+N?SDeVZPtBS0lwE{s_kZatIXbVNc$ ziSv3<;?)P-dRFoX##oJ@BR$obG4c=Ynt6Gs%&pEWYs2Eqvkdh83EiN9J|6pP6o#=0 zy;8^kSZ_Gb@{(Mf3g_?_5F~sDrw$r;F>pn$m0klnj_b0jo_-xE(%l(Hmup$u{J;=7 z_p2?NiC)*Jx4gCE;`i7i3=Vj_-~=jHPJ=8x9AOnqKi}CI~!% zMZ4WI77ci%Q8tc{VV_se<|ShVBEi&W6Cz`37p%q3V0WR>jfdL9jNEb)yX_$db;Bn$ z$K6F-pFPW3#6)*#)51ThQ|sR86?B)jge5-qtWne6@B6PlCjW0)0$mm z-ImcKD09mHRJ2Ij; z%?XPL<$J^Og+CSuVkGqUqT;!?MJtm_Di{kmeZ+)WzBFg}f##VnMwk z6Tl3YO4WPU*@;!UI^PtKBJ8Q&hPKD46-O9Vm#3oFxH zd%=)acTGYoUs=-z3Z-Tp#9MKWlXsM}ni_(4!xF_tM^_K62H8H?#^-=X`}Ynm=bm^6YE; z+t)9k|DpmhQj5N>Gf^Bsm4rLil@wnJm{0d0CJSu|t%GIs7g0$0r42#ZgK23jW}C&% zPxsgk^$C&`E{c$^I5m~$%FpVOL7#U9WlsV&SvWi>(-)%=5PF%GU_2Lw!oOIyDwqGP zy#r@GfBxZ&Fd9<48-gxano&sGKq;Qf~i-O3lIdRM-b*!T4dP1}32!+rqnNo5m&W}J4 zP;vK>L`S&(F#jEPFVlIcEBlcHiAuug0vgeK6+Y+JfTsQtMSh$;m1I$#&sJ@uAW1-P30*0e<|@%c2!dInxWp3p%(Av>l2x^-ySM zv?WGvrTPNbQ=Z{|YCm5vy?RSz8?D1O*5POA9mkhJh6rZb#>I;fSb86-<7W(?ap~Rq zRq0nCqK#3GVhSQlg`xb&{XQ|*%$sWESj8Xs4UkqSDlq9}Z-I8b2eOtbR=huW;pP zLrP332+tLDnufweh`=h|IflIoKe4Ep%NKq~&z?DyZx*8YfG1R&i<>1_4mb*={rT{j zsm|@y*bE-E!zaA_=SwETS~S^#DYOExqJ{}Pd7=iuZ-%l=0eVOtLs(-Gbo0f{+L@zU z{sbP4u9LrK@Wc(BFNhqxr+>YgMPQpe7nh?79GXAonLZEIolYWk*WB-|7VT$7?;U4G5mQdTh=;44rsrRtR)Gu~pF$;! zPOkyunQw&y!u^+@Zx11TG|mToS*;1z0xpC*K113Kztev`|6<)td@?o+zPRr46bRmK zt^1%^LhN|2n7o)8==`dqwOvri;gDPK%olRd)qCu6wMl(XNbi2Qij^k6Gej9S3?=1Jnql%+Pq|qzS#e9f_Zy!Z(%?jvK%15Vd zvZHt}9)|IJ=K0xVhr3bh-sa<93L*bGFW~GNgz(&sUpEvbQ*!;uPr$BG^*VG3$>Nre_$~8>2Ey`NPgv(F>U5sxN z%BdyFTdSx#OYW)!BdP=)lcD;;R@uv%Q%tY=GOGH*iPI;TrR12WIz&~Z@0Yk_2 zh2;ADGNE2cGxVw|p(hp`?yq?YuUYo+FOGM|D7G(39{*HU|A(w^zikj@@4p=AKV*IX zt?EOIe+rbkcI=-6C4nf;E-#s^5FL>+k(hlM{A)JE#OguDZjEx_0JCS1tp&iv#fcpS ziLq3LBG5=cONi2l)#2`-U@JmY&qN@|%Zl4(axwYSXJ?}&&Zt$&t7r<`$B~1Y1JQE) zz+(gDtidG>&4>ZkSdu9!lhOPNZXy8dS@9)Quk>yj!0{tA9|D7|CQKXWOX%1kt|}}? zCDD}$^8b;lFW5u=e|?$q{&%Npy?c-p&A=1Gv!Fmf{SU1q+~_kniwjsf>)+IXUna$t zUz$(L%F;!lTgW*TP^$lB0d9Cz79-hamWz)3EWSh1qx+-4fk*}-N>qKBXY%)BQ_7=J z6>~^dU?>WIQ5{0VN>jf}E53^^W^t2jfj4pq&5k6FM9!2{ZWkp5l=;FGr<-XFFAhMH zv}a@z2iEw^J@;|2e3DGc92i~-*!ud?wyvn1R5$81h+88%`0^nE|njG zCVd5Ngz_~+ZjGZ) zh(_|XONt%w0ULY;*->J#N>4<;8kDUb6=dv4uzH&|2ccU5)`5PAAMNJg31voNW%Cm#y>-q<>PV z4}UgGceI$Y*Ta#z(j!#b8x85hh9dbIHrBR;L);iol4Mv3aWt@r{|NCCeOh*!`;r2ViE}adKs4&U7V1v!aMmXkObiGs=A~f{Y8v;s#o9 zmt&n}>R15}lJZprEPIFK{I~OxQU5e00w1NW7jKz(g`porln<8fCqG_aJ9`%F6HKE! z$06IV*vgzhAqIEQnf%v-Od8$@2j3*6*gpmzl(j98+DJj`uo;JqK?u;faU`);}wkoaC*HY#}dgSr((+*kyJK{q? zvx9g`5K~aWgU*Gkyy5oCxauQU>J;Ug95b$e|8_r##&QzYNw9$jljFcez6JUdB$6@k z3t5={ahz}besH5#ttnqO#C8Z1)KL6Jkl8euXT$!?xZeqioRSeyk=YMi&`qf-| z)66uM6ve53PuH*`&o4iE4W#br7}}mvsMkZw@Rf`Alv(Ef(u_)s@7J73VBNzFVa-1{ z!w2X1{av)k7lrT!DfX3ZWYK(;sDDf%tGXvVNfmCIz9=C#4Ckjn;yN$33%6z&M2rx) zPttg1O)DJ=wKt?X`Krdk3b|H764`YxL=TqZvCb`XVMjvo_r>DTZS#S}RZz4uRJ)8+ zank~c=aF7EhOs-gSC7JthMXtktohfe4S5nZ_ZZkBZBVe#9)^}*QoDO7+r2^7L7Rdr zcmEOh8Z@v4&2Oe|h{j-y+>^S_Z>Ay4;EAJwD25@BjPbcuX7@bq!7DT8+16%abY6ms z+LJxfZ)=F#fUk-~Lchh^6bkY^k;RE9PMi|cD9Mb#v5e0V*BkD}_yDqfa!O$>>jvj| zj{x`dOb)KW)EVipQpQ?+4c~pHWf$p?`4*19R*Eh*jPjWTf%z9oFx=*jSQ8lvT@WJ_ z_6b@D%+L*cucTT0bZryY_R@ARWNe+3olp8ty4FuvUWi1kJm_%>PXVXqn%#WLtP~cq z!FXN3&la9!x`*i+)6%J=VjtM&zIoeH58tGA4nna9_TQ*TVVnp#b*9duC6zC$p`xOQ zRxrL=xG;;=*xledVg?c39VUxA;VlUr9e$A*CZ?E!{14Vg7%)gl^Eb+ftuO||SR%>6 zNXQ#(5vZob>+N=#glPBEqsBux50hsTNOUY;*SW!S=^o^SDHm{^U*RJ9ziF*OMTacZ z%PWv!E8v@~VcVKt-JpMl^@XCS)IZ_mluW7($^SyvqGNJ{Po=y>mX%PoN5e3`fqFit zl)X_KHopZJ*=I#l%i2oI#Q_8p4Sow`5NMCp7GP-{gg2mJ*XVz8>b|qy0t2Gj8R7mS ziH|U}qH&)6(z&|&(8Vb%+yLA`#LU^%(%NrMF=Vuqo<7QZoV-v2U$*|haoXs2@I}MN zsGR9(tXP!6`-)Tf!S_4aHgcWZ6QX60A^v9lMw$0}PW%q<1^wpQv{o&FyB)ivy>=Ee z#elib4$Cr9Da_dGS@Rk@>o>oAX>*Se{V`4vrQWuv!8$GWCq^>v{v-JGaBsO!R0t%l zA%6w&9`{V~6W8(Oy{%(J@but2p5SAsdGq*0bT&lQ zvh1Y2hAaNa&gde|p9r-sxePIHFGWX3QRNH~PLi*eo zD7040AHe409g>l8tvbYd2(XGF;?%2?|DZ`koxiU}A%3K#@+m z*pm?5eQ~rVpmy>e%U5Z+&D6e8DghZo?K*T-^}atC*5lG5gxm}H^^*As%`i!~-UF*V zD=@yWxF4L{WzE6_Mx!sXqX?OX5jWYR1DSiBFj0(TTxmUpg}k=9pfb)2L8@dYy`A1A z{9f}_!V$Tp!ZEYOA^Mw7_?9>~R)AF3uC_jun705FGl4cn;vpxV{Gem1Vp2otv$YzJ z*RfLR@NBsXYgy1%B%|wBp`Ra;2TWLTl*#L2C2g9g=<7JUkoE$t)J&>|W5hYL+%)@bGF;y_u7{@QzbC?xXSZw02t|vPjglQiLCXTm{mMg(hZ(IXPc2aMr7DCPDTP7 zxIYgfw|BF;OV#cx$uty~noP)(lj$wt*$KhYe{T`-|KOnvV2 zB?fD}yHaNe-IKOWCnQF=8b_nV$TEM9fSc@4s?OUcjJj=7K)1;7bCf0Q6%7U$Dn3r? zGZeUY$j?1OtD+QV7sAj~J!$hNBoc1%_cIhWSu!~mV=EB{PBHXvpQKf~% z7fIG5@5ptpq*drwr!TvAU!4fTbON9vb@=u3zUyw{g-c~g{>oh8MC`{7lus=WA<+?g ziusbvOKajfjK3YQK!XK9?^Jm`H%(YUvxP3NUW9md6dJ>WXAr>jOFEy$P)9DmN~4U+ zZPmjcFnckGeLpj6ygLILc`}E3#jZNSl8ADYbm_<$c?sg^zrTvEi(qen>G@oXImoDM zXyty(O4T^lDK7n>_op9I?hqoTG+IQVRK)GV*q>>eX)2X$wcB(#>?!Z+$E=BYqh zrJ5l-cw#)1br_`d(e{%P#c&XlMY5IZo^%lBQJ5;|8G}?zqlC3Apmd)To2bG6u}SAP zZx4gFn;|i%F$mDFbc6Mv8*5`H#_gn6s961uUCnGRB{x4PffuGzIJ(pPg{JRVP$D^g z@?zIHK0cyl*-QtfZ~@UD3m5(nu=&D;rRxplZfvCDsN$X`p z7xP0_A4S~?XWTH;4S;2zXpEZ1F#H|oj}v_y0PH0;^OQ^V3aVu;&<&z?idr{z%Z`!( z6oR-Wi@lc^b!ggf>y#cCXpg#Co^^*T#=<-jP)c}*N9j81J|hwr^Gq@}CdM2`{DlfE zXAW4G#K~f~gxzj3A=j zmht*D!`}dVoGNwOx)`u$A>H7CL1f{WrH2Z~L9)l0`Su2@d1Bh+oWHPw`5-M{+KOWe zZ3HR4?8#vb*DuZLcbaMr73tH70$D$Td@~c<;Xgh^1UZ0?rd+(UyxO7ooe}nd@PoQ9 z1aZG!DiCyKHkA<^Jv5%2P3`}#(cGGIjdf7+SL*^vN*p!DQzW%KN8*Ps{sQQ8gS}%0 z58*!8lNu6&3K}vx#x18)SyFKY_Rz%n#g7F!<7a2sq8-Ig`u3IS8A24ddEtHAtC#$d z``zLlxv7AT^cR|^5W0LOHRbnaC^ZAoU`hD1`+)b}LUz6_^i%lt925W-UD9&jkz6c7 zl3a(O*&t~qWRwSFD~TMf4MFBsW(cf&Y{A_T3~>|oY0JY)e4=Xu$l%Q(wPuJb`B7}T z9%3m%`#bYl6v<^qc}t0;HV*=|AVtoCwGKj7hsRUj+_WJHJX&Bz5W8Dqb8S zK9W_wqtgg=4T?~Q42T=_#X9#-x4}U6+Ope#exA4UjO_mbZ-01nED~B`a8#d5UDXGB z<;@%9UG<)e0^&u!W}zC1Q>{?lDR(IuN*Y^bhaT(F77qT=CoB}}A-}&uh*6YsJx*Uh z(j7Xsx=De0jE;|*OKimX&O=}D>u>KkXhg{IpigE*ucuHby58C?ArNE8Vop&us^$6%x*a~6>8=zg7)yT~8Gi6|bTI&@IzFRnv@W)$3ez2z%=GbAj% z?x;f+PEt|WFP>)@J0RZ4JlD6(zFLJ&SyAE$7s&182Dtem>%{QXq!|C7M>h$o6aq2y zeRG`HOLUc2VaM9D*>e2hTja*ht||9g0l&n#MUu$-u~MCct{M;HUY^ZJaQ7zn>YP+aO_UR>uza=PaMmPgtnljsLvc)*v;v*un z4=g#SD;i_B0i4Tz)my=-pcz%@>T-e}KjGD!9}!BQ1(>-gY4|PFu7zV0NN|z2m$FG= zhnfBJ3uHTFjKJI8p`lcoQm!#c8b|P*4-o0f;e8$#j_jD3*_ugpiU6%Egm9LaN@7~@ zbWNhgnuhzV~nzB*MEh zk2UZP@JZ~t3xsKDWL<{?ae4((h?10H?7LP=j=1T(FS*jkbkm&q>I!UEh_YRl63RNu z<=_5bASEd|p*anyvhl(@lGQ;;eKUT*7yF5kTam!xug$xMB$M?BUIE<7<;n+?4;OZe zhs-#mWoJZ-Jt7E2bP3SqP%dOSq-PsBJ5wjRE8=9YGVHx|yWh~!d7~N*ZC?;f#R#wVY3>u1i(2sK92juP+MAF%L`Jo3EG+w$( zl}atVD61z|*;ZW=PINJA(4EJgI-9ZYL8z`3MXF=RZI6#yZBpF&I(bCRHnC7^%go2H3BAd+k)Co3jQ2{4k+WB`#Tr1G6> z^fn*L>TGF?I_iZP>bV|HqGX5fryG&l`BwQv$$#Pl6gBHbor-Pc=8QgZF`sHIy7OEJMwOqAjQK^3WH=H!8wQ z92w9nyr>^VS&FXXQ9qN%l_meckhM9uN^W`0TS^5e$^x;7pn}_uVXZkt^Fo%KmL9`lt{gO0DZN%G1Xza_l z?=3Wx0UK4;tCU#0u0lLPyk+j*HU#cJSfnWuq(!h5?ae5cJN`oMa>U-)q6%7|WV1Ca z&{$(vFRt#R?jBP0yE9$Ei{nrj2&UnQ4mAY?k2a9cPNo6$a&JIyhs-OcB z;7%RuwC9Z!s|cy?bXwKeW3of5SVZMFze9v)Ij?Lk=)?p08ivkPsT_z{p|3$sCli*< zAzfNK$!0)1gREU~=J&WqA)HGNZLauq9!Hx?TJ*a?bXEe7snj!DduRH1Q6nF;#a>`_ z=UxG%#%kp}c6s|Zj_znmJ;cGQn9p*E6G<5zJbyXO$>)gQu~m#fG^gl7saoao&Qb^k zE|f^p>3j%cMiW5+p|_|uX69_06ecV}0_@U?i`j7XhAQG-{$6WKlz*?iC?2AX@)aW5 zxr77%EGu6*tWA2KVz3wl!gj@eYEjvYdD}qcn)#6$-TeZd8ME%{{cFc-vXDoYSgYla zkacM%0Zw)89P$ra-}7(h64;L{eukyQk#oha3L8ARnocT>t(Q6QV7CAa>DfxxHPb7^ zfu{PxD(Mc5*9f&3Cw8E@4qgSOW%z-hS6B5pZZW6rCY6m~0`dNfn#Up>RkH%*l@Y|$ z>ToTqA|wOUq%)B=A(qf>;kilK-zHrpx%xFW2#gqb1`^0~QAlb+wBs=3cA+i(Xc7-X ztyHx}X;fSELjY1sN7uIAa%pXTZ!X4`63D&*-BlI$+50HF#iGv%u!qQ?>8zvNqlkAJ zTJmTCqTG9CiKXRZ=%fc2Fwc?4LeKbymQRQwdF5Wyc=7u)AUcGQmNYsIl#)&UHph(PR$i%1kq4VX z_A`P$K-v}!>qivDbMs2kMcKBTDerW%qFvYYbJ#0s~-UkFtsUpt+r)TDV9< zkN~NIQ!D_)9m;5qzy#3^L2&EwTxl34kL)i)~A&yd7Qbpf>u^6Hp1 zMhFW3nF5eb0#E^!ku=#^b)^{^{WBd=PVNxNHm7G5>91&~T@a;3#2Y(A>1WdFtHI_n zu&o=HA^Iq&dSf^g`pCzE^bZnhsmBo#bTcfM0>rN1@G8$if7+T?iG??V9FD=`np4bO zAhZSkU8O3bN&hwU%pe$I+rOuo!Rf?m3pOQNHFK}`jzmK8zv z8rSHjw?=$PV9Z0HpD+RW1_rQmvBxY*!?mf86*M{~>!iRk6P5j~jBwX(i`o$J+rj~d znHbr>Wkr!Je{M0hZ+A9MMy^*2N?n#{VPPD)(l}du>bF>tGq52iHk=5599|;i#|FM& zVyFdtDh~|)2W3>>F0pljA89yKz=M0Vl=cN3$-C|3LqK9tfE_Y&fQtl>iR_j%M@Mj- zn9>#71~jzvESOuJN(4_S7hDsVb&a(?UR0i?OkhbnfZB7j25vF|=JQt#6*GIfGjMs! zD`=*(MVdgzO%`1a3&vbN_^9utfpA0!Z)eviU|2$+_|w+Go*>Ie;Fs!$IpZL8QO4F8 z0F=Li_7>k+t6%5edF;Q6;{{CNKB{woma~T#V$>jfigG%}PgW^*w09K|;ZQt5Oub;) zlb<{z5bA{AF)rN+L_!S8I%GNsLL@jg@u2@e9ZASZ;b$?q&}(3wRzK4+)fPHBY1fOI zxhIzY8i^@^+%WJK(&OSM1{QUuq(>hj~%BNf5D>MbIf4k?qqg4i+CsTiA%0G zjID&rEx)OP{*R1DCAtzwacc*|h=ttPG@oeona&nNvgZsq?LZ32BzgQo-o{53f3NeX z@<8*dQbxoMn&PF?>{sZiOaxe}74YCUs0K&5H!QKi7;RV|8&0~WSgTSDo`3u~D|;U{ z&H2}eb@m4M6-Wy(NUVKoGl!9J;3s8~u#lWdNH0bzsTr9HQV?59Bk1&RmA7wCO!dNEbwWRJ( zl(>6#YgQb>^$WM1(`@janjecYe@{$&0vd&Cli6jaR%kHrgyQ0yp#3@T4&kq6DMvOE=HhO7ntg;OOcmQAX(u_bIdT0VfLt0c%FHz}sZ7=5H2=F|)Y~h1a4a zZ!;ZRZYK5v;yAlWg6c)35O9`qVCoNrr&=mFvFqyt1LRuu?Bv1-Qs27XGwEB!*(w0PotZO$~ z3K+8Z%}+RA<^8yOPLne~4dE#_VBO(!1zTToR-V~lO zw>&`+OhpzR5kJXfjEEBxt4hu z>%+PflQEemdNpqw`y?$?!PQjG{{?>z;AVu*{;&>)8vyS+B|S<``h7&a)9;#Dxe_-* zq|aCx97k<)$E&n!9xpssoswNtKJk_Bqv~qmiy&k>B+XW5s=GwtCx@0w!~uRUut*yY zZiRm^EpM;eM}(ogq30OR{tAz-;1$!kl%kl@n?0uk7r{Hf%>Zt@K;Y(4lQ&kEj=u-z zO#bDs-EbZML)8#+_7Rp%mE!6vy z`txO4)02K-cl@5&_Wgf!e=KUEevZ`Kekvzdvz64od>^}Ne>7gXeRsYZ7U+F^zdm-7 zZoc>RFnlv4yie$RUK%2&Yny+DdaQ33bM14ra(ykz-5%dNfKjd^w&Ve(vOaKIxg=e%910d?Gxq>An_v-YYxw z@b|EYta07j6sfx}U!?QFd{JDW9Bw4haJG5>TFEU*`Iqp32zNc^gsgF)%RX#pvXf*l71m!Pi zRXT+7%UaGaZpw^DZp^1|%;7SQI+b7|CF9G~aL%dNj~@n4)CJ;DON zoK-(oK*4?rNq^D{?10n~GK7Txpdr&dZ8Z^iZ(Y9?d@d}3ucY#~eK0%X?QiMD`2Li_ z@qc@6x_ma>Ov`;w`zpN3b*D>hjeVb9^c?d2d|szEva!nNmesl`fL@m^%YU7mX9szX zR9rnF(4NFSyYcWarub7y?-xGAWg^ck5 z+f$y!)>Ele`qfZ@t{^N6bYadl^Ky;_`ye^3P$a)!VY<+%RXabLPPl(aABU8$JJJ_d z)_UFun0)UWjtRWG9!0#Lum3q`zpPNW`R05@=F0tKcj);l{3H^1IVonl&}FjA1VO+Z z;ia#&uNU)C#Z({5wDr2gXmo=jjR@W;(mIX65Ted+8tiluc7V<}YhV-Rb#&9v5y&=f zErH^&5uvvO4y6v5Szbo`Vbgw#ho%8NbIj_PVL`VSk=76*Sf;yXT# zV+U<9fEV^kni*&bJT^e;(z8Na-l-CL{ zsTm;;Fr1k73K;h>ajp6T_)odq2OQ=BA^uW(of5=nj{R5<*dC)-ugxepgj*Xr(SDr@ z{au`n!HL!_Z^$)FN_H`=rrE=+S8f}1_#@YbA;Db&XYTxG?g7js1(}U}E>a7FS#wZL zuRFNaChTzsy7~jKIK>VZQ1hTbqrj)dd5T<_;$yNG

MEtEoPCU|Rp#^T;>oOdV`qq;*Ra>Y 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

5}Lj)Z8r!8Sd-lFEFdvjr@HNGLt03V|8ZkqXy9y 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

    ^Be*;QCeg0=_NgWD-@UuI!uSGWkQ+c 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

    LMXk z;Kw?!sFzSe+bX${?LiJhJo%Wc85<=L+6NDyz}YIfIzq?vYUF2WCMhKyVXj0{3H3*< zV{Zek;|E}58_Avm6x^q?dNxNT?+KvL7$DqI^5)-3KH`IP;Z(`U+e@B!e59MtDPpkr zonb9e94I+RJ*JPsxff`D3iVddwJd*wY`gUEW3e^li;67XYeUqy^b(>LI!jQxq21 zehVyjZ?zHrm+n5V@WRvw5}39#6~4eCCyNuL=T?{zfK_1ZRmyL~?EDe87Ov@G*38Q> zvlS(0Dh*0NnJFB?6sh%#GZfdc>{TXV?^2Q`yQ&FQA^Dgviq#U52-Rk3_qy*@v}ha*PBpYw^JDh3}#9x2hr_nBj0S% zi|?T_6W|YnbdK}+6=$Imgtw`>!D^jr!`C!>r72t~c1i zwzDBk5Gu++J&j%bO zNOU-zWjmel&kb^uG7<)&(FZ7 zyhu==F0$;P z@bKa*IIe9n!hhIA1C=TfX{_ye-PFf@j_MQc0te%j8i3nzE=KcnEBpfov(GbVLWQ0nvfn()04Bs#a78NYRRN|W$_>X0aZ zy!e8kYr zaUikj9+c47Nbv>C&nb1*UmS}WPX@JC90B*i+yl<&#uGI$=*N#r_K$n8%OzTQu=k+? zxGP#{H82MbZgJ!gt4FWl&gD`HwE?R=>^l57!@$#GB{6p%-ZAG@KDihAAZVp2)J+EH z_o!dx#I0$?(`)%~md%u{;|(I>Z)wcnfVaNp7m!eDD+eXS%-d}rW0d!9PwJ%@VksQh zcdO#k@Qa$A^gE(Bi`A2*)RWe>xLt#UE$wXjdwb|S6+hZSJ$m@IhQsTa>34dMNTX2x zq~_DyR$gh4C;Ld9nLEnODB2P4J6_`lRjYU|-H5$b8Z|0lU0CBQS?63x^S&N0+NzLS zs*!z@(Y7iZ-MV=t6T`IU9gCjqLW=+V&TU57VLDLo4A~C*DFNnFLjY=hV<{Q_k&^rp zK}KpkTm^U}89pSmQM}$wVS}GfWEN;P%}tYataC(|X|CbLgB3qMRBxmY31Ux91M{g` zlcdd0t_Leg1$|zsu>SC@2DInfnqQKqCBypkjRyceLT~2bqY^*3N3!Qn2It}1FdX4M z@(qR`u9iheFMh<;&0D+NMJ z-+h3zp{q5$yNJ6`#u z&yRP(Yp&}jB?xt7kavngs1N9kY*2L1$gbu3K)7CVXM?W10BS&$zoFTeQviT})`z6s zUv+;u#DCXEtO{6aprZE{*OFI1YqytGJHVej@ORHACp};}CEpB^KYpJ}-d{s$I^^6J zXKRt?p01?Q+^gOP4WRs-w9~#bAs@d;)1j}6ORlEYp34PcczpG&OAn_^9`J_bKLGzE z`|sKLQ?mB|1Ni^vy4}~a|Kruq+99RIWAjHMfuv2DJ4IWh;2Z^;3Ozh6`q0_GvE$m; z210`G8>L!4O|HPY1EWKJM<|t9gNE=DDiHz_%QsRppN*8l4&_ayKrO<~BS|Lq@FG$#7~^YI$s+Vi5UWGe_lPOV1LQ7Y6Mm8WI#I?3Hj4HAm^ z(($_)HK@j&2dG&j^cm$IP06T?FHG-JTU10ljq+WH1!d9ovQ{TTLxm1hluJQqBFBg7 zcyWq-<`fsXK;zGnpO1J;v4`5EbTbj0<~uMaNQ9epi6UIze&_(rUO=@q!n@g@?f@tw z0Q~K$eW(tZ9f?ba4t;f%v9tiy@Z;HP12>~=eGmd5$F1~9FR4yu4UKhXVW!7_Ds2kaq<1SgKghDGqkw9Mv#g#ktP(^C7K~RxN=P=@$UZ z@C%f&L$w8z*&b6i0QkiUz{J~Io$s^aBUB}gW*D!#`0(*yLeER3jLV6oC5ztv)8pdYxpm4&Zp{1S)a zlRzm!{4Vi`nVs~lln6%IT_IfleZVFB(`zSYE2ivkVlNm!6}t6e$7?@n`6X~hc(hvy z$}dw7_iY>Z}$Acyyp$0P_B(<#MO zepW@|UuA&LARYO52lQzWDtZr<{~q8_9MKVxn8lifCwL#^>3g=szblS;g(5IFDb88= z;&dk5>_NdS-2jO%8zLn>d{wLPw;eV>ExtcsbU%roN5`Vkt^rr}%0UfAPzKJciqz-y zAe}#DNiP03%$)$cK<|(K=!|7$@&TiiF-lYggP7gJ>O{{MDKENvEaz@u!mWC^_$xFFW zJg8IE19z0JW*QNg?WMDnfzZFr0pwuW(sL?4zD>_Z;6bVB#&6tKmR@JJl4OfwAJ!*; z=XEAHtJX{bkXuxPY_FrI=Kr8{qEXXJU#aj>*yjA7)QB1c$y{Xl=>=3jVQ;cX0p;Yd z&+o(!dcFKIN3#A(fiHd)9wU0W(o6yITJ%RFUucoreFO9{EK25S#DV~jszJKR(#>+f z%YIS?%%DEXCfymT2tZ_9GmD<6QJ%GR0W|{Pqm(O0`IJAdx(hA-9wV9zC}3HB^sFM< zFHOZ*10d|Anuj57T9Uo9XxbfKC+o%mx*wg<&Cj8OA9`&5UO(XFcTF#TTH#;NB>M*H zw8`hyn7NBB2ItkF8|#of*1*r~2Uh(qbL$$FQ{#USUW{s%2hHO}%d{X}M#+T}KyyC^ z5OHuH|3p>B0@^{?Rng6R@%1w+?k^2{CDqYL{Ki3TAT4F*9p*lxh~r@Q)iKN6UjA)U zq&pwdSLG6w=TL)(Z<~~F-RO1r-vcJDB31nhqY+`}+^+K1dKuNB0(&}mZrSRpP>`;m zU}n@dz5FLS6{!=Wt?)ryo4)OM`I;)^;trK8Zk3;iwOBsT%FFMVKta=KTax@>m95vc zq5M}yi)zd$jh({OR2&jG&6o-VU=_ug7fTerq}!k@R;(f&bYtJ8l1f_xqV!1Jqm2j3 zYCYtV-ubd;2#;4t@!K^j|B~ZCdtq;U5mXVY^nAC>pRhWZ`io$51c}K3wq~Nk3zM0I zY7f_ivu4GB!$kxYOblaw>}&SkJn;|y&eK0$KEX~S74 zf|?Yx*NiKJRtAE~ceQ0}PnFvHkdI`v%gesjFVx$EZk2lu=6P4UnYUNS6wHoFxx$~r z`VKi>@)Y#Qnku0Jz#9u}Yciuje&A&6(F+|6zR#hW64Ohbu!7RCL}o4j3e(NB%cICU zB{t`mG504r?*rwe!-2|e8h@Wl_Cir)UcP|eda}_XFhu^EDk0)~s?1nC;qWYvK52~QQR;$Eo@xcTI9}#@?5NQ$3`4Q;&+j1F?@~@9MVEEsQU~L} zWxO3o_LP2l#$UV4*k|H!9+As#Ze!c^m#!)|#xsLnI=;>3zog^` zKtireWybwgKfk%lFV0f91L?X!X2wBH8sg73BpZ^n*y3Nt%rC$s#E%*juC)%M$ZC+) zE4qH-Q~>`x&X+kKdHin~BycZ)|9X*g)4}-3+{dWqR;1-n-<`+lGyIG4`qy-_bEq}X z!5{YPx%%*QzVQElSe=Wz-1ZS+!1rDj6##2qe#iO$1AjoWeGR%&@qF7SbHZYQb#!&=lS)RC>3v|&tQ zQL+o`QyEEPQDqx;oaAFN73fmC4H$iDmpL_RcYNfcqt!?${Qa>g5lBlSAF%6$=f$B| zK)IrwfQSN6G7(kg;BvrXjXGvfoh_kDO4hHCuG6Pdaj|IFlWxIAb*Y)(VnrW-4x%z! zKZcRS=+MG(RQ3ivxu@DpLlFQ5q|5hIt0N&Le;en+Oh)9s2S^>rR>`6m56@5F)!jt( zx{d67GEpOxp`_JC@AFNHD16N}fw_?TL}$>>G@9L~2U!&lLr3$}^9F8Cc{>S^${uu{ z*CvH}FMIhc7!km%a*^V!gtdKziY5neF`fS!;jOGv=9h^s_~7#IGB3scqh>hi)4~=O z%kYKtQYxV%`xl!MUj|e5W1US&sO2UdpynsD)JFQO_<^KOjYR93-`<}BY>i@(a8Tvn z1xTj@(iZ{9OkzOM4h7gK&GfTYD{n7SFa(u%jDg2nta$Ckz^0cnpFCdXuM7`kxLZ)r ztCa$*9b+`Z@GF4Q4NbBf%CqMO=&*9LL46{S2C$Sy{;04fHv$V&ZB`gldFGICO;!XB z9i*1bb0G-F7(spq2LA#$ovZ|xgdtrEO82Tp&CM&oEtEDyM@G&Es>*+9kQv1k*UMKm zKRl6K;Xz48aiLb0e#;(}QSzP2|v}OX(;x*;-G2G|ICYzyv$@R{iKo zZVd_Un$4lu)*Q8&gVqNWA>0sX1=V7#!=TuNK zQ}DbEz*!-w8=%w8ipUAZyAJjmMw2y*@CJFfpsqzgHvDZ&QMt9-E3ae_N6A_xizqtp zhKBs48)BBtIicnWQ)ZDaq*ZlbF1YSS1xk?qMYS*R zt$By)71NmrO09(H&km~MNx#O#;Jrfb=vFD0BzkT+vOz6K{>q3@R`?Hk4CAki#sEvMlkM@n)JtF`l-X6>%id*BDU$vD zF3~&Z$5q{+6NzIp2#;}zxK1*3t5t-jSo|s~#S!(~d~7>PdBE^jnNJ1eZ)mhtzr%I5 zhdNe-umD`QC?Mx_K-J}}bBjwni17n@m2YamBGmoj7k#Zf-3pmKx=(n3)EZ-7XJZBB z0P+u*WQ%SAd}1#%HaGm@>~11JLGdmDPfB{4jvEuyer=r82rm>VgUPmv&YrSx52zU) z0j=#@70Eu>Csd~9h_rlrqUf@kVNbD#jhRIR!{@<#(q_lzndq?o@+~^j!P6*dA6w9Y zxG8mJ{MPS`mfJI4YfR}c_N!vx@AMDJb`>JTLz)O%iqRai2I&-uGHVUpII6Ez#Ai16 zxBI~`a!T^#%PJzT(u=><-wN|3ur{Xy$C2Eej;W8wY2ZEfqcxF_N=|C3BZ>Pf{B%p^ zOtX+ zb7K91`CpS9eFhWzXUX5TxJb`WTDf4a3hC>|Oj?=-)6VwHcF zGh?T&R*{0OU^vJe{M7M2Gfm6G7}W;ZAr}QN*UO?ohmT?R5Z&(T##9Mcj&Z$A*Ye%K zc79)@{cuu^?&=qtrhDOLsN#k=mu4Dt|Nd2X({z3Zp!lb$&;(x>m1yF(@`H8Z3c^bM zw8^AXbnVpkaFGsad`DTb{>ESpcz;E=mMZS)mV2QVg!@;aR=!Sr4SKEJu2=XzJ(B&j zMSJCVgBha(esTVUpdbTy7{q@rCGx^Z)-0RiK!2D{B?HYiv>(47k~=hk z*kDlFHO;(|xpTH_mGKYNAbSP|GwD`zW6pL#v30!U9;x%0l*$Qok!&#B2|MuZK>xRh zYKMuvdM}V9P=3+Qm$@IJ{DZGPGkK-cOXn5px^wuVxd7&8kKR3R?MnPBnNP*IhbJ!! zl%LM;6za}>oYHg_oj~=vAGP91=}J(BmqghvWe15mU*Y9nIPWp)`)16fQSu%PGT26O35la%5#!PKJrBIgAFKe2aB1B z#y!CFP(H0BrF<1i)GpT(YoJCy3GY-rjZlhZ6>Loxt#;BGq8c$sD2`Apr5sTZ04iY1 z#F;BA#hF$!$o*bbn$$9=MXiDwfdAAQf%XJ-&CF)2RGcf?I|Sh(g^EB37*jscyiT8v z4RrD_!Pa)CjA4ZOp;g^G)RBy$5p~L{+*2i91G2MOsfdFLGy_A~o+_mvjU*ZQ7ep26 znC$GSwn|DepuAYnX{eVORNV>`SKh8t#XE>Kb>I;me`?clhbj$#M>va>k-WW9)&{_~ zhT0S{zC#tER{lFfA4u0pLzGc@E;aILXdop)L>aJWI7pVyx*Rt_(UL_PwRF{P}oa8JPXb2LgR9!e)O_s6m<7r88`Xus_4+rqHay@xmplk#;~C`(Jx|P->O4C*Vq&&>{FCkbC3?GNQ%_$0%>Ffad>$t~c@6Hp-b^Wy6yEiTTw3VmoTHa+6vcrV&6~>T+})H5JqQ^JkT@vP}&o zjx?lcak9apcRSx<#!+MujP?Eo$9I5AN&5~SyQ8HVl{xl-%XUt~oPU?ngcKi9ARr_0} zKnD<)DPj9LWw@X|G(F>E zqEH%!2k3fE)ywXxwqi;L@GTW)KG6*T`MTChsQ5m)oQYyk zYP*%)sft#q*x-%i`c8fQj&zLE*MOENUPuj^?DIR2lM*(0kFxR4kUQke}oQv1GdZ3%1 zMt!h<mNdbT@Tg6&cYgFu3Sb!! zFN_<1q^lQOe)3C~4^>2FE@KUhl_qyA3bTuR9z(9pEF&;1kA!ov*Qqr?tsB;LQf#$FN~9T zqqj;uu&`?uf+|<2QIN!s^c@Q2GWHq#SertV*sXR!y+L?Y(Tw2$HvpzCzJMux)`Ar8 zU)B2~0HZRTLiA2_9KkG5+Vd3Vh2P~tS;|zr3Sb5pxZ@xmY@5a>_e)lrQ+nM?6$S*R zkV`*^2$WMR!EhIw850<#G5f{6I)Br{J@2jR<~tah;P8cD1aEro(FPAq-PpemKmQJ% z>SYM^JB;x0QP3z69;T{v^I4ExQV%fZK57}hWm8&Z_9#()$^L*`=KPL{%-nO(qrs2i_o6pCrD5I2f6}k=zk1A2#^VN~U7&x^#S6hv&Vg{Hi!3jDOY`#;W+Mbo|G3H*Lb?3_ zcmbgH5u=e;yD1+fKHbvIL;BnWM8EhUI(EWsHnzv1x|i)=ZDk>7-1gKnZjmBn%PG4+ z!~CGQyk9rg*WA+^eo8^s6#>|hY z%@pPt`x~t03j{m(89Oj?b-b+cAN5fXezF-2cq#t*J451rtI8k8oBpWJOSev-fScGL z(?(z%1~d1LyKtw}1QgKOv<-6Q{ho%Zwpj_D`m z|7+8o@IR&M6QWQ4PuHC??VO}lmUE?Pkg&SXj2HVHuFq$&Z1U48DaiXq@?4I zAs7uHsA&oL%ooCd0FCQYi+HXy13aPAr(=wcxdJw?$E)NfrT$Zb2W{j^=P0c@RRa`l zYWG4dAeSf=g5vs=yadQCsFy_o4L2<(lT7V)L=Vm=5-CMTP+P5elD$|FMTB%hKn4{_ z$8m{cj)HhkDwLd03HfcR0otTc0^vY9O5I}xNTiN$luOd0gq&$~qL;f;9-$-{%~~lB zWs8+zikfkXCQ#nMK)6b#6dZRCz`0I>KJ~mCz?(Zj-mk%2=fJAe^op54-Q_A#2NeKc zR_POFbQ)s%C0D4_(pd`axRmN^vn|wZbCpajF$0m*dOLFbr z1x!d}rg+$pgv(`29!aA)sy0wkjuOo#6(3D!718`F`>>^G1jH1C)X%1*?BL%S%`$sK z^NS^lbv@N52O#K}t7I{itBNx@I~{5WI8UWx6^6vY7j)_?;i;=k-8>lpu%XrBrfu(R zi{m_A(*%!T_vs&x+U+(tQ&~}jQB3F|dj#V&U6mC#lEl$r}s=Q-ka z?58@u5Q<{Z@=leCBCxhIWxX$6ZqgS{vv@zX=AKDM=@Q6tVWL5VMenw0X?U#2ny6RU z06ujtaqw5DzL}J79mKoay6I_Nbg1rU0I?fHQAxxs>KxgO!UuHs1kvld>~yiJ=LhQ` zX0bV3#w%qD%!V8=x}~$TEA*7GtA3$dw(zzD=|)&H+ieq-EdJWL^0ey&4 zE=M>nJjLpy!x=ZoUb_zlfqK_bjvS%JdU%-L$&v?Zx4*;P)l_r{Rx@fgLqJz|H#-PV zs!`W}MK^z3_3~|%fRgwChYdE%?xfd#gGu%Ulz}tA&Qx}Up8W>!*7Hgud!D!mwTKe^ zp_9GUVX6)iUH-{6T|5Y5PXR#cznfeIaGdNpk8t1$M*-ubvkDIfELo*g?$^8ypk1?`JgL)%c@ zD-{yYH7GS;iDeixI?r&ws9BpVkr;QFE*y0j^dpFkIO27q!AJ-|b4?*jC3Pry25Wk| z-HeK#_4zUNq@_R=wb1#1dC^lAUn>FoUMG{y+RZkM_kkQiB`?-wtp-xv7it7sOa}gKW>O z3n)jir~)V^`6}b@0h%2&1TlotWdG==6(17ai6!0xKyfp6&&9nS)ldNsH_BrT>IrgW zA7j7h!?hGQF7w3-uAAIfoKW8pLvM%^Lvkwpy#xd^KG|wUDb(KwEGX}X$bH6OY+W6D zDasO&Q1e@2LwofAA7T2Ue84>uddk9rPV@jluBGE2Uj~l2yUN>v6BN%^I!)Rrwc(0> zncvk@lbivK z|Gl5FD>>dLTP3$b*s%tzhd3R;cR+=~TkwIO+@VsLN`)WcGWPiR&gDV&MMtv!AbPg* zPgI!+oOM{AAKs@oBGCm5HjMK4hQcM}(Gds6RC&(?!`QD%0TMs=HQS(mKGX+MH`nxt z%=1=?1>x_JljVAfqPL+SD23OLv9#9@xTIj}0HDp3I?R>NDfTa1>Y$Uf$i;C{uRzET z4N3N|T-y68aACx0&`+ONM#A z=Vt(J6i}divV%d%fF?eJT0u>9yuusjLyz-YwyW|vgN7j)&7u(gHHk}x%g1XJXd9w( zv;t;;|IT%|0wFlDJ{+|#o5as*fGa^~PQ_ejfyOVJBvFq9`w!EdBX!<{5QI}57Z-kR zI)H=k@LRhK;|#?se<32E_Ofoi2Fetwk?lSWt5W`vPLqKmJ)no)eXs49`3pM8?uCY* z|3VMKzd04Y`!r@AJp^<8ydqKz`Li`Ah|Yv|9baiussK#Ue98X3LH_8YtIRq}asFWO znOMO5hjvA{8_eg&H_P%Ljvszpwa=aIf=4_wQ8WJGw8Hksx_H>4-*)hNI#Y*dM$qqd z(O}Ge!J>Fp4P5aH-MIESOQ@^tO%0m&PUx$z^kVe%nxBFbtl(AtZZ9~&8oL#S{x~`V zkx!olrAvMRy^g_^oaiq_1*z|e@lnn&sY9K#(wng8T-lq?$XcxGXeNO&XbP_0A4SnUiQ*K zk`1jB{i{}&4olbipw|y?=c#aDWqv_!3pP*463OLgfOMu*O7CXYM$*>&=W6Zakt+hcO0SS1sjEvSKcKXGpnMJEv5 zrnd4q`JJ)SAO}?U3R7c)Y0$E5>9jp-77+z~xgzp>Y!NW%2TmJn7o?~t=TjH9XQFOgUWGBdPpa3>G=Wy{@*e)rAPW?fkmI2S&OBIdc0Dibs6hu)EGZ+I^pB$B2 z6$mmR`0zo!QLGWrGykH-*j_56eyK7{G!Zw z4a^Jmv!(QVW2@2`Prj%%I*F3P9ViM~XdKTr62f5HLHw2`kj+rC*6?F038oUG2X*k4 zJJlh~ke`jp4RUi(2!raa-qi4tDfOJer<5;K5v7#%bc^D(p=qfyf#w5>-J^=mA+6cY zJ7*;jxdK6;bMh>_c`_<`A&eo5% ziBM&_6{-wR5#e86>cVo*R;gD76&xFn(!5;3f{aoTk2k3LIZOV*G-Ija#duL#(Ri!k zyrGRG;?TAD4Dmsb-5^VZpec8GEgf1z*n&6$|Dx!%+ zdSDeZa=FO*=35kpjvT1Rv!P=?W{ZFk#U2+CA9WOM0PE^p2$TP&#s?}6#ftjN`>JDM z0!YW-)H+2?5Kr^(EJ(IzT|rI=Y&Iw&SLkdmmn+kv5N|+Ye4L?AiLqfEWFkf$(`x7W`&7P$z#Qx(KZGSa&QG&Nnh{ zC2_3ejf&{DDw5m%(ue+NS$~!MFgun z=ghcA6=Q{DSSJ`%z3^9R!B@f0wfD6B_((m7&02+LxO5a-S44|e%JvcB$ThGGo%*j1 zfpc)HhUp{s|MfCZ_W2bre!502_v}@s<7-r9t(%VG%rM=RawC~b6t=U(*ru*thqOVW zmx%Jt*C}@aKUdsWbuV*h!(sKPjJ>M3YTYl+(;Ct3sz^97VclMYg)SD6mlB)j)e3g# zv950HJTM#<=T_YFv`#ZqN{>0U)+$nm$~^2p_mWQfs$&?12`F+0VC^`~-XM{?(*fg3 zF9&Lxt+o=7KQKvZ{z}P`=Ia$8r-OA5n~wiruqp_?`Bl~|N~nizo`HZ##&{5za_YT|(x6T`aNY*JcmD^3r9O}Ue73O^T|ApgGY<@Z!Y@~|R z>|!@FN_U@Im+Wbt$k+R@0 z|LH_Z(rK2(aRz^Syks5O=TxakLpPorKNgnd;eCEup%(QHSi)vHrE^cU6}4}+y>O92 zNr2)cc|$N7ss!Iiz|#>GV-yCA+Si%9*)Q=ofiVB%FzGd^=j=~x51>Czb8p=)DCpRm z7;v&5%B@AC)B(Ug$|aY_Av!Z}pwo1Sxi7Y9~3Wo_-)#i-uOk9L_xT}v9_)8hp#dBoR@HXn-! zAn{9ffO7G%v0k0P`pbi>t%$0)=1WwtT;cjugWYapY?jTRwE%_3JN%PP#&SG<1QHD* z9Yp6;DnYTwAWYhws&F;s%S{`oz)?oZ+@)H;;|yGWxEj-in}=yf)z^ zs>O*HU>)A>#g)g`{pdlR-v&xW9gjR3JA^K$GW{tIOf&T}?N5GE9gCuDhHz*$$_GUI zu{%{}42+`_w=90}kkrWUR6C~|=mS6kL!f5RLzqe0Dqm;JT5IspK=P>ien@j@7V4!3 zV?pOg?13HlRmXiy;?q55q*MH;3|jOFSQj+{`C-V6armv+*Z9#*>X+fb@G#?x_&z0+ zP;H8R=XNCeuT@xY*kqspQJgI6>O=qt(J$FXadj2>$D*ks0@Sl=;2BfDxLjO@LuzjsOK(gmjPno&o-=}nxDeVb_??vBC0Q@59 z9JjR&n*Rjq#Z%0scKk=<^Oy=Ksf$l3Q^^FCslp0U4nB1)qjL`ku%#lUCwWwA5=17w z)%eJ7O<{m3)YPX*$@g>$CMDfa(rY4m*@WairNs$>?rnjKM@Ze`DN=GEbsDD>)b0ql;WWS$ylclS8(U8~tP=W`{(RPi_OyX+(VnW{6(? z(_(y^vdUq{r_cc?%_M`;N{A2${S*|3==#*SlT1qvQ^^$P2#ipbkVYM;u#Mddv=ORs zpl0)`K9zdNcZwon+TvTOwv!_1BAq=2$!VqS&RGS-0H{2+o^quVaC{RF3c5iq4k~Aw zlSc9}S290)OAEp;YSodVU85F5?Lcd$@jS!*na)eo;fL!4bLXUqd^mO!U@B=`O5iY$ zrCNojkY3c6p4whj+EK`x+a=d7bd@-l94@e9N~Rc(Sf{~L%#fY8Vllz zRi$Edyvhx@x-|Lm2Bl+ago+B{pde9A;;dBU9E9}X)bqVw5Qrkj<{Xup*0?Q35d!Eq zI>6x(!z<2E?89`YL;9FOH=+F6e=^JnWw?dZC@J03Zc-y#XiJcu;vroedO|Mw9zF8DOG&5mXqSW}4Ha3qjRB$G|Jfgu-12>;^m+Z*iY7Llxr`V&&5<@ z*xT(>MMiX-fo(wN_bgP%>Hw134LX=K$X*31cvflV@za**cunY)S`pQg(=3l#L`KOT zpgB(fg74CW-SVvB5kre-073&9!jg>1hWQ!8fgRaQ4u(gJD#!QDWBR-tWA{>y&8@aW zsWCsrhPWI!?8R=XBInd_iVo_mi)6n1KAj)cC-K)bCy0rd{<)W$N&4yiy8V-?I9!eR z%q-h0-)F6?{hY$zXH^1@CcrRtiGX%#l$l9Cm9m;>6JNf^d^+!$a)fv6679yCW#Uk> z5`^vGPKB-rtUjPO%g(tr6tVd<9l=aKkL)+DSI$wzA#XuJX;SY{{bpv;s85_Z6Ri`1 zm{NrfsCwm-HNV`VG}03cYGMJQsz(Ida#NJv9-@n$v)I=C*sx;)lnu5sn z7fThG&%&gHjlVIG<$aebJQ{SMKqr|xAH%c!4Vzf0w@6+kQ26wefSV*)IR}V)f$J#?N~lyUcHq^vsG)lIP3U$ zANt9{8zdtf+}A|hfzQmwik}~OGs}_d5D)`od-0p zeRmIq%IGLklHNLbN8IkQIHW4ucz%sammGdMULxAN2NQFw0WlM2coLJ{&DICXS2fC; zZ585t=KUx|G>AZpOwq z{uL&1rB)UFEx#}UV`o?Byh3}=K?)76#~mt)2Tj=uOKJi36-MEVUmJkJKLJ*wT%oX{ zNY=MG>|lR?x>6pCihO~>2YV&^WQ(S50Z5QT{n2k#{cJ$9CNcupKh}Zr>sqs2-m12! z{*4Ygb@&gex;eY2NuE4@ge%$E06FY;wwcMsd&LVCe!!4q&l;q~BII6t3YfEa7uy6M zy`quNg_-AQ)LRCd+rGYwoKAmq@U&Z$u~?LlQs4LdKswi)4~%2~3bRl{s=a!gAg3b@ z&!98Q!Ez4KCHstSdV*RvbP_af^l_Csb_EeBijVgg#-AN8zOtV`?1NOjrBz_G%K^>! zoezxjH>jUtyhcZ`?5%PlzW~P=1-6I2Jfl-SM|lnfSW!H|p;KRO*^W|NyTYkg0jyyB_741}?Iiw%aSngVVq}--^u*7PlkCT)lJ92XBsM_h+Fz*n z(Fo`BvARpTnX#@u7RSW}S}TX@Yb5(tMLg#pkj%q$FUBKKNri2ZL2qc#5}OtGx&gkb zOPU_Ge=X<1Gyl%8Y$i9xi@tmOkRfJ(sl}&GZ6(A|PcU3+NoUj{ zq-mfH=j7>cvWoByX6p4QTwrLBI4f4jx{^9P57$Y7bFQ-dveTcQ(|ht(s^ly+9NM?5OJSoOztNGxyG%yW8FE z-m>>zrD?m^y}LW_nPn+ju$lsjMDc+pn3V2@R{g^+4;3{Cm?*{vA%+%OpbwBlpwvb{ z1;GbKySt@r48e#rL{O=U)+Yh<`_5Jqqp^Q%cjwNXGjrxVzVDph@B0`ylg=7r1*6-! zSI2PrC~lbc^6UzV%}?PA4YLJ2s~vI~e@}1GkvK4!R4`i5=atSF)bRn57)hA=d&*x} zkL!B~(e{WXt6oe!OX>Tk8#Cu-VoTL>{o3&o#6 zs$JZZa3=*U$0YZE)k_3o6p|}0 zu-fH6WG_m&CsI*libO_$=I?Q&d~6vGYPJHT(%+cK$^*Vrd&wTr zdw&P5ZV_UZzn%Uv)3shw0X4kWQLhXH9Per~U;$|9Rh!XGUS0jRUvhU-p9i1=G|jO? zQ|0tAkbuQd4Ydrl2=Gkl&t$C}PbxIi=*TJ0z4)d;N-fc_qF;vxWdym;pqgH2;ovLG zuoR@!m$@pX{0)fR3oSKAu|oWMvD1y29F^~<62g9~1B~pCE{P-F51vzKB?Q#BHGN;b^0UEd9y=$zy@mPty-lt!z}PH}|2;x<@uMDy4@} zS$ooMa{Wz%OjnAue9~or58ybIO)a^fnSGRkHs5LRC>N}kjKvF}l)Y5O1O>}$hIhas z`wcJ}fo%eD^`i0_=IS)m(@i;q(tBx)Tlfp}VD~fi8PHz3$q)_?)hQO%1;HQ;bKUCz z)1Ni<8dvefAjC*n(BLAy($t!ro<}!n@Q8sWZK`L@Ue4U@m|5B<&|S_M9#7*}Wq2Ij z=T(5BU)QDk$J2Xh(*HVj(K5sTV!#@p80uexu_XGft$xIW&U^YA>NbTJG%DN79W5~- z(5_iM3V0sXybcZqGlsuLa_^)9-E|*YfveK@ea`gXzD!Fx&|>MkL1F9t zv819iA#J1|VLa>$T(|)ZCw{$T#8CA$4K26femZB3_n(lE#K=uV-IF#B_FpHn;D-_GCGph~f#X3qo5WUas6&M#icI3uIB zX%&NJi>T(*wzbA`W^O%4v0hTgOI=AB30jeA$&KFu;a^jiHOC8At?i_a=NGF3t+nOK zUtriwG1nfZlkUktdr|9T-#N3Fff)OrIgJ~9_c2ZB+s+6GmiqHrL)}^nKwn+Z#nAEe z9^@bJ-4g?@`@K-jui`qSe^i@z-@AfRm+kV!fnI_ML%oP@QMEvLZBKn`r9t=IpK=K# zzyR~9)7rqo>K%9=_b+SEP}ogYchZMfcB&hKC3}%S%Rcq+N<+J^oUpkevwBF@K2~p+ zcl+Z}j=v8!8t6;?BgKA8ZO8BdFgICK7meupD<2som0La3(C~`6K#zr5=WZcNHaYOZCgn#%ATvEfq=)#rUIre|4Q_6M@yK=6-mrbr;fktDfwP{1Wb5J^O z@`3lW$>h_^?i8o+zFwo>aE(^mWO&c)lRMUJedy#2|NHxa=NETx_)zQQ3-deHed6V0 z=E+?fu4x^39)I2Vayt9u?hRj`N@f@S8^#y^5zxP?`u{e%#sALHJ(2!ff)n>lpvutL zi8!GSPo}l-=}DzSz$5J=Rq+#scGzo}M>CZZ$TySK!aq}tQpD$9P`=X2I?VMYvDTW? z6I|b~Gq%E6!~7u1?V!(1Fm$5<__mbRmKGXJl*ce9-zCCzVj@Y_342wX9b*hmAEt3& zqKOhnqs|a|dktfVa3k->N4#gRX^w0=&zgvrByVPM1DJBPSfk?R0QG;@Gnqc-alL<$xdtT=cPX@VLpQpEu^RVd&S5q}uZ#~H^oB(D z_f6Y90nEiBXv!EpO$!@35|xht&H#1O*{c=Z%O%l?l$d-7-^7DQ%XP|Qi(xX$?IlXf zx}$R`U08I!XE)K}JioDZAb&3h`Jp`^3Z}di-A6aMy;w&i=|GjMxEqGa0#F?dy@eTH z>ji3afU7C>K}x{|HU>m2nU!8|>vcpB793+Z1g(l|^cckiK?lf9E<-Sj^DTQg`@0-T z9(5FG)Y2|K_XIau9n>vT1Gpwv38z_Zw3^PjesDX0$`dZy))Ovp@?pbi7Nb(k0BtX~ zdvP{zbgSQ>c5^&qv)C!bX1u)}B8{{>}FTn z(!t^C5P3r^{2zP4yrB-Eh~zS(DPI%q=vvuH7R*+5pA({_=oaCukI(^7e3S|$Z9{EA zkKZ9=v;3iFQZ6bJy)4Q^D_ZXanNah%TKr_)#BC+>pa-edP3O(J+HT2aK5v>cpi1*b zxYt3szz;k{Q0IBhV76e6#gn&M z;UQ+)AErp)7Tb}x($*Hh=+Ynz7Y#M#O7X!!+$P$wZFh^pGL((SIJ=3ey&M-v7K~2% zg@#)1g=&{2oziN@*Z7@$7s$y@5gf5WG)=srW75n-Anjh2R8A|EgbCeZhN%}d34}4_ zsDqf-vI@ZP!%_}bC^50j@K&L&V|33`ea>Jt<+Kye50Bd2@(B#%m4jo#Y$w80Z>$@h zVTQSdw!(NZRG%=z1zd5audeQJ2zvBX&b&0)=~W3@Bfy8N=|;^1@Vfvn?hrjao<@ zyAy5myZKh)!(2Gx6QMY2kEJnc^#gr|y1O29@jI?^PQ9Im{&+gM#Z;k>m!}$z{80}==Tk(_?_!6Z{ac*7Q6O2qQVEDxi`Cs$YR&!Xq z*hG&Bx0vBNw^gFK%^1p;XqeyXLw^bGQM`I9-s1#`P}`PE;o3YtYlfE@xRX%L`A##J z`rt20 zQM4r*ezEQ3#I|kQwr$(aiEW=aIk9cqw(a!k?)T^3dfm6G?~hfrcGa%hbL=tK+?->q zNRfVhL#b*4UC;g7IA`*p_;tRM{vh6)4(1PNp%Z7yjlvm0XdZ_DQ2;0D44GBI>9 zq_?v-F?FVAptrO$u{8cS(~@%5uwYh_QgIXJP<6CtRd(a>)O7#fJD7UV>zlICnVEQ~ zsz3pOipLXb{LkU)0RsdK_5=(B^uG?)*po|4ccGk_otb83g{YILpPad$nvt2LbeXE5 zv!9WcsMXio+k0wCP3<%LDtp4c(6su!;Ec}95Xr#8zywlK)gA53V6(wmYpNx$7>2cyfnXuy*9Qdd9Q&651n57)o5WTrL;Dv*8rXjmo}KM~3GeWK!!z6c zpTPcMO4XkP0@G`5=!b~iap`83jlSaNHD?56_x5r0vs84Vl6dAvWnicqPE$cIW@2J& z=pEEB0ac3b4Ff;KNHaMu!RR=`I3i0uEeWKAkMJ!8I5C*gy^R@0a+XxAE@kX8)wHtE z(l!PmwQ&9um!i2V$)J>xiE%JzMmiG_Qe$=)Oe;Z0Ge16IWM*LKmnB~|57C{@NXkot zhkYqTMmJDU-T@JVzfS&~FV0q}!>ekl4-O@z!}2ti9@7%4wFwr5fhIL32l@G^2jdR&U`JogI&Z#Mli2pGEien$=H zKQVDYhxnWQe5=(Q(U+BvzB&HOc|H&zAg=$$l6JQIzny5)1bOKJ2GrgQgDrhLn;>#Wae5fpmSrzQ z!7TwtxpD}4r3SLBlu}Ab?PG}Bx+I9&?ZKM@bNSp)X#Bz2eBG5O8-&D!7w^w)>1Y1U z*kMZxl=#z1$>C&=zIt{eC0ugvtk{+3l}BwH-K`#8z9}cC&VNqrB`38n|#2chj!o$A9in|Q8nMQQ`(nuhn6sZ8~2bw7X$)x~*ws1+;F`2R{ zVJ#>c1)S7t`s3UoP4QXNuazKhGNAqEzdVdC(l=G)O88!Z!arb3Ri@UEu9|fT8zgzB zRAbx1ZoMAxR7V=Atf9~WR+gnmz=hvbmzS8CR+v}1s^NcwL|qvA1$p_Z-^i`-q=7m5 zDKkICrD8xvpGVlgjHGbpq{_4~w_Xd<5caY)t?4<@p48 z!#mcWGRi3eQ4AFO%(BwcJalgGCh9d4@RhKX&bWW+|Hs01{;%^LOY~nA*8>6)`+p}{ zU&htg)XtQZL7#!n#NPP-M)*~yzYMW6z=cm_q&bWgM z$4Su8X+D8q7Xz8NFf@b!Fa@eVo1j}SRyc@FrpB`5D%WzIvOJ= zL+udJYB_pA+Em-WTICB9ZeH5e+uLe?7Cv0%?_Z=kK299$C$^d^xK2I}9tQYM2I+rF z4ZlmatuA(~;J(^^8vdNzH2qXJ=icww{cudr#>#K$XG|0w!I*(SzhvuhUGo4R2i1+p2OC)CjEr zD73b@bne=TqQaerGLUv{M%tl9D!E|hAuE5$$fOTet3qtdwGdXm6Es~IMAI?olJGZVQH{>8Z&!B;n;txdeJ$`q zB2zR#&$NU$)69|uW8e+n7cfe$>MgY$`p9D=tW^K^mm31AULSrk#Mc0#m5X+6#MDXS z8g+ZNcA!o{awGFL9?xFQE$;MdAPjEb2#r&y@U(Wi%`4>={GPj!8I^T3*2>(t^zh*L|ZKJwRVK|g{-(k zZI9A$n6rE2$>5S3Bkq0LI-_B=MvF&(x}onx4&C>hsA z#9a~kj~G`^a{C$6R~W+XI1}i0DQ|u47*C?S%2gk4Aw_Zu@*6uNYsw9Lrf^YEt-=R* z;S(n;<(bp+NZ$;8u)%mIp%r!??53<69-(f7D*pMaFQur#4WY13xgk;#beq)Yw-^lbwqc8`~M=x zvBWtT&=iNmt#;GizQzP*yva3i8>2%g$<+F0(hJnA`#YBO$x$v_o4?96vCX`JN`ecc zfOoKgd`>zsj6bU}-V@8Z8p^y1;tWV;iwq`kIoq(7!%~8)zo&G!!mq z$-XL3HTfulazUGHjaa6lf@k_$ky?w0cR1QHOL2KqFRT36MfBR5H^igi0amG>Z#l%y zxxRn_IxwaaXvokb&__UL4^QtKg*48#kQc||9z3?Dm?Xqi7M^?(!J}8HECiIMyrLV} z%pZtKu((H2^%n%8qWuRp0TTqP=kjm^ygipQ3^xsSW7jY-ZultO;rj6{AKE%ucesWd z^f0zgzw@kGA3;4=!xfggqF6p|R^bP4h;Ap4zp+&$ z6`lRbP-^}uOEnx79;M|DIAu?0C;3hWR%lPGk0oHxL&XOnnqgN~E@Mv9X&S+paWqIMpbIRE(kv9qBfMV1G5)Gfw;9BiU=I%m6~7NoF8B*i)gbKTpup4S z!1^>E)W&pz%>gKmJ^0P`dJ#==jX~k}J%rkl7J3xWFyx zr8U`M@$gD%{%AI6!horTi9~ABnj~6AyZCI*HI4Th-QMFN+j>BjB^s6wLbOwAjLhmh%>w<^B9&uMCRw*1EB&sVsya|!*|m+>isWX1$gNd% zi33a!`5;hF3=GQ;At`^Vt`{2hIek*@%xoQwX4lzgwk}%uja?yCOhCy8zV8mGs^J4- zwFUUkX+t!Us^e{jUkCe~60EGCw)E&wxUy_}izk8)@K%(ZfN?{w%Fsa`c;0$WX3?#Q zF}Qv_;>9F;1x+W^J@$1_hckxPRp|j9W`*J7%s%L5@UOqQhd9RKi;F2}h%;*db_Ci2 zVTV}ZmUTN3W<}x!DZ&mZ*X2{i;zH^jJ6wSxBn;%JnR%T^_~qks7zooHkOiAm=F9Wy z2wp*q`e&jGOdW7$0#1nMOYf1()TyAoIWYm!fZ!L@FK`7d_k7yJCSK625qI!s+f#1< zsND{iNx$Vw{&H5Vmq?KcC}%OYOhf1^R`w911FPm$ic(u`3IRA@c4SBlrCU^_C9JIB z2j9|PbHKxzrqxn<>LUsD10qvetLQZJGlVPmT$U*B!NmeinZek#oF%l5lQNv>3En00 z*}rSNW0>um480*@I!P z%qknJVqB1UFlh7QC_K^yljI6CZcUjKl+k4Nqr!@PRV^X@$cH7;+P-FCITqLQ0M~r9 zhVa^HAKDxI;*Xm0%2@fuNQr6bKG|1p5W&1@P6E%erp}wj~1?OWt zH9tsjstU528I9cryMglkg;u)3V^8EDB8qE`9!-_P%u0B32YF2z(T;1@%1Y1#c|Gpf z!6VprPclRJlR1TiRy|MnfN+Ng;6qYyx$K8w3+qDB7vQTR-|~Ju=G;Y*VIg)lu*#Yp ziCLt@yoZ!=Ztx`-6r(M;rOD9`Q=sALTeIQvOk5#MpcqZ_G=>07EgS3Xcn?#pdwnAtZaCK6)Q*yqS|SmuyTsFsSq*Px6f{AEYRJB^q3MP<5LT> z11iU|>#7UCfDhyvys97K;J3){GPfK~n;{q=g6v9)uLXV`jK3;y|TfMraM9+sSBiOsjk{R;rPN!5GF*%?yEVVeFi7UDKT7fa6%%#)ibS4u*<-^Y5WHsJw0d zT-!O~5ToR)6v=CR3Q(A43l;nYypx5r5aCF~24Z>wSC*qc6aLB^Y8rm%XE{DXp3n(K zY$r2w92_4SM6pN;wVLOJMF#dLGkuX)juzSA@~u^*tYy3aMy^i_yHIHX9ci6T*#}Lr zW*9My5rxsVz%NKR;hiYnhZU>BwO9vCpq;m5r0Pq16uX*GqW^_zZdg9QaPfSUN@7;+ zI@F@_-o3FI)2KPwb(Wwn&kTQN#Qlb}hBMx^^8r?V4ZQIO>jvQ#xB|G(?jQIFKw+M# zs~m|mBryyr{)k8ACLlh6Pf2W=LC2O7zA?+3-Ijz%z-_op=z`K3Euds-K^{fyIH8%@ z30gwO8$j(NjFMo4uWu){Jmxg4C@j<6;gKguHe4Baglav=6Y~QLZc`4+W~F2aw461u zXfqg}6;Qd_1ip;Lm!CyNjqyV)@5xxmG*_xlQ4fjrVFsdJtdtThxrw%O@PhB7mv*}8 zQN;=dTK!~thijfFNBkXg?dg`Ba*_6W$tI0v>soN7o9sifezpO&HkX>GJpbWp#wgggMO5%Wc&#w<(t1&T?$PfPdQEPLII-Hr{fpg>O4%i6lVR63Q5i>seQ)JDx?yaP)Y8tP2@i&r& z%Aqu`oPEm(+mMRzX_`yw9UIK=s@kapvp&OmS_htAP=tPgW|BD}^V$w;o8wse+kvxW zRgH?H)yjT(zoXIUDZNlGDW6>E_7PZ^g=hO~14o1J%8_LMn?_56v_amU<9Qm(!U?J9*7p z1_Mh61*C9d0> zY5NBcU!0Z(_BiHy5?8xDSVlOmd z2VBwW68o06PvAVUT)X1Ws^zUp&bNji3e$ErzO9Pq{1m8HlBLu#Y`NYU<|kf#<;Fyw zu#U2GiPZ@i%dpxiAcm>P7InG+H+E;=0M6F$eqfrFgKS&Q-E_DYXYz@@@Esjif5-j(Rz`ZhDVt_jo9^tmRU<7G*Zoxke!Yu)nH<{+H)v|YC^-zcY@$hg zJG_{pqVL2lt`29x1K*Ous82}vB~dXz&5(c$iqF#(#D4BRDuwYC(u9K?s%M(>8yvdx zdNa@z(GMf1uTJ?cbxL4(?NAb&bo_!QM4s?QA!Rzw5M8D`w$M|p7T7FGP2hz$IM=B0 zY?NbE6M0gf*)N%LPBps^L7xZQZ79GmNy&WMBwlF)*>l>sPFsc`TqBLP*no6U*u^ls~d3GLx5K z5ZD_mAlX$e1N?~hRQ@fYeOrOh`V|r5pHz<(L3<+2D|X^nJIOllFlA?O0%0PpLwloP zNqky5x9!bI)_qWQF=nFqEN^j1a-{+(?Imi^wSo5J<*zjJcynDp?a|vj<+zdFa(^)N z+;9{b^-ZlCN|wY<9E+V{c^l~Fw&7`a5@Y%R{=KM~+Y`*QJ5g5E^pKF<*1!U%`Q9=x0e zDx57)?~H0}^b8tLcUg7Dw1THaj{Tjn2U@i-JOknl`>$(XP~dE8T{mpNq`fQaWtg-f z8eF!qEXXFT+S*py9mnGveyI9o`J<> z9!T*Gx3p+s*`$tEQjG#m?^m&nKob4VE>-FBj`4Wnt|z z2)FxHqY^$esG5$3-v_B#%HB$8k%I!3>OFZDOWM-+nBjc0p>d?@uAU|xB?U59Xg=#yh1A43QOw((zHohYTvS;hIYnn1 zuTx4(*4Sb|pSWnJyDPq`jJUnb-)4DHtJsUN2iR~PqNMr2)@__!86CndZ~CEZy7)ur$~`DE{ufe@JTlFulS^DOE2s{4X$m{NteE~$^zpC|s*HRMNh1K7 zGcACQDwEo@nfEZ<5xM3L%EWBeQQ*7hE)&OW>Etj|zK)c@&b6F#!S)kl^}<@0B&h-D zE7ig#VKahz({35NKEg3KxTP25pZXr19_1QInpulGAhA9Bu0y0c8LA0W&UujSd2#E0(EKoyV4N>p|o_U0nx_(l_qdO zm~5fERVtH+gwg0CDKWaW%DPW(t53+#Bpjc~iAf1Nk-Enix7%wkJRLEAsN4^qP2rYk z6vb-x)x=DoI|DWbXgJHc0ZC!vmM^HE{$vg+gj(+cdOEN$HdVGjeiC%7euzrihT-F= zZX)+`8?e_iF06D8$ntv#?j)I)@-iBKWbJM0PlVM3xdO=VK*!l3CdnF^S$Zs^V#WnN zkgZB)q9ukSHcK06*~9HwRRTU0V*m$WFGpJSw%OsL)=QOLA|5H{yTt(y(`Fh<&A z$+1H8^my^yV(OMu<-$Z!3#PkiQjc%DTz3R9d`ONtEpen8S<=J&c@MwVk=P>F7*5E zKA}}Eh1Lu`P52ZOrpyi2qZSYq!PAiIAiz8LkJ&Y+Z&yc$e^aAIt8iW=B2x18wI2II zemlEC^_{|N521O$RlHJd3%x?QH7d{A@1b;r23e&nL%Bp-67zw7*->K763=74wu7@B zLNon7nGj2KFD?`+N@aeOpVjn)P1Pm`_1#=Al#T-1c=WRQcywfz0aJ1>N7Db8Op~_q3PIC;94jMxsLGm zG=`;_;VJjq5x(UE?Wtt!b0&Z|)EMOukVMPjoL~jSX{Qg6Nlsi1K)1jYoRFw?;q;?; z#Foug+Vr97dE)-&uYz+Ct<t4Zt>M-I3`DkG|Be9< zu5=hNasC7R0xtrvIU^4$q7eGp{9`@|+LjYX@wC!#ZT=qsI<94?p(gsH0P zg6!zMx33U+2gnTF;?5ltsi_L6$G;om2zI%eOpV(4Y0L5b2ohDKEs>$EY)S-IuAHoE z=eoncsaucu`VGE}S(swaIKL6~6x5qo#aRbjE>fu(p^P>+a*53`7Z%OB!uoU}M;ZIg zy~m!C&1Nk#MKj}OPvb=nbrZxWM}ju!5~NjE-V3+e#8FNT5Ml6Wsr`1L43BYg-a zFa(X#m&e}O;Af415vU&3RU*kA8hXd4cBRo1+td_j}tAOV^SlZh-_!80(Yq>&v zev3rWRVtQU`)3vpIoJCzm7O!Z=z-LuFlzA$Fy5U&v@Mi(bVZxS6l=Yk5u^Zz3?sl+ z?g6mR*KT-G|8?!hFa1x+T6}}?EF)^Cx;7Yj^Q3mx5z43zfN{y%Y5&@L!xoWQ>|(*{ zqHbdvj3G4UC_xS;8j&ntA-!agbv_4$0hlV3M(7DFyaj!98Gose^$cXa67H4LGlzEZ z{*#y<=!lv7;)Shb1guTNNF)h2xm+B_P)!DRB`sb`hn3&V4F3XUj5(KnS>OxMMXtmP}(Gk7@@h ziJIgO5+5yQX5fu?yp7mjTbXYOO{((7$plfZ@@~=!EjUgnlEr@l_$+Q) zBK(%sCfR$g4cu-F^{SPfX?y(^fg$)i`jd*DZ-b%y&&GJwQ-1mM<>9;Lo2*o7F2Mg3 z{~g!)u&3C0)o7jrrfWZJ4=MrD68nCYFJV|g%`yL*aR64%Ik6G<{xL2%xCD<`LGlT; zRKY$END&S%pABTdBBkT+CY8&Z6bJzn4y(l`$O#`TbYM-)6~35EQJRbxTk4X{vny`v z;4$mtb{)79>>m$;9j7z}pWf#=X=JL@-$OzSXEn)?H^DwdId${*cQvD+ue6uOZHt^> zuPP1f=OhKYo51m#&oTMdJi#8`VDdU+u zT905_Cs1|U{o>yNQEjwj;C4hf9D%!7RRt3gW7Txw8N{yGGhS{Kha0D5F|tNgjOVdf zle7DMKoy{Eyok{#Xavkt%?LR$@z3wl@LA{xl4n&3s_@4qy;(u|`tCu16bg>i6$&D;~xz^ONE7A7*# z6|o_PCX}>ysot2ll0KwMjd9nB&G;}VHQdr-%V)<4`SIzpU*sK%nG^rDC!l?XZhsUO}a?v26o_!rSNu|%G&!3&e(7Cs+yNx~)tgyL4 zd>U4l%>4*=n4$_~`Rc~^U8UgKA}*kOZD)FK$O7^LUNZEQ0`#Ig#J~AY zSHQ@gOyJU-3CVG2Pi9roJ~~z1?J%E$rm~*akI(hPW(-ZCk{JT~I1j^~HC`#5<&g*R z_F(LAGw}s9*!vgqf49PMqnZb~!wx9GOt@H84E{DYWmmgAuq0|1LE`$n-=aOH{mP@2 zCO)YVb)?qt5h5pql?*|UO9X5HuS}APqF>zM`%V&79-cjPZ%63H;HmWquoK`;%9h-$ zP7j<^dYsu2&G0C0SVxCUCz-t`3=C7U2k^`j{`-a<~7oE7aEoJ6@w$Bf$3WyC_S(Ytr%E?dc%8W#)F zH?1IvMJSc@w8@z>T7)LbW%@w4kUKunVw{HVogu?`mH{mh^4+b#8x&!1%D%uR;^4HZ z_kSCt7O!jkX)PK$Cl;a0cAHK-Uc8;SbNfPcCF1&^N&gUILR|?|$u50)B`KCineRq| zKMnU9FukOjve?@oze|6w>|$#XQ6kc{z8K;RINt_xrp{{A)>iq5*}BDKB|vVAZsUS> zpi+7a)Jvxa_(Pqp2N%rKsl=$0sC2CVZL)|SWj=L+LrwxSyyqBCp5Qw zz^Ov2bLACCZinSq)?Gn@7lQWYg-$q0KUOmMTG%1WEwPrfq-5du{KjPpl#5j7b#$dS z$c;YO4oDOCL7ZYMq3&Bq>;brPaf3fhXuD+HNFhc{d7S)<~++|p2p3W^Ilqhzn+QA7!8p~bK2dZR|JAWUu{7##t-EzB1u+u;BR5{uH zE+%pw6|!a3ImEO__&8Q~R^sdn>;Nntt3R|d=az&Ej)<=$W2`FgFzU3v*oQ&^)GRt3 zo)I|~j`NN4_Uq)d!AYIOe2AC<_Z!9! z@F)8_(QDQ=MLeHbV~hM9r*Cr>x3jlc`yhCn(bb_pREOcq@IFJf+k_0w$!nCk znV|0Pd;7Ak#I)kVbT1hWxO0Be6JMz9Gj!Q))bAGdBerlFSLn>^L})9xYj( zI}9ee1EP$vC7E2Fo-XT==Bv8qsyf6TVUTo-j&%p=88UD}yPJ4_Z9^~((DmzcH_9f& zra(J!8l^6()VwDzq%-F^hR72092)m0lwqdP3p&UIzYxD3J)fh8^12gj>_4yQ(4D>k zjnf^DIK*Smo$!T*=c)f_s<9ERC1-CSbt3F>xq2EOYg@QSJ8>qhe05T+ZOIj!HV=LZ zI3%rynM>9C25u&#v$@W71gR-RAXDTD;Z(S)o-3J1`oOox#>+Lt58}i_H9wEWK<&dE zV&vOL;ea*--S09r&MU{9hFW?Kb;CHpUA~o1a7%^6OLQ-)I>5q#QZuvCRt6bp>V|nj z3bqkS6`%d0V`Yc&`(Q=o(Nr&7T5<*(=d4J+dw-#oxs1MR;ON6=kGV&xV33h>02^QG zmZp0s1pch=?(5`TAZ=7VqDJ)EeVk0Z!U7grbJD0m@nlTQ*u;DVBmUB$aaXQezunlHb z=q?qv?{i_Xjxz$``+7g&{~Q^S_XqjT`}z3!I*FDK8hGu{|7`Y`AT|H_+5g#*IbdIS zonrB0j{T3*pAQxe)ee+bvA=%Wjf>o=m1IGcW?vkVGg>b;`qsctx$8!jTD@4ai}u}e zo60wqmCwXaa`9HaKe_K;Jx29;{#lM+`~FT}Mwj%y>aR;UcN6|^;rd_aWj{*7@OYeK}-vUb@sqarWf6jHM z8oJefcH_`K#X5|^u2HMFD@*6Q{&GL!xc|-5)c1Fm??_VM#7@F)E!u|jtFUrc#XiTI zg0?8VUi5RJ&);#KCk1_C2UGb|HK)B4RJlxG!L&T{=#73-h++M5O;%NlVzp22_i)5} zfsP{QC3sLEzfL-EY{p+Ryg}q1%R0o?UBC+&%lHyS^K?BCun*tLJ`dg(bUosZuo$)}0(_ zR_OfYtZP|fe|n|z>Ey>pu%tpcDAB!&TW(46rV!#Px8z%7Nh=$e9sDpCt?9Il-v3dU z&58bDiT^|YyRV1q=gu9$|2}$BeJ9TUO&olsC3M-_|MXqZ^zh=2zft+^e52>`O?7YP zyCr3@mZ=x>7eoNuBg7iU(|J+P!>BU-Y;>2FU$P7o zu1YT|#Odg*>;D3^3@JI`(OeCwpVSWr|x89yJ`kNADt`yGEA zRM7W$zaG{4rGEG=yVt%y+%E=lp=tS(e;nLQ1A3-DyX;3aj^&0Q zj&A&)YW<$Quk!%crrn=;{_jitcpuj8O#JU|=M(zh_hn(HTHiP|H{a7cpQ6VnKWrZd z{O{ENAZko}{u1_mS@{{s`|i;Hr*Wh9b)f(Cx)HPSIl%w1HRJa^u~7T{TIT;i@VE8) zyXkA%Ol!N=(njSEmtkMpA|Q2Q{(8IZ#g|Gt6Gk@eyiLzd-`|+C!e%Ki`+@%x=Xso;R&D)f=q&H8 zsOS7c^oV@tTe#i0LGO9^pDlV(a|wE9n!*jq^=472qQ3^ct5sNsD`sI9*=Za1`HK6Z z{dI-^?Nb+*3F*1$kUsTK(ATs#Acf4aqMX#U*MkY z4}5HM`#rGIy6&|vY(ByHOQEfh^ZcgReG;GTl5VK9x?V1?+(yGH!593j!7>{V z?^;Lft-h569Im}bVmk;fwC3LFUayE}aRtnQXV=%k$N`$pVJ~6zP3Km#Q1De0VeV63 zczYtAA)TkcI4PDku)6(B_$;`+xEmlds9Lt1);Q}|%hay{!UrroiaKGu%?kSUw;*|p z-m`bWBZBXcpkD*0u$$tx*`>r8<_z%ivl^xTIz@^;FtMHwnc9JFFJwtsRoJ+@ngiB) zTSEvM`i?HJFGTm5_}jwUR=%NEFBwh)W7M5DAX)4VA@r99qa4R}v-z57S>7;d46(G_ z2C{;i&pqFtuPr8v|Tchs{UOCZmKSBoj{}=&6i$cgeptI8cPQxtikkuS z9hV@q6$rMeNYfKQ%UEH>HREba?P)f9p#N!L$7l_9DpeXdmRZZ znD&LfcWy%sshXPB$QtxJdYice{0N+VepkQ#{fwrs>llNG(ASykC!}x5I1A2z!U`Ph zy50fuKV=2jI!!j&y9nBS+9rMD<1nK&O9EkM>{N3?tDZ3-E|KQ_fT4Q^VE z5nFJ!2N>AZm@%AYB2AC~qo9TsZFth2;^{WCe%KHpSiCI0QWm~6h z1I|`KsgJn>x+$Se(p~d{h>vkggxur~Fqhf=;CKU|t{>cL;}voOF&JD105yBC)Zq+p zla7G9eAWpKR&MerYD6;>8rF&Xq*)95^?aMF0qlqjaRv^J=kAbq{7N{oyt$#B`xIvi zUi(?*gIged!7rS37(3YI+3bN)&?sqRPjGWe-00QP>Rz@*0li>tkC=WUQyPYmj5pa~ zD+82VWy8Zq=~laPo5o2}uO^(%{CVjfqn9^vhd678-mtY^V~SL-Fhg`T3i3Wm$hck# znO&B{=6o*rEgsf8p6t7AI5xRC{{Hvr9Jvxek`COC;RwWYy6ph&FnKR4c*`ndl)Ygb zOuLz&e$XQAv*$=ilsdzUK@_hI=7_rie;Aq{Sa5;QFtbn>7GJ2yv`;(@XY|Nsox@}% z7btDmzyCK&OcT-sEq-q|w!qCflKJ#&Y7Cw9#xt~OmUgl%^_1d-f1_=h6cYOP&;D9w zPr5wdTAjIzIPle$na0~gDfho>3(so_ekEt5?XfMl2gW)^aLD<~SFGVZtymd&eda5C zgIDH|GXVQ{ml0z*%+-|?#4)s>L-xYhp>m#>IUZsj`wUk{MRr^F}0EG zy4$L8rG&Z{TIW`p2e>guRQRUR07dcJJ?%0(WodCI*UXYmjTW$vg=ays~%I!I} zxw=Rx|KAQ}Gi51E$|0Yp>4g>-Fi$x@9P5buru1j`r5cH@84R(mwX-*L25{Qu6nx#B z7CP^pRO=lPMK%oB@jiO+TU|i4YoIpVz{ar6=P*~qpg1huir)|8M=JC`P#a{c3^(}D zxXMQo;wnp}Thg0x^Z^#L3UX-U; zd>VgJFSj?>U-N~$$t7t5FY$^rNf16hDB_&9>0JS<;2)jaj_7=Q#7+0~oO_8$QS^pc ze`=L{BBQ2S}DC!3Z(-4Ra+jvt=FE43{T4-av)IO?^M#|%x{UzaKS^=fNKYrK zCZ|)R#6Lh~3=r*C;S(bLyU7q!qI8^a<&2^7ExrjB<2Z1ch$GX)ro?kYEIE!KawE@x zy=s)`9L+i0+CoCGI7|F|8og527cUUY3zqjq$@fb^*LF3u+&NvNs_ZB+Yd`rBq)GWM z*1!vf9_opArj6Vu5=_Pb=ZN#QlkNgdTbPe4xVz7#z#DA`5pw!tOjrSM)0iBbF-<{<3QLZcMxcjn#OvGA=N^Pg4PoLvUo19GZKYYFl8 z6-w}%zK-QOad4Z^NxmEHs1Pp@MgQ1JtIXC*tf5I9xu$D|CrV3dbv`YW?5_`p-khXt z4=8m5oK8ILpUC`q*@?HrI_)2N6geG7CCw(~CN4Vh*;}0Z<{Pf(KM(dF3#?MY;EAPqe z1Ew`ajawg))_B1$#mq^(AGZJ_?mTsGo-pOl(b`>Qx+|ZUj6QM1yxkW@o+ePuzH1$m zrxL8R)6B9_-ES|};Znqc>(*aDKHyiAQ_%}F`{^ON5i0I;%GG?NiL2yMI)7WUUt0Ox}rNoFMj{uKS0NAL+`n3k`X-Qs`xG+pTW)cG6m*0z`~ivNY3m{* zj2`qEt?+NY?Hl;?6zY@T0iV5=cpM{;yG2WQ*NH$S0(ad&6P5O?aq4t;l$M*mr7`RZ zGEA=j0TymRHvhsMRnQc&2OMLbqju8Gkl`)tff#$8e_Rr3d3F zd-$2+GjjiFe(UfB`kX*=AV8_|Uf}AA!7T20LY>3BJ^|Ywz-b#GZPp4uz^@)NB&c({ z6Y-Am*fts+AgS;ny4FdmwbZ0J4B%eL_j1BqTn1?atbpMV7ZA zTy%wV${5pm4^E8OaCz7JvC0T%4RnKy4l+Z~-M4mD8L}dbXP!X}vQAi}6FyKKbuWH5 ztCSJX=`eH^=`|E$*7)KHgGYRD)0}1(W<`EQ)7m5MW3^Q*;^7T32kY^r`nSUc+;5*( z3AJ=YPC2J+AY-hgL;0PB>@Rl0?i2j_qxVuvn`QO<|H0Z@1=q1`UAnf&Vrhw&(4r+~ zMvK8>W@csviek8!NRqrV8%$8>intg_-IZ6_m)s$B5#yNZowDb!aey$ywz zr1CP_^AVd^8n%Dhct*puC+h`3H5plk9BIS#Vb|ChKVIF^X?a&&KrLYJHg^U=(U1j} zf@_Wq57OveyNadg8r*jA#JYRDV%v0u)smS9`GUuJ?BRn|u(o05=VG}U(wgDqz~pa; zLKM6P_yDSg`i0r`=05ish(9UOM*XA&_Up(zA?H2@Nj7`jKR(OU?gD9lImv&ki4;*P zq*~O^dqaPMa^jf9Ikd~$c@0uH&q5F@Ku$8KI#C2ya2O*gYP};+zsykR@rIO;t2#$0 zG3K?dtRi7&gnTeG*V#wNIm9lZl;hlFe+8n|RV%2-l9Xel^(j5V>L3VRGwJw*JYYwq zdfOrt=BI9o3;mf##1FIypYnS^Jr3X0ON3OL5{4L3npRyOvR%9L*Kx|!7TgRByMpp; z=V=*T6IC}s+eaD03PzDknC|Ok_Wp`S$x$-xpp#a_DL!+SqE#dxrm_am@j8gq2@tD( z#z&~ch!?Hc8kRY~duJy6VNmA9In_n#r%ne?R?YiL)>@So{ruY#OZFwD}_>}!8gP?15(t@=C@{*pulIfDe-d;?Nxkqa+MJ_)m zB5N+PJUlZM<{~+R05@5u>PJUgT&Zxy5A>1B9d3)(k`aZ+C=P7-osj7kd<}mmZ`eL^ zvb1Lja4v-1QQS(#O4+g)>;MY*9jnq&d^ZZ#B^D_sFgN$FL$3N`gcsDZ)a|l}&V@2Q zN?)B^zgE~3+kM#vMsD`&U#0IoNTe93ZrtonSjlDQ3@l2H(=Z{KgBrPZcB1))V+U5j02Fx+~R!gJX)_ zyH5R1ruyKqU2r12M)-Z72DMhwj^`570rT$h&AXJ!L`{LYL?R*eOO-;z2t6|209%R; z(ngNZHTg?lnIz0HbSgpcwEsNrP)9dMQo;0J=*xu0$-9sI$sEr-s;r*i1=e9=OsVo! zq8`RDCwXH`z;B$$DZXn-MzrICAGjA@wAhlRu^vc(LS8FTo=>k$Vim_^>rf%ol$r1WXs>FD3M}p z@_Zwy5YU*)e=~veB2XXjow`k=Xzo|8>z$0_N?zyg2E*7iyRCtfZlnlQu}KhpBH|Yv zH4*yjvGk_H83X&zRLtGjNbx_DE&?KavN2GJhY;?o>SW+yHI@kY*VyHjIHf&y{7cly zKSD5;SX>9>9Oc08;U3{0Yb08G9prDIvvbE1%Qq2e8zQsBRgU0(DOrNTAGvu=A|z4R ztH5vLJZ6lIQCA-IYMlz-xSV671bt3cR-a@YLK8<6oU;5qh1-j}jjZr;AX)d(bI816gH77~&?^e16==@ViN`pz&1NosC?aKiLMoGb z)7j?@5jZo(=x+nv(z@+I89ZX~^?^=g3+|2SWSXsmhe83It-g)NmieA-I{;N8)DUaq4glk7!&{Mk=_)$4=G=hZByS`}h{LLN9JQ}k$0nz^MQ*&kvz%QGzImdKA%LKG!P;)aEvPDj*jf6eJe$w}!at)(@%N|Qzu(VN+2FuG z*~IkSAlU;7pY*r&$ul~?b}6=!<&nXS*unwzgg2NPv%xaor=^5M>+xpnn+-yKAPp&2 z=Qr^&NcV}`qFi(U*qOR!^L%&R9HOLLl3nvd@Qjgj>)q7|u3Gvyhn`N6;lHF25r=0t zzNmsdCzev5f9MCdEGnY(_CVlq;&fLNiOn@cC*F7woH$9v` zoT`s@W{2>wAXVds+Uy1;7N({4i(G26mPm6`eq3e8{)_qvPik_Pe?ODibp0*&vkBE1 z*+V*!`?&7HrOhn@7KY(5)^@0%2WEP+Tb|@P8Nxp^Vdcmmq%nWN!c8>w=xrf9k@OHeW3H5}-?s2SDY2)Y~RZ zCK8rK`eiyS4$=y{+W52PE>RpRz>kIb_m_I59wI-H8*XxecbJ*!$7*h(rGbkLQm(U{ zrOC{v*8|n1a;4G=uSbS&A9pA}-Y-)Bxc?rzd)j{4D9!!x>ozg=+n<}I35J}W_CM8I zc0`?jN?ZQi{jAmd^SB)u+ui2usgs_mbO8_c;nfO2@AQ_}Ut`3t8|^ z@wd*8S1JCUKW;yy3ps8i+K~z7*E8=r`5!KJ977$1_?ly}pC(@He!N$noN4KrbT;|U z-f#~L{=!|xGQ-WSwY6;fq4mS-S+Lo)nbuWZe@2$ZUwB2wmhri{mN9!EXAc^|MJAP` zAlrvq+WSTrJ#4JDt;d^CS78ycH0sVw1VF0P9if7az2mOZ8MM>?EuNo71ebtP;Kwt* z-w1!#RO1mc3&ISeyxnJWQ0lJOi}MCOg2}88_u8Li zgI54vdD|r|UyyF4slWq7tbi0AebSpTYXo((rL@}U_*bM z!WVRxepN;j#Xos9de&AB#kw@L@^|_v>)Pi%(NL)qVpgLeGZDIA&&hLv*-?0JLKz-j zhyJMu7cLujNpO~l^gIG-7et1c1$@PqU}YvBJR>$ronYE20otQHS?np4 zk5@r_kzEaR7jDiUjQgRIxiAL;>6UZf&a8@u9atg_`(tP)QA1)6f0Q(NF!-ODvY`)* ziU8~tA`DdI7wl*SKd~z!BSpwGxQN1Q5L1&uc_^$hH7@muMayo8g+gNaGl{bB?>lN3 z6=&=Legh4|_Iv$d7YU7|G@)?rVXp-TYRU`SzKjhI)nx{!ASFS1{G1^}3uvvQ@DQY~%{(%H>8&amvTkYE3Dk_ysgvQm>uC`Z%eR<#3$U_|(BQRH5W{AR%L>V; zV9Fs_s3CZfiuMJ2nC00KZaQD$(oJ24s!180wfX|13Iwi&F`i<>vNJs9BLLX0p0V@a zQ|@1nigG#Ai7VUEzSpAMTq5bTEo#W1jTS!;Up{DB%5NT8j-y3PeE>_KN4t%N+4SdL3@l( zHKFDNqf?mYnb8eZfp=DS4C}q|=I`pJl5(&v^S7N-_|1R$xL=qX+s--u5 zTK#%ehlTrOXo$HK@cKEt+Oq|Lz@YuU9O$)~wIyGWJUdih^cqA?69B}^62O@5q3u{O zLGOc3eO|y(1g0&9ea)gzx0ECoD)@SZGn9wtx&ytBId(WR@hSd$h@Wr`bQ3l30VT7> zIOR~tpw9b7_DiaJa;;?-<*|Ec88jEpiPN#5W25(YZ*Q0$W%-KA_9--8BJAXIXOnTw z)7WFeZj#7Qjci6k@TM+$FrGzR^_@sQHn?A!l(Y)p^7x`qj3tRGYM49vrmao;!D4{w zuj(^g&0nBtC26^8Rt-_H!VyYs2IC+?euXCt79P(vfikUNV{VT*s=g<)dy2oCa_v*c zcUEmCI<;sfb~8`O)+|D?S>EopcuoKG>c%_1cEc|=u+UD3d=5%{ zt;CDB`qeOJ>5}R}<3|z@rDcuk|ym4Y+I9-$QCm+qKGTWt*7d)I1=_DjCS! z2}l=fmzALvpa`dC`v{~`OgV`_E`k;C^cM_Y+Dm1o7qXXAq~b7WGhhA+T4IdSQ9&gI zWGj0SoS-W4kevC%1xM5i^5EVvJt{()Qd2oUS;Cz{vnrYrT@H;EDEN0wOJ@*?3}|BE zx`qf4E(zM86qHQUkRI!#K>E>?P=qY4d#gAW1fMp*&e>yvFj>V}MQ^iB&~yzQNyvIF zN6A5`^ch}J=)b0*D?PA$>EuD}TyOWuF(VRDx?oOl&_*QUJTvWE*^B8T#r^EO!eTIR z5HL88*+~HfP*e~Y-K^kPsS6yoodk*SzEeBmB}2dTm&DoCbT@or(8LYmyEO2NgWE?_ zX?}3Kl0D>(R5>9hcDAnIpYG+A&PaTlCwHvVT?>wMq``-w%2co&zdua8iok-gKcDxw z&9m6sA)z{I$7SoSF_*9H!gE4;V#hq5`Z%J`(Ul?K{53)cCHa+}VcxL~=}M1mHPasv@q4SsI+OLCsx0}e0)E%@Del$pIWn8188F|zawwC}r91h-vT|c{ zg6Zk6^wHVpW78ta0nWh@lg@6;OoA(C>mV=HPw;%C1UV=y$Snmq;%XOAiG}QI(+SCB z=(#fKxnNLi&Qx^UyB<59G-q%tI#$1kaywN!>ebGN_=9)3JTz!RP>A772!J9r%x=<( znC;xRe-!nZM(3Vpmm)HNi z{DH@=Eop)xVWrTIqEjT}>s>czcXRN)$aG?nzE8d=GVxZHR&6-0zEyLS^6XQtw#wq~ zib?~$uSt_0s9_XuC=ZSXxcCU{c%AjpQJ;eX*--GV@fjX>C~MxF0hx1A#roQlOj` zJV%9;gJJ(?N%lnOTkTX-BF*Yui*CIoS|MWj{evUL++Hk41YbcMbMJaC1d@|u2plw1 zl#|j~NrF$3&qc_1i8d=4WlS4Ju*e~bfBR*4Sx_wS)OuVNZP^?D&*Our<;S0w4ZY!uzv8rCLx29qUlL+Rl_3@Jr%y-9|Fyp)XN&*n z7rU70mPEFceEb9OtAM3b3XUcyE{H71&rw6gV--t?G#Y9FXOB$45491M2azu_GrQ@k z>uI~g(yp@Wsbt;jy6dU?No;zJ<&<6pia&YA=Hv4BVQMbh z^C{8JbAj&%$N7(6a(chd7h=01qOdRc6LjP~E0)qX^|mkSDy~sWw^xXk{&f1*oCX%0 z7%vU{dAnVL(er&cJIVEad1K)JsQ8T?j9Q=dXXG|SQzNJ5uN_8lhhrFVdj6h1o!Gb%be81j#vV32gJEd~}*11Z42=h$6Jc4F{sW#$H z4m-K4Y^ZYz#Y4&~tY-nucglyimQR51=LsF(1j4KEU$t%SQ=_PiS zjyYhPUq9Zv^xq2bdv>)tEBI)wpri;>*c|2lVD%(jsfPOu<@;Lqy13-j;)I>~`T*AyGY^5`>t8TCN2!V*4`i9Ol43cjci7}k z7A3z0-w0<)fr*#DHG5)Lf~kJ629eh{*Dn8lGs~@f>l5>@Oj8SmUoY+iefro1{{A}l zy4K*`SRwyZ3s2GgWaPV1d2>iJKo&T2w+$a{c77W{>wf64t)Z^|`{%fj&^glV^YlR{ zm)86%8G~!wUbv8MM9xXEL9ldZi=^%z*LIf5=*b&fLNR`BR+9EN(XO07DaDSYL&cpE z$))Zo*p;^!Gq-3eIr|#A72`_06BEiF5oR8;|I|_|Z~NQf|1FjOQ@X3*ol*>rpH{^v zk6^VF1y@KEswS2F6PEuQ{+pFmDN>*rR}sZ+DiBh^SXQg}r>?6~r16@Zviv)+(}8MyaR8hBBnkIpv) zkA)H)Jh4HCyeov{@=jPmLf=!o*jF0gaBZiG@av9iDIr8WJtb6y5*}1L1bcV$wSIM} zm8079YO4^~YdK1N*2wWJWZO=mRl%h~P8O|T9%`spS1EBE}8N#EDdD4|y3 zrE&VVru|P%_21fe6^*b&wPcHw+mQFgJ5lOfu_^3IZ(KILf?JD4@AC0dg*%gfk|)ai z(HRVCFRYf`LPrZ_FW-~p3Xkuob4|}w6ob8ju%Xs=U^#T-qCT`a?@^%X`N-DV<&u7e zE@IXct-WVI>a_h%vA;Ih25@-jESK`WHHSe3uo5IK_ig670^U(wF6lJ=#KWjw8}m-FHel4JwJUCH#kl?+TGv+hCXZtT z3#*ewu3+(qZEVI!?j}O|cTqr3P6F|W7Z3dLT}A8CQ|{gpKeUa{54C)W?d)2IKZTt% zYo7MOCH&7f4KvI{-fO!T4Ez;#zBfxfzny#@`c`s%t$l7}J{Y>+8~aYqXOM8ck9{|H zFTVXy)gye{r@3RuUH)@vRC;rF_T%NgvM1z^@9X^tQupip@2b9&TnxhMyCXF{iOiec z*ULXI9c44QnN|~xfBp>AMaSZK7uC*GH0ZId_>z-XW1flL)~Yj5&qaQJC}8fQEX7W~ z5XJOVDAr9{i71|nn-leZ!)`!p4Hcy2jkV9KmeB z%>C$ocM+(+r6Q#-GXn+09lH46H(IfX!yB@djogIzU%5-!_4T??Y!pheJC<>qARJvqKX@ z!$W;TolVRR^h|WWXu#ACR7{k=KwxqQGA2?w3PQ3+(rMBXQeRS4QhHJt(ruFF+tr=T zv(TlT&gmRPFP5xHd+LERL^I~BDSP^X7sNN_{-h5evN31co_xpvFvgfOV^2Ng04Qr* zw9}rr=NWYI=Smvy7VoOy0&t#ljCWA52iVQo#9J#^RSSt| z-fI+TC~H7zG^!h`W2g_RIjdD-%mKOp<$z>>Kfnf{0T2Z+0SM-9Nr(#YNpK6WNiYl0 zNKgxqNDvBOzrAe$|2)--X+CiD=o^HH0hT69Au2$or6r&xbJbWK z`#?M51&j6Q>}Ua46kQ6cq+FCG@)(PbR#UUF-rQzxxS(2;N9wS)2o$k}DAGuByK+N|bgOX6jWGFh6!pdlOP5wn^&%^bG( z1BOH+rLa=zYSguxT1_Q4+;m2*76wX6Wf(HI*?p{E*Y6w7?4%C(`%F8hK4to|2U^2y zAc8Fn7UoNmb^dmjvf5^SwXw;-h-JkzXUaPhnjPWFD;|2sEPl!`lbn6S#&z|wam}P*%`|dK zHIt}r%CvlnIrE5}##(i~s$RoJ$*5sC1=N;lJoy~E~lwW>kGuA$Gga0-+;vS#Ph zYg#ZxmN~|*WL>hZydm9?Zo5K=g*bjoYPvevm~P@Ub=*FMl$puiVr{#z34UR6v%%$N zbu_=69W6b-ov$9APJ>Iz93-da2?fj28T3&s z?I2E*T(1ptMY*NzGR_$!3>b$}AuAD75R^#rSy{WTp35K94I5MsaED?d(-5d~Ri#+2 zm>R#PK8+P~&TL-=?&!xla zMcs@+&%oz+h*05v*i<|7tNG#LYAL5wEP6T}&9-}ovy1teBfZmW=3bLLDT>r-dL8Zd zc4w!vpYsDp-xd~%Q>E-u1?dBILRt}BfXB?6Chb~MVP9Pt$tHT3r%Zw-BvPqU73d3f zK&{fw>4(f~M?H)~CKXam6F8}0`UCCZ4sFM_%lf{fp87eH#0k?>I(jXg<~D1$wY~ZU zlT@w0Z}iUU74v{e$pmfc8oiVDar>lG`gMKpQBT9HN&JLiDmlHBPD&fCo5o)Kyh-xJ zAN?k&=n34^Ci)BQ<&G@3wq3`$qX@5Ba9(-c?hnVMqt*$y)I|DHZP|`2K)gNIN&QH1 z{;+PU5B-}Cax1A~DeVeSZ0Y9@V)wr$5|Ih{zE-pAA|tqkkW@e)4VF@~RWgN5ZIjIn!!AAB(G@8U3? zh_^VGOoK*c;##q;gjamr?#}nm;u#*SPv(1b^M%RcRQaRgabk==_DlM$sdh zu`YxceC+Pl_p4{%38R*gZ{QK5+7bTP55f^XS@*2_v^}N;qm+@8$;Y$8oFk@nqo@(}SO>xbK9Kvne>hfN(T+YX4Ny?x!;(k%{phGa>Mx(y+Lo%ztYc@u2`l{giGEgZ_=+Ddd>1@ zNOFhx@w`)>X&+u#CcIPLs&3NHSSHMxXYg~|`0ox~0@nuu_B8nSGiF?J@%TA>Y+p7X z+YX#oN(}@G{bJAXXUX%l1V;R1KjZnZzgR!6?Kdoy@^5%Izg^y}oi$9DwagIacJaS? zKfW~uL;u+Gn-RI(FJT37V12l{3emCCjrAXz)A!Ob4L}lXc5=oj+gFk_NS!><-h)7Lc|&`9%|wEWoyVjZRt!JKH8SYN1j&`X>z!jI(8M>gaVW z`l&Zx^_6;${pdbxK{mq);W|McLr zpE)3GVK(8-akj0T%|XuQ3!lv(reU%WIEiMzAGr2r`*kRG6Qc`( zLRjG~@aM^jEF`R=O^K(3HG>)vEy(|(DTUTU8WAiQPH+i?xI>)b&+zBTi>xGC;(ikI z33-Mzg`$u)G%lTDGIJYCOI*kC6Z;6i2H&FqQJLi*iu6jgNIr(Zjf(y^Jp84Hf~$B7b03a13oB58nt z=>0)euo}R6YGcLG!#FBpCE*I;5=nlxlF&)mbRaX0vE1l(91<~}Fnh3dH^s}WhLQN_ zbes-xhwx+YCCVCFJ)5!Cs4JCTbT@#2lv~s}<`iv?@-L-5F{}hIMbd7`8fy-iV=hn` z^p6W94i!QU#fRgfE@ntV;39M+IW!(Ek6R!%6PgamLg3Pie3nlx?idb^izH4JqDOEd zZ5MTpJq65h7er^7H%6Od&+!)si_C=S0@Q?RLbMUu=%H3x0gfz(s-stNJj8CoxMKG) zr|3-d6?EP>HB9`5LW7fG8h{2;keGBt8vYzZ!H+@MGei;?F~kTQd?qqO^TE0>F2Djw ziFnjv8i0x1&{D)@&|ZTi5ugGnBoPyTA|a|^9Ttg-Rwn`z8+r{khYI`!y()+Y@POF(dGx7|3;hU+zWN+FTlabNzSk$P*WKdc-Q=(zXu=0p>BoKpz(=?2? zmWkC=ee&k-%_B8>9J&l!12#~Y){3A5!_$E*G^VbTS!r!dcZSC!v|$=JD}?+})6Akq z3X}V3B(Lv<+%V}ARdEkhSD$Mjf4jSAR@UHe3gqt5h|G_VOytiyUXBJ!nt4|11a{jshJEMEkw90L*D1 z**_m-0ylxKN>(MUo?NGSPSS?`Vy|)_&@VXFV9dNH(LWbt1UDjzUf($3C{yT@f~?_b zdKO=-k#ek|X>5^Rtdg>++Nm?Rm-akiS8618TI`elTyk2%ve(8{Q^@mb?T3sKk#B*=XS>?z)X{j z;p(6bI5)JPAlAuwN~r@{nR?c#dgck|XcY}rGmT7>kYVX)4crE{V~K+@COM;SR|eJo zc3K2htcY*l)2(O$M2qU6uA1ktVTHEjqqJd%Xmnf(Hd%|TWp(1K#@&3dCYEXWoO&Tx z)hK(|6KU)c7~NpVIxq5ll@^64UJ!*I6vn;f+$v+rjR^w@0ov!^3zVuZ{)=a>IM43d?3N#AhO~ZGp^=^s>3lyZDZ&J_gJj0hv(v2C{^dtHd*Sh+o12te8kdARC+0;pWE$laUgZd-`m0(Jd zrg5^^TCMGeKGooAv$WdUkL=b63X75seGgQDskHh+z+d%StWb>IsBT$5yU#Na2?h^| z9cazIYWVfmq;5*TqYpVS8>R!%74MR1)v9i$SHGw4b70`#k32FSJ`<;<{lIQXU$s{Z z!dWhe(iQ=XDT5({IfZe8IE|;x*lKP+)?3t85L{4f*lrkNSZ5e!SZ0`J*jj*0im?=7 z5iuP>A5jxw8}T!OFd`=cu?wRMvl^os(+0x^^9th%lK_K2g>FyqHP=>ymYYh9x&osR zqY%>w!w54GQwc)}lidfy2lE5t0}~Ph5;G9v0OJ4?9RnF1GZBLaV*_&nlO_lvLM37; z0{8E<$8NnCSO6>!mH?}RMZn5nX|O6-b`Puz76hw+WxxtxNw5Z3lu3z6YL7*WNt{WI zNsdX+a-b+#(khW1WHa@53gGjV^m?W<?U|e6D2X|sE@{uq zd!{q1`I(}gu}_I-peL3AVdVaqSp?;s@x9G;+p!tz``@X9RUbjx6(2d|1AzXG!XrNlB?0h$Yda9)KoACpA%~ zJ`}60@q7?^dlY(v;;RuHAOJDiJsOh|b_oRw1q&mZL@psfCjgD@3QG^$dU2KGtvU3C z9QxzD%j=|@L&ayCuk`IVj?& z@VLL|4aoQS`VITh`W5?``yKnWf?D8&!4Y*Cbs=>rbuo3(v!bigt3sz=Sq;z)_zWNo zNb?ixk{RO}!)L|JOFI;x2N=^CgBg==U<_~#xD8+oKn7R_?D;?^SSPqU*gH5oG%Qps zG%P?jxwp7^-&4>+5JFI7&{YsYPMhGD%qg`h^_+I|iJ$oL zV1#t<)85zoRQs?e75#|bMV^x3fk1QYG+IWPUF?3gewTiv{@S1&*dFwpVWM|NR2+tz z_FgFeaEL^xb*K^qZ4%y)i6Gy8%zl(0BDik=UywHWyX5mljdI_?bLI_-K~--hL@k^% z!X?@&S)GP{WH0(D#wvB4OrDf}S1*izGz0-eCG;{Z;)tfd3&aMrE9@mk8Zo1ieoC*k zKNp0YVNEZu|I54o*E#|H{9Y3OAqXj`l!(i{g8CCZ@9FA?k#?^S@S|a-^3AzyEZ)tz zT(_b%&Zg@xvc}Phc_$ljoHLIn}d)d zyHNTDpAA;MyQ{i%;vIH5;N?aNoHChYfs=Ggl#XMbvSqSZ%6&=<1KuLnvFBK4Z+n7j zEqoS(dhN{yUD%`PcMGHefv6dBTp|v-H17a~=a&9C%D+~wY>yc37x0BKuwGdEotk%A zPy?wk$=n@eELqIAOlmTgVs+yc%mhO!)J8Q4Ec0_o0ECOaMpb}Ik~^mrX9U4C4yGqb zf;@Hgx_fZ?V!fu~-Jwt9ZCAQ2p{jQpH9kxs%O+*6To+4KpMEF(fT_H$_JIp7+9qqv z+HWz9O)a%%DH}dTMM>(I{W3OL&6(2&u=8S)%^JK()ZhIVO=;RTr6ej~Yu56iq@?9I zbLpF?>;|PyNtI<%#K#|4zXph>6Q}fzyMMu&F%A}{>ZJC$dm!G0MhshZ{>4PQN#UEHoIUh9q_n@n1EfUr_4t3=2Mn}uYH0$8+8N|eRR>$B{g!zzy^i++kQn?`3Z zHq5QNb7#zsn~k*CM?&R zR$o|7B22(;BP)7+BK>_O?#-NuIAyvYvX=73&F1Y`>M>pDlVyMfn|&iW<*{9_c>az0 zh(O#0D3H)}HttGkW?JCElWX5UR;D@aP(442%T-Nf6Qby;IWxkdI_;{WRw>D;d1OP} zbiUI#xyxJEj-qA22_MJ?)Q`&_?^c}ff%f8}FXJ37qzGD$K`ws_QqEtlBQbKMy%aHY zRF$)$+ES=ze=;uyA^`iM0I4+9@G>;94FO6OmCK;>=WnWYAO)N7`H%THr6KZ%l?Xhy zR5lqTb|ST>C>)LgIr}Jh5x903C>Q9#xCWvLY9%sJ^gOeK&#`dN zE29xPlT~*(t>29bb6&9jPep#s-kOrf=TDzx|MGDEONxAF3;X{hXa84`f0>k+n?<0Q zl!2R|`Ikcc|1+*H|0mX4D*1f1y4db;IG1!OrnaHSGw zH5_oI`qM7*rc`dU(HC)+P>4K5?M7}W?4I`S{K1Lo-?#QI6^Zz*M zr<+)J!KJk#RGA%i4}9TsVnBezVYDFn-^gj(*E@;-3IE1tsb88x`}C;>`@izwS^r_= z{%891RoWT~4}!`F&(_nK^LqLj|JKGC^H#|l`__g<>4r2C-u`^Nugvv4+I_6Z+=pvOLHRB5YiH-3Xfbly?$2Pyj@`TLG24@S zaMd&Y&e5Mlv+f5Q{@?PaZwp{}eldwYSSiQZ zO=ZRyyk_CMdKp0W5~gXvt4?(DTI-=)x(1IM)Ucf)*723OrG#1ds1$@s78G_RO|Oj2 zgL_W2hP$xB_Rmvv4@M66$kawfpNEZI4rj*B0X7~b&{8ADRc4k0+>{zM#9W0VJhHS? zsj!x=YM(sfE7;WsqYXLZGB}^UkOVRy<9zGFsSzmLC~8~xo+Su4f!%e$4D|fzT-z+^ z+*dH&UQ3B_b&w*PJj&JP*RV@z*~i8(NIULR;oEBQ?!m=&cdcb2N$S|%YyHhAuUNy& zILj>nX-|MF$Im&Tx=?RxzG6W2Jb8$`|8-SCz4mn2ak`ZrIbuV%36IARQmrOuDHzA8 zS*?obK%%}xwj@x2fQL*co*NY-_IWt4j#GY-9cC;)Hwe*E&UcPu;xn;@8!n*sVe}yH zQ`rUuMj<~590eSgdo9@+jawbj!>l2LNy z{I+K8Iz5)&C_%l@-qmDJSPf!V8wje*W%5?@$lI*;dLKBkK2UB8Z|gkSSpu+V0B8DS zIf;%7L9jtKBvV@?BCv2gpz1=%k=v5Y^!A3Z+Q*%Wx!g%_;|@0JY{2)pU=*|C>PE&O z)Y-}g66WBrZA6R8i#dt*K<3bCGTlx2i~&nyk0>Wf?GpbdGBv zBc1%rapg)jW@fnY+$F8DK9rt>%0ysQ9-8G#I-edlTA;uE67xRBMc57%JzUl(3Fsd4 zJP)XY%EZ<`9Do`0Z7-O5%PYMAJ!o}|UpUlwPl7;O>seD>i4=^yUX21(rfs1m4U^{~ zsw?s!3(%o!R}K!Fp_qvqw(6U9jD7L-pw1_5di<5|YAha2t}-u%5o;VVnCi8&R%jU{ zaA0h9F0&dg)Cf)Fg`-PV1&-@hbXdqkBO<7uIw%XqWQ}KZVw&sp`xq)4TA2=nQwXK0 zs!LW0O|=AdR5|pO$2d^Y9!T$(*ins6=U?tic`&rIe#J9Lt)1C204b_i_*)=Y@7I#tURYC)Z zx@>9|;|QtIT>ZlN8TM zRFJEje4^-)e zj-UUAo6g+7321ga6VMkceH|N{B~hQ7+69BmQKKr)B!gmQkONk_Ry83iz|?EZm#jGu z=@299?k1bxLTLzlIeDwovzPfHyaQ$U?9Hzbq;uAHtCgTPR49aOwC2pYnGS6?em*u; z?`Tsr6YBXW@Kq2=O0z(*b~x)rhjzZVZ=iF>+5E8|8gP6}IS42^Y-x1--H&S#Eb2z3 zE1@>LXIW__IJ_(C>MXRTY>ZKLIsYinu6Kw|&=DRSGZw22Nz zHS$pjk5y++l`A9m-mEAW@+tg-G%E&|y{)ecUoPcVHlt{>UA#LDPopV&qPm(!{EO!u z`!>RO`Ejd5H!rNUOsn=YgjV@V(w4tw()flwPD*)K@yr8vINXzckbFkG9hYLZklgV$ zj-splge>hA+m_RK5Y|O2GwsW%&lFT ziPXhkr6XVrn{#G=VHh3z0M+7jzWmxfVb1mCbnYf=Rv@2^a_Z2^qFV86DY!{N&9xN) z;hgH#ORttoC?rKvg1@UsDaClrS~%uNUwNNfO_6FLVbjW*7xD6`YE`dz*b&{_a(57g zaBa)Wb|45-iF06{JOt>!Wu$e4*>y#)8v zFR%(NQPB>%m~cLp$HtQO2IEN%0K%Y2F$p-et``TWCCT=Od45S)e=(j&=THN<^@ng& zO9qq8q_Zz%p6>YyerH#Pv+HaMxI?k~x($CQ;CaEph5)Zg14Z5Js!A~vIIl_}9y8LG zi%GP1bIAC;4Hw}=rEbZutVO$0Ad)~175zgowRcu_BChEL9UL+WO@K@TJF0k)#!96K zO;gQ|gTm&Mmpgw$Fh=mds{87&ESK$VTDltv>Fx&U?(Qz>7Nolbq&q~qk?sZwX;8Y6 z29a*Qm+jvBsAr$EIl8|;et13b!sRvVp0(D@+%vP*dSKNtXm5bqt$=KZF_vAyL!8kZC5n35>nvuuRvsFQ5vWz989uCR; zlp`UYQX|0Q>^z3l)P8uRa{>Z)1noren$=~Vd;K)7xD*Gx(R$U2%#jU_tMUVfBB!P3 z?R>!-K{~{3da)O4b(G>?!cj65f-+}3?KoBU?1QyIg;+Kiz&)yWaB-{r*L=imaG0q@ z)1Hm$H&Rl1Ht6QugqF;Ep-vmK5FR#%o75LLr5;U4my}*+FT>o; zabFCqK9h>7=(0@XOgF>VXtBSU0r!<7UyaxwBqq!wY7b36j1Bbl-IQ#jE-c@xaD$eU z8Bf$t{UXh<6L&8rf1j7Y1B zlWfmr9^Flq@lkp4&TuNzDL1%IJhVk7p`!HhHTsAuM`mm$sPdJr{`}+Yz|jr}1?}Mc zidfv;s^p*|`ob+a+Iqsrxie$*q=%r~WBI1l(U)}#I|YL*u3>IX({eg~mdMB45h+p* zR9RhZD=)I`%1e+DgDR87NJ#Ya!{=C2WNu*LYBI9M!`dpeKWNp%rDdmU9k>?aj_2Bh zK&rE+V1mueJVBh)tKg~!DdBso`6&4j<*LDCbIv2(-CdRboWYU{!s?@q-7Qado6x@C zksz$MoD}#fS0vV{q#YzY8{3Z_1+xm5U2deYBhvYD+F?_i@=Ni7(8?GvYX_YXXryk1 zIaeIPK*fh^%s8C9fCy{&Qhoc;R-|?)M0PKI)RR9eh0a3_{p_jTHL+j3)zhc%8tH1z zv9*}V$imiZZxztcQjqb?2j3omuu>n+?+AWMTYN`Xvv4~=~i5j;*Nas z_Jf*6=L!kZ^G@jri@CW(0k;4OPG62S)3i=T5m3(CXqDAqUCY8okZ0zzb!0Gd*2^5D z(!h%7J2GrKK${6M>!(h|$D%kW9TM1vPIhc@&>pVn3RY|Ud1MgQfw&A>-P5j~*?2ay zokztcieU&i~Pn{Ze!jdV9a3sjLem=9Jr}?2t@a8eqJ~V9Vh@iP! z$^fb44KkWfJp6HDn2c+dZ@#uPU3>N`o<2T$N@t0E21AG3kmo7~D#sz)uPjRVoB@k^ z<$#OM$wm9f6oJv`fjs`1hPg$R36|#UO|q^ayebUkGLv1U@yEy&x2`5)KrTOY9`D7= zQF-b(x;bbzePTF`SJfU6BDq(By+Q-~MGgz@-K^Zw8{sd5AUIeX57a?6DrvY~2+@@E z>oQPWW;t7Bx;g?GjlTJ6dz#x6_`bE!`7awP)a&zu-C zO|$KN;vaAu`s5#~3gur2TVpq3A{DmV^}wZ9K&WtHeAYiKgY$3}k1K1bUl^C^h{>&(t#bKygXO8)%uImG*7214zCSBz#8 zuGiCX>no+&ekP%=)_RuBU~H{DdIUQ|0?R1ACcC-*J(=$h4&~ft(I>_I114hD#B%J& zVzu(+6oLer8#~9tcqZm`T1>av@CaPIQ+xXDAfEPF04om9Sm8j}b$A1H!C?x~6*hJF zl`B|GDbIbt(l%t-b!E2`p}qK`99Brfg4ASems&-p;!fGB?7ER7MFR6dEeR@ys5bDi z92dTgs%`y_+5ot-RyFs6x8-0-ctxoXlEfs*Xo=c>(0pzh_rRm5q$F+c+E=;h%nN+4 zd8v&a+i_y&RU89x^dT)XOTiB0@gEfS<%6Uk$0}M12(>@QOX1RxX^$~WxY4ryWRayg zJUeZ>>e7=;-;h|TsP5QRTUu0}WIN`#H0E%=a%je%7B5Y$$WU&lYxk&DgK}pE!=oaJ zT!-uw5-DWJ)e|mf8Kd#yd9QUCglcuEalC84augXu9XXJOc^^9TQwx4f)4n$h2@tV6 zZiBlymgsj1no$rREMj@0vnt0pxYQI)8^JjUwlEtf@k)d|V>Dg~O;_JRkjzE zD5(>) znjq9c>haO$_|(?)3_b>-d`jhw2`D`x3wkj+9RX{5q>Ge}W4ul^^5RtK`tA(#OHvk2 zk{Q&UB=_3r$0@{DC@i?Ku#J}$Q=0_ptLSgpe4RKnR4hgi(+fbWrOW2hj463EWc-$& z>m@1hs6?$($Wfp)mRL}L<8&6c1#}qtxvkWxAJ$#3nb!M6v<;=r^hJTX9f}`GQ8(7{ zNL3t-s95Qp-Hw$db7iRKHgl&U3{MM+VHrk2zeqX%^F5bl z+XCF#i0O2(wU_ADO4C{&V6OOLJ4>-Yo5tj`9tla@uqcKyY&OYq;~w|dPn!07eEH0K zuse=_y}q6%d$$Gi*=<;I@v@@qisv9uR#+UP28}Dj0euM8; zbaGnn^TS5G*@YlD4vK}{; zTV=a@yw{4lj2XHfSr;6#^`|pEIGjGJyq$MzHx4#ii@evP8=fa+>A+=+M>_#EBUk;R zyJgqJ*GJD8zeHnrt)d*b$?9IKINEwVDZ4pJDEGRV$ZNUVqr00PzCM(^J76jk)j2P@ zyPoOMjr;QSj*i#!&}&uHYv1GZW%XGZ_0pr33t6s}+XiRtVXp&*^-o2c7&@KzRoC~g zJ}~S`+cF*te!ktqXg;21yFPoia5_h)Ff)8R?S-pL;I$R8aGHL1vEg;Sc(T|Gal?GJ zFj3o@>J@#S2Aj3vgCgHkK4YSP3uT% z$d8N2!vnrvqOn+g9)}-`^;_esdGYD3TyE84VkjDa;u3YSXku~6F)@vLTSBrPTw+nS z+_S4orq=fxF0VHxk9dYZyWo8moKnWa+!+sYboTSAD`P^%8yB5D7R%>Fg`%i8wJLSg z`q(u?JcxElE4K)vC13F(O8SbW=EHO+$z)xp^4_Rf~v_em?#l0x22@*{d_?TsU0FOVa^$dOSU|z1mvw+Yz#>q&x0`>h{km<7Gci6?k z+XOgok)Cb}^49196{PI8(eAz@I9(+OjN*I``DztRW(8Gd71o~C9?!7OJ2gS;owAnT zki50tW0b@$nz?rEwYg6`cuP<0@z)sAmniII*Rax8!E?Vrmwka?TBPg4sw(J+zgtUf z_oADMJIAJ#nJhLMjB3vt+$8({I6cc_7-|Yo+@>1f3|v5ufsFJW_35l_jEo)V=;_R? zjm!)IpEM*K)J&NaB$S*4*_G{VSQMSuUDTbw{s-e1bh^fDw1y_ee|v_$|9e%NrPSA& zk-EtVE6J(~u}K;O|6bDu3KTz7N5X^@6l{~ok8tBfqUsVD4e>?tB{XUfa=`HiSGH zNf_M6R2fH@3hC~wAaJW$at}# z7MeXOxtIX|xVReK5bnzD?>s~k)_=u#@`qL3 zia(mh7r}(*ZGSQ;mno5nHsEpQIr0G4#l(^Hs&3ibl37nnB}Gb36g0*yED3 zr?7}@r-HJ%lR4d!3ba@s!CkA*9y6yz!!9vGGN*KkoX1=_z*ZK z6`q971el3J^W)#qNb{wslU7<*C8ZfVy_)6dn8B_MAV`_W>cnl|+8nSm5vFEpt9k9a zhxxI*n{&iBmd)<8&4=Dr4ywHa5ggn=iBM@pDOw3xDH!sJFSkq+v|Xq$p&Trjh$ECD z5^t`nvJ9~ZF=;haNHzg=Q5bPA=^0mm7+M}7s<=NU@fM;hsu{XM8dSH?wi||vXQ=|z z22OR(rMvtf+i*JV;k80NVjr(+FH>?p9r=YCo@PYZa-cb%d>mc*sfiO}S zYP4^)m&Ei;v?8DTP<1=zB$lF%i&?43ve$L+xhh8~Vi4Af^olbaz5t0fN6oVf3?S@> zhJoXmhPGxaom@=FT5G*H3hGsHQ=mX~Ac2-F*UZFCr5lH2I91`*4;Uw; zaEjTcAPsX)we>B54#2!=uEj3y|HiMS=qk=SXH`-M=Z>n8m?<1h1 zFAUzW-tc7aO z`_{c)13Tee5bTVih;UNgUp-$cH_(PYsuggSA(cQDx*owfoZfUl?5^)uC}(=z5?A+5 zp+JepPxJj3EIv}BcW;eZ8zoUbXJc!qr{^MRj(v7Aa;|arpvpLq<8=YYoPNtRkAtga z?eipX`_4M}MUqA;CeIfFv&BWCGl7sfo6KuGF`2cTn~Uwa0s|sIu%kRZ&CStPj(SwQ zYtzEaYS$bhTW5y~$J5<251z3?;hPyO{jETU+t38OZRmygV--2eyzWJY6Zb%enY(FM z=-7zy{-fLGLALj7lT~X`H!R#X7ExEmyi(fPL}KthAv;i2e7AkXAEWtmU#3m z^5DyJ;D*n@c@f7UE-|sqtv}N}U2?&|dwit#&adIoQznF#m3B0Qmi=}Zyr#PSs8vTP z%W==S+UN^NyQf*R>VOaoUz)L8ex7=>NLicY&x@WS{QifCmh6AMZs3 zyxoUeuK#35G<9OImnNCHlRLNS##V;ddJ{9 zI=XRrZt2?MYJ6$0jV#?e<2|zRVXvy|GIpM;xTue(tc=y7__Ita)*@WXr+zEg5|HH% zh$YObW~c>QCT0R*Q!|j&vy2w_a|0%#Ee)MqYO72z^!ihwBPp8x1tuP5z=3JV2RHB@ zdCaLa?JtHX+w-&H2%e*nN?RbETVGLTp9o{t7EHdiHZYi?m!G%U!WWof4_bvsx++F^ zVz!cPTpGnasO4Sd0`F{OV<=_Z93Rq$3~Ld%DN-^1@ezG?f}R4|yQ#N1C_K*;@hMkx zvsUv<>G)n&E{DBxZ;g5qEf^eQ$!L*4z*DRZUfsiNJ4Za0;evK)s?<06b_W|~ZwT4> z6dQ*TJwukRGS)}i0&%-9-N?|y8ZI!*g8EdEq+VpZawGE0h{%0lLaZ`3i9PxKHD=5j zW_0F0sgMTXwO07-;xh2F_&|$ETz#+lV4$tpd7bvIW?KEMXwE`C?!doiW_V=ShlBuD zW&wCOe}S1fnEfp=+x<$+Oi)vk(^HaFSCSIqhyQ|;Ow21_TU4~-12ju4%nY^kEER9*YnWLX zj7=hBStccABm>5}EeRUfW90FWm2x54NiKv7D6EqTI4HWUFNEtuNL=eLCO52}& zX$LMXrG-?d&h}W%hrVFH?ZxdvPn(i#Pe`NT}1^vu1Kq z;JPMYxfX(QWJ>Et${V4%yx^3JaB;)>qmq&Z-q4;w(1G4yk_46}Hi;qmte-FhyVSX! zFlV8M>fjB$s2P-tDVArBGZIJ}K7}uwh7#r>;l&~xG6Z5_P7ARHBC+903Vt zUzE(xS>&hnF<~AY%Euid*2Z-tb={KQgKkPvHfiee9 z_s^R^0s%3i{R(Bi*XMty%&Hau%8ZuIPdF3@V zsAVvc!F?B(Jp`ZHn0wuu(=Y~9KAM}pbhNr%4cLyJKhK}1Ms1{qa;ZFm zHf)2uiMT@Acu%robn}SzQY)-s>hnrQCvGwGCp&jbf7 zMaB|!Gjf1$p~^>a2qHH=ZT;36*S!mEBT5}Z*ZF|2t(yUZcg0||JBBvh?u#%6UEPbm zZhYhwD?J%POFt!t^y7&gASiE;su~LM5$u_&3o#;4?! z)gpjW4c6T1Wz2h*mdh?YMJZ3oU2@VAFQ*VZJ3>yZ8B48ercBg^A3r@wh~srXB^YWL zkUg{AI;4wej^^?CU|^*)Vzcr5s24o^2>VdTB~!gId>&fUkuqWKt~UNZA^4Zo3b+us*=_@lY&eG280-tOk)!8vWUu(x#!2F<*JjeK|;m#CYr^|Jqs|;k~+;dPwH*fNCFg} zW=v;L?MqBoC+J(Jd}ZA4zqi5^t&#+rGAZ69Md-!|t?O&(=5TQQo<4gyxwu8bfHYeQ zWi80j*yr&OWuz`a=R1(GQFO5v5$VnRYq$~t#L6)59Nx_uwG~Egx@cALt!XFQ`Rxw2 zjp7(VCWT|Mb7_!LWWRTXOWGeYFXPk7B@Vz8S9cFd)+7<1_nwmGH2LHyXuv3}GbwKZ zBTftl`c8U~@6wILC_-DxQ+g(?dp=@^V?t0yon+J@vVYotuQ$~%|25nWpW-$bbt@7C2gR>rYR#7CQ5@g;n7r_}etH*@GQh^1r)1#Fs z+}eYKZc& z8a=CYrjyCG6diR#h%O=$>=#r`9Fue6*7E@@@D?8Fep|QI7Ta^}3zPM^`wnNNPj!m$ zKW`I#q`8?oqxDRuYrf;FX1$x!ny=ZgY^h;f?2QF+orCP>*&YjdYCFOxNOUZilTb>KlaNn0Hwn zVp4D4xI=h7BS&Epk_1{MSY-y(r^rKAX+;>2lXDcz2^4{g!BStS$d3YzNrq-oHUUJ@ zVlzpm)I(Q|%~5=BpkgiH^Z31;J%^wV98P@iyY!RRXEIv;9t^4L7+23v z_b~#H7x0B*&uKBC^qGibN%Yk^bz0ml$ewCNRLcugQ` z?8vB~uTJh3ukX$=ZZD@EM|vd^K|rR`;!1 zawJkRD8GX@nV|XQh~`wjGhtD6kNvR{v+UJeL;JU`XOxj@!EA#1Kl^=jLh#2;GUYZ! zB+`7%7C9j8ibDuy$nI_jyhp@GAVnZVPuT$!$-5`-`-Jiwstc+M5^P-7WsapOCAG2r z!u3pMiYl2rnGBm`ZC}KnP9L`Y;!yykUHeD6x;}yUV8nJZqh*jwzrfG&VDHpxyu1WJ ztasi(HcvR9A;0pdck&*c$MFaOJ7C%fAl-Cpn)lp~-_AOALUyaq1ch?7gWU7a%#`=K z1=AMil18(CHEfhH`_yz3W)!35MQ(1IngxuknCO@zS&YXmA3f?TA;T|S9%pCVBaK;Q zUU~=ZYa_N2(MAPiGdS_rh~c8f1*)e(^71>acW103E0}JIz}FV4c2k^34y7xeqGqIp zbrn;V14~q@rcNH~$Tx&?JyH~6BN5Bm_N$)mABe^S;T92BoaTzv!ocJ^GsL@0e^{|kg%9vm=3 zTkx&oC2y*ch)J{O`nOcAOH{5Od2e)5Tjyu#2DuqT&*R&Mhp-9e55IU6<43vDj>0#4 z*f{QblquRAI^`|A2~Beyr^;k=%XYt{cE>4wAwR*jH@m;X<(d7oz}`2fq~f`!*w9%L zUlIDTIT_n0Z-j8kN5WE{l8VG$z|+KYiWU>^J`Hqtq}gyx7mwJ8cv@T?0HJ&n1xx26)&x7*fJ?$O<<;j%bX- z4Gfr`J&{eFxlE^8$L)7RirTvJ`*)n2Wc@9$hiqnCZx(NNUoW4Yt~T;s-+BRmPvEUC z+L(Wxz_Zi-V+5Y!cLLAn{eOYLGqCCb2z>R3qzqNySiw&bctN7!mLCbce_|ok+%FS& zj(?cIW8D*YDVKZx?#X!1-?z%X9&PK37()&=y%we`qXzHLcLDog6rNiEL^wbR6L%Lz zs2iyZi)4c0-H-nW3%WXFk5h?0M3{~SfwI>cs@jh8w=;DAP7mP1F;HSi8bvlD7y<}L3+Y!F{Jlc|D}x`zl(a+F$|L!3B0GVGCsF#|10Y@eHxTo%Py7iC!4_Io3? zD6~(S5_y=ThVnA~qO`#HXFpEP*a~0VG>e*B-hJ75HuPqYZ;!DcXnb0WkR^RSMttpf zK+m-pRWd*v_cZeKS)Z$X#Wb$Ha86}mLvBrJ%bRjDX@}6Ar0V^T&#iowD5lH(>22;l z0ig)c`$ibG&fP5A1lR7J;p1i{l;Vr!_UPaYZeHf6bHw6Gg?-XfR$H%$wXiZ%W>5j2P!Y%e`1J`I6n^x~Ee7fsj=6(ZaDh91JfP$d2RM8z-X`AO zz`hWW42Xxl;60Xgen{ixZB@_w8o7wE5SHZ$LppG&S-{%(+t}K0r8*zAElo5$(Y;Zy zs9EUL)x*j3F%iX_kX8<%$3#-WeXcXU)7GODehGhqWt%W#;Ly0gTt-gTYfohT&sN^M#i>3bnGf4cx99sLoYBQ>Nm6pJ2G&9)_l<$QhglxEJ`aHgEM(&IUA2NN(^-#S23)NNabXTkW!v?IM_~PR8lo&JA<9K>G~Z~9}wE7iR#laLE#lY>_{=@H#8FU zHR&V|>B?xa;)jyJuO8Yq6PF|6l z(=vGEW~yP%Fg|9>8P#uxo_r@kN=7J>!(kccXLEh-tj=K^nl~r#+LJj>qH1Df1D9A4 zCq`^nQL83Qdn%kOK>7upK8v~D6#+?`BK)IuA;uuLPXh2FJhVCnT$t+EMko$N@972F zoWW%Y9OL%4g&-He#v#*$HVFlUQ$o%e!%90q7T3B6(EzU|JGZV^z)aG5gQ^kW;dJ+U zvZUiWKu)8SJgMVaKZ3jiC!87;{-Z#}-~>ewE&TjrC;PgP&SsNOyR{()rh>vCS1>cI zx{m~-AMLt(M1W<}_|lARaHB1Cs?^8?(|6E{ns{G5S^1z%0}VH|{dZ3QB>Y zFZBgu7>FU->YMc$>*&}g%}e&5`_VOnPS9G9TN2efibPbrcn>dJkz2M((!#?6KK#km zc4vCH8lmNa)ALA{Y~fBt^v#N+r6odOy3J>LXd%$ctkByK2*~6?eTIa-9eO5YvH`B9 zbofLJ5-tqa3<%Cw6NeZKJoK+v$!FNN;mKD`HL0Tq-pQ90c1KO2`F|DxZ^ag6sf4UH z15}114a}w;#22)>#ZsEZfgQ}~*P)>YohSsEpj=?{D;!=z*M+Tj$g@jv0>xBP7PXdc z$8m2TuLG|ulGP{e!vU-C_MI%?ePhj=nz;?Jed3BNq_L{}mJ3r9$9)^t-i4tcUAP%o z52F!vQF;x&{mnY0J;m#lZFch`@Ny-DI{nj@p3sict!r@f{E|=920X0^$^LI!qgfRk zWT8}&YJ=$5ONQG6HmMT&siW8!1umcR*{6>+qxO`Ih)+Pq=QtkLABVIt|0g&e+p~L)H}NZnv>jJuPk&(EMd1p$zs~XW|6z{D z@inO7x8vEZXV+ionO5MAp^>Scbc7Mgx#*%dH!_+l_cuv`XXHWY z&=2)3JoW~}EHLwcn;_2;=C4De?npAi5Ue~_kh^*9!o<_9nN zEwI6u$<{+<0{jP#CwjI#GXM?*^a0^lINrTN|2xOS&@@F=Jzn5)Ho>$?;)*AW5d zWws`*;MVha5Y!M3Pm zO6CN@mHgZITQ$lYUYc0Gy?SR8*2* zSj-@JoE!mHdNUHFs*;<%WlfKW;X9Ct{1@fvHAIEhwv zo3MdQO8`Ehqvl-j2xKcAXrNr2-bB8Edg@4B=`kX4M^cmgj_ikgl``~j6vO*`5(0+lQK7$1Jyfrkq=r!C_WtjJb%`aZ6W_O;ztVvhT6=;MfNfLdnreM$}qhb$Lg_V`a7` z`*<|eWQhDNAC07!%3ylS5#Iv2QTx6y42X*REsWlsZEHwstwa2&Z!ty>TzED&=DcV*9apnk&h(~Zpfhf1RJnYBg%SH z;#;m)n$&Am-d?LRaUeB_UN;fq+_|+nm$2bb8BY$!3C&v;6BEW7yzG_AT$QFuhz z3xVK5McJ^8MMw$W;IQ>>@A7=T-wRf9Ip%A1 z22^>%1_p3! zyJsD>3od;q4P1mpdL4%7tl3x#W<=fWO^32(tN259YFJeq>$d1y8vH5>@`o3o?ci?$ z1Hwa-lRHBbsI@2}+jUR;!Y6Q*}Q!@$=eQ+W{V&BU377!@-ue8Jq|=1&Hh z60X0C>>@x=6a3MJfsS7)RL~cYvTdV&I^7`VYJ>Bn zOwQB$qg9cUrJ-fZm650FRX&IZz=>*Lvsgp<&`_Ad8aJ zf7Jp1Au(od@yL@@8>5ET0C-V_j*A1z*vURQ6--zl_ct|9S%z04LAJd}|CZCQr~oPGfTnM*zs|Lw!?-+n&$(}32*$nn3$7~H$U{|})r z{!S<$3=;?v$Q01i7s1u;nSkGf0l^f!KN(EnVEoL=*xJ!SmzC`|!GaM4Y9fH=`3o2z zV6YQF%V75c@5@CD$$yQcP#9=yYg_-JMuZ7dQc@)Y10T?i1_Z>r&wLO}a={!tIjKm} zC$R9Z$JQpAl$f&a&ArlRPoRdvTjH&ydQ}LTaF1Nv{A zK=TJD;Q2|_INO^!8q-?Z7+Ui1y}q@BrOh+C zKTRR}*8;!#z`eIeHzf)lK>-2LaR32{{k*_GB-1c5GSNB$ApGft_YUzxm(xUbk5aaFUI`yu!6 z1<&FUcOH}HYka2StQS{@r|xg6b8~ZR4$ElGTI;PoR#(0}(!dx{mnUCfI$ECtwYq7Y zmvd{6oEupe7+?8ta?x@4@!hFFd6wrT7@BmF+@h9RIrXA}7iytdeLq418uUfKGj2B; zP2A@hu9sHtHK`USgZMo@U2)B591f1}TkO<1XgIvd@>s&KyGh2rQhtL~Vf$|5RO*`k zs<8ZSYj?i-?V-;QwA=_n)tXiY!6Ux@Yq}BK+Kt&^5`_>xBSL`*AfbA3gyy&aa^fe@ zsE8!}(x?(o`jIjyfQ}CW?iy%7UqZ@78w}YGr3yy@p;CdM0*#OkvlZDVQ

    y12&~)?k&px>VSGgnAG34+SRRjrx>Y36lb7@&{b@`TLP((I z5E->WuiUP(5I;ZwQ)H5hWb`^5=1@XIj;8S)J9dtZ$02af$f8CU=Rj1GpCXF$7pC$F z^@EPRs)_11p&?XPR1@Q08AwJYoYDUboPmQgIrvsR%Rbxyweh`}lIY;8TWErrt1l=i zR>7z+NDYY2{;{ZpIZz`vK*xP8XQxw$X2^tDNaS`2QK*^h#6lL{ruK^O?QjSM1^oHU zc46fKrSm)cFZF?DKDcFf2a@a4f&t3Q0IsY_pI3Q9opKUrxUHtJO(W(I3k6nHwTZ{R zWFX{=02*;-W4@z>k?$R-=5Id5CMqbM9$f?ys^+~|PL#qETrXu1;2#>Fa8y1#r{Tjc z|8yY|+J(y1(a(z4{VGRbthmGqB>VldgwlR!3Zs`+!H?@DH5+_P(X*_9E-#il&t@>Y ziAC&!U+z(4D=CTPifRIziQ9a^si{fo{-`EVK3kTP`Np{Cj)Fjg<0_t4oiKNrq2_jE zUKm6hZnTn*`T0Kotf}C7IZ-sLEUx$lud&A-5MrFC-6s)EF(|IPwe3v?%P6H;;709M zSTVZA#?I3ydgB10$0x7|UivVSVth9SXrkHUS=u1hxFxsQyYXw3t%Gq| zdx(e`RXi<&kVKO_OrlSCyf163y_H8F@hQ#a-Qi^M4+$g77R7CI8fdQx63ke7p0vaf zEf7L+gY zZrn_mg;1uE`Ejt$dAqJoUj;f-o^&wCFq}fFp{P)V1P1Wf8&D73D*jAA%hZpi!z`K- zn!VemsEFFrm%9u&*}-6a8Mt2trvxa(D8Ah0aPnbu?Qb@+idnKF$8@gay}~rx?xCH@ zk@Pk_eBIbHOF&^FdVr2~af*-`PMluih(+*e(#ytQICItVvDrmDvqlqP`4KBzq)7z# zb3b9m-Ix9@k|4t_F_*j!H93%xuIZk(>B0sbxXLy);p}fonzN07wqA5PoS=umRV#)m ztZ~@-)M*=j@?aq-QD9sIZO|Xyu{X;{nkh|q+ByL#G(2E>mk5W1Yo0|;vJaP%$do%<_fjoG z$7?Vi2`9?m)LL;^e>_@JLM?0tNWArIgg;a$pz+czd&(A0v5$~IJI~pwDnRIlRVCU^ zH#&@&=uPe#4}k{P%~DQH;3{Fd_oMOGopQfX}Q;`t}Y+Q=w- zWgw%e;ut(8A)EgGyB6Fi3U=qBcm%PwVb>``fjvxw(vN19-88>|`24 zz8;eSx*TE|mt+-^s_5hLA9-pTnhgULw~I$`IeM$Af(;W8)U@h7{~qh$G!BgrC%l6 z4Cm%lbr)CZc2}NmE~LdFSni5qBkqZOp5Z+Z%dWeGu@5W2NR(mb^(WQR9Rjiaz}5!oYETPkCM{e&V@_QRef#(l zSw<)_A?oXZZI`~YJpd9r@`lw#dt*qA8m-!(XO|igx6x?;lm%3l*&+tGz2&3{2&w(H zbpgNPnMRHm=x``Sw$>q1q{{{Ey{Z+311nfmLtqM zP0MLcC8M$?O*9Y@2Z%+b>*67B({#u0SPmts1+8JPgvg=U?DU@iDdk;?%%s8{E(dSu zOxW~7c(v2&0*mS9Yd#$yELUfpo`7hn&Yv;}>7n&Pk6f2EpG$j^Ght|GESmnwj-2Gx z-t~J$-~x-@%;hAZ+~ZG>@J|$FRbzsuBtIUq@G;lq&F)_-k^&qvtTDE$2uV{g{u#(< zA%1JaBJwD2K0o2`dj=v6OVX(G9xTlkR+|tS;>)Fo7oNkclBoh?LxEoKqa4?hPA_7| zdWhJMkGM@xY6*8mG_AohR}Fa_+K|ip#02mn>h{E_@mN~Kw2r`=)g45wXhIG?)g9C85v9NhkMwX_(kbiHL{gb4 z^4{!fq1wMh_CXxK zO(YEyt;5$X=e-X8lO8m*qSc}SZ$@r|>`+P8DsF9HJW^1gas+I%j$u8k<8si^o~>`B zC9B2iYD6a`;JsE&#?eiUQj1k^&j&A_=4d5gDQjl01|!zKwm?>E)UlU0H-M5ebcdD; ziFgxIA5ah#5b&nlC*X@?FmwjLc!BVj3$ri61>hV>eIecO5Q?KY1gspG0@5_({dDi8 z#HB-qB?qKW1nf=8gzmR)B+UIq?1Y`{y;Ru)(}Y#@i_CQcnT!?g&_du7yohHxxphg{ zKt4I2KA+BY`GQ0~^1L>lTVGl4j2uVleXhpe_UR_~>IgpdqrPT(4I}fId&o+Rb8a{= zw!;}OHCRchp7ujhOs&hIN8PH{-V%}Frii*;sF`Y>&Z=F zWhHPR(EqV1nD3h6{iCU`8N3f^@W&$nxbGVD|Gq(bz*q-h{L8)lzq)Jog91^%Yx4b% zP5wEH09yWw^OUcO{JM?5Z+Uyb1pYbTuw@wV;Q!e&5Ky)c7T_=6c7y#cz7mJ$f4Sm{Rq)PVH+pXvHn0DuY>4+9{KiNm*@4+J#1{Ud;3 zhMx!U+d2Bf0I=n}3%>&3!5Y{>HmbG< zn1BbcByoN>41pJa9>9IL`NI?dj!|EBDg*>nr+r^U<_}79KMiaw{j_{tspp2q*2XOK z_w|`=3?GUGo2j)+5MT&t!1Fy8ZBpQ$b;ob9*y_7H6ib`CI$}L6Ag9sxM=S(n{|puz zKp4%#Y($#JUyt+z2&fA%Q+}@(b>@Er%WrSFe;5`y2#*zKfWLk%-Ttk=Y%BjmSOA;j zhhf2f#xz_Cs3vZL{-a)&Reu@FpS8swhUM|2CdMFuUX%b+>Gw8503?6^QVEroq9z0?a4Gcm5 z6{_&9mySF9Jb;JKsu^}P-P3<*0W-k1=jXh^<$tjN^h#3$J-`B=08`laE>P?AD*zsB zfw2hc`oFe-mfOz*c$fw5FNzr~UsC-wy*+gQN%_XCf708(;n(*7o|BCv$pPr?z`xPk z5|3X2@O2h=0DzC@Snlr%fPe~jeslr*{GSK#2fcj&0Ar~o|G%cUB?=%vHwXYG_=Da) z0KfpYQr=(F+c3pn0Ps7#eE@(}TEwWornl(IKM&v!diwwXVO6^Qe@$;YehI*XoiH!I z_reaa4E;O3^;Y?L4g5Y0JU{{4*xI{T!hi@OogbHFW3``_|HrcYExmmJ76q!Jfxo7= zw`uFoosz%~{eP&@&wRsTkBH;VodEPv43 z2VnXB%|zc4hseQy2+LP``v5H8zbxllEFr_cjOAN;`v5H8*Bbp6%g2>}2+M=#l<&)3 zev4%hQ0nKW$kiXkF9G!S0m}HkMC7*ssMmi5z*lnh007^YmHHNd%l^*;c=)XPeF3F! zr-&Y*^7J%-TUjgu73w&P};9CHkmp>2S;THHl1O8k2BUe8w|Mz_O zhgsnJjPY*)Jh}N501vjn_gQ=20>A?U{mEJ2YYyMT6!3k1+PCtnz<*Z$@7Zb(1Mq!5 z*S7$`AN>k|2V3C#e1LBOh`{|kfWI39(130AUq!xuD}N6DXXXDM2mjwJ@DKp<2)_d0 z>-qiPtONH~DBnlKf2)CaKMCNw_;`R8{^LE)S1tT_g~#*V3Gy=H&uQV?NOS;(zqv-c zSHy2V@%uNnKQY{2qp2hPuNeM_4gY$R_8%313J?eRTL#AWG3no0q5tQF|AFG02=)Kw zl>b8WeX!EEXm}t0v?~5U^EGtozXAE`7eCsB={uV&{f|Jtz1aO5d)y2DK0xVP4M^ku zZyNaSTK8+X(%+AX9|J|u|Lptyt;#9>4-mcyL;GvM1u`iB diff --git a/core/src/test/resources/indices/bwc/index-5.0.1.zip b/core/src/test/resources/indices/bwc/index-5.0.1.zip index 8b58866a970673fedc0e7caef95b3aa8e980d65f..256e162fa92f2c230728f0c9c1c596640bb020cf 100644 GIT binary patch literal 364601 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

    Q-3BS_ULQX>^FBJ&FoIn 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

    l>sF}OHu%C?px&gWLF^D8wDf?q^- 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

    ;g}%;a3>>%Z3zWj@aHW-A26VF&1Nm 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 literal 226846 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 z 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�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

    eHShr%nnlKziUO8P75}T` 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 Fy{`4!&coN^B8c*1sqh9)LX@LZwO6 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 diff --git a/core/src/test/resources/indices/bwc/index-5.1.1.zip b/core/src/test/resources/indices/bwc/index-5.1.1.zip index cd88ea5e8f196d591ade4ebf8a6acbf8d0f02be6..ab13e00b66e46a53335f88f936fbaf4f4e63172d 100644 GIT binary patch literal 421094 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%0AsTHl4!4FYPx3 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 A(*OVf literal 123893 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

    s#{DFn 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̳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 z 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 W@nfGRBnSXXNdN%W4v3!$@c#gbbJJJ= diff --git a/core/src/test/resources/indices/bwc/repo-5.0.0.zip b/core/src/test/resources/indices/bwc/repo-5.0.0.zip index e873b9bc9a80391b74e2feaa16f0a0b7f418a92c..df2878e47a80f0a550ea5e9dfbbe12a895e51eb0 100644 GIT binary patch literal 177123 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℞;z7=_~pzqi9*Y9XDdU|kW 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%0D;&%oY>Bu-bD4a(#Qr%FJ4wwD>F=1(JGCUY}%Yv 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 Pgr^34yz}|-2!r>37q6#H literal 103617 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

    ?PCd);2L$7Bc|$v&W)${ktc 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 UT>(W2`GbK-BbNR(Oab-(0qxxM$p8QV diff --git a/core/src/test/resources/indices/bwc/repo-5.0.1.zip b/core/src/test/resources/indices/bwc/repo-5.0.1.zip index 08051b56545bd714d52d11718a6d65e222e84fde..dd2484b8a4054722c0dc6245d72132100326c5c2 100644 GIT binary patch literal 184053 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Νc;8Eh=rm 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�~ZH9fIi`&Xu9 z*5U6E3hA^=CP)f+T$Y2T^9BSKsnK(l(8L=LKg8_#WKT=|_#5j_+`TjjBQT^v<&A7i z7cDq@ zeYI}+kuTU2P$|uK@vR&>=tuVJz%vr!q=98EI~fs;m>uT80kas0K>*PE$kbm&xlBOO zK%LWZyLRVMOfw$CCLD318JqoVUN~f`TCh{GE)E8lLgsOl>Yvjgho`^0XrrS_L8#!)_)f@WtD?Kuc6B1* zp)qNavQEY}DcEN)H&J`ET^mlFNnc)Z=!3iJgFR==Ik$=MuP@~P@qApd3>|)4w!DHQ zwpafhm~O1jGgj4CQ5VUTs0i!IW#DiA19V&l{%TnTQ~VdR{O{wA?El9XlF$85WRds( zGwyg8g8lI{<-$z z)$6D;WM3Auf-JIOfV{E)*T5qO9e7N*%v?_}tn}E-ZnuSHOLFxwUZD!Utypz0-SSn+ z`$J4~{O$IOH&C5ZF4_Yh#$~UpX@>tt)0xKQfvlGUD;1@%)L<>-d>RGAl+i&he^o2~ z(h>RB$el=jld-VV#%r%Vy`tt{GlJnT@F1!{Rj4)J-8!BOQi$|QMFt84BPy&A?J=5K3)M_%v=AJC*l{ zd=Xo^5aeid!D7|7cE!1#J?Cvm4q4^=tl#;aEB2yBMEx-6D*`i7una9jX&iJ+F(uD% zjbWNm%YYLxZcZDs8p?)ql@xZ(oLWM#wuO&8 z(Ow*m0(!}1o>-7}GQupb%gvN4oVju)@2#e=hc`hrK9*c0sQSr#IH6c% zZ29G>^}cRW$+f*i00Ht)+^v;66N`0Y0BIXAykOvZB2~Mi2B!davRu3%i{>q)Y`zQ- zcLd$OE?X}Mo*x^?e>!{08#~^5^L;RG!=8y9#%J%tHS=n*Rq;O>41wMw2X;nc_GEw| z6)_whrkHOIY6%99T3x3~`I&aZ3VfeM3z**+1b4-@z>RRDxSO$~97=}kVfy_a;dw3JO9LO{B+EjsVwE4pFoJ8%bZeZ1d)7w=C z)=|H8T;BVU@aIPX@CKv1rj<7Xi+z!V4kL3oVx+iDij7vLBWe#vB8+TA$AE1SQIv$Q z2=A?8TaL}OJ*!}E6>a$|gnbn(#6=B7$rmx$s*x-Y9kh0vg`T+BonqKL#VjwCw$scC zsG4fW7>_OG{`PHv`Qaz)o;bhn)IJl>9_X{n^3Yax0D9$;L!Mu%%z!ULUklo%TM6HlBBvb}t z_PCPfQEPb;Q^L5crouvfdE$~eom@*wUv=y_a8Egy%b!|5FM* zG6AUfA$1vfI+nVi4%x;2+77&mUdk2SLB6(RRk&fE(aJKJ{75ze8hEt7-`oAsle|Il z#LwT_vM>5;3BB0<+Exfq4mv3R63E_1-mZ?x%*P{KwkPh^i;NPzlgSc$MAf0xF%uJS zYClTn50RRwfr&daNN$C^&z|g88ZZ^&0y^Ohlr1!lnA}ka7OgtJ78aWdCb5)N0wWn< zDwR2RwuhK9Upnw7d!w9L*oQ3B8%Y$ADib>dHLC|bBGw_~Ly0qPT}G zDP8Kp=4<9w2BX^8U*kIP*|@+g5@>xi4_%}U_?>p-Qw;@dGGxzeO?D>Y9`87`gIjlU z;>05vlpT&7?nrGbUrWHggGSF`0AOsu->GB!_+jMkl$&*2xkFEb`DqbP73f-ztcC2G zGdBkOa9F0kK6}!`ZGUY1boh#@ZUMjTpO5>f{O9JQ(~2mfy#N&fTHHXL*_lc?k7STpjYlVG^&3C_QS!ezpl$|HYV6yLpx<1?nd?Ss=0$zj$ zl_3$8yA;d_Kg!{FbXKDxDXyjf<5vxRDL?19ZqTJy8!erNQNhKHYIu{87vt>&21@~= z#X|WH=174VcEP2zoN0+D?M{t0l?N1AfHM3AGmdk&eZA=~qtNEv8U7rd(te>1?F_I@ z#OhpW8*0ZLC`#0Rr7Xh9rZnlIH4#_vlm<~n9$#84S`hCjKUTCckuV{#X!MSQl`_46g}IR z`21GtpRYeh2a5u=^-2QvcsO@P&Y{~4*}7*jI}XPP;PstTL&Sm zv#S(z$mfolZ6UXb5pdX*lIj4;f(u^{c<^T2e0=VfEzivSsu@il2I9yAyHuwXNt9`w z?-C%bDXh}4RRxAI=SVO-X&&7p`Za#&EZdTatr6SN!mux9GI;n$Doc~5SA z;Q?;YV-tQQRP+fz*M@+{zSal?(;AIHzEufH+8aQC86QbUY{L`qsJAQA@cyr7huQcJxeZ!s}4)j@#AV?cRJSVB0)`z~gK&KS)sXUdQwKp{^~zAm6Y^z}}5(P3$nN}*0 zikPuD(?jPKjP|T74aU^LRQP7Y!Y&x$@z7tHe{M=9OW#AnN#i#}GMj>&-hb73d0>^K zRVoyu-P%Ax87~;K3a?6IPy>V=jD){s5MZ|+m^Ll&Wlwpwy$OZJcx*~5j1=iRyEHWb zkk48YvaNE+?ex$EUT>u2=VUzrVBi3l0=B+I^HZ<;4tGo0bOe34iZ%v^#_@{oI)^LRC;8dBR`$70&HRec4P`d=F2R<}a@_iWD#8#m6hURU$YeRSL#wT1=j)~D z-TFo2|Lot%vv=Z2E|Sn;Hxhv{5K@35`P>R%>H{Jha)><)V^N-$>O&Gkz+>U77@3&G zUxhp};#BY7b#ughQ@Z*iU%fO1u$bP)f%e6S9(|Z>3bo-D8Oh&WN>-5T_Jw_3ewk^p zSma!m1G#x{z}k9cVfN~u7hZbukfn?M=?{K|;Jw7NI$JWv_z)d}RLth1QDT#gh?2kY^*J=vci zOXW>zR}?OZU7R>8M+?~<%9uD&Ef}{AKlSR5(<4jne0urSNlT_L2l+OCCkAcdqN6Wp z!VSY9ue33FKCvrHw>jB5OTrpqb3MUimD@Gp@t-N{ra0bgG|u#%d%NH2ckv+8sj2^j z+6URN)Sh5kg;30d9W*XoYgY#?k%BhDv}VepcahS&)cCMw---Jh4m|dec@fTgYyyjf zBw*OlO~A-RO(5<@#kPSU? zp)G+@j}K7phtm8LKYY8j&%JeLPmK73@(qyO?$R6mQb=Z*BUhV$ZG2$c&G11`ktZ-j zSv<2eW()^Y0va2Is*&yc?X|6YH#WWc^mpC7o>|KuJ^M!+zVRfbzEgb*w7DLQlVJQY zqE9Lcc7so>7r(DINCe73V974$+q0cHr3IK95ar zpZV~6-GJp4eTU^W^$KuvnDKI4VU~FeMG5j&1%U*IQW*#zw~4b1-lq;U z?b3eNg*fye_`bh%B5$h4zJ*2Zu6hc!zJnk!1f^O#k89y67;;ZMZ}<2!tZI(aOq6h* zzGr%$-Rr9x6Zc;InFywMhSvLQv1hx0?Lp(R0G2CudiV)Pm;*D-9Cu3LlOnB1fmsV=-SGlDGi5La?3JajY#xcH6#;gtAErbC7hl2;AB;-p&F*CbXf;BLtVX9I(LprD6 z$vjR5i!M}Tby)`R6oCQT^yu1Wg`dv38tC!elrQ^#xBf85hktGYxvY0E=_CcoZLvry ziR^fXS0*w*(vZcO%|*nTQq6+T7~Lyxpx9`weO; z!YARIINzYgTy5<4k+&O-!k$7T$KbLP8ClH84rmeuQI$6H$`g<6P;I#~Z$zuNIQ45r zJ>Z83It^zsW??asF4cYw}aoFUXF8D(`yVen|2y5{-{ z$9cD^cj(XBd)fUT%@OSEfrJt~c1d3(M)qMV32kj$;P+50Frz_vlo?m^i^_O8AxH|0 zMbOCtc*b6eZ$>G%bUSnKlb5m2H}4Vviv7wiDBAX*2~64x07q*#65jF&rb!}K2a9sC zUgnnS(}_|PzCu905tyX=e4()^eP&nkP>)Tz_ZGZ$2VCtihf@Cs8GE6k!pgoyzC*CZ z!UDR?N*6i3MHf#m5fw#YHL`8%_yBKr2EX{*H-+?SDzbSOxv705=Bwegjdl3SA|N6S zz+oHCU^UD#~`^&<4%qIV11SeDp}$jxT@f`}%`TJ;ozp2`Lep`eJWU&=EzLJsxup zU!v0;F?U*_=5a($qcxmy=;C0o54kD6d3a*UC;RB13w>QZo2I`#as{eZ*UH^cPqj5s zDL{%jW5|W2-f*H^3Ug>7sWoEOS~zE_Gs2t5?Ojh?J~XuBUO&qVEb}GQYh^W_`eH*b z3US0;g3(iSG9xK=q>yvL$+T6PQ5sNNS-_~0>~|bjezb`E+U?hlb=#ruSBJ;<<-#fw zaT=DqzMdpR1>I2e(oyy$)TwMR6;1kz$`YGxHt>!9s%4Caw`SBj*IMV}yOw@*hW!ZY zUc+07+`i1;$t|3pI#H1*OL;K(4uMnPLKZPQW!14tW@RW1`yiw^M(=QdJ2Y<9KRVoe z?GN?hb$?x(F$y&mnGJ54R^I%&X7=WWPVVWWQ8xZadIurt4#;?JbvR#)yO3|>RV36N zeKos(>m$Oo_s?zbacc6MUj3*2h;}%+*HNsSOT<&RahuvW$0@h!Q$nXR$F!ycY$vRU z6?|s1Bhg#Fk@u?*;eb!U`qrElEAy0u0JB;crl6wxKE^44smh`_v z(1+8`q@6C7GFb|tRiD;DEL|SeV+KR^kB&b1)|8#yC+@?Wu8fHt{A^HNLlxQdU{E_8 zA$*4r@wo)WXjBn|OxmPVmNAP(t{9j?f`L-w3m2#EamZ(T7rynvyK2U3i;;2#_dSHX znubU#vDgS0;}p>7FYzsYCX?w^l*C$^NTguH?iBJVYS!Z)*6i-{{ltj_`X0F3ch0%v zzg-111Rv<-)Qd3KiJj1khdC2_7oU(o+NhgpvU>uew42V;(SsetvM(VMrb@aHej2oAuo{uP~xcpzo z$7K~MR`j2MF-CNhu>w-AT-jccZ(Y%jD!5kvKt+djWmVf1=(DyXf3Us%zXOvT`2Pkb zxy=7%2g&bO^Vfd?CcohRZ(MS)NEB7OJTis8Xw#QU{;b3U>C^v#OTxhUhB!= zuFrilw0z=9^;^`f^)bv0A*Qy8i!L=BXn;2H`hmeh9e_7Qn3{%_HFxT=K2g@H z;Xts|EN4s8nsPKvr=cQwpeO&q>GkG=`9IBjPdoP?bUwTfgjjhH3UBsgi7-u^D$>AV z0>na@hFry*D&mTB>3Iu{W6c^&MZlE;z4^i0UfXkaRru-c+jJjWk9OLFYPvEi(?a}N z*cQ$O)GwI^Lja}H6x1nG*csyUEk32#<}gXrNdVrVEngP)Hzn77Yj^K~oW*kCuldZ$NJg6L3u^Dl()b?+~H}JCJon_F@ZJU?A$6m^` zK8AL@b^*R)4;Yxby^Y#swQ+#~S<$ai3Se=(m=V%dxsao5%+t!k3S_(c772Iw(w;A- z48OeiK+k^;qTa0MF-=TfEj3(QTN!ply}wkcAU&03x`N86U+>LYO{RRPj8xrqpx--u z&6Kr2IcF?+V(bqV1?}u1%(SnOya0(+&{w#=JZ3Gb)JR6^ZWe$x85(6KVUH-qEQ!i0 z;ZfQ`#p!bQx~BrO&NaL zuFp8=$-F%4rNIoP0dN^W|7+1%RvN)#SB!^9C}M!4v3P(C zrm+dr>VVtso;>!WEA21z@kmVC(m8wm}EfjmbY=hP?QY~!C}3a zKJFU?A_V|Vex}4NjTQJzQQqnnt9)@*Oq!@Bx>F22yG0*4N;?*X-dt9ixnc$uI3Kj~ zm)C$10&wH=8K}liIml4cAP8m%T@q#~7`MjbZXl!q`kW$umVRyPo$=1jkF9vaaVZL* zQf4gXyh3-Pvnkd#Ts965Avx%i*t>5(HmVm7?b%| z2cO@<>b)29%pM%TS8GUTF<1jo9V0b>KAONy7xA5TLrk2vCLIPwG%j}YLGl2mvoPCt z{QmOc#bb`WHG}<1@`v9+;}`bV4(GF$*I?Swj2q=*0!=reTbs4pgB~Z{l!M&zfIO>B zXavKs^GC2_=}+H0<(z)=8Z z{){so;i;V3qB>JO2}#DLa~Jn3?)P|8`?dE+)n>Gv_71)$YhfL7$5bdl;87R~6UQnD znmlZWipMHiI5Hb62k<2@pmli0$7Z52Gpqi_ljifj4?ptP;sIv68`qP6kVs6B(5^ZY zyk0sjuC-=GajQ+Brpuw6L(Y*)K)ndKGY@|~U_Jb{WfJ-Cr{0_Nw5%CWOhL!>ET);K zA)<|So&a+b6IJmYVTRrbbLd5_DPOLuAq@oiCGv${+R*Zx=;WPczjJ7}F8!?;h$Da* z=7xbd3=Uhdo@0Twy4U5@ifvXWlyh4>j=aRnbc*9Z)do;ba;r5IpX1cUW2yPO3RclF z;2O@B)}n$bMsgo$I<}Dl$f^alMJrU6C0Vu69D|vfm`|V8Os_ga?VL%eUAk+_7SroL zsh6C)#z3jizY&JTfz1M} zpu)k1uB^zV4CAmbARkGN`?uwJ5AO?F%<+U7AQbne>ZQOQqwbzT*`m-+6NW73%JlujKwYOvF2n(c!E| zHVP7Sn|iVbA(7uLF9k{gvCC_8vaKGj)g(#>g4K3s^vUI4*PP0AD_Rb|EFXS)_8_2R zs zPaO7j$=VH2&*tM%ZL0H_7I+ViN+)6|U~sf3h;jVoQbDcAx$`kMUnZ9^3c$V*G}w2M zKA!T(#u4*h|J?s~OKQs(!iw43iW>5SCX|5>IvmXB>h2QMA)BV4%J}>VE?pjrsC7n( zB!0dMU5^^H;EQ#=pMG|G?+_Vou3ZMyWLZ8`!=0-kV0$+sxo@9rpev>gzE0>M$e?^w zYGj0L4m-yZrZEILhR#W(6v{8$IK4nxGmUgjg!G!?uNR>5i4Pi0%$2p5uKJv zM|oyTt}IYk+$E2MBbZT9Vi`#P=lzc-YgC(SX7>E*OBf4IBfr#0ZlyLek(vUezK?dg zi_}~8lE;$qDLiSjQ18mI-BPXta87|2-zEGXDOK-&Uw>D7`@J)p%5E@Fj%0fE3+wtI zF{QDMHHvtb;1>BEX_Y48(O5YwZ#H7mG9+FQ-+&QcbjXQ!+Xp6hmwx)eEB~oBi^R7Y zNiFdVrj<1o6n#y-*vQR+m)YQw+2PE|3Q`%*6moHkIoI^66W<8mwy(H7K8oUdZdn<5 zHy-&vtgPWo#vmM^o&$YTK5%XfKn!ufE9O{B0cSECH%me#HkdFX0M5|#819+F9k!u8 zR>R+Q8u8Hx%x~Rmu|I%@SS$QXC(`_uKK|djV}U*HJ-o?D&&W$*Mcl(@NI24%oKX~6 z$Y{4;vFvJ}q5IxA#P0lpzmHmIArl($-CEhDMpVPT!o)4d%QQ8UmCp-GK55XIwkTt= z@SqAI_~4WO&?nybtl`aW-6HxWvz`ToO(QBzQ*HzTZ|9NX2%UrTlrn{+#$?rq#JQ}( zWK+hS)@qJX+W+p3MV-uFO#kFaC;O6<);%~>Hx_!c8Fl&f*OJ;eK)s;EHG5K4wOWwX zskFwjG*;3xJ*`w^yMn&LsvqAmeuMpP9;a>h>jVBuA&E*aI6)$p8k;#8w39sp0Ed5) z?-Jx8hC=8J+A}#;S^>jxaZ#bs@5NQ9q`gNH@r!NmU%N8kmjJa>!#Du>ArHelL~Ldq zsjpB_a41&hP#Lqb5<6dt`8;NGj={I4P2#;(i?d0qVm(LEzYZ+bjM?(L^GE~gpN*tE z$Wm~imRKF@VP5Xufsd;ULYG}1RAj;-Kg4wfOJ?Y$h6+ZtbQLC)In#gN*(veYW)Hj_ zMSfM|g1UMn`x-;7qQj_$vd`$z8`N=+I_`s{GHr?D$m+s^N`_GCP96X8kE04(yLi$U z=4%&JY2$#Wb`}GadCwr<2*8*oy~G12gQ<)|DGn8)R!2}F5bdf0RPx{3ZZ8gRnkJf0 zvba0d)B|AY*?IshL6l}@icB4ksc!(?8+Or?QkrF{yfl*Xnf&||*H%dM$5mz>&UGI? zh`IJN$MDjSzt_FBu^spW^yxwlwYG4kp-$H{7U#u=4g%W@(>Y;C6BoODrbNPas& zp!7W+|15G6%0^y7U6f=63Ij`$7mM^<07O8$zpc(#4U`9ZU#2&YteL^zj6A9N}l33=3}3UTGMME)`o|AFbj(NR;T?{oBe`BwymgXA)f=kqY?CQ{~(0R96u+d^#oVLM z87`$I&JW5568UHr$p((q-?8%ha)50Fc-y{46k#0Tyb9904|3a=9W zAb9x!uTOwHkl&SdtF-~HD3I06!PZ`?kaG+BdKIyo6t~w!H&41ebR-j5s_}Fu^6zcf zC5_-*O8|ULLtYSFU0`wyG?#*_D>DiKz1&iY(c5dV{RdU3Ie&k~xj=nwK>OzJh}2%{ z)epoNLKFNf9)Lt}tQPwkx>^k2c#Zf!2v#Fo;g4{1d4EQtOYzl#f|0Gih{08Nv!yrj zX{~nK{o2tR$kS_!j{@R+vJSoUcXnxp4Mbeklfg>vz%w#xI**l)GgwR>(_zUARGv(- z71_(kWf`GEdd$FzqZ*Y{1 zZf%CEH2VrVt||nvO-_hd83z_Dcp>`3=s~=VV^*&GVaAf_Kx}C+nDr!|?$pde2e#`Q zen&1juOVrc+M{8Glc9)lxJ-|*kWv0lcvuGpf^+qzt|d>uH;Avl`9ZR6#6Zl~ZyPqD}u=duh zo!{kwh7fxIXnYWxp~WOz#XtttoK~uIjxwtt<;G)HsNjP#K~q2#toD5ewl6;PB>uP3 z%Rkg@eZR}{VIY!LMrhc3aX?rO?V$sUZc9ldQmJ5(E2Bto5|GKRjCsUW=>=2YX+t*% z!#jpvT=?Q+OO{fAUkkNo{pxPmNtlYO9O$2Ng6MEfCBW)3A^wj+~-Y^k!fB^uh6uH*=y&b`N;O={DJDS zeoznCC2f4bX5~9{T0Pq$lx7)06RhMzT75inzN$9+`}Bq5W@5Vi)K7Kf$rImQdJ$wa zk2NBN7LdR4V!(tCuqA{$kW3QXBVkDw2;_jd8nB6?CLCR=O&uQA=Qz`bt%Vw3j*X zSf>^4PrLrTZovqhasq$>$J>ML20xxR_O#p`R;LoXmM}4FoTrEA>y{R1pm}^W1iekAsY*N}( zh9u+-mJ8L%ggdK3)0_5=V$Zd&8g}wT=1UZ2=#PQ}Sq63|%4j9wYa4(@t4rvQ<)s<3 zU1#Sey}G2%=kW0;1`dVCcQo7Jy50a@hHb}U>E9k zY9j@h`H>7}JG6x3Th#k7YFNZkPD+rM!P>Ex%6Jl1}y^U+M}kLN&Bh}+WjuPouTbWAAxT8Fa8zxn5q*%AXD0r5r|;{Z z&Qa7K0u-(1dm^WxCw~ZzxCtdeAm!*E1S4$H@*$~F&ro{PDVoG5%0&dh+S)4RMRs)I zEtg@OaN>I#W)x|wYCyx5&3qfo*tNpn60xWU7pVi>afHI?+@ttlVqvTzDJ+;uX@*lnioZCk<6Sp7>Aa}-_iddgp!Q1D(p>Yyk;j` zr&n|A8h3g&wzg^tHt!AAa9)sk^yKMt-(1M_+yH*p)BRDw*YAi}9|nCI)*S3Tf)#er zL^7*}6*H6*X`!NE$>)q!J7?SR&xtD^=-AY|BjM~QOH|QQg z;bQPOKATg`6+~Qaovv7R`X$v3({KHl3m2Bqmk$hWes(YSiOw7F$R6H<0gu6vbi%$j z3}|3pLT*WL!<+@{rAycL!{2mPzL4c?wF7q^#YK!ve?* zFjuzwUfcFjw{zK9Q$A!2d4a`23AP48D}NY{glk5QLT$s;#=8W4PRd~EbZH4M8H&k6 z1&#?8sBRG|G7XQO$^Lk5UFT2Si;EjC(8mwIML-Vc^XN44Y%H~-joPrNu7eQDvGM_t z%xhD{U1EEbl~-9fnT>cPyLpJ2ckRa1es9>{IYlWIK6?w^_%#mS$m`L{H4;e6Sg2GQ z_dMngLMB?y*to`GK2o-;3PzgJ0nyz^In#)*!6B=>|Jc=>Y$#v;OZAAcQ_0M+B#Z5QgAMw=(mkIq2zKbk@ z)z%U(W5~a;N$)j-MH+@t?-6+Rd`jaG#j>4)EP&s2tKjqArV0zFXg1+q%f_pr)8|DE~$iV>X8*n-lI>x z*KM@m-I-TCG4dkdcl8x8K9Hl(vC?L0qS7(njW zc)!|_xSJq0z0cOi&$(ft?b^dHpV{!B{y_!IY+upd4xq{Ql_=_1v4mU+{sHpBhjAqQj6$djT7BM3$e)xMEvaO}fWnzX0B15805d$V8_~D(3d^PF+%YAhpskKDWK5FBhnKwWBJoNR)zB)ZEAWRQZx#Y4-{lN}*Sp%(#VWNmUD^ zxbBZfUjC_0D9Ada(N4Qoh%uF^9>6kWt*99SL}8I*SliHE(@~f5rl45RtxPbiDW${c z2@4WFZJ=sg_s*%UuXX#XT@oHNzO}uE&S$jOG}5?iDW;=N!8JJ* z89J13isGC&%nuq(>`0-#lJpK(wWR-{+bf=b`{I-*XLk8$(Iv3$q?jhI6-$_hB}y>V zi%5+Pu-lG0hCo$vivv+VEuxJ{3O1q2Y4oCiEr9BbG3Qil zp65h11fPFmsptplPp|!cQ~7;6=qc9YhzD`QI2;M45BoBPN@MY)$TB8bQU>M9B5s(K zNlLQ{soKh=wO7&wd02Yt>W<&WUR^ao-sOYx{mU49Zw_)0rI;3edku924%d?deoaP} zO!)ITgDV;d=%Hj(E>pX5TPi9c8^gh;?>`@Q^c@%WwYg7yjKT|mFx44Pork4TKw@YK z6pbt<1F31!2Bpm^je0VWZ63A)AsHJCzf8oDMjsyJlf3*5*M14mKzYB{k}hF-z?U%1 zyc;;&2pqCjZNmphot2ln#LieK9F?jH*;0%f&qpD@1o++|5A#`mxG;w#;piUUM?<0?)@%4*|_h24F-NLL#;>l@j~H zky1)q~twlc2pAf zKL^_k6R@~B6{g$;%sqUD8`hRo0*+s7jKo4_Gr!;|F0HE&88@#vux~m1B-{Ji!0&F= zF&_blDw1T98~SjpghrqbNuW#O{!&Jf^|RHov@9oe=Tc!*wF~eU|5p6+^^TEKrtNt* zGBf^LI~Yx9jMuiZQQB`~8-FIU0L;q-q^uA_U{2BFWp7l>N_gm~pCIyW?tI#}dvOb9 z^!8;uAGO@}5AcB+Lu};^!C~AO!0t8?Y8!mydjwX>6%~7&Id?XCu$XU9TG_km8GKIvZz$Ls6x8g5Gn#mhpiw#sF&Cc`$jCEZ zwb>wtT=vX`%Ew{6!dS8ap7!O{?3TlQ{I6~VABX)Mp7<56mGvXB4|151-?RZaMJ8#= zr^>+eQqYo*=e!|bFrfEGYAdLe-1+A4LsP!)N`Lc`yWB#ZVkF?P&*DKn%%UP`F0xVT z+gN`Qklz%s^3*8-E8~KKW}}zmSH}~nOO-P1XUXJI%XypDuh4WaJ^AtFwP5#i)U{yu zb6HfZ8TFH)Tt*_46i$|Deu06NN$Zo@B4i8%L>Xx%^XPsm({Z!u=dTZ~{xL5lVmE_T zcze+^#2kUc9%w*TAva7VAzMEf)+#J1lg}p;2^m>tNWqTi7uQv$DR;CS=%;+KbY@ze zDmUlZfn(c|!h9cCgcw@gth*0PR5EEsYP4K~4|d5>#>RzD(Iz zP^dIMgkT1qRwzM+}F7K=mf z*R6mELqo!oslaw1rIE#wrO`tczbzDFumu;Zv(}9*^R-=!zigi?J3cSQ$D%EQ0G2oh z+sb;q4j|{q1v?z6J^KMYUf7*3C_EayJzNx9#ga^kZp)&P7g_1n@he}kzDQ#fVLq)C}D`V02` zI5ep``qRzd23)q!lKNkoyQ2HeiQsX4OOuU6&kX(S|Z2t;YRtdn0x zvO>F;$7buZP(fVj49z1wJ^J{Q`wgUtKi@rlKM&eDjql@ovYPP7f8Pk|E2JQi*^LS{ z6of*N46Tso@$3?GtRFKbX%A_~<0*ryG+%iyvN(BVNL^ z^6nC-8Va=y0@rj7j`}q+p;*B*yTWn?J6DRrDsa~WcDYZS2Rl zWHUefX7^nJQqz-hBqTP4$<0uYI`Ey50;P@B(129ZkY32wCE+Ar87sL zFyuJR_k4Ntx2N9T;olYiXM?L@52)21A(9VwLsFOKhF_4#%@O2T)|?N@lsznks8EW8 zi(D%huST~1dGa0WrLCKJyuKr#7au8GF(0vh9Qx2+8IofR59F#9V*4XkqG^ zuuKcHAlT{Ucy%Rl_3J$Si23M)r&@j~{BV5Yh40>PtnM}BwQ^FmEu2H3P{Y#r%mK(j z44Fj1yi8&f6_W*(Es_G`FQZks5Th~B3O++gI7V0VQb8;lELWyl)$lQLOE-!I=Jr3mKAS)rqu=J)l z((sW;@cNX^8=60S%yj?+Z*46wZ(t0p$J(gKO7)Z{o9+_wo&qQ4v1;HmcWF+kSY-ZuRZ2h<}W@e&Lwh?}*+p(cDq3Ukz~&ljz|d#dLbW$EqTj%}MK!r(DToi`iX zlik0*Mu7u)OSBfp;4(*jf+f7z?;bv@%^Gibj%m$v+1xH0hV z4px#SNpG*ao&`fKUM!ef|B;A|_pL%UJsB&IqbL={Jt;eqPnDGP7>{mp!_MNXb(L0r zmtjA?Gr4c~{!?Dxek5@`wFjUI*TJT1;x%Ci>b{tN4I}`$%@>R+A~b1=rxLjZC9l|& z;<$YKaLDTg9sP0-`Jyx7tIJ=<4G}5db54%bBH?>CkS5BU1T67VRS z@U5%^xMsLgl2H2h>L7^xkU#0wo8dG)=H+A~j3hf0LSqc_B%}w+-umvl+uJV|UiTh( zv;SOV4eVty@+9Q#1Dp9rD-ZHJrGwygYIPiuPR3PALo^w?s85I8oL?~&>R@h>_WXcZ zmtSz-jWZwp=!Z+7xaZPwtsGKAALas}RK%gbVgbaz6OReCk zpC2Vie>^c&K!^@!*9j$C157Np#f}<|LHns8AH{2t@{-V?5R}{7Cw4|gdDYRUF z%J*x9U;o$N4#gi#_9wgc?VrPY`?pdzJb?n#D5MzTC>-@eJg(s;1-Z-85qTlNla)=h zD5Te#9eR;lSItm&d|bDqanAwzTPJRrCf$5}j2Jn}XL^#SwP86eNX)LMoS@#vtJ6`g zDO2WiLLm+_Cym)PG~qmK4N`y9d|X!U|NG+5kB^`6KX&MuOOFzfOKg4vdWmIf`>-bv z8Yx}zNJ^=cNDG#@FPO^7AZ^m*7%eZPIp{SdmbE^>NO*eo8K@=Z*5O4?BmP zXjzBUtKy1T-05cAB@CKl@TVccT2)M$_yvDK4Et#cp~&H3*&LwTh~gr&))#Np-K2j1 zPv54+ncU)qbFp}AMeAlOp7eP$^=|@>GQQ_MJYN-NSa>dFIpj@=Lo|z8X0gm_Lw*tR zlWwm0)3kN&!6D&B`b#5xU1qfruxLZ7m3IJ#MM7lt&EGU@n`HReJoP*HeMi-do^RjT~O=e^TfM^5Y1;Xse~*z z!{I7(esM0G(lcIaM1lYyLG_999Bmeeqp>2H;mLj%w;dI9j67CJOTlaT zn1(C>7P^F~C4+=JRVvxaF_SSD%{$e07*1P4Sw3=|)d5g?-H2BXdSCct!pV_So?0(o z|2yWH?zGyPXMr78y_SNVPp)YHA{RZ_{F;ar;yX*CFqCT$ zPJ8aTOShKxcwGK+3K0HWBy^@RUfay-4pL=O8$1hpk6=);BB>lLYq5L7Dl?bH7ew@u zs`$?MH_orUvEESd414tRncr;Rq2m@kIP-n41Vum`Yr+G>q zWx6=DItWat`EkaDt|!KlS3O+%)sD!n(L_A9j+%(QnDH>-L@5ghxWQ6bNRLhv2X)+HeP33B;)-hMyXf}kcOLuwchXsq zT<)$asnv8w_Ax4V10U!Hcy5fOSyPn6^$;x|w3%`NVMIL_+r(|}{IKT0F!g@%(g&Y^ z-u1;#YP=&rz+FEKd6b3&-7v!&&_)vT5#$XU#8zf0U$k+AaJHDrq~Zd$F7q?70`rXL zeSzOma5F0god%`8kt5`uBH^E7;qO3e9 ztbkqtrSl_?&zknx`ZE*O!tJHP=Ld24#_4VK^RT4y04j1W0qS~}z_zIqny^d~;i`FT zZYZyCM46(4IFR`uPjSY58Dh>@wDSJBH5>ZP&5&Fz)$X_xQyPYsE9|CSwp^7^Bfm>MMBVtWvYbFsttNG(s|P(khl zfMmQ?6)`8h+-NFaj@dK?LpkYn@2m$MALP@R-|76;&u^{$`=Wh+)4^9K?5uAgv-^{L zWH8jy#_Kr{v?Ve$yWbe)mAx)wD5y*_IVrlh(opzW_2|SueK&Yc=}^VnkB1)&$AMN0 zxxEG(qW~lW-SbbAI`By!>@nqe0*Nfo5jY%jp2eoo^#$(&336}Ucue`v7fq24%&fX= zk_8jzV!Joo?SWa@R%I2@*o-NpJ9SwZJ*3bCQ+8iE#|sw11*w6-3B1Avs~|CMOX6(b zec_3}UBBKo;0rVRBG?@~0`fvyS;U5B&f~<2bT4!3YTFqz^nj+zMjQjJ4N~JBdVnV>~rHp3keN) z>XNz|5)~=nSCBvw*x*INtslyk%X~gtVzYU|-eO8@4W@YlOwA6)L(G&&=FlO2vv29b zAHx)TKt~Rg*EjD?U6=264`(qPLUrk(SpKsh#Sj_1*SlP zn+hy!Y+@pT3A6XBKkhX}=D)MPp>}!u+U38Cfp-|PMSdV+BP_7>A;6Is}H3r7mY)6omj*l@d!aWHuImSP!-gpp z?pbZaD@aHw&>|jjAmKHLw32ec%qs;V4lX(yh8)A4zqU2j_ZmMye5m&R*QAy!;8HBN zg1r*1CB0mUvJ6fK!R-+g6JG5e( z1apA;+kRXtjJ#b#f8->Q8<1iKuSlyE5_%jm_yewpz-g68OR;lZnwXFCA7c8yzpr!0 zZNc5v=Lwdk$5uP3csvH*4b6TAcSA}B@PlS!u@q154uZVQ5(Y{onj=?CY4|}&D3uZ# zxx@-~&}ZzI(?@*nz8Yrj6VF@wj1&kI3rCaJLfDs@z{|ae!BLtXMKWxYGo{KU-5iCz z%(0l9PI*WhXs@}6Vh5zb;o-kcI6w2&1@RJZapAOc#EQQp3MH;=U$t`i{~(Yn&_T*o z?G+pn#VuD=@BjO-CCvPP@JYsh;*(7H zzpKD9_^eT^no0jNY&k?Sg&8Yr`tlhl9s>s10df)4${BfvGGi3jGA@?eCAG*xQII%+8NwOg z{<&Qk731HH5P6+)I{0hP&>6-8MIh6b_PYwp%XicwlgYw^c| z#j+U6FntAX)=@ygA|%Qz>hbixV|`w0%TObn$&KqhND)E-7$vg#TDX-ol?MLi9)a&P z=JKpEm+4jNLiR{X0SRGk6{P(ArTF$I?;Sg$om(0{VA4~(%fK;~KL~>qGs9T?_L^p9 z0E3faK&naO0Fb6GWk@jTVW}5#7GZD3;W9EzR;K{829S{RPCe%z=ERdrpUUrPm5E>W zVy0b2_8mZA0nrayTbb`-g9ZWHo-h=>PJUX*R5&9(i2~x3E&np6%T2qFKlyGixnDM8 zKs=)tfssO%2s4bwURl$^pNlfuD08qK1S^X}QyX1MQy?D^hLc=K02$ffkb}Vz+tW{v z>^4_PK2I23K0$fm^c-wucoR^1k+k9YT0p{?gT>KU+>1zB26+`Ju2slQxJ&woP8`oi z>;@;2K-7Whl9NY<|Ee#q`0TmoPha|6a@dcViJYi@Oa>W8Tvan1Vo5O=WJjz*(wQzu z1alOVKA9k=4a(x)w8~RbdA%HstWq_3S|4vAFPstj>D{-XVc(Y+zXCBg8FJv~W1Bhe zV!?IyDk6R~`vD^4Io0^n7x>n`M$w+BN?5BLU1a zQsiYLrQd!WmI$bw^*wpucje>qG`GZLC?f&4Hs@9tTyPNR)1eLh&r?^fjLZ&}_vBvO zC)nV6I2TK3)q3nVVa23cU6w z>%A4vHywPvW6Ap#b&pRjfH_4Zh_Mb<>U#+wrEw&fyLG&%Bb0ZF7;rR1mua)1Qbt~2 z8=CQzVTSA0{@b44a@)SWu2Bo_UB=vS55fn>b9T28YCPb6~LU!7^H}#4o6Z(csLG- z2nQn&Tj^1`X*#RLl;^X!P;O;){ANwj`@^)yhHZb=BHnQ8>8%xL`1LyS{t6g-3HeEE zHc01@fUJ#s0x^e7Zj|K(K^Lsml;gFP5uA?s3*Xo`c#`Ye)|>qz->LT_frK&_+mkyN zi+QfLQs>Z+ClP40j&woDVU{BTdRok2SVGdYxT@S+v(vtzru02r^UuaVzm?Bi4@yDg z9>0h|vIr7#7%qbC0#*^zl>P#n7cLp4fpXaGVVOm+;Q+28+DkqA#Lj2WebqeaAos_g z7~6y>{Et+Dpz-#4T_Xi-6%$Rs$rasxddV2_(zUR`Y^24&V*pP8)oJ+CZofPn=q}uP zO2B@4$pK(5e*o9Y+=6dG4iL2y9!E*mBKxhZ$pyvINFFJ&bq)c~;mgsL$VNe_&D&X{ zW-z_mw5Q;yV_a9Z4}69M-bcd$T+J~&au!K#T<~FRNr|lJR~r1%q?zRq294Tu5C+cy zSk2BC2)qB#Kj}36G}R?Ob>=T5k?0GtpQ$0u!PYOXYi3tW-9bJLftRAr<^%#$^tXiH(%}s<{UsV^t7~?A6}W1+Me3$nowsO)Sg`t z`e##Wo1ctt=G;Kr=-e^HPR!Y45UOZMQOl`E3VsJH(#4^qLdlC8oh3y=0DE6GPsOjzDs2cpwUnv3|u=1`kNR*vq>%91)8*@M27|#J9@XPckpLy{M7k2=o@RmpcMH!1;~b= zV>q*s7;dC-3n_&+!PdImJeS<3H;Ci~TD3(hyS{PF?BMC+uU}j7^Vpi%U!oR(6@v1P zdJrMdmhnvNJ%YPHw}?dIkTh$8?cSURsiges>P&TldX(7rY`3G^CjPMW+k<`RLy^jd zMgb}MXks(x2ueWw2AFtWK)$)GBx4wLrZ`vbu#0&%x6{Jb`Kswa&wg9P=ik1Z?@s;T zb)U9zGH8ynK`&%yJr=2dz;^|bax_YKgtl_1f^E_4TB*c%iVVg?v zdL+R*Q0b^ZfKbCN=#qYc&K-eW9=i`>_%a?Xuf2kkUBSKcB<}S^$CpmLwxzt6a-$1U z10hENDeKt3VyGXsP#Z>cLsC*U&FE=iESt3^f~=rX9E((`)`c}&C-r%R z9f?`z6lOMEd=Xit7n0kx!Uu8KIb;AywZY)d_at~}$i(24`5~sdY;xFjJ_*w>sZ#|` zO+S0(*fda)MWbYbMCV+TuVKNPSS6$V(R6Qt#0 zlL!WU93a1Qwr$;%U>EU>vHa7tHukhXL6eC~ZH1m8Av=WH#tM^>1V)fyC|F#kJ?BXV z1%gs2Q}X+(9G0tO_JF59c>L0^88y(n{mY&NK;J#WFg}#5#XdnqE)(Rtv^C$uN5mqV zAel{P%6U~VSXA2*zDT*L;vD%r;}z`dkTTq zJK-_!RP;U3OHFPQtF4eL7c46|5=bv8B)lH~!K!OyuSwt7{O`?%N}WBscFcb4X&Shw zQ?;$UOPFSEYaP1FSl|FMG7On;kiT>AUel7vJ;`Zx0>z zZ0srIAX5N@y05+k2)LdmVv%zArN$0|jAl+N_4-^)SBfiiCU!C{krXVze-?~VpT9Ej z*7e0#-|l<I_f#bE*5lqGhrH{2#wyFJi=3>S z?=qG2N+(X8x-$@&dZzC6GxibMvDrKEFvm3}u1@bUoobdB_6Z_4k)feoesuV-KV;TO=k__8Oe zF!}+$50Y>x^dV+A^#6i<> z8`px9%N1kDuk@qZ2u*G9bkaS7fUaWe3ih~5nn|RjkkAt6JMxkW_=Nl8qcQkP!3jgx zOnk;TrDgk|UU=+Fc;scY^7jA=U1P&?Bukh2of;J@=!&S>fq*{DrO{cEa#dNo>uoiy z=zRY3zEkhsyZ>O}a-y{r;i2h&Klk*9-#vWk^FPk0NBuhTJV>3`YyuEBgEf7dnRx=5 zts^PeeY`mwjpuAkxh@_~rP8XDF)HL8r=r_L3kN=q$wn7{Tl@Z6sebYWFdlij6W|y2 zt*;YeD#EJ}@_qO=S=h}o3#D;2Q*DkWIMjBbWdVS= zcVf`Nz4Mr6=&J@G=nr~S!;nqKXB#X1kV$7|Ei%47C=?e$GMCmT zmSQRzQP-#D9!@a#+9 zXnz)o&cFzuiZ+t^+{df!KAM4NPDiXOhu1=HMGKUdHeRrXaAbCk>mbRV`+Ws;!Y&G zHtnXiaY-HZ+QCR7fNe+WpDu!20=Y^&nbDwu@&&G}l;b)Tyam|11PBmG+cnFM?pZwf z_*?tld3X0V`5%Dn&K*o@<0ECVs5ekLwKG%wx(K|2h~-Ukp|lO=X5%_{IjnI7x8gyg z42h6`)a=Nwy7@-z?`@gopTKRiF)PQ_QhW_Hq=N(N(I|^;=KzMUO__?YjOJWE$I{5S zp>!ysjD{o?5~+RJ`X72<``}vRfE}9_2z?7duE!gTe474L%9Y;D?Z|8H#_I!aEo3k7 z*&((z9CAv++$eX!Xz*K*4RSBx__vSTb7{P0(Ma)AJ0A`Jc>j?)B3R?GdTePdLpEGAJ)m3o#y$Z<%cShTbTqRYXIZtD*O^ zT{VMVYz9|ey0+m{97^{=cGozNieJWb5ke|wCT8Hn1%^du<%9&9j81HMqY-%{fHpMm zmFQARVV|VQwqXXeZbg#-D%7dEguZf-n$^!>LFf8afM{sBz7wstU=d#wTNdERzB_P}o__cU z6H2|ZVav)5VC%BxV;dX<$`KNU+ywOylyO(VpycFiBBl;`7dDGKF0@K2Rp7|{+mlzl zX&BE=ZMwTItq>>?PH1&di22kXeO*+xcy#@ z4VV{0z`S_!ir(t}?{!@9y$i8ox77AEHH3ENFj`PZ073U$;!f7-0g%({Rfke9c$aqhNIPEnd0b>uFB z)RAKpH9|!yL62Kwo=h>TcZ)Az215)?ue&u1x9tB&zVWHc*1*^UC%JT!E*;p<3AxLbTz2TQHmwR%*J-2k$h=&HI zwjM<)V{Jd;Tx`P=qp>YbmBP5TaT4)wypEU1Xv0cDE*Xmn(p;M)%A;2k(1}OJa-hk( zmcD}h;H#Dg@0)e0Hy(pp6(AKPwr?HSDs!+{^15E#gaSKF=ZpBUQY=XeaD8G%8d9eL z*#PkU_bt2oC*6M}JZ;wYS)aeZ@O9u-%6u9fvm(M&sm8!&g$4Qs&H#;X4AC=Yb0*FX zxXnsoR>uXtgaGUGQ{I=-uWBZaxZhO#3K&c<#u%;drlwBR?9m_{F){%H#=Tsdg@v`($nP zbd&vqx(LdM$SpJ!{dAhl%qaSlMWHAm8UrwPK%N;nc{#rE!Mi^^d$QmB{mmQdK_!Rm znhyRk91*?9h>hKNraHy6iLD+_Qm+m2tzM<7lwLTx8G4v=7xTrgt#1U76{c`H? z*EhX-r9w|6b)Z6#D;Q++^32G!TFP=F0w~H6aJ?J{OHxc)Jh9Z3Dzo;;+4ZsPH-koFiUbzFQ0-^yX?!`Kj-EpZG}h<8fA8P= z8HVes>CfKzbNckxkjo5vs5c0A^hrQLyZ}3(n}A&FK|QU&itspYJtHZGqUAzzT}{m+ z$nVH@y6(Hmd-jv%_bElE?!W%B1ljq$TicLy3VUEA_%tXts;==Skr{@9ac@TKve|vG zR$~hn%o$1Gp6or%(C3rxV!pa(&C2g^A>Y~4C;L8Cd$k1=9gp_{B%r!R%A^6!> zyufYs1^5~+i^VW;1bQ2buPA2wRTjW(ePGtfiRYhexq|!Z{O3#`Sm42W5N_FDQz&PN z6mqJz2XB&bic*dvWZ)%Z9&W10^BEjngvy8^dHkJzuM8C(@n?3u^ZSL?Su^U9kGhXU z`nfk{5|Pr*1W-0Z$aOl>5s96Xvs-L&j*DY=s%F$z$o`)W`qsU(_Q6dr7(zXfm%pU} zk;=INZS1u*m@o0Txmdd2wf$a9<8EpfA#Bm<hL*D){2Mb*n3ABdU&EQ$-o8+R1e7TLmH*P3b^nKYk`4Wz>Pav_?yvt%Joyp#e`qJU2@#W@ zC^%VBZ`eX-ivto1OY)!SBm~gwYcsaqe4_u4Hjn9!XoiH>f|<3hrna5AuBMrrs3EMY z84Lr20?9E3ut2&L63ZOyoC`K(ayl#D>JSwLS*S|7p2vLg(xvUnql;``+8dh3ost0k z8aV$*Eyt2z2E%aGyOqNOy2*eiBGE_u|nTKl`W(rYq=lNsF zFLwkcg0;Ae3V#ksyIOfyFhI+B8AF30@LVcsIBIp4nAW7>SdWBS}yVmJWYz>xA<*v)LG<$0gQD3 z)9zoNIe2Um^hSr_ukA}#JnX?dHXqxkjXxht0LK zriput8UgU71%NQQv(J~)A*QoCalsE2QVdWYa)yECd>d1Ylw>N@AA`o`U&M6R#ZrDc zU6|)cWK5c0E%$~ja(&cLrL8S{_3l3ddYWU?9(m`?e8Gt&YyYd|+sR@kYDaO{moOE_ zj*DP`wms-m&_m{&RGQK|*tVct8_^uYRWxz)iw_LzdUl5)e9t25?2H#WhC?2T2&@+d z@KH5Cr5y%v8FDTaF@ex*O2M(1LtusZS)FBG#bEKlP4ix?F)81;v~)(FbKhxAAZYWB z;X0Xo33AcyuK{Vp7Cer|hJo5iVvPy-!Vo*nROTHl8b`&D*h|t1rPZ%-{C}@%DESD`XWnO<&MN|7^axag`hftaom}l`z z@{7QO&%L#<=sNSqgL&;jEV73H^8OR1lMSz}L5H@Hpg) zr;yr}x2&$4P!!8W0#?H57Fx=>oS7CVJ92hVGXg`{{mi|%1^uIa;0YJ*%;JoHfCh*` zXy>J2SzY~BJo>A+9MIg8#gwLS%2Jet`P`Vot7YfKnVh8R2ixX0E_#{ScHhG<&edGH zeswpfJt0(?hLk0k`hQE$c2=skn~?K4n9iii>EW4Rk&7p_$TOiJsOv#nZRaJn{{UA& zsK1$|nf=@A-@@x39y$ly*$zU(I2_t|g|^|l36fk=lC#0`u!Jl2dlebTYt})a%?McC zEkBEQ#tuHA-S_C{W5504lW##LqiCp?U`Y28J6H>_P3^3e$Xn5R*$DwRXo$L{Y`G=w zG5FxT_LFL7jeRzV+o50bPHCXxwBXm@Sm4V4n@~eS-l+x$HZTx-%m;MR44dyQ#%bxu zazkSeK@o78WS(?No2N-aF+VKh>ulw!#(F5h*#F4SoV&9Z1a1vD`TTKoSRv@}{Yb38 zj6rKH7N8lJOai5lA*A_JK{r<-v9h!_H+?}xWUUxnUpIN$v<*|P3i^EiJeR!ygD3o#XbPzWyWwgYiclUb->&n1&>Sec*#agBx~R zf+3@?=ztl>c_aV`xi)fk(U~`Vt=}127eCyW`x)ku=GrEtz=zh=bO3ru;|QdZWoqgT;dCvA%5B^*Q&Ew19J6V zu3RbynFpy?p8f9Bx9y+*y0!ky$MdlS%1?Ty`c6E`oX3hCNg&3r1rvco4u1rKkDah$*4s7DRk8 zgUL+D^*UdbdVA-?hZm0_{Z{inMUz{d`J@Dh9Dt_RO+Y6>GXZTuTCkeMsz4!|unQS1 zUe;-0I#SE(Do98_ys2>mW833G;w`dw8UcWqRTq?z zLV%l5Bd=G(<@y*UwP8&qE!y&4{jxMI<8h{yxr%NL8Is*ZIda_=;Z>}|iXln0uz z^uBGdj!cEcB(QfcA@%38P2GgDtKeXjSTRx5ek94f z{7dt!Dea-3E`zN*01T3ALvF)XR<*SREvxGxBr=&yR39y=l8`4awH0J3CuFFaC9XX> z_POr#n3XHuv%KB*N?r&K6X!DWdZ~CK4Tt)~0IVwOhNDG^w2;r2BUXki&Z9FKsDPJ; ztg-d|i~9x15B|Ae6TJGz?d&#ij5sL9(}rw*Ae%+CD9F#pSq9=uuSN48Bqvz9pickB9}!MB=OKY()&k!VAk zIcQrIA1qkn2`dco6{-|1p(z>4V!5jYN$rvCKNml0&D5KJKDM!E79?UEbhQvD^u9=0 zfa^fg-zGBf)5521sz3`QGU4C#M=Kb4yZzFcN=8QOe z`*&og41#;%Nyvud?g#g3J$WFt2k(%@{7NB>ZPAu}v`khkmn%HAy{aa+p_hht?9`t= z+jCUZo^EH|L&RfWXa&jBiaILu0U~Ozv>C}*!bT_*FSx8OK|&xGXX#;)M@PmHSV094z1h;2}!7W?zS%G3mKdQ9b@%wa0%92za0Wae|sh#$(K zy?M9rLhw%ECT1q?dbPy%-QA)+ySP2LNC>{@uIbq z%e|Z1`TdcQB3Bs;A-zhQb-`w~iI&$&Vhmtthq9L1*C*%Qcyj9-Coj_9Vkx$~4s-y= z$-qbs@-<+l5GfattNj`o=x{<}T|TKcsbWZ~VUwGgKDGym19d=BN+8af(4&&SHha#J zxjNg<4Ce8R7+g~ubqtd+jMRZt5EOEJP!C>h3wjMPfy$9Kr(%kt*X=2YCJaRaG_uRb z1*ZxhBDuHx{NfW+W5=))hSq`hrwr3jYR0aur^t}UupygFmvm}H+_=Ih7idFSj@qMF zdu_|>D%#Qs&ubcX9ugl7PU8l5=FWyh?9ik{Tm)RR8(X6JXRozQb=Qs(b6N1aY?3$7U8uRhUfpr8m zdQA$>L<~wb-=`A@b4pfuVZ}b&-HQUfadk0P_1F0sgddA1#^dmmfBM&uKEqLllbYLk z-xHDiUX=^Mg(!`i&AGTKbHr+68MB{NC*iejT6?a3+O_YNU0Z*_5~pqfeV=J$Q*lyD-y-)l#`G;2hV`(1?8wWibxmjO*J&V5e#9oWRXDE4;#@#OV&3<%&er*zD4W zJ9iLntLF;#OQ$@^JhT?2rmZKT#<9uTRwk(tEqdAD9u3jdZWhdDn+?{mN9)lElU|$t zBBq&N-*~s?$M4QhD{1haA_2!DXy-hloSj? zn@~|SDtu1WeFKmKh-?<>vfUGhiucr5Yo9O-xul#4@aMmqL3?2ciORyGV_h0A_wFWW zJP;!hE}IoBlU5*0i~K2-7Y2JDKzPjKTh>lGIc)ZmHQ~L})~-Bz6uFKsA~)BJ`uaIo zr2ejLJc{eVYwfYL&6bMMnQo-^D&<)^PbS%~qE%;?HaWtt+_m<6`ovq`UmiOFNt4JF ze1mrcmAL^61RCTeLwfN1l)$Bws$|TFPMt2;6DEn+O2Jp~yPK=qh8yR6C0h6v{)&9^ zmnY_8@mL}bkes2RBr5z)6N+2&z(iMOT%;D#H1vp>AJXSFkRXzyaZQA~1Q@_gUnLjT zoxgAKeeQez;9ylB{E8A@#h3-35pJ+K`|7r*MLMXzw7px_QN*PF&vxAqL~Y0PK8CO>HA< zXcr+P3l=gCImA**@@bhkW-jIA(zyWD1mxYfgUNSh-u!+s{q=_~>1cENfU@Ndm;o?= zzmrNiio^rH5(#V>W?1InDy*?W${SP%!EjRa?!o- z_DrG77`D6p)B;>TB$uH)+eD_k-qB2B@+T5|@Toj2Tnst&U><|iW-Z4fO#fg~#k^+Y zonZ$?>iE>!KEBK<&4atZ^)Ry+aUr%1l49y#8b?_Os_JERT?9u=smw-;a+V?CQ$|Ai zpf06h&ZtK=7Qjy2ZpF6yWj~Mxjg&t%`{yUVKq51hjnt6qYDjgBR8E0_yMm!u3D|aK zxw(s=3_CKeQYy}2aQOOyG#xi{IK~q=uof6H#TgqJ^Xf0!_wU0*R^Gcy0uZ|ysQWo{ zEUuaVYu~DebvthhQf1r2Tw~Btb*4_sI7(uekgJ zw(;w~7cbF2ces8T3#keQa*yL0u992XGwM2L~7nBapy+leo=QnZ}!7A{C%@QqJsgcM8 zkXRHd8Vm^}JtM$C=3=fJrWTck?;+qG+PkoK^E&KEJe5BJLmZ1kY8oum3No}tz_Mb% zCcT8tcG{H=xxyfkix_FUvg$Q`GW%4oJC6IGuN#7?YfyeY3Y@t4jVSSDO%0W^r{-T+ z7WnL@c?G>gs}uwsNm)jp4i!COhYHZW0B-TtG0H=qPkwxX^zEJ>KmO>O&SpF)`Z{^s zix{kEAV{%}0U5vrFqku~$XX2?pCMZii^^_UI+QcsHy->fa<#;z}J`c-HyY#Ra3M zAAem-I`r+`m5EwBb_=R+-B_pDpjI=Q9M1E4Jr9iZmO*FiEyU`d|b5m@n-ACIc%~Q+rJq=5|jT0-BIa4&W4#`ctXA!Ki%==nH{cn81wD1VL6x zsFJ1GDX1XN_?d=8b$-BCi5YVj%p4u=-W08S=eB;$rHW8_O-;jb9QO8riaugmeGft5 zu!oIqtHtgW>63BrdJ|bMJEu!|;tHCVRvjocv?bIx+9$to>ZS7=)9HJGQ!nKDTP%;h)|T z#dqB^Y|;VB*Q>x+!VCnqbF%~w*){2a|IAB8UhXVXNiDhLE~_MRbxpTQqfHeS3vE6{eHDQ zl!$mu)u9N7zFBa4T-%Io+(&PGy7f?_Er#mr{DHZk3IGZ2R zu&iEzjF+=zosd%xhS>o9_5PcI%ilclgKhGFqt9<$x%3`@0@n0u_>fCEL!>kUNv$?! zg0c=+Z7VT6G-H;dwD82IiO63gr-$R+w)M%QQ^vJ-4=9h&;X3DH37CyI6nrrgusH%~ zTf~vXnj5d}!3!MOpxa_BM>7%F;?@VmnS^H|vBF8fEOf=hndc944V%AjI?}!p+(yGj zfw%Gv8w;TpBJI4t`XjG4WY#N1F^kvq+eSdZhb;~B^S7&H9D@Xq(1_~~jd z88-gG1?yX+BUL0443q?zA+U4>>c@4fE2_tJ>ndPkRY|$7B9jE8CfA|UCQ-!l-+xs8 zxu$|xRzb*h6(85NYyNj268`_$xU&AAnUoyv|7GI}^Zy4FSrGHXyogDwgdmSAne_|p zba6uPA5bI=2o@jR=eZ$%a#UHAg#C=xfA$*S16LY#Fd0E%LfsC-ah)f$T_ zUz}%^1Y<0pC!tRlLxt)|#+VETUVZgYM#t54sK{y9`@O40fJ^S{^;eQ_c>y5Wh$A;-18nz4b7?NWR=CdCI zxMnkR3x;q7`Nv?Oxde#hB@7KTCA$fcqQ=G5c-=*oHwD8gm?32)Y`}32pl#3gYP))H z%E7tebLs7$J}?@PVlXpn>etltXI}zN`zQbialimhL7I_KdAtR+QS6Me-KheH6H*y~ zZ6lylVc#Fyc`!My`P&zs|9Rh=YmwcIAIyPRYlG$jl}}SUdo&Uy%20{# z3mEnCWQa*;Lo)i5JPG*bSwyt z#$kgv&WDp_C=)No1xb(Htj{yec8_W_uHv&_&YU{@#|qN@Q{msfWS<@bLNFis{xItj z1_-i%vWv!Mg0_f+Ckes%fQRel8?#)kH!n1@vY;&jY&CoB8G5#>{nvAb?VG2**Som2 zG8VWNnDMcId|ruqoi~CSF`h^k{46M4iqQjBcOaol(s?krp@0?Nss+jEPi{Jr_};Q( z^n{oGIgJF+CNT!N{Kc3K?q%REi<;Dm9ZH2OpSEy}lSOTTb3p<|p1V{ek$rLE;ZY-(m5+UdWZ+14)*nfo zfh>15xU*{;L5}Cn@oc8B*Cgc^OKMx%Ayp2) zJF?fc(<5}pVzg^SK)Cj!Gx0d5iP-yz)qAd;+kq5I;j}9sR79mVX@Vc*@I0=(t|$UG z43Kav+V|DJbpyPUJDTvZ&o?(9qS=T-c?D%nYQs&(EuLw62D165M@br>qO!e)jVneWAi;{7=C$5i|v8pOMTY!;6#4n<`gUsjn2pW@TF$iX(!6;9CE2Y|(m)z>X8 z`h%z5|9jU$OvfP~>i(#!1sbk#III>W!;Zt@Xe?ATT?`ah35A=J%2|ypM}RN(*`oR@ z70BX1BX9Mbo{bj`Kg_#_eDUQ;;8=3lC^er0xEEDX8DMbWIdmh;Phx?(H`gR`pJq$W* zaV41%ZYUlKSOPI7Psol|sT(J6e-U2kz1I2TO!>&KKPo-9vJSZfcH;Z^)IV1m|nHm zOcSWMNR1uv30zY<^1qPCkmr}Ye2&)2^_mKhERt|Q3eR?Yg>VtSn=YJv(ze~W&$WKd zlk+l{0F?7Qa8IqrY{Y`od;$rbs8eCl<`M_;a3r6ND-~v~US$cS_^3@Ma=rRzJ$C!T z2j3nZ0_!^EV{T$3nA(B7?f3!wfmGl)4ZN)5-RH02BQGsjyqy0@^KGyUyBEIU2Dt*j93laSDuz8_R$6T$XCkg)mKh3* z&3LTJvye>fw+6D7B!1#ZEdOg~xB%M*ud2hA2%u{MoXtS) zgLlY``AAm7_jA($v75;=Cf&kcdL!En*|raP6VIHyXZo)1$?rcReSXg`y$MwQ4KN#m z1n^}m0Ub67?0*9hN!-Nn8uAf6Cs7c){ke=gR;{WZ6O2;H^dE?N*42DB?Uw;Bf-3|# za{!mmS9-OwTfm;dlC8kI)S?e7MUkK;9#DIo+)_O1%SNk~_K%9r5APfT6&rG^ZmhDs z@jS4Cfk1h350T1htpoO709HkArN8lvsDNII@X`g2UFa}K3JG1Xh}`->%JI4Wz9Tx? zzL)p7FpSk#QZyW)X$!uMi9`d|;#$<-P|>@Gpf;*)bTf+)V{m2kh|!~q`!$>^6{f|w zmalH#%UZ5Ia7TRqgu<~afR6JawINlDtth0gfFAn@WV5Ka9IjoN{WjD*g$w-o@fm-? zPY>vVOuk$vODSDaD+G5}XT-eoPsbhHny)|mq;0LU&(!U=$08ZW_rwO|{K|VblR5qJH9xc31Pp2~d_M@-cM*fCk# zMB~DM00xCw7Oghu4{05a8hOJ*r|Jav%Yz7-ag2>%zEX(y_bP+5!^*+ zgOas_A$I>dKp;rg;>ZU{Jp`MSQF7^pC0_x~MEz=Cj%Q8_sssZ2R48~o{V@6Jk{f4t z@BgI+*cPy1q#{8A+ZY_Cf(j2nTPCT1gl1Kn3NgJUsu0SQZbwGz7FW{BjhK7QTi$;0 zuMvZ(^J5Fii7`0*Am|(sT%$-C($vmJN?<}l?x#hwbdEs?@x2zKDUcV2T=80ThpaB# zdH!6_p}4lJlhM%6 z!UWX*)B~^W^Oi;TZk@4Bb*1thMGVI{!M3^Oi5zJ9@fq{jKZeEqb;3#GTl-3M#|Hlbte zA@)2h5Yewj3Yd41jT_F<(jh)wZRIhz^Z+9a+XV9L#mZh;^xLL|=Z@NrPrO4OcIKhF zZNN{3X(BYdSVwuQqnQl6LB&EPoOKFwuwGVR7Z^rI?Za#zZv;#&n8iC+}71U#yg zs$d*kLEHy!e1`VrWQJ_-oJ^U2RpI%?V+>c&(fpOyc=7FTpANSvU<92Vr*}BrZ;h_;&WUp0db!4#BxIR?| zc?g$Xt1pUTLYhfpq!my%P2hC%54Y zVKQ_$oD73H071_+Ar+>K7SAT*%1j^~$|d|0 zS`$BRK18a3q4%sjyz0Rtow8^h-omB_G!jfdAXbA0)&UPHkSDQ0-RzYnd3kferPe`A zuUWxl*!cx_bB$&!VPK!>0JgTA&-&Io27F*Z;FFlrd znAAm(i%U>RE%RlQa-mghF~&v4D{ylcI?@m@nlS!B}lf@sjL(u&e9SIM=P3R(cb_PC+`;Df(m z?Y7aMZVJ7=Y%i72R36jDze#T8PoPl7EoBZmjf?q1+%Pj6!E7u>ve^O$>~VGFQ?f!sd$MllAn3ESZwGZ5LVnc8l=#?PeL z1RkLgPC9Zlzc3M&aF#ZKhd_2K^Y%1*9Y$8R@4mceEpx&b64Y6@jUyzsax20b^3?v_ zc(=&{8!euaLtS*ykuRL^+rES$`Sb00TW%Z82dRC|lHQruCc8z( z59BPslKvr3*@MwJ7!|&8NiWD6XiyU73h55BUcxX4>B-7HEE@LFR?4 z=FTMya6&@vaVm3X6FU5M%)l-}UMGXI=~N-$QEO;ww^=2&#-)D~z)W>ypT76Q_HDb~ zp1Jo}*S3?R*?~T2-|YygjcF%PE@7I47ZvsLsU zH{!{1+;W-AOJ`M`X9myNbnBT9=k9FZ{>s7ruTK9S<=*Mgfh#a_Qn)73|QpZB#Z9Tgf^Z za9@CWa0J|bauvXEf>D+$!(wZk?|vG_%iZZni|_UEqKr? z19{2pdR#kuHW=LEm&PInjznq|F-$gAfytCBbm+q%pLoyj{>4qR`{=hQ;*75ihxjdc zJoZ`xve6obQi*V1;Ih&PY`5Z3hg4BkYb9lyub6bv!>M3KA;#3m#^1%Pvf_t9$9u6? z9eDo3MH`|+LAr(=j@Bn#g!)JWO5bCzY3nAy!HhcYR@+>5QPdUnD9xI@FE|EQBSls@ zJD_3ZyI+NpFNbaQ>Z508gL;_7Mkkmu`4q}QQgb^CkfUT~36heinCd*w8%fgjIZwdJ z4L6`q(w}+HKksfGe|O+BFP+$VsQ+((VhPy@ZEPBj^2#_0c_F75w6?9g|VIt)6Qs*Q!L(AG+!!7!4N;Iq1n z&SzlT0+7-#_gUy>S5}7Hp0$8gyycgsQj>L-`@w-1@6&9Owjq}cguKp%M#=;Isc1qI z$>@w_6*Ei^WlK4So-J}hG#%i?BLV1{eT$F1;kiRg@0`_Lzw!g#0&KrF?wgHBP1E5% zNFp^3q4p3Mku)=-pg|0cr34oxLT*y4F;qJopDX`*`>Ac8ehi(XVy-=_o(!&qhwG|& zNC)>vBBdQ2hsAgJla_$alXB$)T#H%AqNgp&bS;|N{WbR|BW}fOo4)^5yytw+7bAP& z@lDV5L9RK9jnLE%0R!Po#FMe*>2^4zx6<@FdrIT?hem*xi0sXGWn-Opzdk$c%dS6O z*l_S%Xarg!@@Caj4h(N@=Yp=Z$CJ(a6LPmM5l+MlkrGst(KV?`)JYwUO`G}Mgn3t9 zs)xR#eu$JmgaJcOO#=E;2??oDN$oJ$2g!un;T05FX;;}Di)X}fXQ`0-mqh%^oNuy? z#W!C6ZrQ`Ql`G!f0JgPj7}}&iN9^EvTbkNguk}JUq`1vTD|?5y5PGWR0dTKv`Y<_2Vhk=aK&~LuA~xKah1s9jz@D^ zUM?m~@no{-MNEwX*_HgCj?^Ex{QUVxc0Cln?s^#phM1;Qo(<(iV*_fZ~eL|8n|YC6+8TQ)FbM;ivG#}Zkx)6 z|0f>E{eQ+fvi=X-)K4M!Kj1*%n`#uYVG}JI=O)D(LC_TUl|vcLe<~AMz$8mNsG#~K zaP8@1*xs)`%zGUIBTx8H)i{;8wx)vzhIpZ>M6WtYrx^u_kRlF9HBz418UsKe=zeE+ zP48|VJ#YS{d2>F#zSX}MwM-ogA%EP=q+;sCm}VvthsBtG4O6)+38uSF>$GT~cr?z* z!uedtEXfA4L7kzB=dhPFo+<@?KJ(kI;rq8WxcEr)>R?JRb>B5;J}Furc;ORE*!Vw8s_b*V9#=qyznxnlgYY_p@aEzWEzt# z#&p$jtYw`S|C?l4L18c}SKsfkt;auFQ8Tq(x;2#%15082s zs2g$QW4KNhcTEkDr!~>IsB54o357!*dfqJ&*;OKOFlO=Tl2vsMY2~{4Cw_}geqr?B zAC}4%y*dVm97R7C6s>H|+8Qbso#9ME4Oh)2wWaLvYutGiFB|f0_K)Gj61!Z)T%H`8KE--wIvA0P5ZVJ|JgWY1X{ooaYqi1&t)jG%@3v zl(;Ikv|UU*I$%p9X!x9eHZ^XUg6Cd zRVj@wWtZhkUS-CdVTF+Az#+k5$ajm!tZRBL_159fquNh~BB8QrZB2jn8sv@q0?e~X zG$!ijZz=^+3WM3La;NRZqD#Tc7d`T$xVv>Q5*$>c#|)|cu5;Jd2m8*u@z4G3n3+d$ zI6z*Qiv=X>e?cLnlx|p!{3Js{>M~f2c0;IGiWWR!4W#pl4TK6jDxB#Qh;72L=@;sT z!JbuQ;OGsbBToB6LJZ2hSzSZlk)mgnspaXZYL%#Zw`POi3_e1DTc~oR2Ja_%>|V4h-6SmXOn7Kw!A!; zi>R#%P?~c`5XozFKlrrv(=vN!LGqCEzYuht6VjYJSnZ; zy0i|DC8Gn@VShsh^D?HX5lkn_M9n;_TI1yvEJB^o4Fw>l^91s_fpYF$^FQXz1OLEd zcztiq@;gr8>M-cOX@jf;D(e|k_XDQLa?y|@cZLi}rIVfYgi8f0-UX^rxNEh2#;jsFq`vMT=3FOX?I9{1$;I z;6sBTveGhBSsh9(dF63$V~4(Gb*YPhCr>1{!PD!h{K~YX#?eSNrHUg*DjF8hG{#ik zZD7S!NrAM=7aWtHcfMGv^`(j3fl@3t-2@2h_M|4tBwc zD4ph$WSl{hMjZ_Y#d}E=!r=42o;p2$diM`w{k@+UZ~vjG6IrUFT}LwGR`xtF3LHBC z0z)}@nxvCyr|B7SeI}EHnMqrMBLzlcfG~Ldh~vxYPko-b`tHiVUJg&_4LX1o?=I%6 zja04z2j2DS8dTriLnw>$1-G826VQEpre494##6b3u+rZ-Ht~A&?jqc+_rJKo>sx+v zE#OSOjVE2e)W3yC(P++jYygacHQ&rw@5RwKUt3=yp#_=k`qkrS)Sa;saW$z&yR4jd2i41yAxt|5DH z2lU54>jCJfxZ{n>bNAOA0lmP}#5Vq6++e6`$3kPGFUKJ)>$7RSyOcHa?3RqN%+M*7 z;FAM1?4kA(+ctl9JacoYr{F2%lrnv6GICIc%@IID`J zBe6mzt5-+zaX2kDRrLseKl*@wj$)3$>e&5{T%qPL*IMR3bx8XYrfuZu3!Gg-^Mm=EKuJZn*T=W5V;#J<9%0 zCq*8mkplWVz|5WXL{mq0W*ys$hVL>@t;AQNo zh?s|-0OTWoGw|=CkpD#EultVn+c^23ks?qi9>cYV*Ucv&#O}Np`&XDe?vs)sa?c0)HJqo+JLE2?=Av8 zEs@!?x}rZChMXo_RIHARdG7#9GLWv^d57@8$#8o`UJ0}Q$(;Jnk zt*w{*3)#%W)(?RGByBB=S6QqF9!SPH2^&YjGLWIkR5ybu;3dDFjycCvb# zNN?}l6`L1$?^!T-`y!^3%UIip-Q5cW71U-*g6SgUbo!`_?`At=4r9h{i5K++nS};A zl7Q&FNa)OT{D_WwiBgWHXN3H8LM&~VM|tYmE$K`QVi{8^h*32Qkwl&z3*RV@K2+N22ycK#FdVk-_{7 zB(-|64$19@kb3Zu5Tx{m6n>pfT-N5LT7^#|+f1$W^`99xKR>jC_x&H7-!((d6IO#S z%^QYNkpumzbQ@rb%L9P2#GTQataKqyFEH}LY-^OG;;5=N0@U4P#e;jUU#H%<*Yd*J zU8B*t+1@^ABa4QsKiC&+T;yW3ky>9G-F(sY(M4lyozN4Bl+epetuZNj^(qQ+e~YxI2iQ#Z7Wq1l<2G*@ z^XT`FFUbG(YFx$E^(Rny6&WkaEAeB1RAK=Z*BC@jVa)1E#5i)7GoY{))$SCJ7o_=Z zpuq^5`b(`FmajSG$M)U7?dLxZO?wo`ljdU^;7?;e1+zSU?BLgXR@?dZ(2sxQu=96;5k-5b5#Ag%&m5m`Gv19=I0)|*& zF*Uw}?;^-~L58LPrxl4pD9tl)T~3kGaRE6&Y|z#3IFyCSzYKk1=v(_IhMu19Legh2 zn1{4`Aea{hMpVO@<{pCHX4mMQ@fCGdsl%ZITabi<@54}#L*34yAP-Y;h-nVKfGG^wWJ*6|i}G?z(hKLNudr{=(Myb zY%>$U0?3{vv@Gg6t9$kOyp6X$?0I{g9oTyw#kFw@&Gql#fxjof)(GWtI1;leGa`>s z0ZTLyrb!A0jG(E?3EqXJ#%TS1`DxMcFNYL?|1x$ng@~lMBl>oraHl36&zSj+XhCOo zvNBOQFY4kK##X8kXy;YkS0g^U@a>O>WjCzv?>R%n12+bwZs>p^N>d}?x~EI5tiY&< z`3=gT*2s0hdXYs1*yTV#^Vaxrn3j=`VqNS(-<-bwTqn43IJxEqGXeWf6LRU18aE@4 zATnl6B0~z6Gm36bFvt|f&34q42YChc1B~^g?H%eVKey%x*{=n_LS!Bm41PkwJUIMR zJhq()rZQlc_IH%T+K_p?qVpfJh9=+ zjnDt~9%t|%+1;U!fVMC1dM!G4hWT_85*jJ(Y``Cd9lW?qCQZe4S`9lYr>DfUycKvj zgS_I*Q=?j4;T7lAmkf6|-1nC4VsE69=DyUc@nUZ(kB9|!JnbByL6`dJv>dJE(QuMp zy*A5o^J9Tfb^dstyLWb9T>)>LI_bM&;@j2p79atZ{Vf4xIlObk`u7G>eggL(fKMG( zolEPoTcJ!|L{l)C{H)A7V|2}X)Vmm$X&L+FFHara+x2Ab=4UIff}MH-*Z3Qm@-v14 zoMO5NR+(FsO~fsJHY1p`xibE|iK7^YYi50b{Jq(KWZV2Nrmq~b)BpOkKX(lU9o+9* z&}pV=FnX{Jc?wcHD}&sCwqhW~p}|~s&P=zvym|vWk~97UZeu_>n9@4tmtX(Bbm8vQ zS9PML7Y;zXM%=fqAEzov2siy zFV7>faag51GsLbMfj#%eqMsgkX8yT$YJA6$+wKbhIQhAE8_*~AZl!=%(v3IgV2+og z2+ATMwnZDsr~R4WXMKUa1+q)DzxEW?4r!C`)PGBVM{$1Na`48td#Gm> z4W~6z2zcz_-bkcwoI>b8{+>b}L`7a}fSr$p_*%UzuN2T|R-RaF6;>xjq?;1U=$c89 z!?@p;TxWb)djiQV(0M;?&_`6@EF=Xq!rI0!`XcMdJVLh6TQcMlMMXlYb<)fH%-TAX z=#mUzF7!(ae`XGysR{gZd-J$|E6axO##4E9^_9sLIACc-D99kOQWOxfqi(C*!dFWm z9-rm}ff@)GKZ?y7J{oh$`sF~Ks#oHk9-uE0F+p5NjKM6f1y_a`%m!wSMNXr|VKqc) zkW$N*#`wOZ&M#C)l;VnR(eSwbg(|oNco;LHCa5$7SiVeAbtrd#Z_1`0Ze){Sg_p#6NUK6v%KaU)O zv3wql)Np1zmiS*b$XAfC88llsF&ZbJlb6D<)dxqpoOluFI$1!y|2TWX@@uPkkE}am z+y24_ukHurw^elmxEF{R6$z!MQ#vs1oH_Mf1Ti;kPNZa|klV$!gaidY*X^eF!Gnd6 z*F)KHa_yRT=Wp9-9L$)$?K_|aYdS+|*wRRa7XvG(4*xY6OFn??A3nQG6GdD`OWc~1 zi8%&U)E*KotcWvit++#yE;i=kt@l1X#`0qWz%=1+$i#7#tBuo1qBQnG5(Ohe#>tDh zvV73v$mr>Mp2ehMrE0;mAdyBU*!AAM2R`W6`u5!uzl#_A2zYdye+UhuN!SUk;N5`U zH4`{F!Tw|r)jV zjZz%jxvT2B2@!La=5U)0g0MnphiI%wRuLAht*P1EaTl|A;xyNmPq7f@!NiVdJ|9*O z7^J|j`VyvLc0HEg3TQ>ZA`2J=60Fh)mzT>ajajuamJ#SR1#e1q8G|llc1*nS%Y5nQ zhnIasf$PF!K+M|40r@z8ZG0PQ* zG4iGAosxfN_-xY;`yU?Wy|?YL82vE#-l3K@=DUqp7VY1;k=DW81OZR%DGR+`Ud(3n z^XYC5gJ(6N9AD&k;yyZktl!idzQxneefNv5kFo+8H>7GiSiO++lr;kR%rqI_UhoT@ zCYYTK@)L5JJi{viARh@dT?yNs>kiel*xXZfT@Oz>dYFW7I?QN;&QYlF2X*L>#d+8+ zWC>SXBZ*o(<%rGAuvsk;T|Ba;W-yy|Y~bA*|EmmzIm7RpkSsBZUVRqKfr0W(#CcfK zn~fL-9`{lWXq}Tc_39$1GQzCG>~?9DLXkU~baQ1ISr$!l0mwS$qnL|xiuJTG?woSf zL)eC_L^(4asU2D{dul4v%&}zEs4hY&l?`ypg|NwBD~iiuLx?SdJflGL1VHPNO%MGt zX_x~44u$vW!o}NCM{xMD5Im9CaF$rVpM*+Y-|6VVb7cWV&MI|F90q^J7~u&0G%u;K zGR)#?khs$@g*vcUO`c2~E#6wXu)jC~e$k@*~aN_*B?Ix6_gVcU)wU(jD1Y zJf!8Y!4n`sVI$|h2Y-Gjo_xCB&2h_$Pm(WV`ZY*FdX3bUN05|QnRW_d20_ATNwCy3 znjuh3InNLQB_4?cBezXnS~FUrJAkCRodf3J zggl`ny}(Hc0tQ7S=u9f{5I zhnu?zGDe(hG4MrfW-uPl>u3tAlchOHJ2ke>1+O9=eYCQI!iqa=M36tV?9<=zqY17UyNis zsCgSu7K$;T-PS{JmNFrMTk8mxq9OwuD#c{lyjffsni!xB#ca0E?G%buzWbslp~K9+ zgu#vF!=S%^2}9-iFqIkI$i2=7qf%mKO)%leb96MbfN=d(FoNy(Ejm@Zj5u^VN=bL=l7UaEW@B4paB29bmOV>W9Ue34=Au`SGLgKdrr{!HFpKTM0HdOI4)AYP z^SQD#P33V!=_RX$$;~RYZb(r5`1G>}-uiKc`@tI)&BI%so$?JhnMjEzM$+wzm{#QS z12{oD6Eyd&9Il03W-H^il+dD*XE=5*B&imhwl}}He6M0n7q93BPA zfoc*$(m4qRb+ducF^+6F6^KbnDznApm*?pkenzeoq1q_qyI(G^eo?(ZBYtVn-D5ZR z9IgjWuzYQ0SeunVWmfi33z*Xj?D8aVQK;4_;wE<}W})Q^erK60msHW$UXKXI{y0jp z;}z2{*B@Q+cROI)aw-!;Yy?!aQuXL(+XzTa!9#MVD5oTi3zTBNg3eSze0J69_Jv~| z*B*GcZ?c|zw(9`iB=g|28Ysym6Kb-IK=Yb_~~W@#!HFnbgE!ttul z?K7Jft;SgnEim=nv|4kDz87#jDEKy}g#eUWRqU!VR#a}yaAmBVRTtAI%tB32pHGS- z)mJ`n%ESQ+mrU?nQTG~hZ;$AiW;`Ac7)79&O94)k&I)o zk+QT*BGorn1|7iap^-1q6c>*K)FT&qPJS|&mV^E)D?oeMnI zO-hT*6tk-#D5-Mg(oRj1V-EwY9ZVmVFCi#>N52az!#{rut$JY*s7p2hfoU6a0+9|Q zF_GNPihHo5(!$@J*%_2W)P6>H4|0tOvh zkM=DgKS(dp=+#Ydn#b7zT^%8=@lS)OzvDc=Fu@HcE1_@YjpCT_rcfhXr|9XO9_AkQt|aP92#qwEC9Z_ z3MH#69<+vR9no@ zD%5|c1>c`X!(o5LRjVU15%}#YGp?LKfaGeh%Vf#wxOO$)ak+A;2QP2iQ8NZhKBZ7; ze@)*;xo8{>>ixl_;;|c1-snJ{ub~@n70?m}lZKwK>D9J8Tg%9BgTN9KSiddN-@B&v zi93%!H7?T4RZW}?3gH>`4ORlS(n3V8@Fpvv2X8TkvXWFeQuLe447ZD!@rUizGR-A+ zZ&7Z3w%^GU(oKxBnZrqu$e&0j7!EtnuVi>s z<{+d15FUWf7Crsgv;|i_d;FhARnh%Fd)72P(9pm9%PJ!IS~vUI6sAA5b|5qsM?zlj#y%C7By5GY zN$|1r5kb};SFki1Tiz56>NQY`33CPmxs-2bpADY^NK64U8-t8kaJXj5rbMS z0p=q?!U%G-ri@)C5#&59qgpOa+g;!Y01&O0yv(NcYn?nkGh5Z}{5lMpnGlXd`~=r< zw*_maRQm*ts4-Y7nGL5HZjUo!=Lo_{mn`BJRvpjxZj3E@V?b(YzbnL_f}xH&AYS^U zZyS3It^=AxB$L4%5HvH)O0hug6iY3!jMpA!GLp$ll^pBwdwLCLG|Vw*3xYSHH>r%94TNkja@{ zL*m`qfp{=43F8%|z$Oi;Q^C4;zziK{W5o z`+c;FmHn%_Gxwn4hw0f+v_9d#b+$WJi>Go?NBU;g=M99L{i{a-)Q|nCz&VUg(-cI4 zm{VG`nyvnrt)$#Vt<>ck@7{rHW-MKtvalaq8lC?PXu??fH|!??|LXtBK{hlZd)R0X z7hN)wF0K{jAwDeP$h9a!2!yYD`keoG%`+1+!VeRLhBe30NdnaY2mE6=Y~MOmCc``i zB*ig~hanK>l2*1_>Jq1OYE?N4YDxh1$KxwLt-1E{1FAl&f7$Ww<}FByHIVfefz*V= ziqG()X5l6n#mgznUY(p_l82%>3v^5^ym1c@AWUr)h_zFkrwLfhO zS??dcu=L_yvB&gJ91MGan8i9G4M!S-!&c;s?M!eDXwzX)SY^~J^cF)xF7jo=hI|p+ zCcs~xvt#cQ>veQ5mLCiUQTqDY3%(T0?Q5S_`> zNFfd@`5h5?7s%G-b&kEY&OMy?;n(}{-@V!S9a8GYYe^R|z*V5Bo&9J39zsNXa$@QnFz47T>EP*@**9N`QO65P^ z0H!UQ3Ajc=V-FrydkPk}9C8S`TrKQ(o9+HUt{M3tfDFBzVR+}}LxcY27QWLIzRxui zn!XzVA`+F2zR3E@po>C4rIyF7@}k=ai>)D^mz(7Vk#w*QP`vhH7Y@qFKHgFw+utkf ze)w_Bj8(mGO|>1Qd05O3B+BZV`bGf=u@RfmBK1XsQGJ$|4r*CChfs9B%I#{AEY{mz zo@4s;#tzN*$Sn*=G1)reAzZ@}LKJT1rtldn3Dl zK0`K{QH3%CF3lt)rS&S5-8Fo%Lw<;T)>-Z|ZUsp5ZJ@rKE=byxR zVho}2nYuRQ(xbEuq>%3p>LCama&FKYQ+mAF6gOpK**$qFYfYtc!OZ;o@o(p+z6)P_ zdB@bFAAb)9JpT-?&W4Zsf{qw@K@$=&ihiBlon&T_bRw(`IJ9A>E;JWgGk|orrr#%1 zcjdNref`8YtsIVaA-FoZ4d`5O&O;5@TSQ#67OA0n_YgwTm{i2J`U@PP!j9a2S%p8q ztF{H^IUa9V^5DMJ@~KaMyk+k9e*nc2lJq?=h%%!OrJWT;vIzm47uXz1wmg`UYw0Xq z#A)>kK$XBjPAcxG(X9vlR^C8*gHb5ieaf>EsY z7I+p~DwAPp^$wv%6jAZfz=Ql6F?43%$Mol`m$@0UNcVd#$n#XA>i5!1FMQQ zIMqyfsDVPRr}Ypla=Tiej&K-pu^|(Wu=QFKS6oGm^|_<>?ws&>^3!)q{7GNzCW93w zqo#iRL@oAd@Ks2S-w~1e!W{`_Su}$`k`&p3?xe6F*Cd<4b0ELv%+4X(pL%+lQt0ga zQyu0Q4lVytoOb}nLcr{(tKw#jr---eTp2hav2s*~0HlsHVkw$5;@1Qwi~?&R0Xcm9 z3iW{nLh{0w6dSu79bl*o_HG|ka1^hlTpmnqyiD#Q6mo8LAmC0%{AIqU6fu|Mwo)8S z0^i`)JOEFM9p47F@H_N4K#( z4fWIO(OG(27N9n8RqABiBvCsG43$_CE=M)lsJA*O;_BL;Rt{29HrZxOojEWf~FW{G54L&VC3OpdTzmzzig&w&JwAFlV-&6vZk@AI4Y z#V0av{s9spB?ay`BadR@5*4X z3bI#!JAUe0;%{@W9onmVs_F0dc7wbD{*~OuTY#;vznAKeC+Xxtsah%*##5|>`gXRie>cId z)$1fNrdGpe7YlX{9E&?N4jZAyI^r(o{*#}y#5C~P)ShYEm*pGX=rH95R6aC`NUaX7 zYE+Z|#uxNb3zM7Rdh9HjG0GIV*b09&4gctO^Vhp3rlt|3Q-zUdI^3XOd$z6N?jR}$ zDYdE-U*Ic)y9r5#P*G$jtH_knb z;(T26BQw9GU^h46(77*IvZDowNwCq6fi$)vM<|@UM=H|>95;V)CyxCfhmRX;Ggjon{6OKeCnF)l2 zsk{RUaB|}L*qRk1?_#0@kFQxU_LW1!2%Ek+)$}F>?74edfZ6_i#8%#8^_58qz_y9) zD4Ro`k}quJ`gAIz$RG^U&A|2_IE7t&;^h2etDYQmmbYFwx%IAQ=4d>|(+Bx6^+;u| z!U401dC02;uKm%V6?XWHkRcHg38nN@%*+l7K;{i_vFG~~To>}fd5_gT`18_xU06^k z*?=Q^8>_w%d%P8VZln$+AIEhO>>6JHN{WSInW(_e1w>HLDYPP&Ab|}yarYlwed_5w zjSszj^9uGZxEPdFf1^Y(M%msgDW1k*CSb|7a~J&B5M_T42VtpGLQGsEwZtd5d>1a+x-xZb{1yOWcYwLBK>7{TCcz^R^*BfeNu?zp)j9k;8H4{h?@!IEPmh6tM+@J7B7z7{vB+#;iN`t>wke3 z4>xxabg3N2kusg@!|r@%0{hX70&m;!@GDUMsY99z_!rL_W~jL!b-2k`g=UaB!GTgPkK#(-Ky@%WIPuBqrKSFfoUtpY(M_z(Vf7?Q{MpD-lM`cHi% z6Z${&kxc&o3qy8>vb2ar=#PtKHkn)pJ80=p+W4P#sT?5KUvO@{zTf3W-<B3aClr@c^o6iR8VUa>V4Y$W5ZCG*iku z;9Q|vwi#7te&M&c1fP=((IYpxy8)^RRUpz1=rU#?4Q7DWn#|)*Fr^$;DJq9uB{n+{ z6_yy)DLnlTUispI9Y+keBI8Ss>C>O0UN2%yGuw(K%*PIf07fDKx;Yl`a5ZwXF0W0P z%kq*&Nvb5)22B}x;9nR@w%eI|D8BuOq2={ioZhbw0uf;>u9L}LfNkY0z=Hlejfctr z`RTkrnxQNCnmEUsrd!O4K+cXVgIdAf+`(C3-!G5_hTL#i^ElzY5h5C zYOreDzut}`Wv{9^Urro`tE?^0Uz+*#R3< zTZRH90P=l0aR4+%^~R_Xty!4m(lcR$hJ_?KT(Mp0GP`nXs^U@gfQRoK`V^l3#JRV> z9+h&10J#o@6#uwrC1|23MjH-1D!2=jCrAe?0e1db#_!h%sHepMmxZQ7DzPriRLT z4GZwb2}E2w=N;sy1&dHDl+`fveifa==85C6U`hlEUO-`)JMfhSC)w}c`0$sPaI1ph z29z!SC3-nRA`Ch=j15}nEKP>tvMGWhCS9ZDbCjxbM5(RvGQU5{3b}_gJa~+Ic0P?? z&jl%A0EJM2jQs|5skpF@|$Hm0o!cQgUk}} z;`WaU?3z1!=V$ImneXAA`*ad;qIn$$5?$b;$yejhff67y6lpnbNyMP%ip0^NK_QeD zBSzVksx=((?D7^dN8O%7l%z6<-0O-aPl(q7@V8t7zHY)I-bq{;;eLx$m!FNXzPgCn5#){$s1u4nx>3 zD!Y)7tXBJS1xF-UZRB5A`;Cyj_xKy%biI3aH(~f})IJuennjp~eI(4D8gz0IXr{7C zQm(|Wk3j*t)C@;>*`!GTX25{U`uvcGsefELMfq4)nzZe?8RtM7AyM1Lnun!q##7pP zfOu{#`AP*&0E(O4)~G`0j>vsBR@D~HHtOAd8#pUDUp_Zu%F~7CzrTo-%2fOSj<=!i zCIRi;0}Tw95j802jv~imphcyHgf$S?xo=iS4*jOk54*|yNqp~f_m8&Le-alVOPC35 z&>3PYgp};fc;u3A27@f(QAJV*$7~jls*o{q<6^xxf&2^ta+)6~$=CmS$sr@{-T&|k z_{=)YOnf5_vjM2sfFO>_eHDwF3$A-y1JDY>G^RT2phL2-n6FD@A*f(x@efsp51so} z_2g4G+ZeYeEX;pb+w~WiDTS=j2ETxO7$I=Yd>q?@7w3#|Up&puu{1)vk1g}2!>Z@& zkO+lr)}{-Aa=Cl=EX>qv()^Ai&)4-Q{Yjwop;Bl()UZz$6&nqjl+mgvxoIqpQ>$4Q`x7_yh?vJJm4EnL+E?5M>9&* zy@aXaDNT4BiW=xRakpBm&zNO4o)aos8OD?`Qmu9;zV_W%_^R6XULb1utZnh)Z;ALp z@G;P>r*b~UqciFLMv9I^R^YIyf=W?XoC>Pdw1}GT5zVilO=~}GwQo?67(dT`_s-KF z-cJO6LF;N7klJ=+BPepgR)c`?QOs!8=7cf2FCF6K5-y2P%HwI~SFC`S_CCI&|A*xr zyLQc)U3_p71XOu!8jkcX9(xT}#YxFvu8uz|6APSThy`V`!Du2^&~lude_5N;KAVMk z`sVq_xH-=8ADvx#1zCkm!!_U=TcP7&iizOibVs*}=g9 z{o%z;jr{Pii3^>(J!4-aJoX^^fkIf~SX>*+O6XwoiO60BRB9zZ!xOVTUSZLi=d-+U zhAU>3t5oVy-%X;tFtDyq;?~^4=C`|!RcHHlLYxhan7yFw)&L+$d@fyt^d+gyR!$mZ z(XuE`E0tFDss zQK+)wL=iSf%Aq1x2+UnjbGi4`ubL(jbqKiQ>6D@4f_7 z{V)=6+N1&QSPwoP@kI1yMT(hvK--+3jhP~v}&NXQWiH+$jz-?grHuiizOr>u3KUZCSp#8QDWD#dpCt@R660#h!S*bt%(_&aQbmn)%1nd1LAG-(=bZ8u|jXe&`Td8_iw{t#4 z_PihfCG2z?KMMJ^aJFRSdFi5P)vXIl-tgdG@4pZ@e)jZ|-_Pw`f_A(*i1jD}UvXoc z-rhwJ1>tC-#B|8YX;_bxFXD7b>_RPG0O&;;cyZl0`+y0z?sINxdT&+;B!1iRZM?&z zR=7Iln7ad5h%zM}c04JSXzdCGUld~HZSp>NWVa!|=e(i)Qd!dc<)LApuKn?^xqa}2 z7UsA8fpzt|ULEXDag@f}gswV8At{tPV6~zYiD_xExC}1RG6EC10_+YW3Hm&FbXey| z?oY1{cx2k!s2%aDx;F0mUf9nYaSO31;{r4`GmI2J#uq2TrGQ^$Dlk%|1WR2dmu*(Q zzx>lHPmS*A9Lw4?hBtOH5y`Jk-~fu*-JjCVvG(sFaA~=a&CX@`nd(@{@1T2(zLIlI z1qk@6#kSa1xcjs20G9?Hthj z&e%Q5bb*T;MWnukblI}JEEftZOt*Im^=~y@xaXeiFwYyu9ywTxln70~liPR~FjW3Y zw80vyt!+F<>_*UDnW<^v~nvnSSr zth3^q8?CKBf)00Whmri35O)`pW{x&vGUioQE051Fuyg5kmG86iy?WicsA9ko%Y*ma zYKp%BM)lnwH>|6vr{Iytz&74Q0+X?TuV66qQ!chHrORrK)ej`Yn9h3N+f#e{ zwKugJe$hxekp-@kNuzPt1Q`kP1A6d5j>w9nrKGD*Q11-A|Ggt+tU7r)WAy`R6&D(Y@k_kRxcLT$mf@kx#KwY@5z1&m#? z4-^|Gs)CJn9rktu!ekG^{9PYH@$vfXG`0KIpYW31~^<3 zkJ6y%4Gj4gVo?k4k4d-cEWvQd=hYQ_G;Lg>5to!XSda<;AuSh-88Wv1SUUOk!{-Cd zAKe)F>qi^GFk)^aj(7sspe19whE|i4cK*ktE&?w_^Y}|lonERoNdmGUH(3@17GS|r z$Vt5M){5!lw3CdVw_w&>Td{Wr$drKY=TjW^(!eTtg*>yqi(n1Axa^3Rsm^dDN@J47 zu_u_q`RFpp*S2zYUy|jVS+q9p`Y&>dw+XS`b*a!ouI%n=oDFCs1I!ChOBAn6?!}M=Em&zj303Gwu3kP4W*6u4*{z|=M;d^)%cRR zD2RGsby@GS1&a2JOXHAl11liAD0p#t57#yzB>9(YcdXbb_(g%fkHV?cO4xp7U)b1Yf{1%yOADMt(7&^=6e2*TdJ?>@E1g95#z` zw`N+KeE*{dW=-9)a(Cur-v>a)b}KsF4GEX53S%0`7FksEIB<+cj!|x)Df9|qBIM=@ z#nwwzaNBrov249e^dn_(+t9?@A`5uWi<{cmFa?YJE)c$92>5X6oNj5%&$lUj90jW! z%!g90kQJp?BCm)4{Krf0T8CVlcb=D6@XA^naI)Uf+BhGJylp_^Y8uzsO@MM5nOZN+ z^NSXaQVRD#F{O%yO=W_FNmMHa%#%?#jos~-q3RlEQ4C5H5|iXS5|POiNr1fUF;Pw z(k0k!3@Fu+urkLE+I#>e=YnR{KitWmzqdWsT0dTXc=wCe66#d-dSe?B|65sI1XR1P zL*i*U0C}MRGb^+N89@`>mqWgeyaina309wwSDqrr@bc{A^s~F4BzAy)%&cA@i@MyK z%0A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⋙NdM^()* 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 diff --git a/core/src/test/resources/indices/bwc/repo-5.0.2.zip b/core/src/test/resources/indices/bwc/repo-5.0.2.zip index 8a7784e25f13b1e5538a96e4c16843f34c22e626..47ce08fcdd67c14b5a91079aa6b02842555ab9a4 100644 GIT binary patch literal 191589 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

    ;g}%;a3>>%Z3zWj@aHW-A26VF&1NmDn_n9 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 literal 105403 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 C`Sz#M>fw)85>uwW4H*AnVr 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 A7WP)%B}#?9j;Y%!b*&y?*YUZ;(G0 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 Lpk)!T{-OT?DhC1A literal 97629 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 diff --git a/dev-tools/create_bwc_index.py b/dev-tools/create_bwc_index.py index 5751335d1e3..a6814e52f8f 100644 --- a/dev-tools/create_bwc_index.py +++ b/dev-tools/create_bwc_index.py @@ -15,6 +15,7 @@ # language governing permissions and limitations under the License. import argparse +import base64 import glob import logging import os @@ -73,6 +74,8 @@ def index(es, index_name, type, num_docs, supports_dots_in_field_names, flush=Fa if supports_dots_in_field_names: body['field.with.dots'] = str(random.randint(0, 100)) + body['binary'] = base64.b64encode(bytearray(random.getrandbits(8) for _ in range(16))).decode('ascii') + es.index(index=index_name, doc_type=type, id=id, body=body) if rarely(): @@ -334,6 +337,12 @@ def generate_index(client, version, index_name): } }) + # test back-compat of stored binary fields + mappings['doc']['properties']['binary'] = { + 'type': 'binary', + 'store': True, + } + settings = { 'number_of_shards': 1, 'number_of_replicas': 0, From beb794cb0f2b19fce62c0456cd85e677afaf6288 Mon Sep 17 00:00:00 2001 From: Matias Anaya Date: Fri, 9 Dec 2016 23:45:01 +1100 Subject: [PATCH 21/51] Fix typo in percolated-query.asciidoc (#21991) --- docs/reference/query-dsl/percolate-query.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/reference/query-dsl/percolate-query.asciidoc b/docs/reference/query-dsl/percolate-query.asciidoc index c726fe4445f..0e4ce7a8d4e 100644 --- a/docs/reference/query-dsl/percolate-query.asciidoc +++ b/docs/reference/query-dsl/percolate-query.asciidoc @@ -130,7 +130,7 @@ The following parameters are required when percolating a document: `document_type`:: The type / mapping of the document being percolated. This is a required parameter. `document`:: The source of the document being percolated. -Instead of specifying a the source of the document being percolated, the source can also be retrieved from an already +Instead of specifying the source of the document being percolated, the source can also be retrieved from an already stored document. The `percolate` query will then internally execute a get request to fetch that document. In that case the `document` parameter can be substituted with the following parameters: From db0660a7eab0626382db58df138a46277db3f938 Mon Sep 17 00:00:00 2001 From: Yannick Welsch Date: Fri, 9 Dec 2016 14:21:22 +0100 Subject: [PATCH 22/51] Reject external versioning and explicit version numbers on create (#21998) Fixes an issue where indexing requests with operation type "create" auto-convert external versioning to internal versioning and silently ignore the version number instead of failing with an error message. --- .../action/index/IndexRequest.java | 44 ++++++++++++++----- .../test/create/30_internal_version.yaml | 15 +++++++ .../test/create/35_external_version.yaml | 34 ++++++++++++++ 3 files changed, 82 insertions(+), 11 deletions(-) create mode 100644 rest-api-spec/src/main/resources/rest-api-spec/test/create/35_external_version.yaml diff --git a/core/src/main/java/org/elasticsearch/action/index/IndexRequest.java b/core/src/main/java/org/elasticsearch/action/index/IndexRequest.java index 94f40851e89..de80f85b89f 100644 --- a/core/src/main/java/org/elasticsearch/action/index/IndexRequest.java +++ b/core/src/main/java/org/elasticsearch/action/index/IndexRequest.java @@ -140,9 +140,15 @@ public class IndexRequest extends ReplicatedWriteRequest implement validationException = addValidationError("source is missing", validationException); } + final long resolvedVersion = resolveVersionDefaults(); if (opType() == OpType.CREATE) { - if (versionType != VersionType.INTERNAL || version != Versions.MATCH_DELETED) { - validationException = addValidationError("create operations do not support versioning. use index instead", validationException); + if (versionType != VersionType.INTERNAL) { + validationException = addValidationError("create operations only support internal versioning. use index instead", validationException); + return validationException; + } + + if (resolvedVersion != Versions.MATCH_DELETED) { + validationException = addValidationError("create operations do not support explicit versions. use index instead", validationException); return validationException; } } @@ -151,8 +157,8 @@ public class IndexRequest extends ReplicatedWriteRequest implement addValidationError("an id is required for a " + opType() + " operation", validationException); } - if (!versionType.validateVersionForWrites(version)) { - validationException = addValidationError("illegal version value [" + version + "] for version type [" + versionType.name() + "]", validationException); + if (!versionType.validateVersionForWrites(resolvedVersion)) { + validationException = addValidationError("illegal version value [" + resolvedVersion + "] for version type [" + versionType.name() + "]", validationException); } if (versionType == VersionType.FORCE) { @@ -164,7 +170,7 @@ public class IndexRequest extends ReplicatedWriteRequest implement id.getBytes(StandardCharsets.UTF_8).length, validationException); } - if (id == null && (versionType == VersionType.INTERNAL && version == Versions.MATCH_ANY) == false) { + if (id == null && (versionType == VersionType.INTERNAL && resolvedVersion == Versions.MATCH_ANY) == false) { validationException = addValidationError("an id must be provided if version type or value are set", validationException); } @@ -387,10 +393,6 @@ public class IndexRequest extends ReplicatedWriteRequest implement throw new IllegalArgumentException("opType must be 'create' or 'index', found: [" + opType + "]"); } this.opType = opType; - if (opType == OpType.CREATE) { - version(Versions.MATCH_DELETED); - versionType(VersionType.INTERNAL); - } return this; } @@ -433,9 +435,24 @@ public class IndexRequest extends ReplicatedWriteRequest implement return this; } + /** + * Returns stored version. If currently stored version is {@link Versions#MATCH_ANY} and + * opType is {@link OpType#CREATE}, returns {@link Versions#MATCH_DELETED}. + */ @Override public long version() { - return this.version; + return resolveVersionDefaults(); + } + + /** + * Resolves the version based on operation type {@link #opType()}. + */ + private long resolveVersionDefaults() { + if (opType == OpType.CREATE && version == Versions.MATCH_ANY) { + return Versions.MATCH_DELETED; + } else { + return version; + } } @Override @@ -512,7 +529,12 @@ public class IndexRequest extends ReplicatedWriteRequest implement } out.writeBytesReference(source); out.writeByte(opType.getId()); - out.writeLong(version); + // ES versions below 5.1.2 don't know about resolveVersionDefaults but resolve the version eagerly (which messes with validation). + if (out.getVersion().before(Version.V_5_1_2_UNRELEASED)) { + out.writeLong(resolveVersionDefaults()); + } else { + out.writeLong(version); + } out.writeByte(versionType.getValue()); out.writeOptionalString(pipeline); out.writeBoolean(isRetry); diff --git a/rest-api-spec/src/main/resources/rest-api-spec/test/create/30_internal_version.yaml b/rest-api-spec/src/main/resources/rest-api-spec/test/create/30_internal_version.yaml index fcdb2332a46..b9f70586a7d 100644 --- a/rest-api-spec/src/main/resources/rest-api-spec/test/create/30_internal_version.yaml +++ b/rest-api-spec/src/main/resources/rest-api-spec/test/create/30_internal_version.yaml @@ -18,3 +18,18 @@ id: 1 body: { foo: bar } +--- +"Internal versioning with explicit version": + + - do: + create: + index: test + type: test + id: 3 + body: { foo: bar } + version: 5 + ignore: 400 + + - match: { status: 400 } + - match: { error.type: action_request_validation_exception } + - match: { error.reason: "Validation Failed: 1: create operations do not support explicit versions. use index instead;" } diff --git a/rest-api-spec/src/main/resources/rest-api-spec/test/create/35_external_version.yaml b/rest-api-spec/src/main/resources/rest-api-spec/test/create/35_external_version.yaml new file mode 100644 index 00000000000..96503aae8ae --- /dev/null +++ b/rest-api-spec/src/main/resources/rest-api-spec/test/create/35_external_version.yaml @@ -0,0 +1,34 @@ +--- +"External version": + + - skip: + version: " - 5.1.1" + reason: validation logic only fixed from 5.1.2 onwards + + - do: + create: + index: test + type: test + id: 1 + body: { foo: bar } + version_type: external + version: 0 + ignore: 400 + + - match: { status: 400 } + - match: { error.type: action_request_validation_exception } + - match: { error.reason: "Validation Failed: 1: create operations only support internal versioning. use index instead;" } + + - do: + create: + index: test + type: test + id: 2 + body: { foo: bar } + version_type: external + version: 5 + ignore: 400 + + - match: { status: 400 } + - match: { error.type: action_request_validation_exception } + - match: { error.reason: "Validation Failed: 1: create operations only support internal versioning. use index instead;" } From 2592ff86ceaf5b560e642ac2d31924c519a9ca75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20B=C3=BCscher?= Date: Fri, 9 Dec 2016 14:52:06 +0100 Subject: [PATCH 23/51] Add fromXContent to InternalNestedIdentity This adds a fromXContent method and unit test to InternalNestedIdentity so we can parse it as part of a search response. This is part of the preparation for parsing search responses on the client side. --- .../search/internal/InternalSearchHit.java | 80 +++++++--- .../internal/InternalNestedIdentityTests.java | 140 ++++++++++++++++++ 2 files changed, 201 insertions(+), 19 deletions(-) create mode 100644 core/src/test/java/org/elasticsearch/search/internal/InternalNestedIdentityTests.java diff --git a/core/src/main/java/org/elasticsearch/search/internal/InternalSearchHit.java b/core/src/main/java/org/elasticsearch/search/internal/InternalSearchHit.java index 14a914c0865..82324e3edf7 100644 --- a/core/src/main/java/org/elasticsearch/search/internal/InternalSearchHit.java +++ b/core/src/main/java/org/elasticsearch/search/internal/InternalSearchHit.java @@ -23,16 +23,21 @@ import org.apache.lucene.search.Explanation; import org.apache.lucene.util.BytesRef; import org.elasticsearch.ElasticsearchParseException; import org.elasticsearch.common.Nullable; +import org.elasticsearch.common.ParseField; +import org.elasticsearch.common.ParseFieldMatcher; +import org.elasticsearch.common.ParseFieldMatcherSupplier; import org.elasticsearch.common.Strings; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.compress.CompressorFactory; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; -import org.elasticsearch.common.io.stream.Streamable; +import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.common.text.Text; +import org.elasticsearch.common.xcontent.ConstructingObjectParser; import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentHelper; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.DocValueFormat; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchHitField; @@ -48,12 +53,15 @@ import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Objects; import static java.util.Collections.emptyMap; import static java.util.Collections.singletonMap; import static java.util.Collections.unmodifiableMap; import static org.elasticsearch.common.lucene.Lucene.readExplanation; import static org.elasticsearch.common.lucene.Lucene.writeExplanation; +import static org.elasticsearch.common.xcontent.ConstructingObjectParser.constructorArg; +import static org.elasticsearch.common.xcontent.ConstructingObjectParser.optionalConstructorArg; import static org.elasticsearch.search.fetch.subphase.highlight.HighlightField.readHighlightField; import static org.elasticsearch.search.internal.InternalSearchHitField.readSearchHitField; @@ -274,7 +282,6 @@ public class InternalSearchHit implements SearchHit { return sourceAsString(); } - @SuppressWarnings({"unchecked"}) @Override public Map sourceAsMap() throws ElasticsearchParseException { if (source == null) { @@ -468,8 +475,8 @@ public class InternalSearchHit implements SearchHit { builder.field(Fields._SCORE, score); } for (SearchHitField field : metaFields) { - Object value = (Object) field.value(); - builder.field(field.name(), value); + Object value = field.value(); + builder.field(field.name(), value); } if (source != null) { XContentHelper.writeRawField("_source", source, builder, params); @@ -557,7 +564,7 @@ public class InternalSearchHit implements SearchHit { score = in.readFloat(); id = in.readOptionalText(); type = in.readOptionalText(); - nestedIdentity = in.readOptionalStreamable(InternalNestedIdentity::new); + nestedIdentity = in.readOptionalWriteable(InternalNestedIdentity::new); version = in.readLong(); source = in.readBytesReference(); if (source.length() == 0) { @@ -649,7 +656,7 @@ public class InternalSearchHit implements SearchHit { out.writeFloat(score); out.writeOptionalText(id); out.writeOptionalText(type); - out.writeOptionalStreamable(nestedIdentity); + out.writeOptionalWriteable(nestedIdentity); out.writeLong(version); out.writeBytesReference(source); if (explanation == null) { @@ -735,7 +742,7 @@ public class InternalSearchHit implements SearchHit { } } - public static final class InternalNestedIdentity implements NestedIdentity, Streamable, ToXContent { + public static final class InternalNestedIdentity implements NestedIdentity, Writeable, ToXContent { private Text field; private int offset; @@ -747,7 +754,10 @@ public class InternalSearchHit implements SearchHit { this.child = child; } - InternalNestedIdentity() { + InternalNestedIdentity(StreamInput in) throws IOException { + field = in.readOptionalText(); + offset = in.readInt(); + child = in.readOptionalWriteable(InternalNestedIdentity::new); } @Override @@ -765,23 +775,25 @@ public class InternalSearchHit implements SearchHit { return child; } - @Override - public void readFrom(StreamInput in) throws IOException { - field = in.readOptionalText(); - offset = in.readInt(); - child = in.readOptionalStreamable(InternalNestedIdentity::new); - } - @Override public void writeTo(StreamOutput out) throws IOException { out.writeOptionalText(field); out.writeInt(offset); - out.writeOptionalStreamable(child); + out.writeOptionalWriteable(child); } @Override public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { - builder.startObject(Fields._NESTED); + builder.field(Fields._NESTED); + return innerToXContent(builder, params); + } + + /** + * Rendering of the inner XContent object without the leading field name. This way the structure innerToXContent renders and + * fromXContent parses correspond to each other. + */ + XContentBuilder innerToXContent(XContentBuilder builder, Params params) throws IOException { + builder.startObject(); if (field != null) { builder.field(Fields._NESTED_FIELD, field); } @@ -795,12 +807,42 @@ public class InternalSearchHit implements SearchHit { return builder; } - public static class Fields { + private static final ConstructingObjectParser PARSER = new ConstructingObjectParser<>( + "nested_identity", + ctorArgs -> new InternalNestedIdentity((String) ctorArgs[0], (int) ctorArgs[1], (InternalNestedIdentity) ctorArgs[2])); + static { + PARSER.declareString(constructorArg(), new ParseField(Fields._NESTED_FIELD)); + PARSER.declareInt(constructorArg(), new ParseField(Fields._NESTED_OFFSET)); + PARSER.declareObject(optionalConstructorArg(), PARSER, new ParseField(Fields._NESTED)); + } + public static InternalNestedIdentity fromXContent(XContentParser parser) { + return PARSER.apply(parser, () -> ParseFieldMatcher.EMPTY); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null || getClass() != obj.getClass()) { + return false; + } + InternalNestedIdentity other = (InternalNestedIdentity) obj; + return Objects.equals(field, other.field) && + Objects.equals(offset, other.offset) && + Objects.equals(child, other.child); + } + + @Override + public int hashCode() { + return Objects.hash(field, offset, child); + } + + public static class Fields { static final String _NESTED = "_nested"; static final String _NESTED_FIELD = "field"; static final String _NESTED_OFFSET = "offset"; - } } diff --git a/core/src/test/java/org/elasticsearch/search/internal/InternalNestedIdentityTests.java b/core/src/test/java/org/elasticsearch/search/internal/InternalNestedIdentityTests.java new file mode 100644 index 00000000000..47421dec6cf --- /dev/null +++ b/core/src/test/java/org/elasticsearch/search/internal/InternalNestedIdentityTests.java @@ -0,0 +1,140 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.search.internal; + +import org.elasticsearch.common.io.stream.BytesStreamOutput; +import org.elasticsearch.common.io.stream.StreamInput; +import org.elasticsearch.common.xcontent.ToXContent; +import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.common.xcontent.XContentType; +import org.elasticsearch.common.xcontent.json.JsonXContent; +import org.elasticsearch.search.internal.InternalSearchHit.InternalNestedIdentity; +import org.elasticsearch.test.ESTestCase; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.function.Supplier; + +import static org.elasticsearch.test.EqualsHashCodeTestUtils.checkEqualsAndHashCode; + +public class InternalNestedIdentityTests extends ESTestCase { + + public static InternalNestedIdentity createTestItem(int depth) { + String field = frequently() ? randomAsciiOfLengthBetween(1, 20) : randomRealisticUnicodeOfCodepointLengthBetween(1, 20); + int offset = randomInt(10); + InternalNestedIdentity child = null; + if (depth > 0) { + child = createTestItem(depth - 1); + } + return new InternalNestedIdentity(field, offset, child); + } + + public void testFromXContent() throws IOException { + InternalNestedIdentity nestedIdentity = createTestItem(randomInt(3)); + XContentType xcontentType = randomFrom(XContentType.values()); + XContentBuilder builder = XContentFactory.contentBuilder(xcontentType); + if (randomBoolean()) { + builder.prettyPrint(); + } + builder = nestedIdentity.innerToXContent(builder, ToXContent.EMPTY_PARAMS); + XContentParser parser = xcontentType.xContent().createParser(builder.bytes()); + InternalNestedIdentity parsedNestedIdentity = InternalNestedIdentity.fromXContent(parser); + assertEquals(nestedIdentity, parsedNestedIdentity); + assertNull(parser.nextToken()); + } + + public void testToXContent() throws IOException { + InternalNestedIdentity nestedIdentity = new InternalNestedIdentity("foo", 5, null); + XContentBuilder builder = JsonXContent.contentBuilder(); + builder.prettyPrint(); + builder.startObject(); + nestedIdentity.toXContent(builder, ToXContent.EMPTY_PARAMS); + builder.endObject(); + assertEquals( + "{\n" + + " \"_nested\" : {\n" + + " \"field\" : \"foo\",\n" + + " \"offset\" : 5\n" + + " }\n" + + "}", builder.string()); + + nestedIdentity = new InternalNestedIdentity("foo", 5, new InternalNestedIdentity("bar", 3, null)); + builder = JsonXContent.contentBuilder(); + builder.prettyPrint(); + builder.startObject(); + nestedIdentity.toXContent(builder, ToXContent.EMPTY_PARAMS); + builder.endObject(); + assertEquals( + "{\n" + + " \"_nested\" : {\n" + + " \"field\" : \"foo\",\n" + + " \"offset\" : 5,\n" + + " \"_nested\" : {\n" + + " \"field\" : \"bar\",\n" + + " \"offset\" : 3\n" + + " }\n" + + " }\n" + + "}", builder.string()); + } + + /** + * Test equality and hashCode properties + */ + public void testEqualsAndHashcode() { + checkEqualsAndHashCode(createTestItem(randomInt(3)), InternalNestedIdentityTests::copy, InternalNestedIdentityTests::mutate); + } + + public void testSerialization() throws IOException { + InternalNestedIdentity nestedIdentity = createTestItem(randomInt(3)); + try (BytesStreamOutput output = new BytesStreamOutput()) { + nestedIdentity.writeTo(output); + try (StreamInput in = output.bytes().streamInput()) { + InternalNestedIdentity deserializedCopy = new InternalNestedIdentity(in); + assertEquals(nestedIdentity, deserializedCopy); + assertEquals(nestedIdentity.hashCode(), deserializedCopy.hashCode()); + assertNotSame(nestedIdentity, deserializedCopy); + } + } + } + + private static InternalNestedIdentity mutate(InternalNestedIdentity original) { + if (original == null) { + return createTestItem(0); + } + List> mutations = new ArrayList<>(); + int offset = original.getOffset(); + InternalNestedIdentity child = (InternalNestedIdentity) original.getChild(); + String fieldName = original.getField().string(); + mutations.add(() -> + new InternalNestedIdentity(original.getField().string() + "_prefix", offset, child)); + mutations.add(() -> new InternalNestedIdentity(fieldName, offset + 1, child)); + mutations.add(() -> new InternalNestedIdentity(fieldName, offset, mutate(child))); + return randomFrom(mutations).get(); + } + + private static InternalNestedIdentity copy(InternalNestedIdentity original) { + InternalNestedIdentity child = (InternalNestedIdentity) original.getChild(); + return new InternalNestedIdentity(original.getField().string(), original.getOffset(), child != null ? copy(child) : null); + } + +} From a724f4eb6165b3229109b7ae29a2399024dc6fad Mon Sep 17 00:00:00 2001 From: Yannick Welsch Date: Fri, 9 Dec 2016 14:55:48 +0100 Subject: [PATCH 24/51] Don't update nodes list when stepping down as master (#22049) This commit simplifies the node update logic so that nodes are never removed from the cluster state when the cluster state is not published. --- .../discovery/zen/ZenDiscovery.java | 38 +++++++++++-------- ...eRemovalClusterStateTaskExecutorTests.java | 25 +++++------- 2 files changed, 31 insertions(+), 32 deletions(-) diff --git a/core/src/main/java/org/elasticsearch/discovery/zen/ZenDiscovery.java b/core/src/main/java/org/elasticsearch/discovery/zen/ZenDiscovery.java index 5634f5d89a0..16ca16d4a90 100644 --- a/core/src/main/java/org/elasticsearch/discovery/zen/ZenDiscovery.java +++ b/core/src/main/java/org/elasticsearch/discovery/zen/ZenDiscovery.java @@ -72,6 +72,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; import java.util.function.BiFunction; +import java.util.function.Consumer; import java.util.stream.Collectors; import static org.elasticsearch.common.unit.TimeValue.timeValueSeconds; @@ -207,7 +208,7 @@ public class ZenDiscovery extends AbstractLifecycleComponent implements Discover joinThreadControl.start(); zenPing.start(this); this.nodeJoinController = new NodeJoinController(clusterService, allocationService, electMaster, discoverySettings, settings); - this.nodeRemovalExecutor = new NodeRemovalClusterStateTaskExecutor(allocationService, electMaster, this::rejoin, logger); + this.nodeRemovalExecutor = new NodeRemovalClusterStateTaskExecutor(allocationService, electMaster, this::submitRejoin, logger); } @Override @@ -306,18 +307,7 @@ public class ZenDiscovery extends AbstractLifecycleComponent implements Discover } catch (FailedToCommitClusterStateException t) { // cluster service logs a WARN message logger.debug("failed to publish cluster state version [{}] (not enough nodes acknowledged, min master nodes [{}])", clusterChangedEvent.state().version(), electMaster.minimumMasterNodes()); - clusterService.submitStateUpdateTask("zen-disco-failed-to-publish", new ClusterStateUpdateTask(Priority.IMMEDIATE) { - @Override - public ClusterState execute(ClusterState currentState) { - return rejoin(currentState, "failed to publish to min_master_nodes"); - } - - @Override - public void onFailure(String source, Exception e) { - logger.error((Supplier) () -> new ParameterizedMessage("unexpected failure during [{}]", source), e); - } - - }); + submitRejoin("zen-disco-failed-to-publish"); throw t; } @@ -505,12 +495,27 @@ public class ZenDiscovery extends AbstractLifecycleComponent implements Discover } } + private void submitRejoin(String source) { + clusterService.submitStateUpdateTask(source, new ClusterStateUpdateTask(Priority.IMMEDIATE) { + @Override + public ClusterState execute(ClusterState currentState) { + return rejoin(currentState, source); + } + + @Override + public void onFailure(String source, Exception e) { + logger.error((Supplier) () -> new ParameterizedMessage("unexpected failure during [{}]", source), e); + } + + }); + } + // visible for testing static class NodeRemovalClusterStateTaskExecutor implements ClusterStateTaskExecutor, ClusterStateTaskListener { private final AllocationService allocationService; private final ElectMasterService electMasterService; - private final BiFunction rejoin; + private final Consumer rejoin; private final Logger logger; static class Task { @@ -540,7 +545,7 @@ public class ZenDiscovery extends AbstractLifecycleComponent implements Discover NodeRemovalClusterStateTaskExecutor( final AllocationService allocationService, final ElectMasterService electMasterService, - final BiFunction rejoin, + final Consumer rejoin, final Logger logger) { this.allocationService = allocationService; this.electMasterService = electMasterService; @@ -570,7 +575,8 @@ public class ZenDiscovery extends AbstractLifecycleComponent implements Discover final BatchResult.Builder resultBuilder = BatchResult.builder().successes(tasks); if (!electMasterService.hasEnoughMasterNodes(remainingNodesClusterState.nodes())) { - return resultBuilder.build(rejoin.apply(remainingNodesClusterState, "not enough master nodes")); + rejoin.accept("not enough master nodes"); + return resultBuilder.build(currentState); } else { return resultBuilder.build(allocationService.deassociateDeadNodes(remainingNodesClusterState, true, describeTasks(tasks))); } diff --git a/core/src/test/java/org/elasticsearch/discovery/zen/NodeRemovalClusterStateTaskExecutorTests.java b/core/src/test/java/org/elasticsearch/discovery/zen/NodeRemovalClusterStateTaskExecutorTests.java index d63ddfdaee6..f135bb5eaa1 100644 --- a/core/src/test/java/org/elasticsearch/discovery/zen/NodeRemovalClusterStateTaskExecutorTests.java +++ b/core/src/test/java/org/elasticsearch/discovery/zen/NodeRemovalClusterStateTaskExecutorTests.java @@ -33,6 +33,7 @@ import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; import java.util.function.BiFunction; +import java.util.function.Consumer; import java.util.stream.Collectors; import java.util.stream.StreamSupport; @@ -77,17 +78,12 @@ public class NodeRemovalClusterStateTaskExecutorTests extends ESTestCase { final AllocationService allocationService = mock(AllocationService.class); - final AtomicBoolean rejoined = new AtomicBoolean(); - final AtomicReference rejoinedClusterState = new AtomicReference<>(); - final BiFunction rejoin = (cs, r) -> { - rejoined.set(true); - rejoinedClusterState.set(ClusterState.builder(cs).build()); - return rejoinedClusterState.get(); - }; + final AtomicBoolean rejoinCalled = new AtomicBoolean(); + final Consumer submitRejoin = source -> rejoinCalled.set(true); final AtomicReference remainingNodesClusterState = new AtomicReference<>(); final ZenDiscovery.NodeRemovalClusterStateTaskExecutor executor = - new ZenDiscovery.NodeRemovalClusterStateTaskExecutor(allocationService, electMasterService, rejoin, logger) { + new ZenDiscovery.NodeRemovalClusterStateTaskExecutor(allocationService, electMasterService, submitRejoin, logger) { @Override ClusterState remainingNodesClusterState(ClusterState currentState, DiscoveryNodes.Builder remainingNodesBuilder) { remainingNodesClusterState.set(super.remainingNodesClusterState(currentState, remainingNodesBuilder)); @@ -117,11 +113,11 @@ public class NodeRemovalClusterStateTaskExecutorTests extends ESTestCase { // ensure that we did not reroute verifyNoMoreInteractions(allocationService); - assertTrue(rejoined.get()); - assertThat(result.resultingState, equalTo(rejoinedClusterState.get())); + assertTrue(rejoinCalled.get()); + assertThat(result.resultingState, equalTo(clusterState)); for (final ZenDiscovery.NodeRemovalClusterStateTaskExecutor.Task task : tasks) { - assertNull(result.resultingState.nodes().get(task.node().getId())); + assertNotNull(result.resultingState.nodes().get(task.node().getId())); } } @@ -133,14 +129,11 @@ public class NodeRemovalClusterStateTaskExecutorTests extends ESTestCase { when(allocationService.deassociateDeadNodes(any(ClusterState.class), eq(true), any(String.class))) .thenAnswer(im -> im.getArguments()[0]); - final BiFunction rejoin = (cs, r) -> { - fail("rejoin should not be invoked"); - return cs; - }; + final Consumer submitRejoin = source -> fail("rejoin should not be invoked"); final AtomicReference remainingNodesClusterState = new AtomicReference<>(); final ZenDiscovery.NodeRemovalClusterStateTaskExecutor executor = - new ZenDiscovery.NodeRemovalClusterStateTaskExecutor(allocationService, electMasterService, rejoin, logger) { + new ZenDiscovery.NodeRemovalClusterStateTaskExecutor(allocationService, electMasterService, submitRejoin, logger) { @Override ClusterState remainingNodesClusterState(ClusterState currentState, DiscoveryNodes.Builder remainingNodesBuilder) { remainingNodesClusterState.set(super.remainingNodesClusterState(currentState, remainingNodesBuilder)); From fc2060ba7e27d013e943c1a1036c178f2402307b Mon Sep 17 00:00:00 2001 From: Nik Everett Date: Fri, 9 Dec 2016 10:39:51 -0500 Subject: [PATCH 25/51] Don't close rest client from its callback (#22061) If you try to close the rest client inside one of its callbacks then it blocks itself. The thread pool switches the status to one that requests a shutdown and then waits for the pool to shutdown. When another thread attempts to honor the shutdown request it waits for all the threads in the pool to finish what they are working on. Thus thread a is waiting on thread b while thread b is waiting on thread a. It isn't quite that simple, but it is close. Relates to #22027 --- .../client/ResponseListener.java | 4 ++ .../remote/RemoteScrollableHitSource.java | 16 ++++-- .../ReindexFromRemoteWithAuthTests.java | 1 - .../rest-api-spec/test/reindex/90_remote.yaml | 53 +++++++++++++++++++ 4 files changed, 68 insertions(+), 6 deletions(-) diff --git a/client/rest/src/main/java/org/elasticsearch/client/ResponseListener.java b/client/rest/src/main/java/org/elasticsearch/client/ResponseListener.java index ce948f6569b..3d587359900 100644 --- a/client/rest/src/main/java/org/elasticsearch/client/ResponseListener.java +++ b/client/rest/src/main/java/org/elasticsearch/client/ResponseListener.java @@ -23,6 +23,10 @@ package org.elasticsearch.client; * Listener to be provided when calling async performRequest methods provided by {@link RestClient}. * Those methods that do accept a listener will return immediately, execute asynchronously, and notify * the listener whenever the request yielded a response, or failed with an exception. + * + *

    + * Note that it is not safe to call {@link RestClient#close()} from either of these + * callbacks. */ public interface ResponseListener { diff --git a/modules/reindex/src/main/java/org/elasticsearch/index/reindex/remote/RemoteScrollableHitSource.java b/modules/reindex/src/main/java/org/elasticsearch/index/reindex/remote/RemoteScrollableHitSource.java index 601f46e901b..97276f1b644 100644 --- a/modules/reindex/src/main/java/org/elasticsearch/index/reindex/remote/RemoteScrollableHitSource.java +++ b/modules/reindex/src/main/java/org/elasticsearch/index/reindex/remote/RemoteScrollableHitSource.java @@ -83,11 +83,17 @@ public class RemoteScrollableHitSource extends ScrollableHitSource { @Override public void close() { - try { - client.close(); - } catch (IOException e) { - fail.accept(new IOException("couldn't close the remote connection", e)); - } + super.close(); + /* This might be called on the RestClient's thread pool and attempting to close the client on its own threadpool causes it to fail + * to close. So we always shutdown the RestClient asynchronously on a thread in Elasticsearch's generic thread pool. That way we + * never close the client in its own thread pool. */ + threadPool.generic().submit(() -> { + try { + client.close(); + } catch (IOException e) { + logger.error("Failed to shutdown the remote connection", e); + } + }); } @Override diff --git a/modules/reindex/src/test/java/org/elasticsearch/index/reindex/ReindexFromRemoteWithAuthTests.java b/modules/reindex/src/test/java/org/elasticsearch/index/reindex/ReindexFromRemoteWithAuthTests.java index a5e9d149178..6b9aaee8665 100644 --- a/modules/reindex/src/test/java/org/elasticsearch/index/reindex/ReindexFromRemoteWithAuthTests.java +++ b/modules/reindex/src/test/java/org/elasticsearch/index/reindex/ReindexFromRemoteWithAuthTests.java @@ -70,7 +70,6 @@ public class ReindexFromRemoteWithAuthTests extends ESSingleNodeTestCase { @Override protected Settings nodeSettings() { Settings.Builder settings = Settings.builder().put(super.nodeSettings()); - // Weird incantation required to test with netty settings.put(NetworkModule.HTTP_ENABLED.getKey(), true); // Whitelist reindexing from the http host we're going to use settings.put(TransportReindexAction.REMOTE_CLUSTER_WHITELIST.getKey(), "127.0.0.1:*"); diff --git a/modules/reindex/src/test/resources/rest-api-spec/test/reindex/90_remote.yaml b/modules/reindex/src/test/resources/rest-api-spec/test/reindex/90_remote.yaml index 88894308891..86b4bcc1132 100644 --- a/modules/reindex/src/test/resources/rest-api-spec/test/reindex/90_remote.yaml +++ b/modules/reindex/src/test/resources/rest-api-spec/test/reindex/90_remote.yaml @@ -257,3 +257,56 @@ match: text: test - match: {hits.total: 1} + +--- +"Reindex from remote with broken query": + - do: + index: + index: source + type: foo + id: 1 + body: { "text": "test" } + refresh: true + + # Fetch the http host. We use the host of the master because we know there will always be a master. + - do: + cluster.state: {} + - set: { master_node: master } + - do: + nodes.info: + metric: [ http ] + - is_true: nodes.$master.http.publish_address + - set: {nodes.$master.http.publish_address: host} + - do: + catch: /query malformed, no start_object after query name/ + reindex: + body: + source: + remote: + host: http://${host} + index: source + query: + garbage: not a query + dest: + index: dest + +--- +"Reindex from remote that you can't connect to": + - do: + index: + index: source + type: foo + id: 1 + body: { "text": "test" } + refresh: true + + - do: + catch: /Connection refused/ + reindex: + body: + source: + remote: + host: http://127.0.0.1:0 + index: source + dest: + index: dest From bcef1e745261f481ffde43724dd0da468471a30e Mon Sep 17 00:00:00 2001 From: Nik Everett Date: Fri, 9 Dec 2016 11:33:31 -0500 Subject: [PATCH 26/51] Better error message when _parent isn't an object (#21987) If you make a mistake and specify a mapping like: ``` { "parent": { "properties": {} }, "child": { "_parent": "parent", "properties": {} } } ``` then the error message you get back amounts to `Failed to parse mapping for [child]: can't cast a String to a Map`. Since it doens't tell you *which* string can't be cast to a map you have to dig through the stack trace to figure out what to fix. This replaces the error message with: ``` Failed to parse mapping [child]: [_parent] must be an object containing [type] ``` so you can tell that the problem is with the `parent` field. --- .../index/mapper/DocumentMapperParser.java | 3 +++ .../cluster/metadata/MetaDataMappingServiceTests.java | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/core/src/main/java/org/elasticsearch/index/mapper/DocumentMapperParser.java b/core/src/main/java/org/elasticsearch/index/mapper/DocumentMapperParser.java index 50c7d98be92..b3e967bdad3 100644 --- a/core/src/main/java/org/elasticsearch/index/mapper/DocumentMapperParser.java +++ b/core/src/main/java/org/elasticsearch/index/mapper/DocumentMapperParser.java @@ -117,6 +117,9 @@ public class DocumentMapperParser { MetadataFieldMapper.TypeParser typeParser = rootTypeParsers.get(fieldName); if (typeParser != null) { iterator.remove(); + if (false == fieldNode instanceof Map) { + throw new IllegalArgumentException("[_parent] must be an object containing [type]"); + } Map fieldNodeMap = (Map) fieldNode; docBuilder.put(typeParser.parse(fieldName, fieldNodeMap, parserContext)); fieldNodeMap.remove("type"); diff --git a/core/src/test/java/org/elasticsearch/cluster/metadata/MetaDataMappingServiceTests.java b/core/src/test/java/org/elasticsearch/cluster/metadata/MetaDataMappingServiceTests.java index 1dfd3fd33e6..c3e544f9b2b 100644 --- a/core/src/test/java/org/elasticsearch/cluster/metadata/MetaDataMappingServiceTests.java +++ b/core/src/test/java/org/elasticsearch/cluster/metadata/MetaDataMappingServiceTests.java @@ -25,6 +25,7 @@ import org.elasticsearch.common.compress.CompressedXContent; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.index.IndexService; import org.elasticsearch.index.mapper.DocumentMapper; +import org.elasticsearch.index.mapper.MapperParsingException; import org.elasticsearch.test.ESSingleNodeTestCase; import java.util.Collections; @@ -69,6 +70,15 @@ public class MetaDataMappingServiceTests extends ESSingleNodeTestCase { assertThat(documentMapper.parentFieldMapper().active(), is(true)); } + public void testParentIsAString() throws Exception { + // Shouldn't be able the add the _parent field pointing to an already existing type, which isn't a parent type + Exception e = expectThrows(MapperParsingException.class, () -> client().admin().indices().prepareCreate("test") + .addMapping("parent", "{\"properties\":{}}") + .addMapping("child", "{\"_parent\": \"parent\",\"properties\":{}}") + .get()); + assertEquals("Failed to parse mapping [child]: [_parent] must be an object containing [type]", e.getMessage()); + } + public void testMappingClusterStateUpdateDoesntChangeExistingIndices() throws Exception { final IndexService indexService = createIndex("test", client().admin().indices().prepareCreate("test").addMapping("type")); final CompressedXContent currentMapping = indexService.mapperService().documentMapper("type").mappingSource(); From b20b160a5eca472623c0842eaab373b0bc3db464 Mon Sep 17 00:00:00 2001 From: Yannick Welsch Date: Fri, 9 Dec 2016 17:56:40 +0100 Subject: [PATCH 27/51] Allow flush/force_merge/upgrade on shard marked as relocated (#22078) A shard that is locally marked as relocated, but where the relocation target shard has not been activated yet by the master, can still receive index operations, which in return can lead to flushes being triggered. Flushing is currently (wrongly) prohibited on shards marked as relocated, which makes the flushing process go into an endless retry loop and log warnings until the shard is closed. This commit fixes this situation by allowing flush, force_merge and upgrade operations to run on shards that are marked as relocated. --- .../elasticsearch/index/shard/IndexShard.java | 21 +++++++------------ 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/core/src/main/java/org/elasticsearch/index/shard/IndexShard.java b/core/src/main/java/org/elasticsearch/index/shard/IndexShard.java index ff8a41fcb94..45a72d5a8e7 100644 --- a/core/src/main/java/org/elasticsearch/index/shard/IndexShard.java +++ b/core/src/main/java/org/elasticsearch/index/shard/IndexShard.java @@ -759,7 +759,7 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl } public Engine.SyncedFlushResult syncFlush(String syncId, Engine.CommitId expectedCommitId) { - verifyStartedOrRecovering(); + verifyNotClosed(); logger.trace("trying to sync flush. sync id [{}]. expected commit id [{}]]", syncId, expectedCommitId); Engine engine = getEngine(); if (engine.isRecovering()) { @@ -779,7 +779,7 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl // while recovering, and we want to keep the translog at bay (up to deletes, which // we don't gc). Yet, we don't use flush internally to clear deletes and flush the indexwriter since // we use #writeIndexingBuffer for this now. - verifyStartedOrRecovering(); + verifyNotClosed(); Engine engine = getEngine(); if (engine.isRecovering()) { throw new IllegalIndexShardStateException(shardId(), state, "flush is only allowed if the engine is not recovery" + @@ -793,7 +793,7 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl } public void forceMerge(ForceMergeRequest forceMerge) throws IOException { - verifyStarted(); + verifyActive(); if (logger.isTraceEnabled()) { logger.trace("force merge with {}", forceMerge); } @@ -805,7 +805,7 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl * Upgrades the shard to the current version of Lucene and returns the minimum segment version */ public org.apache.lucene.util.Version upgrade(UpgradeRequest upgrade) throws IOException { - verifyStarted(); + verifyActive(); if (logger.isTraceEnabled()) { logger.trace("upgrade with {}", upgrade); } @@ -1148,13 +1148,6 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl } } - protected final void verifyStartedOrRecovering() throws IllegalIndexShardStateException { - IndexShardState state = this.state; // one time volatile read - if (state != IndexShardState.STARTED && state != IndexShardState.RECOVERING && state != IndexShardState.POST_RECOVERY) { - throw new IllegalIndexShardStateException(shardId, state, "operation only allowed when started/recovering"); - } - } - private void verifyNotClosed() throws IllegalIndexShardStateException { verifyNotClosed(null); } @@ -1170,10 +1163,10 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl } } - protected final void verifyStarted() throws IllegalIndexShardStateException { + protected final void verifyActive() throws IllegalIndexShardStateException { IndexShardState state = this.state; // one time volatile read - if (state != IndexShardState.STARTED) { - throw new IndexShardNotStartedException(shardId, state); + if (state != IndexShardState.STARTED && state != IndexShardState.RELOCATED) { + throw new IllegalIndexShardStateException(shardId, state, "operation only allowed when shard is active"); } } From 93b5e556606629f97a51a52fc2e54bff3186ad95 Mon Sep 17 00:00:00 2001 From: Igor Motov Date: Mon, 28 Nov 2016 13:12:43 -0500 Subject: [PATCH 28/51] Restores the original default format of search slow log In 5.0, the search slow log switched to the multi-line format with no option to get back to the origin single-line format that was used prior to 5.0 by default. This commit removes the reformat option from the search slow log and returns the search slow log back to the single-line format. Closes #21711 --- .../common/settings/IndexScopedSettings.java | 1 - .../elasticsearch/index/SearchSlowLog.java | 41 ++-- .../index/SearchSlowLogTests.java | 186 ++++++++---------- docs/reference/index-modules/slowlog.asciidoc | 6 +- 4 files changed, 99 insertions(+), 135 deletions(-) diff --git a/core/src/main/java/org/elasticsearch/common/settings/IndexScopedSettings.java b/core/src/main/java/org/elasticsearch/common/settings/IndexScopedSettings.java index 992453585cc..959fe1849ea 100644 --- a/core/src/main/java/org/elasticsearch/common/settings/IndexScopedSettings.java +++ b/core/src/main/java/org/elasticsearch/common/settings/IndexScopedSettings.java @@ -87,7 +87,6 @@ public final class IndexScopedSettings extends AbstractScopedSettings { SearchSlowLog.INDEX_SEARCH_SLOWLOG_THRESHOLD_QUERY_INFO_SETTING, SearchSlowLog.INDEX_SEARCH_SLOWLOG_THRESHOLD_QUERY_TRACE_SETTING, SearchSlowLog.INDEX_SEARCH_SLOWLOG_LEVEL, - SearchSlowLog.INDEX_SEARCH_SLOWLOG_REFORMAT, IndexingSlowLog.INDEX_INDEXING_SLOWLOG_THRESHOLD_INDEX_WARN_SETTING, IndexingSlowLog.INDEX_INDEXING_SLOWLOG_THRESHOLD_INDEX_DEBUG_SETTING, IndexingSlowLog.INDEX_INDEXING_SLOWLOG_THRESHOLD_INDEX_INFO_SETTING, diff --git a/core/src/main/java/org/elasticsearch/index/SearchSlowLog.java b/core/src/main/java/org/elasticsearch/index/SearchSlowLog.java index 19086416b80..b52164699ec 100644 --- a/core/src/main/java/org/elasticsearch/index/SearchSlowLog.java +++ b/core/src/main/java/org/elasticsearch/index/SearchSlowLog.java @@ -25,14 +25,14 @@ import org.elasticsearch.common.logging.Loggers; import org.elasticsearch.common.settings.Setting; import org.elasticsearch.common.settings.Setting.Property; import org.elasticsearch.common.unit.TimeValue; +import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.index.shard.SearchOperationListener; import org.elasticsearch.search.internal.SearchContext; +import java.util.Collections; import java.util.concurrent.TimeUnit; public final class SearchSlowLog implements SearchOperationListener { - private boolean reformat; - private long queryWarnThreshold; private long queryInfoThreshold; private long queryDebugThreshold; @@ -73,20 +73,17 @@ public final class SearchSlowLog implements SearchOperationListener { public static final Setting INDEX_SEARCH_SLOWLOG_THRESHOLD_FETCH_TRACE_SETTING = Setting.timeSetting(INDEX_SEARCH_SLOWLOG_PREFIX + ".threshold.fetch.trace", TimeValue.timeValueNanos(-1), TimeValue.timeValueMillis(-1), Property.Dynamic, Property.IndexScope); - public static final Setting INDEX_SEARCH_SLOWLOG_REFORMAT = - Setting.boolSetting(INDEX_SEARCH_SLOWLOG_PREFIX + ".reformat", true, Property.Dynamic, Property.IndexScope); public static final Setting INDEX_SEARCH_SLOWLOG_LEVEL = new Setting<>(INDEX_SEARCH_SLOWLOG_PREFIX + ".level", SlowLogLevel.TRACE.name(), SlowLogLevel::parse, Property.Dynamic, Property.IndexScope); + private static final ToXContent.Params FORMAT_PARAMS = new ToXContent.MapParams(Collections.singletonMap("pretty", "false")); + public SearchSlowLog(IndexSettings indexSettings) { this.queryLogger = Loggers.getLogger(INDEX_SEARCH_SLOWLOG_PREFIX + ".query", indexSettings.getSettings()); this.fetchLogger = Loggers.getLogger(INDEX_SEARCH_SLOWLOG_PREFIX + ".fetch", indexSettings.getSettings()); - indexSettings.getScopedSettings().addSettingsUpdateConsumer(INDEX_SEARCH_SLOWLOG_REFORMAT, this::setReformat); - this.reformat = indexSettings.getValue(INDEX_SEARCH_SLOWLOG_REFORMAT); - indexSettings.getScopedSettings().addSettingsUpdateConsumer(INDEX_SEARCH_SLOWLOG_THRESHOLD_QUERY_WARN_SETTING, this::setQueryWarnThreshold); this.queryWarnThreshold = indexSettings.getValue(INDEX_SEARCH_SLOWLOG_THRESHOLD_QUERY_WARN_SETTING).nanos(); indexSettings.getScopedSettings().addSettingsUpdateConsumer(INDEX_SEARCH_SLOWLOG_THRESHOLD_QUERY_INFO_SETTING, this::setQueryInfoThreshold); @@ -117,38 +114,36 @@ public final class SearchSlowLog implements SearchOperationListener { @Override public void onQueryPhase(SearchContext context, long tookInNanos) { if (queryWarnThreshold >= 0 && tookInNanos > queryWarnThreshold) { - queryLogger.warn("{}", new SlowLogSearchContextPrinter(context, tookInNanos, reformat)); + queryLogger.warn("{}", new SlowLogSearchContextPrinter(context, tookInNanos)); } else if (queryInfoThreshold >= 0 && tookInNanos > queryInfoThreshold) { - queryLogger.info("{}", new SlowLogSearchContextPrinter(context, tookInNanos, reformat)); + queryLogger.info("{}", new SlowLogSearchContextPrinter(context, tookInNanos)); } else if (queryDebugThreshold >= 0 && tookInNanos > queryDebugThreshold) { - queryLogger.debug("{}", new SlowLogSearchContextPrinter(context, tookInNanos, reformat)); + queryLogger.debug("{}", new SlowLogSearchContextPrinter(context, tookInNanos)); } else if (queryTraceThreshold >= 0 && tookInNanos > queryTraceThreshold) { - queryLogger.trace("{}", new SlowLogSearchContextPrinter(context, tookInNanos, reformat)); + queryLogger.trace("{}", new SlowLogSearchContextPrinter(context, tookInNanos)); } } @Override public void onFetchPhase(SearchContext context, long tookInNanos) { if (fetchWarnThreshold >= 0 && tookInNanos > fetchWarnThreshold) { - fetchLogger.warn("{}", new SlowLogSearchContextPrinter(context, tookInNanos, reformat)); + fetchLogger.warn("{}", new SlowLogSearchContextPrinter(context, tookInNanos)); } else if (fetchInfoThreshold >= 0 && tookInNanos > fetchInfoThreshold) { - fetchLogger.info("{}", new SlowLogSearchContextPrinter(context, tookInNanos, reformat)); + fetchLogger.info("{}", new SlowLogSearchContextPrinter(context, tookInNanos)); } else if (fetchDebugThreshold >= 0 && tookInNanos > fetchDebugThreshold) { - fetchLogger.debug("{}", new SlowLogSearchContextPrinter(context, tookInNanos, reformat)); + fetchLogger.debug("{}", new SlowLogSearchContextPrinter(context, tookInNanos)); } else if (fetchTraceThreshold >= 0 && tookInNanos > fetchTraceThreshold) { - fetchLogger.trace("{}", new SlowLogSearchContextPrinter(context, tookInNanos, reformat)); + fetchLogger.trace("{}", new SlowLogSearchContextPrinter(context, tookInNanos)); } } static final class SlowLogSearchContextPrinter { private final SearchContext context; private final long tookInNanos; - private final boolean reformat; - public SlowLogSearchContextPrinter(SearchContext context, long tookInNanos, boolean reformat) { + public SlowLogSearchContextPrinter(SearchContext context, long tookInNanos) { this.context = context; this.tookInNanos = tookInNanos; - this.reformat = reformat; } @Override @@ -172,7 +167,7 @@ public final class SearchSlowLog implements SearchOperationListener { } sb.append("search_type[").append(context.searchType()).append("], total_shards[").append(context.numberOfShards()).append("], "); if (context.request().source() != null) { - sb.append("source[").append(context.request().source()).append("], "); + sb.append("source[").append(context.request().source().toString(FORMAT_PARAMS)).append("], "); } else { sb.append("source[], "); } @@ -180,10 +175,6 @@ public final class SearchSlowLog implements SearchOperationListener { } } - private void setReformat(boolean reformat) { - this.reformat = reformat; - } - private void setQueryWarnThreshold(TimeValue warnThreshold) { this.queryWarnThreshold = warnThreshold.nanos(); } @@ -216,10 +207,6 @@ public final class SearchSlowLog implements SearchOperationListener { this.fetchTraceThreshold = traceThreshold.nanos(); } - boolean isReformat() { - return reformat; - } - long getQueryWarnThreshold() { return queryWarnThreshold; } diff --git a/core/src/test/java/org/elasticsearch/index/SearchSlowLogTests.java b/core/src/test/java/org/elasticsearch/index/SearchSlowLogTests.java index 76d3bfbc484..cc647f5ff8d 100644 --- a/core/src/test/java/org/elasticsearch/index/SearchSlowLogTests.java +++ b/core/src/test/java/org/elasticsearch/index/SearchSlowLogTests.java @@ -27,9 +27,9 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.common.util.BigArrays; import org.elasticsearch.index.query.QueryBuilder; +import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.QueryShardContext; import org.elasticsearch.index.shard.ShardId; -import org.elasticsearch.script.ScriptService; import org.elasticsearch.search.Scroll; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.internal.SearchContext; @@ -40,6 +40,8 @@ import org.elasticsearch.threadpool.ThreadPool; import java.io.IOException; +import static org.hamcrest.Matchers.not; +import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.startsWith; public class SearchSlowLogTests extends ESSingleNodeTestCase { @@ -48,120 +50,93 @@ public class SearchSlowLogTests extends ESSingleNodeTestCase { BigArrays bigArrays = indexService.getBigArrays(); ThreadPool threadPool = indexService.getThreadPool(); return new TestSearchContext(threadPool, bigArrays, indexService) { + final ShardSearchRequest request = new ShardSearchRequest() { + private SearchSourceBuilder searchSourceBuilder; + @Override + public ShardId shardId() { + return new ShardId(indexService.index(), 0); + } + + @Override + public String[] types() { + return new String[0]; + } + + @Override + public SearchSourceBuilder source() { + return searchSourceBuilder; + } + + @Override + public void source(SearchSourceBuilder source) { + searchSourceBuilder = source; + } + + @Override + public int numberOfShards() { + return 0; + } + + @Override + public SearchType searchType() { + return null; + } + + @Override + public QueryBuilder filteringAliases() { + return null; + } + + @Override + public long nowInMillis() { + return 0; + } + + @Override + public Boolean requestCache() { + return null; + } + + @Override + public Scroll scroll() { + return null; + } + + @Override + public void setProfile(boolean profile) { + + } + + @Override + public boolean isProfile() { + return false; + } + + @Override + public BytesReference cacheKey() throws IOException { + return null; + } + + @Override + public void rewrite(QueryShardContext context) throws IOException { + } + }; @Override public ShardSearchRequest request() { - return new ShardSearchRequest() { - @Override - public ShardId shardId() { - return new ShardId(indexService.index(), 0); - } - - @Override - public String[] types() { - return new String[0]; - } - - @Override - public SearchSourceBuilder source() { - return null; - } - - @Override - public void source(SearchSourceBuilder source) { - - } - - @Override - public int numberOfShards() { - return 0; - } - - @Override - public SearchType searchType() { - return null; - } - - @Override - public QueryBuilder filteringAliases() { - return null; - } - - @Override - public long nowInMillis() { - return 0; - } - - @Override - public Boolean requestCache() { - return null; - } - - @Override - public Scroll scroll() { - return null; - } - - @Override - public void setProfile(boolean profile) { - - } - - @Override - public boolean isProfile() { - return false; - } - - @Override - public BytesReference cacheKey() throws IOException { - return null; - } - - @Override - public void rewrite(QueryShardContext context) throws IOException { - } - }; + return request; } }; } public void testSlowLogSearchContextPrinterToLog() throws IOException { IndexService index = createIndex("foo"); - // Turning off document logging doesn't log source[] SearchContext searchContext = createSearchContext(index); - SearchSlowLog.SlowLogSearchContextPrinter p = new SearchSlowLog.SlowLogSearchContextPrinter(searchContext, 10, true); + SearchSourceBuilder source = SearchSourceBuilder.searchSource().query(QueryBuilders.matchAllQuery()); + searchContext.request().source(source); + SearchSlowLog.SlowLogSearchContextPrinter p = new SearchSlowLog.SlowLogSearchContextPrinter(searchContext, 10); assertThat(p.toString(), startsWith("[foo][0]")); - } - - public void testReformatSetting() { - IndexMetaData metaData = newIndexMeta("index", Settings.builder() - .put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT) - .put(SearchSlowLog.INDEX_SEARCH_SLOWLOG_REFORMAT.getKey(), false) - .build()); - IndexSettings settings = new IndexSettings(metaData, Settings.EMPTY); - SearchSlowLog log = new SearchSlowLog(settings); - assertFalse(log.isReformat()); - settings.updateIndexMetaData(newIndexMeta("index", Settings.builder().put(SearchSlowLog.INDEX_SEARCH_SLOWLOG_REFORMAT.getKey(), "true").build())); - assertTrue(log.isReformat()); - - settings.updateIndexMetaData(newIndexMeta("index", Settings.builder().put(SearchSlowLog.INDEX_SEARCH_SLOWLOG_REFORMAT.getKey(), "false").build())); - assertFalse(log.isReformat()); - - settings.updateIndexMetaData(newIndexMeta("index", Settings.EMPTY)); - assertTrue(log.isReformat()); - - metaData = newIndexMeta("index", Settings.builder() - .put(IndexMetaData.SETTING_VERSION_CREATED, Version.CURRENT) - .build()); - settings = new IndexSettings(metaData, Settings.EMPTY); - log = new SearchSlowLog(settings); - assertTrue(log.isReformat()); - try { - settings.updateIndexMetaData(newIndexMeta("index", Settings.builder().put(SearchSlowLog.INDEX_SEARCH_SLOWLOG_REFORMAT.getKey(), "NOT A BOOLEAN").build())); - fail(); - } catch (IllegalArgumentException ex) { - assertEquals(ex.getMessage(), "Failed to parse value [NOT A BOOLEAN] cannot be parsed to boolean [ true/1/on/yes OR false/0/off/no ]"); - } - assertTrue(log.isReformat()); + // Makes sure that output doesn't contain any new lines + assertThat(p.toString(), not(containsString("\n"))); } public void testLevelSetting() { @@ -192,7 +167,6 @@ public class SearchSlowLogTests extends ESSingleNodeTestCase { .build()); settings = new IndexSettings(metaData, Settings.EMPTY); log = new SearchSlowLog(settings); - assertTrue(log.isReformat()); try { settings.updateIndexMetaData(newIndexMeta("index", Settings.builder().put(SearchSlowLog.INDEX_SEARCH_SLOWLOG_LEVEL.getKey(), "NOT A LEVEL").build())); fail(); diff --git a/docs/reference/index-modules/slowlog.asciidoc b/docs/reference/index-modules/slowlog.asciidoc index 2ac33a1cdf5..1ee49b1c04d 100644 --- a/docs/reference/index-modules/slowlog.asciidoc +++ b/docs/reference/index-modules/slowlog.asciidoc @@ -85,7 +85,11 @@ All of the above settings are _dynamic_ and are set per-index. By default Elasticsearch will log the first 1000 characters of the _source in the slowlog. You can change that with `index.indexing.slowlog.source`. Setting it to `false` or `0` will skip logging the source entirely an setting it to -`true` will log the entire source regardless of size. +`true` will log the entire source regardless of size. The original `_source` is +reformatted by default to make sure that it fits on a single log line. If preserving +the original document format is important, you can turn off reformatting by setting +`index.indexing.slowlog.reformat` to `false`, which will cause the source to be +logged "as is" and can potentially span multiple log lines. The index slow log file is configured by default in the `log4j2.properties` file: From fca4f92fee9fb778388491d6de63f44872018fa8 Mon Sep 17 00:00:00 2001 From: Yannick Welsch Date: Fri, 9 Dec 2016 19:03:18 +0100 Subject: [PATCH 29/51] Fix BWC condition on REST test Adds a missing skip section to a REST test that was forgotten in #21998 --- .../rest-api-spec/test/create/30_internal_version.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rest-api-spec/src/main/resources/rest-api-spec/test/create/30_internal_version.yaml b/rest-api-spec/src/main/resources/rest-api-spec/test/create/30_internal_version.yaml index b9f70586a7d..e4cbc443055 100644 --- a/rest-api-spec/src/main/resources/rest-api-spec/test/create/30_internal_version.yaml +++ b/rest-api-spec/src/main/resources/rest-api-spec/test/create/30_internal_version.yaml @@ -21,6 +21,10 @@ --- "Internal versioning with explicit version": + - skip: + version: " - 5.1.1" + reason: validation logic only fixed from 5.1.2 onwards + - do: create: index: test From ca8d89af5a50faadadb097d5d3aea813fc32ac65 Mon Sep 17 00:00:00 2001 From: Matthew Haugen Date: Fri, 9 Dec 2016 09:00:37 -0800 Subject: [PATCH 30/51] Correct typo in "detect_noop" documentation (#22039) The documentation reads: > You can disable this behavior by setting "detect_noop": false like this: Followed by a code example, that originally set `"detect_noop": true`. Please correct me if I got the change backwards (i.e. the paragraph should be changed to `true`), but this seems like it makes the most sense. --- docs/reference/docs/update.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/reference/docs/update.asciidoc b/docs/reference/docs/update.asciidoc index 6cb95f406a8..87324cf881e 100644 --- a/docs/reference/docs/update.asciidoc +++ b/docs/reference/docs/update.asciidoc @@ -184,7 +184,7 @@ POST test/type1/1/_update "doc" : { "name" : "new_name" }, - "detect_noop": true + "detect_noop": false } -------------------------------------------------- // CONSOLE From ddade1b5aca3d99f89cb13df9c244ae389c5f156 Mon Sep 17 00:00:00 2001 From: Nik Everett Date: Fri, 9 Dec 2016 15:50:46 -0500 Subject: [PATCH 31/51] Improve the error message if task and node isn't found (#22062) Improves the error message returned when looking up a task that belongs to a node that is no longer part of the cluster. The new error message tells the user that the node isn't part of the cluster. This is useful because if you start a task and the node goes down there isn't a record of the task at all. This hints to the user that the task might have died with the node. Relates to #22027 --- .../node/tasks/get/TransportGetTaskAction.java | 12 ++++++++++-- .../rest-api-spec/test/tasks.get/10_basic.yaml | 1 + 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/elasticsearch/action/admin/cluster/node/tasks/get/TransportGetTaskAction.java b/core/src/main/java/org/elasticsearch/action/admin/cluster/node/tasks/get/TransportGetTaskAction.java index 5711a2a214d..b73adbf8112 100644 --- a/core/src/main/java/org/elasticsearch/action/admin/cluster/node/tasks/get/TransportGetTaskAction.java +++ b/core/src/main/java/org/elasticsearch/action/admin/cluster/node/tasks/get/TransportGetTaskAction.java @@ -105,7 +105,15 @@ public class TransportGetTaskAction extends HandledTransportAction { + if (e instanceof ResourceNotFoundException) { + e = new ResourceNotFoundException( + "task [" + request.getTaskId() + "] belongs to the node [" + request.getTaskId().getNodeId() + + "] which isn't part of the cluster and there is no record of the task", + e); + } + listener.onFailure(e); + })); return; } GetTaskRequest nodeRequest = request.nodeRequest(clusterService.localNode().getId(), thisTask.getId()); @@ -231,7 +239,7 @@ public class TransportGetTaskAction extends HandledTransportAction listener) throws IOException { if (false == response.isExists()) { - listener.onFailure(new ResourceNotFoundException("task [{}] isn't running or stored its results", response.getId())); + listener.onFailure(new ResourceNotFoundException("task [{}] isn't running and hasn't stored its results", response.getId())); return; } if (response.isSourceEmpty()) { diff --git a/rest-api-spec/src/main/resources/rest-api-spec/test/tasks.get/10_basic.yaml b/rest-api-spec/src/main/resources/rest-api-spec/test/tasks.get/10_basic.yaml index 48d9f46ac73..caf97b302f1 100644 --- a/rest-api-spec/src/main/resources/rest-api-spec/test/tasks.get/10_basic.yaml +++ b/rest-api-spec/src/main/resources/rest-api-spec/test/tasks.get/10_basic.yaml @@ -8,3 +8,4 @@ catch: missing tasks.get: task_id: foo:1 + - match: {error.reason: "/task.\\[foo:1\\].belongs.to.the.node.\\[foo\\].which.isn't.part.of.the.cluster.and.there.is.no.record.of.the.task/"} From 3adefb7b4a0dcfec887740692ee6176e41bae259 Mon Sep 17 00:00:00 2001 From: Nik Everett Date: Fri, 9 Dec 2016 20:23:02 -0500 Subject: [PATCH 32/51] Begin centralizing XContentParser creation into RestRequest (#22041) To get #22003 in cleanly we need to centralize as much `XContentParser` creation as possible into `RestRequest`. That'll mean we have to plumb the `NamedXContentRegistry` into fewer places. This removes `RestAction.hasBody`, `RestAction.guessBodyContentType`, and `RestActions.getRestContent`, moving callers over to `RestRequest.hasContentOrSourceParam`, `RestRequest.contentOrSourceParam`, and `RestRequest.contentOrSourceParamParser` and `RestRequest.withContentOrSourceParamParserOrNull`. The idea is to use `withContentOrSourceParamParserOrNull` if you need to handle requests without any sort of body content and to use `contentOrSourceParamParser` otherwise. I believe the vast majority of this PR to be purely mechanical but I know I've made the following behavioral change (I'll add more if I think of more): * If you make a request to an endpoint that requires a request body and has cut over to the new APIs instead of getting `Failed to derive xcontent` you'll get `Body required`. * Template parsing is now non-strict by default. This is important because we need to be able to deprecate things without requests failing. --- .../elasticsearch/action/ActionListener.java | 13 +- .../action/fieldstats/FieldStatsRequest.java | 62 ++++--- .../action/get/MultiGetRequest.java | 42 ++--- .../termvectors/MultiTermVectorsRequest.java | 62 ++++--- .../elasticsearch/common/CheckedConsumer.java | 30 ++++ .../org/elasticsearch/rest/RestRequest.java | 61 +++++++ .../rest/action/RestActions.java | 54 +----- .../rest/action/RestFieldStatsAction.java | 9 +- .../RestClusterAllocationExplainAction.java | 8 +- .../admin/indices/RestAnalyzeAction.java | 158 +++++++++--------- .../indices/RestValidateQueryAction.java | 22 +-- .../rest/action/cat/RestCountAction.java | 25 ++- .../rest/action/document/RestCountAction.java | 20 ++- .../action/document/RestMultiGetAction.java | 8 +- .../document/RestMultiTermVectorsAction.java | 3 +- .../document/RestTermVectorsAction.java | 5 +- .../action/ingest/RestPutPipelineAction.java | 2 +- .../ingest/RestSimulatePipelineAction.java | 2 +- .../action/search/RestClearScrollAction.java | 66 ++++---- .../rest/action/search/RestExplainAction.java | 18 +- .../action/search/RestMultiSearchAction.java | 18 +- .../rest/action/search/RestSearchAction.java | 27 ++- .../action/search/RestSearchScrollAction.java | 53 +++--- .../rest/action/search/RestSuggestAction.java | 14 +- .../fieldstats/FieldStatsRequestTests.java | 7 +- .../termvectors/TermVectorsUnitTests.java | 19 ++- .../elasticsearch/rest/RestRequestTests.java | 105 ++++++++++++ .../admin/indices/RestAnalyzeActionTests.java | 108 ++++++------ .../scroll/RestClearScrollActionTests.java | 70 ++++++++ .../scroll/RestSearchScrollActionTests.java | 73 ++++++++ .../search/scroll/SearchScrollIT.java | 86 ---------- .../RestMultiSearchTemplateAction.java | 2 +- .../RestRenderSearchTemplateAction.java | 7 +- .../mustache/RestSearchTemplateAction.java | 18 +- .../script/mustache/SearchTemplateIT.java | 7 +- .../mustache/SearchTemplateRequestTests.java | 28 ++-- .../percolator/RestMultiPercolateAction.java | 3 +- .../percolator/RestPercolateAction.java | 4 +- .../AbstractBulkByQueryRestHandler.java | 75 +++++---- 39 files changed, 789 insertions(+), 605 deletions(-) create mode 100644 core/src/main/java/org/elasticsearch/common/CheckedConsumer.java create mode 100644 core/src/test/java/org/elasticsearch/rest/RestRequestTests.java create mode 100644 core/src/test/java/org/elasticsearch/search/scroll/RestClearScrollActionTests.java create mode 100644 core/src/test/java/org/elasticsearch/search/scroll/RestSearchScrollActionTests.java diff --git a/core/src/main/java/org/elasticsearch/action/ActionListener.java b/core/src/main/java/org/elasticsearch/action/ActionListener.java index 5b9c8455098..ef26867600e 100644 --- a/core/src/main/java/org/elasticsearch/action/ActionListener.java +++ b/core/src/main/java/org/elasticsearch/action/ActionListener.java @@ -19,20 +19,14 @@ package org.elasticsearch.action; -import java.io.IOException; +import org.elasticsearch.common.CheckedConsumer; + import java.util.function.Consumer; /** * A listener for action responses or failures. */ public interface ActionListener { - - /** A consumer interface which allows throwing checked exceptions. */ - @FunctionalInterface - interface CheckedConsumer { - void accept(T t) throws Exception; - } - /** * Handle action response. This response may constitute a failure or a * success but it is up to the listener to make that decision. @@ -53,7 +47,8 @@ public interface ActionListener { * @param the type of the response * @return a listener that listens for responses and invokes the consumer when received */ - static ActionListener wrap(CheckedConsumer onResponse, Consumer onFailure) { + static ActionListener wrap(CheckedConsumer onResponse, + Consumer onFailure) { return new ActionListener() { @Override public void onResponse(Response response) { diff --git a/core/src/main/java/org/elasticsearch/action/fieldstats/FieldStatsRequest.java b/core/src/main/java/org/elasticsearch/action/fieldstats/FieldStatsRequest.java index 4137c4cd1c2..7dfcdcfa108 100644 --- a/core/src/main/java/org/elasticsearch/action/fieldstats/FieldStatsRequest.java +++ b/core/src/main/java/org/elasticsearch/action/fieldstats/FieldStatsRequest.java @@ -24,10 +24,8 @@ import org.elasticsearch.action.ActionRequestValidationException; import org.elasticsearch.action.ValidateActions; import org.elasticsearch.action.support.broadcast.BroadcastRequest; import org.elasticsearch.common.Strings; -import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; -import org.elasticsearch.common.xcontent.XContentHelper; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentParser.Token; @@ -74,41 +72,39 @@ public class FieldStatsRequest extends BroadcastRequest { this.indexConstraints = indexConstraints; } - public void source(BytesReference content) throws IOException { + public void source(XContentParser parser) throws IOException { List indexConstraints = new ArrayList<>(); List fields = new ArrayList<>(); - try (XContentParser parser = XContentHelper.createParser(content)) { - String fieldName = null; - Token token = parser.nextToken(); - assert token == Token.START_OBJECT; - for (token = parser.nextToken(); token != Token.END_OBJECT; token = parser.nextToken()) { - switch (token) { - case FIELD_NAME: - fieldName = parser.currentName(); - break; - case START_OBJECT: - if ("index_constraints".equals(fieldName)) { - parseIndexConstraints(indexConstraints, parser); - } else { - throw new IllegalArgumentException("unknown field [" + fieldName + "]"); - } - break; - case START_ARRAY: - if ("fields".equals(fieldName)) { - while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { - if (token.isValue()) { - fields.add(parser.text()); - } else { - throw new IllegalArgumentException("unexpected token [" + token + "]"); - } + String fieldName = null; + Token token = parser.nextToken(); + assert token == Token.START_OBJECT; + for (token = parser.nextToken(); token != Token.END_OBJECT; token = parser.nextToken()) { + switch (token) { + case FIELD_NAME: + fieldName = parser.currentName(); + break; + case START_OBJECT: + if ("index_constraints".equals(fieldName)) { + parseIndexConstraints(indexConstraints, parser); + } else { + throw new IllegalArgumentException("unknown field [" + fieldName + "]"); + } + break; + case START_ARRAY: + if ("fields".equals(fieldName)) { + while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { + if (token.isValue()) { + fields.add(parser.text()); + } else { + throw new IllegalArgumentException("unexpected token [" + token + "]"); } - } else { - throw new IllegalArgumentException("unknown field [" + fieldName + "]"); } - break; - default: - throw new IllegalArgumentException("unexpected token [" + token + "]"); - } + } else { + throw new IllegalArgumentException("unknown field [" + fieldName + "]"); + } + break; + default: + throw new IllegalArgumentException("unexpected token [" + token + "]"); } } this.fields = fields.toArray(new String[fields.size()]); diff --git a/core/src/main/java/org/elasticsearch/action/get/MultiGetRequest.java b/core/src/main/java/org/elasticsearch/action/get/MultiGetRequest.java index 8772752639b..5407184ded3 100644 --- a/core/src/main/java/org/elasticsearch/action/get/MultiGetRequest.java +++ b/core/src/main/java/org/elasticsearch/action/get/MultiGetRequest.java @@ -30,13 +30,10 @@ import org.elasticsearch.action.support.IndicesOptions; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.ParsingException; import org.elasticsearch.common.Strings; -import org.elasticsearch.common.bytes.BytesArray; -import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.io.stream.Streamable; import org.elasticsearch.common.lucene.uid.Versions; -import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.VersionType; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; @@ -317,32 +314,19 @@ public class MultiGetRequest extends ActionRequest implements Iterable 0) { - try (XContentParser parser = XContentFactory.xContent(data).createParser(data)) { - while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { - if (token == XContentParser.Token.FIELD_NAME) { - currentFieldName = parser.currentName(); - } else if (token == XContentParser.Token.START_ARRAY) { - if ("docs".equals(currentFieldName)) { - while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { - if (token != XContentParser.Token.START_OBJECT) { - throw new IllegalArgumentException("docs array element should include an object"); - } - TermVectorsRequest termVectorsRequest = new TermVectorsRequest(template); - TermVectorsRequest.parseRequest(termVectorsRequest, parser); - add(termVectorsRequest); + if (parser != null) { + while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { + if (token == XContentParser.Token.FIELD_NAME) { + currentFieldName = parser.currentName(); + } else if (token == XContentParser.Token.START_ARRAY) { + if ("docs".equals(currentFieldName)) { + while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { + if (token != XContentParser.Token.START_OBJECT) { + throw new IllegalArgumentException("docs array element should include an object"); } - } else if ("ids".equals(currentFieldName)) { - while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { - if (!token.isValue()) { - throw new IllegalArgumentException("ids array element should only contain ids"); - } - ids.add(parser.text()); + TermVectorsRequest termVectorsRequest = new TermVectorsRequest(template); + TermVectorsRequest.parseRequest(termVectorsRequest, parser); + add(termVectorsRequest); + } + } else if ("ids".equals(currentFieldName)) { + while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { + if (!token.isValue()) { + throw new IllegalArgumentException("ids array element should only contain ids"); } - } else { - throw new ElasticsearchParseException("no parameter named [{}] and type ARRAY", currentFieldName); + ids.add(parser.text()); } - } else if (token == XContentParser.Token.START_OBJECT && currentFieldName != null) { - if ("parameters".equals(currentFieldName)) { - TermVectorsRequest.parseRequest(template, parser); - } else { - throw new ElasticsearchParseException("no parameter named [{}] and type OBJECT", currentFieldName); - } - } else if (currentFieldName != null) { - throw new ElasticsearchParseException("_mtermvectors: Parameter [{}] not supported", currentFieldName); + } else { + throw new ElasticsearchParseException("no parameter named [{}] and type ARRAY", currentFieldName); } + } else if (token == XContentParser.Token.START_OBJECT && currentFieldName != null) { + if ("parameters".equals(currentFieldName)) { + TermVectorsRequest.parseRequest(template, parser); + } else { + throw new ElasticsearchParseException("no parameter named [{}] and type OBJECT", currentFieldName); + } + } else if (currentFieldName != null) { + throw new ElasticsearchParseException("_mtermvectors: Parameter [{}] not supported", currentFieldName); } } } diff --git a/core/src/main/java/org/elasticsearch/common/CheckedConsumer.java b/core/src/main/java/org/elasticsearch/common/CheckedConsumer.java new file mode 100644 index 00000000000..1806f42eff0 --- /dev/null +++ b/core/src/main/java/org/elasticsearch/common/CheckedConsumer.java @@ -0,0 +1,30 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.common; + +import java.util.function.Consumer; + +/** + * A {@link Consumer}-like interface which allows throwing checked exceptions. + */ +@FunctionalInterface +public interface CheckedConsumer { + void accept(T t) throws E; +} diff --git a/core/src/main/java/org/elasticsearch/rest/RestRequest.java b/core/src/main/java/org/elasticsearch/rest/RestRequest.java index 3f0f32fff37..e6f1c2816b2 100644 --- a/core/src/main/java/org/elasticsearch/rest/RestRequest.java +++ b/core/src/main/java/org/elasticsearch/rest/RestRequest.java @@ -19,14 +19,21 @@ package org.elasticsearch.rest; +import org.apache.lucene.util.IOUtils; +import org.elasticsearch.ElasticsearchParseException; import org.elasticsearch.common.Booleans; +import org.elasticsearch.common.CheckedConsumer; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.Strings; +import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.unit.ByteSizeValue; import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.common.xcontent.ToXContent; +import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.common.xcontent.XContentParser; +import java.io.IOException; import java.net.SocketAddress; import java.util.HashMap; import java.util.HashSet; @@ -222,4 +229,58 @@ public abstract class RestRequest implements ToXContent.Params { return params; } + /** + * Does this request have content or a {@code source} parameter? Use this instead of {@link #hasContent()} if this + * {@linkplain RestHandler} treats the {@code source} parameter like the body content. + */ + public final boolean hasContentOrSourceParam() { + return hasContent() || hasParam("source"); + } + + /** + * A parser for the contents of this request if it has contents, otherwise a parser for the {@code source} parameter if there is one, + * otherwise throws an {@link ElasticsearchParseException}. Use {@link #withContentOrSourceParamParserOrNull(CheckedConsumer)} instead + * if you need to handle the absence request content gracefully. + */ + public final XContentParser contentOrSourceParamParser() throws IOException { + BytesReference content = contentOrSourceParam(); + if (content.length() == 0) { + throw new ElasticsearchParseException("Body required"); + } + return XContentFactory.xContent(content).createParser(content); + } + + /** + * Call a consumer with the parser for the contents of this request if it has contents, otherwise with a parser for the {@code source} + * parameter if there is one, otherwise with {@code null}. Use {@link #contentOrSourceParamParser()} if you should throw an exception + * back to the user when there isn't request content. + */ + public final void withContentOrSourceParamParserOrNull(CheckedConsumer withParser) throws IOException { + XContentParser parser = null; + BytesReference content = contentOrSourceParam(); + if (content.length() > 0) { + parser = XContentFactory.xContent(content).createParser(content); + } + + try { + withParser.accept(parser); + } finally { + IOUtils.close(parser); + } + } + + /** + * Get the content of the request or the contents of the {@code source} param. Prefer {@link #contentOrSourceParamParser()} or + * {@link #withContentOrSourceParamParserOrNull(CheckedConsumer)} if you need a parser. + */ + public final BytesReference contentOrSourceParam() { + if (hasContent()) { + return content(); + } + String source = param("source"); + if (source != null) { + return new BytesArray(source); + } + return BytesArray.EMPTY; + } } diff --git a/core/src/main/java/org/elasticsearch/rest/action/RestActions.java b/core/src/main/java/org/elasticsearch/rest/action/RestActions.java index d017dfaf874..0cb1a248b17 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/RestActions.java +++ b/core/src/main/java/org/elasticsearch/rest/action/RestActions.java @@ -19,7 +19,6 @@ package org.elasticsearch.rest.action; -import org.elasticsearch.ElasticsearchException; import org.elasticsearch.ExceptionsHelper; import org.elasticsearch.action.FailedNodeException; import org.elasticsearch.action.ShardOperationFailedException; @@ -27,15 +26,11 @@ import org.elasticsearch.action.support.broadcast.BroadcastResponse; import org.elasticsearch.action.support.nodes.BaseNodeResponse; import org.elasticsearch.action.support.nodes.BaseNodesResponse; import org.elasticsearch.common.ParseFieldMatcher; -import org.elasticsearch.common.bytes.BytesArray; -import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.lucene.uid.Versions; import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.ToXContent.Params; import org.elasticsearch.common.xcontent.XContentBuilder; -import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.index.query.Operator; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; @@ -200,53 +195,10 @@ public class RestActions { return queryBuilder; } - /** - * Get Rest content from either payload or source parameter - * @param request Rest request - * @return rest content - */ - public static BytesReference getRestContent(RestRequest request) { - assert request != null; - - BytesReference content = request.content(); - if (!request.hasContent()) { - String source = request.param("source"); - if (source != null) { - content = new BytesArray(source); - } - } - - return content; - } - - public static QueryBuilder getQueryContent(BytesReference source, IndicesQueriesRegistry indicesQueriesRegistry, + public static QueryBuilder getQueryContent(XContentParser requestParser, IndicesQueriesRegistry indicesQueriesRegistry, ParseFieldMatcher parseFieldMatcher) { - try (XContentParser requestParser = XContentFactory.xContent(source).createParser(source)) { - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, requestParser, parseFieldMatcher); - return context.parseTopLevelQueryBuilder(); - } catch (IOException e) { - throw new ElasticsearchException("failed to parse source", e); - } - } - - /** - * guesses the content type from either payload or source parameter - * @param request Rest request - * @return rest content type or null if not applicable. - */ - public static XContentType guessBodyContentType(final RestRequest request) { - final BytesReference restContent = RestActions.getRestContent(request); - if (restContent == null) { - return null; - } - return XContentFactory.xContentType(restContent); - } - - /** - * Returns true if either payload or source parameter is present. Otherwise false - */ - public static boolean hasBodyContent(final RestRequest request) { - return request.hasContent() || request.hasParam("source"); + QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, requestParser, parseFieldMatcher); + return context.parseTopLevelQueryBuilder(); } /** diff --git a/core/src/main/java/org/elasticsearch/rest/action/RestFieldStatsAction.java b/core/src/main/java/org/elasticsearch/rest/action/RestFieldStatsAction.java index 080fbbfb7aa..8a4a91b2493 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/RestFieldStatsAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/RestFieldStatsAction.java @@ -28,6 +28,7 @@ import org.elasticsearch.common.Strings; import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.rest.BaseRestHandler; import org.elasticsearch.rest.BytesRestResponse; import org.elasticsearch.rest.RestController; @@ -56,7 +57,7 @@ public class RestFieldStatsAction extends BaseRestHandler { @Override public RestChannelConsumer prepareRequest(final RestRequest request, final NodeClient client) throws IOException { - if (RestActions.hasBodyContent(request) && request.hasParam("fields")) { + if (request.hasContentOrSourceParam() && request.hasParam("fields")) { throw new IllegalArgumentException("can't specify a request body and [fields] request parameter, " + "either specify a request body or the [fields] request parameter"); } @@ -65,8 +66,10 @@ public class RestFieldStatsAction extends BaseRestHandler { fieldStatsRequest.indices(Strings.splitStringByCommaToArray(request.param("index"))); fieldStatsRequest.indicesOptions(IndicesOptions.fromRequest(request, fieldStatsRequest.indicesOptions())); fieldStatsRequest.level(request.param("level", FieldStatsRequest.DEFAULT_LEVEL)); - if (RestActions.hasBodyContent(request)) { - fieldStatsRequest.source(RestActions.getRestContent(request)); + if (request.hasContentOrSourceParam()) { + try (XContentParser parser = request.contentOrSourceParamParser()) { + fieldStatsRequest.source(parser); + } } else { fieldStatsRequest.setFields(Strings.splitStringByCommaToArray(request.param("fields"))); } diff --git a/core/src/main/java/org/elasticsearch/rest/action/admin/cluster/RestClusterAllocationExplainAction.java b/core/src/main/java/org/elasticsearch/rest/action/admin/cluster/RestClusterAllocationExplainAction.java index 3add5cb0390..2f60c448e7c 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/admin/cluster/RestClusterAllocationExplainAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/admin/cluster/RestClusterAllocationExplainAction.java @@ -24,12 +24,10 @@ import org.elasticsearch.action.admin.cluster.allocation.ClusterAllocationExplai import org.elasticsearch.action.admin.cluster.allocation.ClusterAllocationExplainResponse; import org.elasticsearch.client.node.NodeClient; import org.elasticsearch.common.bytes.BytesArray; -import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; -import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.rest.BaseRestHandler; import org.elasticsearch.rest.BytesRestResponse; @@ -37,7 +35,6 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestRequest; import org.elasticsearch.rest.RestResponse; import org.elasticsearch.rest.RestStatus; -import org.elasticsearch.rest.action.RestActions; import org.elasticsearch.rest.action.RestBuilderListener; import java.io.IOException; @@ -57,12 +54,11 @@ public class RestClusterAllocationExplainAction extends BaseRestHandler { @Override public RestChannelConsumer prepareRequest(final RestRequest request, final NodeClient client) throws IOException { ClusterAllocationExplainRequest req; - if (RestActions.hasBodyContent(request) == false) { + if (request.hasContentOrSourceParam() == false) { // Empty request signals "explain the first unassigned shard you find" req = new ClusterAllocationExplainRequest(); } else { - BytesReference content = RestActions.getRestContent(request); - try (XContentParser parser = XContentFactory.xContent(content).createParser(content)) { + try (XContentParser parser = request.contentOrSourceParamParser()) { req = ClusterAllocationExplainRequest.parse(parser); } catch (IOException e) { logger.debug("failed to parse allocation explain request", e); diff --git a/core/src/main/java/org/elasticsearch/rest/action/admin/indices/RestAnalyzeAction.java b/core/src/main/java/org/elasticsearch/rest/action/admin/indices/RestAnalyzeAction.java index 1390e9d771d..c32010642e0 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/admin/indices/RestAnalyzeAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/admin/indices/RestAnalyzeAction.java @@ -22,15 +22,12 @@ import org.elasticsearch.action.admin.indices.analyze.AnalyzeRequest; import org.elasticsearch.client.node.NodeClient; import org.elasticsearch.common.ParseField; import org.elasticsearch.common.ParseFieldMatcher; -import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.common.xcontent.XContentHelper; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.rest.BaseRestHandler; import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestRequest; -import org.elasticsearch.rest.action.RestActions; import org.elasticsearch.rest.action.RestToXContentListener; import java.io.IOException; @@ -67,91 +64,92 @@ public class RestAnalyzeAction extends BaseRestHandler { AnalyzeRequest analyzeRequest = new AnalyzeRequest(request.param("index")); - buildFromContent(RestActions.getRestContent(request), analyzeRequest, parseFieldMatcher); + try (XContentParser parser = request.contentOrSourceParamParser()) { + buildFromContent(parser, analyzeRequest, parseFieldMatcher); + } catch (IOException e) { + throw new IllegalArgumentException("Failed to parse request body", e); + } return channel -> client.admin().indices().analyze(analyzeRequest, new RestToXContentListener<>(channel)); } - static void buildFromContent(BytesReference content, AnalyzeRequest analyzeRequest, ParseFieldMatcher parseFieldMatcher) { - try (XContentParser parser = XContentHelper.createParser(content)) { - if (parser.nextToken() != XContentParser.Token.START_OBJECT) { - throw new IllegalArgumentException("Malformed content, must start with an object"); - } else { - XContentParser.Token token; - String currentFieldName = null; - while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { - if (token == XContentParser.Token.FIELD_NAME) { - currentFieldName = parser.currentName(); - } else if (parseFieldMatcher.match(currentFieldName, Fields.TEXT) && token == XContentParser.Token.VALUE_STRING) { - analyzeRequest.text(parser.text()); - } else if (parseFieldMatcher.match(currentFieldName, Fields.TEXT) && token == XContentParser.Token.START_ARRAY) { - List texts = new ArrayList<>(); - while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { - if (token.isValue() == false) { - throw new IllegalArgumentException(currentFieldName + " array element should only contain text"); - } - texts.add(parser.text()); + static void buildFromContent(XContentParser parser, AnalyzeRequest analyzeRequest, ParseFieldMatcher parseFieldMatcher) + throws IOException { + if (parser.nextToken() != XContentParser.Token.START_OBJECT) { + throw new IllegalArgumentException("Malformed content, must start with an object"); + } else { + XContentParser.Token token; + String currentFieldName = null; + while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { + if (token == XContentParser.Token.FIELD_NAME) { + currentFieldName = parser.currentName(); + } else if (parseFieldMatcher.match(currentFieldName, Fields.TEXT) && token == XContentParser.Token.VALUE_STRING) { + analyzeRequest.text(parser.text()); + } else if (parseFieldMatcher.match(currentFieldName, Fields.TEXT) && token == XContentParser.Token.START_ARRAY) { + List texts = new ArrayList<>(); + while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { + if (token.isValue() == false) { + throw new IllegalArgumentException(currentFieldName + " array element should only contain text"); } - analyzeRequest.text(texts.toArray(new String[texts.size()])); - } else if (parseFieldMatcher.match(currentFieldName, Fields.ANALYZER) && token == XContentParser.Token.VALUE_STRING) { - analyzeRequest.analyzer(parser.text()); - } else if (parseFieldMatcher.match(currentFieldName, Fields.FIELD) && token == XContentParser.Token.VALUE_STRING) { - analyzeRequest.field(parser.text()); - } else if (parseFieldMatcher.match(currentFieldName, Fields.TOKENIZER)) { - if (token == XContentParser.Token.VALUE_STRING) { - analyzeRequest.tokenizer(parser.text()); - } else if (token == XContentParser.Token.START_OBJECT) { - analyzeRequest.tokenizer(parser.map()); - } else { - throw new IllegalArgumentException(currentFieldName + " should be tokenizer's name or setting"); - } - } else if (parseFieldMatcher.match(currentFieldName, Fields.TOKEN_FILTERS) - && token == XContentParser.Token.START_ARRAY) { - while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { - if (token == XContentParser.Token.VALUE_STRING) { - analyzeRequest.addTokenFilter(parser.text()); - } else if (token == XContentParser.Token.START_OBJECT) { - analyzeRequest.addTokenFilter(parser.map()); - } else { - throw new IllegalArgumentException(currentFieldName - + " array element should contain filter's name or setting"); - } - } - } else if (parseFieldMatcher.match(currentFieldName, Fields.CHAR_FILTERS) - && token == XContentParser.Token.START_ARRAY) { - while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { - if (token == XContentParser.Token.VALUE_STRING) { - analyzeRequest.addCharFilter(parser.text()); - } else if (token == XContentParser.Token.START_OBJECT) { - analyzeRequest.addCharFilter(parser.map()); - } else { - throw new IllegalArgumentException(currentFieldName - + " array element should contain char filter's name or setting"); - } - } - } else if (parseFieldMatcher.match(currentFieldName, Fields.EXPLAIN)) { - if (parser.isBooleanValue()) { - analyzeRequest.explain(parser.booleanValue()); - } else { - throw new IllegalArgumentException(currentFieldName + " must be either 'true' or 'false'"); - } - } else if (parseFieldMatcher.match(currentFieldName, Fields.ATTRIBUTES) && token == XContentParser.Token.START_ARRAY) { - List attributes = new ArrayList<>(); - while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { - if (token.isValue() == false) { - throw new IllegalArgumentException(currentFieldName + " array element should only contain attribute name"); - } - attributes.add(parser.text()); - } - analyzeRequest.attributes(attributes.toArray(new String[attributes.size()])); - } else { - throw new IllegalArgumentException("Unknown parameter [" - + currentFieldName + "] in request body or parameter is of the wrong type[" + token + "] "); + texts.add(parser.text()); } + analyzeRequest.text(texts.toArray(new String[texts.size()])); + } else if (parseFieldMatcher.match(currentFieldName, Fields.ANALYZER) && token == XContentParser.Token.VALUE_STRING) { + analyzeRequest.analyzer(parser.text()); + } else if (parseFieldMatcher.match(currentFieldName, Fields.FIELD) && token == XContentParser.Token.VALUE_STRING) { + analyzeRequest.field(parser.text()); + } else if (parseFieldMatcher.match(currentFieldName, Fields.TOKENIZER)) { + if (token == XContentParser.Token.VALUE_STRING) { + analyzeRequest.tokenizer(parser.text()); + } else if (token == XContentParser.Token.START_OBJECT) { + analyzeRequest.tokenizer(parser.map()); + } else { + throw new IllegalArgumentException(currentFieldName + " should be tokenizer's name or setting"); + } + } else if (parseFieldMatcher.match(currentFieldName, Fields.TOKEN_FILTERS) + && token == XContentParser.Token.START_ARRAY) { + while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { + if (token == XContentParser.Token.VALUE_STRING) { + analyzeRequest.addTokenFilter(parser.text()); + } else if (token == XContentParser.Token.START_OBJECT) { + analyzeRequest.addTokenFilter(parser.map()); + } else { + throw new IllegalArgumentException(currentFieldName + + " array element should contain filter's name or setting"); + } + } + } else if (parseFieldMatcher.match(currentFieldName, Fields.CHAR_FILTERS) + && token == XContentParser.Token.START_ARRAY) { + while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { + if (token == XContentParser.Token.VALUE_STRING) { + analyzeRequest.addCharFilter(parser.text()); + } else if (token == XContentParser.Token.START_OBJECT) { + analyzeRequest.addCharFilter(parser.map()); + } else { + throw new IllegalArgumentException(currentFieldName + + " array element should contain char filter's name or setting"); + } + } + } else if (parseFieldMatcher.match(currentFieldName, Fields.EXPLAIN)) { + if (parser.isBooleanValue()) { + analyzeRequest.explain(parser.booleanValue()); + } else { + throw new IllegalArgumentException(currentFieldName + " must be either 'true' or 'false'"); + } + } else if (parseFieldMatcher.match(currentFieldName, Fields.ATTRIBUTES) && token == XContentParser.Token.START_ARRAY) { + List attributes = new ArrayList<>(); + while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { + if (token.isValue() == false) { + throw new IllegalArgumentException(currentFieldName + " array element should only contain attribute name"); + } + attributes.add(parser.text()); + } + analyzeRequest.attributes(attributes.toArray(new String[attributes.size()])); + } else { + throw new IllegalArgumentException("Unknown parameter [" + + currentFieldName + "] in request body or parameter is of the wrong type[" + token + "] "); } } - } catch (IOException e) { - throw new IllegalArgumentException("Failed to parse request body", e); } } } diff --git a/core/src/main/java/org/elasticsearch/rest/action/admin/indices/RestValidateQueryAction.java b/core/src/main/java/org/elasticsearch/rest/action/admin/indices/RestValidateQueryAction.java index 3a1ea5fa7d0..8b68a3b6168 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/admin/indices/RestValidateQueryAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/admin/indices/RestValidateQueryAction.java @@ -19,6 +19,7 @@ package org.elasticsearch.rest.action.admin.indices; +import org.apache.lucene.util.IOUtils; import org.elasticsearch.action.admin.indices.validate.query.QueryExplanation; import org.elasticsearch.action.admin.indices.validate.query.ValidateQueryRequest; import org.elasticsearch.action.admin.indices.validate.query.ValidateQueryResponse; @@ -29,6 +30,7 @@ import org.elasticsearch.common.Strings; import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.rest.BaseRestHandler; @@ -72,16 +74,16 @@ public class RestValidateQueryAction extends BaseRestHandler { validateQueryRequest.rewrite(request.paramAsBoolean("rewrite", false)); Exception bodyParsingException = null; - if (RestActions.hasBodyContent(request)) { - try { - validateQueryRequest.query( - RestActions.getQueryContent(RestActions.getRestContent(request), indicesQueriesRegistry, parseFieldMatcher)); - } catch (Exception e) { - bodyParsingException = e; - } - } else if (request.hasParam("q")) { - QueryBuilder queryBuilder = RestActions.urlParamsToQueryBuilder(request); - validateQueryRequest.query(queryBuilder); + try { + request.withContentOrSourceParamParserOrNull(parser -> { + if (parser != null) { + validateQueryRequest.query(RestActions.getQueryContent(parser, indicesQueriesRegistry, parseFieldMatcher)); + } else if (request.hasParam("q")) { + validateQueryRequest.query(RestActions.urlParamsToQueryBuilder(request)); + } + }); + } catch (Exception e) { + bodyParsingException = e; } final Exception finalBodyParsingException = bodyParsingException; diff --git a/core/src/main/java/org/elasticsearch/rest/action/cat/RestCountAction.java b/core/src/main/java/org/elasticsearch/rest/action/cat/RestCountAction.java index 6af900ce516..22346ad2772 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/cat/RestCountAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/cat/RestCountAction.java @@ -19,12 +19,12 @@ package org.elasticsearch.rest.action.cat; +import org.elasticsearch.ElasticsearchException; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.client.node.NodeClient; import org.elasticsearch.common.Strings; import org.elasticsearch.common.Table; -import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.index.query.QueryBuilder; @@ -36,6 +36,8 @@ import org.elasticsearch.rest.action.RestActions; import org.elasticsearch.rest.action.RestResponseListener; import org.elasticsearch.search.builder.SearchSourceBuilder; +import java.io.IOException; + import static org.elasticsearch.rest.RestRequest.Method.GET; public class RestCountAction extends AbstractCatAction { @@ -60,16 +62,21 @@ public class RestCountAction extends AbstractCatAction { public RestChannelConsumer doCatRequest(final RestRequest request, final NodeClient client) { String[] indices = Strings.splitStringByCommaToArray(request.param("index")); SearchRequest countRequest = new SearchRequest(indices); - String source = request.param("source"); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().size(0); countRequest.source(searchSourceBuilder); - if (source != null) { - searchSourceBuilder.query(RestActions.getQueryContent(new BytesArray(source), indicesQueriesRegistry, parseFieldMatcher)); - } else { - QueryBuilder queryBuilder = RestActions.urlParamsToQueryBuilder(request); - if (queryBuilder != null) { - searchSourceBuilder.query(queryBuilder); - } + try { + request.withContentOrSourceParamParserOrNull(parser -> { + if (parser == null) { + QueryBuilder queryBuilder = RestActions.urlParamsToQueryBuilder(request); + if (queryBuilder != null) { + searchSourceBuilder.query(queryBuilder); + } + } else { + searchSourceBuilder.query(RestActions.getQueryContent(parser, indicesQueriesRegistry, parseFieldMatcher)); + } + }); + } catch (IOException e) { + throw new ElasticsearchException("Couldn't parse query", e); } return channel -> client.search(countRequest, new RestResponseListener(channel) { @Override diff --git a/core/src/main/java/org/elasticsearch/rest/action/document/RestCountAction.java b/core/src/main/java/org/elasticsearch/rest/action/document/RestCountAction.java index 86cf0d8d904..2983879961c 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/document/RestCountAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/document/RestCountAction.java @@ -19,15 +19,16 @@ package org.elasticsearch.rest.action.document; +import org.apache.lucene.util.IOUtils; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.support.IndicesOptions; import org.elasticsearch.client.node.NodeClient; import org.elasticsearch.common.Strings; -import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.rest.BaseRestHandler; @@ -68,15 +69,16 @@ public class RestCountAction extends BaseRestHandler { countRequest.indicesOptions(IndicesOptions.fromRequest(request, countRequest.indicesOptions())); SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().size(0); countRequest.source(searchSourceBuilder); - if (RestActions.hasBodyContent(request)) { - BytesReference restContent = RestActions.getRestContent(request); - searchSourceBuilder.query(RestActions.getQueryContent(restContent, indicesQueriesRegistry, parseFieldMatcher)); - } else { - QueryBuilder queryBuilder = RestActions.urlParamsToQueryBuilder(request); - if (queryBuilder != null) { - searchSourceBuilder.query(queryBuilder); + request.withContentOrSourceParamParserOrNull(parser -> { + if (parser == null) { + QueryBuilder queryBuilder = RestActions.urlParamsToQueryBuilder(request); + if (queryBuilder != null) { + searchSourceBuilder.query(queryBuilder); + } + } else { + searchSourceBuilder.query(RestActions.getQueryContent(parser, indicesQueriesRegistry, parseFieldMatcher)); } - } + }); countRequest.routing(request.param("routing")); float minScore = request.paramAsFloat("min_score", -1f); if (minScore != -1f) { diff --git a/core/src/main/java/org/elasticsearch/rest/action/document/RestMultiGetAction.java b/core/src/main/java/org/elasticsearch/rest/action/document/RestMultiGetAction.java index df9af7f42ad..3cb52063368 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/document/RestMultiGetAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/document/RestMultiGetAction.java @@ -24,10 +24,10 @@ import org.elasticsearch.client.node.NodeClient; import org.elasticsearch.common.Strings; import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.rest.BaseRestHandler; import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestRequest; -import org.elasticsearch.rest.action.RestActions; import org.elasticsearch.rest.action.RestToXContentListener; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; @@ -70,8 +70,10 @@ public class RestMultiGetAction extends BaseRestHandler { } FetchSourceContext defaultFetchSource = FetchSourceContext.parseFromRestRequest(request); - multiGetRequest.add(request.param("index"), request.param("type"), sFields, defaultFetchSource, - request.param("routing"), RestActions.getRestContent(request), allowExplicitIndex); + try (XContentParser parser = request.contentOrSourceParamParser()) { + multiGetRequest.add(request.param("index"), request.param("type"), sFields, defaultFetchSource, + request.param("routing"), parser, allowExplicitIndex); + } return channel -> client.multiGet(multiGetRequest, new RestToXContentListener<>(channel)); } diff --git a/core/src/main/java/org/elasticsearch/rest/action/document/RestMultiTermVectorsAction.java b/core/src/main/java/org/elasticsearch/rest/action/document/RestMultiTermVectorsAction.java index fd087e7e763..2b7359f9a1b 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/document/RestMultiTermVectorsAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/document/RestMultiTermVectorsAction.java @@ -29,7 +29,6 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.rest.BaseRestHandler; import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestRequest; -import org.elasticsearch.rest.action.RestActions; import org.elasticsearch.rest.action.RestToXContentListener; import java.io.IOException; @@ -58,7 +57,7 @@ public class RestMultiTermVectorsAction extends BaseRestHandler { template.type(request.param("type")); RestTermVectorsAction.readURIParameters(template, request); multiTermVectorsRequest.ids(Strings.commaDelimitedListToStringArray(request.param("ids"))); - multiTermVectorsRequest.add(template, RestActions.getRestContent(request)); + request.withContentOrSourceParamParserOrNull(p -> multiTermVectorsRequest.add(template, p)); return channel -> client.multiTermVectors(multiTermVectorsRequest, new RestToXContentListener(channel)); } diff --git a/core/src/main/java/org/elasticsearch/rest/action/document/RestTermVectorsAction.java b/core/src/main/java/org/elasticsearch/rest/action/document/RestTermVectorsAction.java index 3724e34d33d..d71b66bed5c 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/document/RestTermVectorsAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/document/RestTermVectorsAction.java @@ -64,9 +64,8 @@ public class RestTermVectorsAction extends BaseRestHandler { @Override public RestChannelConsumer prepareRequest(final RestRequest request, final NodeClient client) throws IOException { TermVectorsRequest termVectorsRequest = new TermVectorsRequest(request.param("index"), request.param("type"), request.param("id")); - if (RestActions.hasBodyContent(request)) { - try (XContentParser parser = XContentFactory.xContent(RestActions.guessBodyContentType(request)) - .createParser(RestActions.getRestContent(request))) { + if (request.hasContentOrSourceParam()) { + try (XContentParser parser = request.contentOrSourceParamParser()) { TermVectorsRequest.parseRequest(termVectorsRequest, parser); } } diff --git a/core/src/main/java/org/elasticsearch/rest/action/ingest/RestPutPipelineAction.java b/core/src/main/java/org/elasticsearch/rest/action/ingest/RestPutPipelineAction.java index d4388f6bea0..08bd65f6892 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/ingest/RestPutPipelineAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/ingest/RestPutPipelineAction.java @@ -42,7 +42,7 @@ public class RestPutPipelineAction extends BaseRestHandler { @Override public RestChannelConsumer prepareRequest(RestRequest restRequest, NodeClient client) throws IOException { - PutPipelineRequest request = new PutPipelineRequest(restRequest.param("id"), RestActions.getRestContent(restRequest)); + PutPipelineRequest request = new PutPipelineRequest(restRequest.param("id"), restRequest.contentOrSourceParam()); request.masterNodeTimeout(restRequest.paramAsTime("master_timeout", request.masterNodeTimeout())); request.timeout(restRequest.paramAsTime("timeout", request.timeout())); return channel -> client.admin().cluster().putPipeline(request, new AcknowledgedRestListener<>(channel)); diff --git a/core/src/main/java/org/elasticsearch/rest/action/ingest/RestSimulatePipelineAction.java b/core/src/main/java/org/elasticsearch/rest/action/ingest/RestSimulatePipelineAction.java index 07a58459582..eb29be1994f 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/ingest/RestSimulatePipelineAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/ingest/RestSimulatePipelineAction.java @@ -44,7 +44,7 @@ public class RestSimulatePipelineAction extends BaseRestHandler { @Override public RestChannelConsumer prepareRequest(RestRequest restRequest, NodeClient client) throws IOException { - SimulatePipelineRequest request = new SimulatePipelineRequest(RestActions.getRestContent(restRequest)); + SimulatePipelineRequest request = new SimulatePipelineRequest(restRequest.contentOrSourceParam()); request.setId(restRequest.param("id")); request.setVerbose(restRequest.paramAsBoolean("verbose", false)); return channel -> client.admin().cluster().simulatePipeline(request, new RestToXContentListener<>(channel)); diff --git a/core/src/main/java/org/elasticsearch/rest/action/search/RestClearScrollAction.java b/core/src/main/java/org/elasticsearch/rest/action/search/RestClearScrollAction.java index bc49bffe447..675ba25d5d7 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/search/RestClearScrollAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/search/RestClearScrollAction.java @@ -26,13 +26,11 @@ import org.elasticsearch.common.Strings; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.common.xcontent.XContentHelper; +import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.rest.BaseRestHandler; import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestRequest; -import org.elasticsearch.rest.action.RestActions; import org.elasticsearch.rest.action.RestStatusToXContentListener; import java.io.IOException; @@ -55,16 +53,20 @@ public class RestClearScrollAction extends BaseRestHandler { String scrollIds = request.param("scroll_id"); ClearScrollRequest clearRequest = new ClearScrollRequest(); clearRequest.setScrollIds(Arrays.asList(splitScrollIds(scrollIds))); - if (RestActions.hasBodyContent(request)) { - XContentType type = RestActions.guessBodyContentType(request); - if (type == null) { - scrollIds = RestActions.getRestContent(request).utf8ToString(); - clearRequest.setScrollIds(Arrays.asList(splitScrollIds(scrollIds))); - } else { - // NOTE: if rest request with xcontent body has request parameters, these parameters does not override xcontent value - clearRequest.setScrollIds(null); - buildFromContent(RestActions.getRestContent(request), clearRequest); - } + BytesReference body = request.contentOrSourceParam(); + if (body.length() > 0) { + if (XContentFactory.xContentType(body) == null) { + scrollIds = body.utf8ToString(); + clearRequest.setScrollIds(Arrays.asList(splitScrollIds(scrollIds))); + } else { + // NOTE: if rest request with xcontent body has request parameters, these parameters does not override xcontent value + clearRequest.setScrollIds(null); + try (XContentParser parser = request.contentOrSourceParamParser()) { + buildFromContent(parser, clearRequest); + } catch (IOException e) { + throw new IllegalArgumentException("Failed to parse request body", e); + } + } } return channel -> client.clearScroll(clearRequest, new RestStatusToXContentListener(channel)); @@ -77,31 +79,27 @@ public class RestClearScrollAction extends BaseRestHandler { return Strings.splitStringByCommaToArray(scrollIds); } - public static void buildFromContent(BytesReference content, ClearScrollRequest clearScrollRequest) { - try (XContentParser parser = XContentHelper.createParser(content)) { - if (parser.nextToken() != XContentParser.Token.START_OBJECT) { - throw new IllegalArgumentException("Malformed content, must start with an object"); - } else { - XContentParser.Token token; - String currentFieldName = null; - while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { - if (token == XContentParser.Token.FIELD_NAME) { - currentFieldName = parser.currentName(); - } else if ("scroll_id".equals(currentFieldName) && token == XContentParser.Token.START_ARRAY) { - while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { - if (token.isValue() == false) { - throw new IllegalArgumentException("scroll_id array element should only contain scroll_id"); - } - clearScrollRequest.addScrollId(parser.text()); + public static void buildFromContent(XContentParser parser, ClearScrollRequest clearScrollRequest) throws IOException { + if (parser.nextToken() != XContentParser.Token.START_OBJECT) { + throw new IllegalArgumentException("Malformed content, must start with an object"); + } else { + XContentParser.Token token; + String currentFieldName = null; + while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { + if (token == XContentParser.Token.FIELD_NAME) { + currentFieldName = parser.currentName(); + } else if ("scroll_id".equals(currentFieldName) && token == XContentParser.Token.START_ARRAY) { + while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { + if (token.isValue() == false) { + throw new IllegalArgumentException("scroll_id array element should only contain scroll_id"); } - } else { - throw new IllegalArgumentException("Unknown parameter [" + currentFieldName - + "] in request body or parameter is of the wrong type[" + token + "] "); + clearScrollRequest.addScrollId(parser.text()); } + } else { + throw new IllegalArgumentException("Unknown parameter [" + currentFieldName + + "] in request body or parameter is of the wrong type[" + token + "] "); } } - } catch (IOException e) { - throw new IllegalArgumentException("Failed to parse request body", e); } } diff --git a/core/src/main/java/org/elasticsearch/rest/action/search/RestExplainAction.java b/core/src/main/java/org/elasticsearch/rest/action/search/RestExplainAction.java index 16de4fb9acd..95c429d19dc 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/search/RestExplainAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/search/RestExplainAction.java @@ -20,14 +20,15 @@ package org.elasticsearch.rest.action.search; import org.apache.lucene.search.Explanation; +import org.apache.lucene.util.IOUtils; import org.elasticsearch.action.explain.ExplainRequest; import org.elasticsearch.action.explain.ExplainResponse; import org.elasticsearch.client.node.NodeClient; import org.elasticsearch.common.Strings; -import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentBuilder; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.get.GetResult; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.indices.query.IndicesQueriesRegistry; @@ -69,13 +70,14 @@ public class RestExplainAction extends BaseRestHandler { explainRequest.routing(request.param("routing")); explainRequest.preference(request.param("preference")); String queryString = request.param("q"); - if (RestActions.hasBodyContent(request)) { - BytesReference restContent = RestActions.getRestContent(request); - explainRequest.query(RestActions.getQueryContent(restContent, indicesQueriesRegistry, parseFieldMatcher)); - } else if (queryString != null) { - QueryBuilder query = RestActions.urlParamsToQueryBuilder(request); - explainRequest.query(query); - } + request.withContentOrSourceParamParserOrNull(parser -> { + if (parser != null) { + explainRequest.query(RestActions.getQueryContent(parser, indicesQueriesRegistry, parseFieldMatcher)); + } else if (queryString != null) { + QueryBuilder query = RestActions.urlParamsToQueryBuilder(request); + explainRequest.query(query); + } + }); if (request.param("fields") != null) { throw new IllegalArgumentException("The parameter [fields] is no longer supported, " + diff --git a/core/src/main/java/org/elasticsearch/rest/action/search/RestMultiSearchAction.java b/core/src/main/java/org/elasticsearch/rest/action/search/RestMultiSearchAction.java index f55758c4e90..6dfd587f848 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/search/RestMultiSearchAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/search/RestMultiSearchAction.java @@ -36,7 +36,6 @@ import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.rest.BaseRestHandler; import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestRequest; -import org.elasticsearch.rest.action.RestActions; import org.elasticsearch.rest.action.RestToXContentListener; import org.elasticsearch.search.SearchRequestParsers; import org.elasticsearch.search.builder.SearchSourceBuilder; @@ -89,10 +88,10 @@ public class RestMultiSearchAction extends BaseRestHandler { multiRequest.maxConcurrentSearchRequests(restRequest.paramAsInt("max_concurrent_searches", 0)); } - parseMultiLineRequest(restRequest, multiRequest.indicesOptions(), allowExplicitIndex, (searchRequest, bytes) -> { - try (XContentParser requestParser = XContentFactory.xContent(bytes).createParser(bytes)) { - final QueryParseContext queryParseContext = new QueryParseContext(searchRequestParsers.queryParsers, - requestParser, parseFieldMatcher); + parseMultiLineRequest(restRequest, multiRequest.indicesOptions(), allowExplicitIndex, (searchRequest, parser) -> { + try { + final QueryParseContext queryParseContext = new QueryParseContext(searchRequestParsers.queryParsers, parser, + parseFieldMatcher); searchRequest.source(SearchSourceBuilder.fromXContent(queryParseContext, searchRequestParsers.aggParsers, searchRequestParsers.suggesters, searchRequestParsers.searchExtParsers)); multiRequest.add(searchRequest); @@ -108,14 +107,14 @@ public class RestMultiSearchAction extends BaseRestHandler { * Parses a multi-line {@link RestRequest} body, instanciating a {@link SearchRequest} for each line and applying the given consumer. */ public static void parseMultiLineRequest(RestRequest request, IndicesOptions indicesOptions, boolean allowExplicitIndex, - BiConsumer consumer) throws IOException { + BiConsumer consumer) throws IOException { String[] indices = Strings.splitStringByCommaToArray(request.param("index")); String[] types = Strings.splitStringByCommaToArray(request.param("type")); String searchType = request.param("search_type"); String routing = request.param("routing"); - final BytesReference data = RestActions.getRestContent(request); + final BytesReference data = request.contentOrSourceParam(); XContent xContent = XContentFactory.xContent(data); int from = 0; @@ -187,7 +186,10 @@ public class RestMultiSearchAction extends BaseRestHandler { if (nextMarker == -1) { break; } - consumer.accept(searchRequest, data.slice(from, nextMarker - from)); + BytesReference bytes = data.slice(from, nextMarker - from); + try (XContentParser parser = XContentFactory.xContent(bytes).createParser(bytes)) { + consumer.accept(searchRequest, parser); + } // move pointers from = nextMarker + 1; } diff --git a/core/src/main/java/org/elasticsearch/rest/action/search/RestSearchAction.java b/core/src/main/java/org/elasticsearch/rest/action/search/RestSearchAction.java index c68f2802e83..425acbf41e3 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/search/RestSearchAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/search/RestSearchAction.java @@ -25,10 +25,8 @@ import org.elasticsearch.action.support.IndicesOptions; import org.elasticsearch.client.node.NodeClient; import org.elasticsearch.common.ParseFieldMatcher; import org.elasticsearch.common.Strings; -import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryParseContext; @@ -74,34 +72,29 @@ public class RestSearchAction extends BaseRestHandler { @Override public RestChannelConsumer prepareRequest(final RestRequest request, final NodeClient client) throws IOException { SearchRequest searchRequest = new SearchRequest(); - BytesReference restContent = RestActions.hasBodyContent(request) ? RestActions.getRestContent(request) : null; - parseSearchRequest(searchRequest, request, searchRequestParsers, parseFieldMatcher, restContent); + request.withContentOrSourceParamParserOrNull(parser -> + parseSearchRequest(searchRequest, request, searchRequestParsers, parseFieldMatcher, parser)); return channel -> client.search(searchRequest, new RestStatusToXContentListener<>(channel)); } /** - * Parses the rest request on top of the SearchRequest, preserving values - * that are not overridden by the rest request. + * Parses the rest request on top of the SearchRequest, preserving values that are not overridden by the rest request. * - * @param restContent - * override body content to use for the request. If null body - * content is read from the request using - * RestAction.hasBodyContent. + * @param requestContentParser body of the request to read. This method does not attempt to read the body from the {@code request} + * parameter */ public static void parseSearchRequest(SearchRequest searchRequest, RestRequest request, SearchRequestParsers searchRequestParsers, - ParseFieldMatcher parseFieldMatcher, BytesReference restContent) throws IOException { + ParseFieldMatcher parseFieldMatcher, XContentParser requestContentParser) throws IOException { if (searchRequest.source() == null) { searchRequest.source(new SearchSourceBuilder()); } searchRequest.indices(Strings.splitStringByCommaToArray(request.param("index"))); - if (restContent != null) { - try (XContentParser parser = XContentFactory.xContent(restContent).createParser(restContent)) { - QueryParseContext context = new QueryParseContext(searchRequestParsers.queryParsers, parser, parseFieldMatcher); - searchRequest.source().parseXContent(context, searchRequestParsers.aggParsers, searchRequestParsers.suggesters, - searchRequestParsers.searchExtParsers); - } + if (requestContentParser != null) { + QueryParseContext context = new QueryParseContext(searchRequestParsers.queryParsers, requestContentParser, parseFieldMatcher); + searchRequest.source().parseXContent(context, searchRequestParsers.aggParsers, searchRequestParsers.suggesters, + searchRequestParsers.searchExtParsers); } // do not allow 'query_and_fetch' or 'dfs_query_and_fetch' search types diff --git a/core/src/main/java/org/elasticsearch/rest/action/search/RestSearchScrollAction.java b/core/src/main/java/org/elasticsearch/rest/action/search/RestSearchScrollAction.java index abe27bd41fb..5a8e5f8efe5 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/search/RestSearchScrollAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/search/RestSearchScrollAction.java @@ -26,13 +26,10 @@ import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.common.xcontent.XContentFactory; -import org.elasticsearch.common.xcontent.XContentHelper; import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.rest.BaseRestHandler; import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestRequest; -import org.elasticsearch.rest.action.RestActions; import org.elasticsearch.rest.action.RestStatusToXContentListener; import org.elasticsearch.search.Scroll; @@ -64,43 +61,43 @@ public class RestSearchScrollAction extends BaseRestHandler { searchScrollRequest.scroll(new Scroll(parseTimeValue(scroll, null, "scroll"))); } - if (RestActions.hasBodyContent(request)) { - XContentType type = XContentFactory.xContentType(RestActions.getRestContent(request)); - if (type == null) { + BytesReference body = request.contentOrSourceParam(); + if (body.length() > 0) { + if (XContentFactory.xContentType(body) == null) { if (scrollId == null) { - scrollId = RestActions.getRestContent(request).utf8ToString(); + scrollId = body.utf8ToString(); searchScrollRequest.scrollId(scrollId); } } else { // NOTE: if rest request with xcontent body has request parameters, these parameters override xcontent values - buildFromContent(RestActions.getRestContent(request), searchScrollRequest); + try (XContentParser parser = request.contentOrSourceParamParser()) { + buildFromContent(parser, searchScrollRequest); + } catch (IOException e) { + throw new IllegalArgumentException("Failed to parse request body", e); + } } } return channel -> client.searchScroll(searchScrollRequest, new RestStatusToXContentListener<>(channel)); } - public static void buildFromContent(BytesReference content, SearchScrollRequest searchScrollRequest) { - try (XContentParser parser = XContentHelper.createParser(content)) { - if (parser.nextToken() != XContentParser.Token.START_OBJECT) { - throw new IllegalArgumentException("Malformed content, must start with an object"); - } else { - XContentParser.Token token; - String currentFieldName = null; - while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { - if (token == XContentParser.Token.FIELD_NAME) { - currentFieldName = parser.currentName(); - } else if ("scroll_id".equals(currentFieldName) && token == XContentParser.Token.VALUE_STRING) { - searchScrollRequest.scrollId(parser.text()); - } else if ("scroll".equals(currentFieldName) && token == XContentParser.Token.VALUE_STRING) { - searchScrollRequest.scroll(new Scroll(TimeValue.parseTimeValue(parser.text(), null, "scroll"))); - } else { - throw new IllegalArgumentException("Unknown parameter [" + currentFieldName - + "] in request body or parameter is of the wrong type[" + token + "] "); - } + public static void buildFromContent(XContentParser parser, SearchScrollRequest searchScrollRequest) throws IOException { + if (parser.nextToken() != XContentParser.Token.START_OBJECT) { + throw new IllegalArgumentException("Malformed content, must start with an object"); + } else { + XContentParser.Token token; + String currentFieldName = null; + while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { + if (token == XContentParser.Token.FIELD_NAME) { + currentFieldName = parser.currentName(); + } else if ("scroll_id".equals(currentFieldName) && token == XContentParser.Token.VALUE_STRING) { + searchScrollRequest.scrollId(parser.text()); + } else if ("scroll".equals(currentFieldName) && token == XContentParser.Token.VALUE_STRING) { + searchScrollRequest.scroll(new Scroll(TimeValue.parseTimeValue(parser.text(), null, "scroll"))); + } else { + throw new IllegalArgumentException("Unknown parameter [" + currentFieldName + + "] in request body or parameter is of the wrong type[" + token + "] "); } } - } catch (IOException e) { - throw new IllegalArgumentException("Failed to parse request body", e); } } } diff --git a/core/src/main/java/org/elasticsearch/rest/action/search/RestSuggestAction.java b/core/src/main/java/org/elasticsearch/rest/action/search/RestSuggestAction.java index 4f61d7f4c81..06685dd8dca 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/search/RestSuggestAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/search/RestSuggestAction.java @@ -24,11 +24,9 @@ import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.support.IndicesOptions; import org.elasticsearch.client.node.NodeClient; import org.elasticsearch.common.Strings; -import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentBuilder; -import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.rest.BaseRestHandler; @@ -37,7 +35,6 @@ import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestRequest; import org.elasticsearch.rest.RestResponse; import org.elasticsearch.rest.RestStatus; -import org.elasticsearch.rest.action.RestActions; import org.elasticsearch.rest.action.RestBuilderListener; import org.elasticsearch.search.SearchRequestParsers; import org.elasticsearch.search.builder.SearchSourceBuilder; @@ -70,14 +67,9 @@ public class RestSuggestAction extends BaseRestHandler { final SearchRequest searchRequest = new SearchRequest( Strings.splitStringByCommaToArray(request.param("index")), new SearchSourceBuilder()); searchRequest.indicesOptions(IndicesOptions.fromRequest(request, searchRequest.indicesOptions())); - if (RestActions.hasBodyContent(request)) { - final BytesReference sourceBytes = RestActions.getRestContent(request); - try (XContentParser parser = XContentFactory.xContent(sourceBytes).createParser(sourceBytes)) { - final QueryParseContext context = new QueryParseContext(searchRequestParsers.queryParsers, parser, parseFieldMatcher); - searchRequest.source().suggest(SuggestBuilder.fromXContent(context, searchRequestParsers.suggesters)); - } - } else { - throw new IllegalArgumentException("no content or source provided to execute suggestion"); + try (XContentParser parser = request.contentOrSourceParamParser()) { + final QueryParseContext context = new QueryParseContext(searchRequestParsers.queryParsers, parser, parseFieldMatcher); + searchRequest.source().suggest(SuggestBuilder.fromXContent(context, searchRequestParsers.suggesters)); } searchRequest.routing(request.param("routing")); searchRequest.preference(request.param("preference")); diff --git a/core/src/test/java/org/elasticsearch/action/fieldstats/FieldStatsRequestTests.java b/core/src/test/java/org/elasticsearch/action/fieldstats/FieldStatsRequestTests.java index 702c0801054..8383ef7666c 100644 --- a/core/src/test/java/org/elasticsearch/action/fieldstats/FieldStatsRequestTests.java +++ b/core/src/test/java/org/elasticsearch/action/fieldstats/FieldStatsRequestTests.java @@ -20,6 +20,7 @@ package org.elasticsearch.action.fieldstats; import org.elasticsearch.common.bytes.BytesArray; +import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.StreamsUtils; @@ -34,11 +35,11 @@ import static org.hamcrest.Matchers.equalTo; public class FieldStatsRequestTests extends ESTestCase { public void testFieldsParsing() throws Exception { - byte[] data = + BytesArray data = new BytesArray( StreamsUtils.copyToBytesFromClasspath("/org/elasticsearch/action/fieldstats/" + - "fieldstats-index-constraints-request.json"); + "fieldstats-index-constraints-request.json")); FieldStatsRequest request = new FieldStatsRequest(); - request.source(new BytesArray(data)); + request.source(XContentFactory.xContent(data).createParser(data)); assertThat(request.getFields().length, equalTo(5)); assertThat(request.getFields()[0], equalTo("field1")); diff --git a/core/src/test/java/org/elasticsearch/action/termvectors/TermVectorsUnitTests.java b/core/src/test/java/org/elasticsearch/action/termvectors/TermVectorsUnitTests.java index a1b0752617c..95b7ba37133 100644 --- a/core/src/test/java/org/elasticsearch/action/termvectors/TermVectorsUnitTests.java +++ b/core/src/test/java/org/elasticsearch/action/termvectors/TermVectorsUnitTests.java @@ -42,6 +42,7 @@ import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.io.stream.InputStreamStreamInput; import org.elasticsearch.common.io.stream.OutputStreamStreamOutput; import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.common.xcontent.XContentHelper; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.index.mapper.AllFieldMapper; @@ -289,16 +290,16 @@ public class TermVectorsUnitTests extends ESTestCase { } public void testMultiParser() throws Exception { - byte[] data = StreamsUtils.copyToBytesFromClasspath("/org/elasticsearch/action/termvectors/multiRequest1.json"); - BytesReference bytes = new BytesArray(data); + byte[] bytes = StreamsUtils.copyToBytesFromClasspath("/org/elasticsearch/action/termvectors/multiRequest1.json"); + XContentParser data = XContentHelper.createParser(new BytesArray(bytes)); MultiTermVectorsRequest request = new MultiTermVectorsRequest(); - request.add(new TermVectorsRequest(), bytes); + request.add(new TermVectorsRequest(), data); checkParsedParameters(request); - data = StreamsUtils.copyToBytesFromClasspath("/org/elasticsearch/action/termvectors/multiRequest2.json"); - bytes = new BytesArray(data); + bytes = StreamsUtils.copyToBytesFromClasspath("/org/elasticsearch/action/termvectors/multiRequest2.json"); + data = XContentHelper.createParser(new BytesArray(bytes)); request = new MultiTermVectorsRequest(); - request.add(new TermVectorsRequest(), bytes); + request.add(new TermVectorsRequest(), data); checkParsedParameters(request); } @@ -325,10 +326,10 @@ public class TermVectorsUnitTests extends ESTestCase { // issue #12311 public void testMultiParserFilter() throws Exception { - byte[] data = StreamsUtils.copyToBytesFromClasspath("/org/elasticsearch/action/termvectors/multiRequest3.json"); - BytesReference bytes = new BytesArray(data); + byte[] bytes = StreamsUtils.copyToBytesFromClasspath("/org/elasticsearch/action/termvectors/multiRequest3.json"); + XContentParser data = XContentHelper.createParser(new BytesArray(bytes)); MultiTermVectorsRequest request = new MultiTermVectorsRequest(); - request.add(new TermVectorsRequest(), bytes); + request.add(new TermVectorsRequest(), data); checkParsedFilterParameters(request); } diff --git a/core/src/test/java/org/elasticsearch/rest/RestRequestTests.java b/core/src/test/java/org/elasticsearch/rest/RestRequestTests.java new file mode 100644 index 00000000000..a75f891698c --- /dev/null +++ b/core/src/test/java/org/elasticsearch/rest/RestRequestTests.java @@ -0,0 +1,105 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.rest; + +import org.elasticsearch.ElasticsearchParseException; +import org.elasticsearch.common.Strings; +import org.elasticsearch.common.bytes.BytesArray; +import org.elasticsearch.common.bytes.BytesReference; +import org.elasticsearch.test.ESTestCase; + +import java.io.IOException; +import java.util.Map; +import java.util.Map.Entry; + +import static java.util.Collections.emptyMap; +import static java.util.Collections.singletonMap; + +public class RestRequestTests extends ESTestCase { + public void testContentOrSourceParam() throws IOException { + assertEquals(BytesArray.EMPTY, new ContentRestRequest("", emptyMap()).contentOrSourceParam()); + assertEquals(new BytesArray("stuff"), new ContentRestRequest("stuff", emptyMap()).contentOrSourceParam()); + assertEquals(new BytesArray("stuff"), new ContentRestRequest("stuff", singletonMap("source", "stuff2")).contentOrSourceParam()); + assertEquals(new BytesArray("stuff"), new ContentRestRequest("", singletonMap("source", "stuff")).contentOrSourceParam()); + } + + public void testHasContentOrSourceParam() throws IOException { + assertEquals(false, new ContentRestRequest("", emptyMap()).hasContentOrSourceParam()); + assertEquals(true, new ContentRestRequest("stuff", emptyMap()).hasContentOrSourceParam()); + assertEquals(true, new ContentRestRequest("stuff", singletonMap("source", "stuff2")).hasContentOrSourceParam()); + assertEquals(true, new ContentRestRequest("", singletonMap("source", "stuff")).hasContentOrSourceParam()); + } + + public void testContentOrSourceParamParserOrNull() throws IOException { + new ContentRestRequest("", emptyMap()).withContentOrSourceParamParserOrNull(parser -> assertNull(parser)); + new ContentRestRequest("{}", emptyMap()).withContentOrSourceParamParserOrNull(parser -> assertEquals(emptyMap(), parser.map())); + new ContentRestRequest("{}", singletonMap("source", "stuff2")).withContentOrSourceParamParserOrNull(parser -> + assertEquals(emptyMap(), parser.map())); + new ContentRestRequest("", singletonMap("source", "{}")).withContentOrSourceParamParserOrNull(parser -> + assertEquals(emptyMap(), parser.map())); + } + + public void testContentOrSourceParamParser() throws IOException { + Exception e = expectThrows(ElasticsearchParseException.class, () -> + new ContentRestRequest("", emptyMap()).contentOrSourceParamParser()); + assertEquals("Body required", e.getMessage()); + assertEquals(emptyMap(), new ContentRestRequest("{}", emptyMap()).contentOrSourceParamParser().map()); + assertEquals(emptyMap(), new ContentRestRequest("{}", singletonMap("source", "stuff2")).contentOrSourceParamParser().map()); + assertEquals(emptyMap(), new ContentRestRequest("", singletonMap("source", "{}")).contentOrSourceParamParser().map()); + } + + private static final class ContentRestRequest extends RestRequest { + private final BytesArray content; + public ContentRestRequest(String content, Map params) { + super(params, "not used by this test"); + this.content = new BytesArray(content); + } + + @Override + public boolean hasContent() { + return Strings.hasLength(content); + } + + @Override + public BytesReference content() { + return content; + } + + @Override + public String uri() { + throw new UnsupportedOperationException("Not used by this test"); + } + + @Override + public Method method() { + throw new UnsupportedOperationException("Not used by this test"); + } + + @Override + public Iterable> headers() { + throw new UnsupportedOperationException("Not used by this test"); + } + + @Override + public String header(String name) { + throw new UnsupportedOperationException("Not used by this test"); + } + } +} diff --git a/core/src/test/java/org/elasticsearch/rest/action/admin/indices/RestAnalyzeActionTests.java b/core/src/test/java/org/elasticsearch/rest/action/admin/indices/RestAnalyzeActionTests.java index 385bfd17b1d..cbec53a60b9 100644 --- a/core/src/test/java/org/elasticsearch/rest/action/admin/indices/RestAnalyzeActionTests.java +++ b/core/src/test/java/org/elasticsearch/rest/action/admin/indices/RestAnalyzeActionTests.java @@ -21,24 +21,29 @@ package org.elasticsearch.rest.action.admin.indices; import org.elasticsearch.action.admin.indices.analyze.AnalyzeRequest; import org.elasticsearch.common.ParseFieldMatcher; import org.elasticsearch.common.bytes.BytesArray; -import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.common.xcontent.XContentHelper; +import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.rest.RestController; +import org.elasticsearch.rest.RestRequest; import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.test.rest.FakeRestRequest; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.startsWith; +import static org.mockito.Mockito.mock; public class RestAnalyzeActionTests extends ESTestCase { public void testParseXContentForAnalyzeRequest() throws Exception { - BytesReference content = XContentFactory.jsonBuilder() + XContentParser content = XContentHelper.createParser(XContentFactory.jsonBuilder() .startObject() .field("text", "THIS IS A TEST") .field("tokenizer", "keyword") .array("filter", "lowercase") - .endObject().bytes(); + .endObject().bytes()); AnalyzeRequest analyzeRequest = new AnalyzeRequest("for test"); @@ -54,7 +59,7 @@ public class RestAnalyzeActionTests extends ESTestCase { } public void testParseXContentForAnalyzeRequestWithCustomFilters() throws Exception { - BytesReference content = XContentFactory.jsonBuilder() + XContentParser content = XContentHelper.createParser(XContentFactory.jsonBuilder() .startObject() .field("text", "THIS IS A TEST") .field("tokenizer", "keyword") @@ -71,7 +76,7 @@ public class RestAnalyzeActionTests extends ESTestCase { .array("mappings", "ph => f", "qu => q") .endObject() .endArray() - .endObject().bytes(); + .endObject().bytes()); AnalyzeRequest analyzeRequest = new AnalyzeRequest("for test"); @@ -88,20 +93,19 @@ public class RestAnalyzeActionTests extends ESTestCase { } public void testParseXContentForAnalyzeRequestWithInvalidJsonThrowsException() throws Exception { - AnalyzeRequest analyzeRequest = new AnalyzeRequest("for test"); - IllegalArgumentException e = expectThrows(IllegalArgumentException.class, - () -> RestAnalyzeAction.buildFromContent( - new BytesArray("{invalid_json}"), analyzeRequest, new ParseFieldMatcher(Settings.EMPTY))); + RestAnalyzeAction action = new RestAnalyzeAction(Settings.EMPTY, mock(RestController.class)); + RestRequest request = new FakeRestRequest.Builder().withContent(new BytesArray("{invalid_json}")).build(); + IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> action.handleRequest(request, null, null)); assertThat(e.getMessage(), equalTo("Failed to parse request body")); } public void testParseXContentForAnalyzeRequestWithUnknownParamThrowsException() throws Exception { AnalyzeRequest analyzeRequest = new AnalyzeRequest("for test"); - BytesReference invalidContent = XContentFactory.jsonBuilder() + XContentParser invalidContent = XContentHelper.createParser(XContentFactory.jsonBuilder() .startObject() .field("text", "THIS IS A TEST") .field("unknown", "keyword") - .endObject().bytes(); + .endObject().bytes()); IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> RestAnalyzeAction.buildFromContent(invalidContent, analyzeRequest, new ParseFieldMatcher(Settings.EMPTY))); assertThat(e.getMessage(), startsWith("Unknown parameter [unknown]")); @@ -109,60 +113,62 @@ public class RestAnalyzeActionTests extends ESTestCase { public void testParseXContentForAnalyzeRequestWithInvalidStringExplainParamThrowsException() throws Exception { AnalyzeRequest analyzeRequest = new AnalyzeRequest("for test"); - BytesReference invalidExplain = XContentFactory.jsonBuilder() + XContentParser invalidExplain = XContentHelper.createParser(XContentFactory.jsonBuilder() .startObject() .field("explain", "fals") - .endObject().bytes(); + .endObject().bytes()); IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> RestAnalyzeAction.buildFromContent(invalidExplain, analyzeRequest, new ParseFieldMatcher(Settings.EMPTY))); assertThat(e.getMessage(), startsWith("explain must be either 'true' or 'false'")); } public void testDeprecatedParamIn2xException() throws Exception { - IllegalArgumentException e = expectThrows(IllegalArgumentException.class, - () -> RestAnalyzeAction.buildFromContent( - XContentFactory.jsonBuilder() + { + XContentParser parser = XContentHelper.createParser(XContentFactory.jsonBuilder() .startObject() - .field("text", "THIS IS A TEST") - .field("tokenizer", "keyword") - .array("filters", "lowercase") - .endObject().bytes(), - new AnalyzeRequest("for test"), new ParseFieldMatcher(Settings.EMPTY))); - assertThat(e.getMessage(), startsWith("Unknown parameter [filters]")); + .field("text", "THIS IS A TEST") + .field("tokenizer", "keyword") + .array("filters", "lowercase") + .endObject().bytes()); + IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> RestAnalyzeAction.buildFromContent(parser, + new AnalyzeRequest("for test"), new ParseFieldMatcher(Settings.EMPTY))); + assertThat(e.getMessage(), startsWith("Unknown parameter [filters]")); + } - - e = expectThrows(IllegalArgumentException.class, - () -> RestAnalyzeAction.buildFromContent( - XContentFactory.jsonBuilder() + { + XContentParser parser = XContentHelper.createParser(XContentFactory.jsonBuilder() .startObject() - .field("text", "THIS IS A TEST") - .field("tokenizer", "keyword") - .array("token_filters", "lowercase") - .endObject().bytes(), - new AnalyzeRequest("for test"), new ParseFieldMatcher(Settings.EMPTY))); - assertThat(e.getMessage(), startsWith("Unknown parameter [token_filters]")); + .field("text", "THIS IS A TEST") + .field("tokenizer", "keyword") + .array("token_filters", "lowercase") + .endObject().bytes()); + IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> RestAnalyzeAction.buildFromContent(parser, + new AnalyzeRequest("for test"), new ParseFieldMatcher(Settings.EMPTY))); + assertThat(e.getMessage(), startsWith("Unknown parameter [token_filters]")); + } - - e = expectThrows(IllegalArgumentException.class, - () -> RestAnalyzeAction.buildFromContent( - XContentFactory.jsonBuilder() + { + XContentParser parser = XContentHelper.createParser(XContentFactory.jsonBuilder() .startObject() - .field("text", "THIS IS A TEST") - .field("tokenizer", "keyword") - .array("char_filters", "lowercase") - .endObject().bytes(), - new AnalyzeRequest("for test"), new ParseFieldMatcher(Settings.EMPTY))); - assertThat(e.getMessage(), startsWith("Unknown parameter [char_filters]")); + .field("text", "THIS IS A TEST") + .field("tokenizer", "keyword") + .array("char_filters", "lowercase") + .endObject().bytes()); + IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> RestAnalyzeAction.buildFromContent(parser, + new AnalyzeRequest("for test"), new ParseFieldMatcher(Settings.EMPTY))); + assertThat(e.getMessage(), startsWith("Unknown parameter [char_filters]")); + } - e = expectThrows(IllegalArgumentException.class, - () -> RestAnalyzeAction.buildFromContent( - XContentFactory.jsonBuilder() + { + XContentParser parser = XContentHelper.createParser(XContentFactory.jsonBuilder() .startObject() - .field("text", "THIS IS A TEST") - .field("tokenizer", "keyword") - .array("token_filter", "lowercase") - .endObject().bytes() - , new AnalyzeRequest("for test"), new ParseFieldMatcher(Settings.EMPTY))); - assertThat(e.getMessage(), startsWith("Unknown parameter [token_filter]")); + .field("text", "THIS IS A TEST") + .field("tokenizer", "keyword") + .array("token_filter", "lowercase") + .endObject().bytes()); + IllegalArgumentException e = expectThrows(IllegalArgumentException.class, () -> RestAnalyzeAction.buildFromContent(parser, + new AnalyzeRequest("for test"), new ParseFieldMatcher(Settings.EMPTY))); + assertThat(e.getMessage(), startsWith("Unknown parameter [token_filter]")); + } } } diff --git a/core/src/test/java/org/elasticsearch/search/scroll/RestClearScrollActionTests.java b/core/src/test/java/org/elasticsearch/search/scroll/RestClearScrollActionTests.java new file mode 100644 index 00000000000..1ce831ca2df --- /dev/null +++ b/core/src/test/java/org/elasticsearch/search/scroll/RestClearScrollActionTests.java @@ -0,0 +1,70 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.search.scroll; + +import org.elasticsearch.action.search.ClearScrollRequest; +import org.elasticsearch.common.bytes.BytesArray; +import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.common.xcontent.XContentHelper; +import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.rest.RestController; +import org.elasticsearch.rest.RestRequest; +import org.elasticsearch.rest.action.search.RestClearScrollAction; +import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.test.rest.FakeRestRequest; + +import static org.hamcrest.Matchers.contains; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.startsWith; +import static org.mockito.Mockito.mock; + +public class RestClearScrollActionTests extends ESTestCase { + public void testParseClearScrollRequest() throws Exception { + XContentParser content = XContentHelper.createParser(XContentFactory.jsonBuilder() + .startObject() + .array("scroll_id", "value_1", "value_2") + .endObject().bytes()); + ClearScrollRequest clearScrollRequest = new ClearScrollRequest(); + RestClearScrollAction.buildFromContent(content, clearScrollRequest); + assertThat(clearScrollRequest.scrollIds(), contains("value_1", "value_2")); + } + + public void testParseClearScrollRequestWithInvalidJsonThrowsException() throws Exception { + RestClearScrollAction action = new RestClearScrollAction(Settings.EMPTY, mock(RestController.class)); + RestRequest request = new FakeRestRequest.Builder().withContent(new BytesArray("{invalid_json}")).build(); + Exception e = expectThrows(IllegalArgumentException.class, () -> action.prepareRequest(request, null)); + assertThat(e.getMessage(), equalTo("Failed to parse request body")); + } + + public void testParseClearScrollRequestWithUnknownParamThrowsException() throws Exception { + XContentParser invalidContent = XContentHelper.createParser(XContentFactory.jsonBuilder() + .startObject() + .array("scroll_id", "value_1", "value_2") + .field("unknown", "keyword") + .endObject().bytes()); + ClearScrollRequest clearScrollRequest = new ClearScrollRequest(); + + Exception e = expectThrows(IllegalArgumentException.class, + () -> RestClearScrollAction.buildFromContent(invalidContent, clearScrollRequest)); + assertThat(e.getMessage(), startsWith("Unknown parameter [unknown]")); + } + +} diff --git a/core/src/test/java/org/elasticsearch/search/scroll/RestSearchScrollActionTests.java b/core/src/test/java/org/elasticsearch/search/scroll/RestSearchScrollActionTests.java new file mode 100644 index 00000000000..a2c9096d59e --- /dev/null +++ b/core/src/test/java/org/elasticsearch/search/scroll/RestSearchScrollActionTests.java @@ -0,0 +1,73 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.search.scroll; + +import org.elasticsearch.action.search.SearchScrollRequest; +import org.elasticsearch.common.bytes.BytesArray; +import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.unit.TimeValue; +import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.common.xcontent.XContentHelper; +import org.elasticsearch.common.xcontent.XContentParser; +import org.elasticsearch.rest.RestController; +import org.elasticsearch.rest.RestRequest; +import org.elasticsearch.rest.action.search.RestSearchScrollAction; +import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.test.rest.FakeRestRequest; + +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.startsWith; +import static org.mockito.Mockito.mock; + +public class RestSearchScrollActionTests extends ESTestCase { + public void testParseSearchScrollRequest() throws Exception { + XContentParser content = XContentHelper.createParser(XContentFactory.jsonBuilder() + .startObject() + .field("scroll_id", "SCROLL_ID") + .field("scroll", "1m") + .endObject().bytes()); + + SearchScrollRequest searchScrollRequest = new SearchScrollRequest(); + RestSearchScrollAction.buildFromContent(content, searchScrollRequest); + + assertThat(searchScrollRequest.scrollId(), equalTo("SCROLL_ID")); + assertThat(searchScrollRequest.scroll().keepAlive(), equalTo(TimeValue.parseTimeValue("1m", null, "scroll"))); + } + + public void testParseSearchScrollRequestWithInvalidJsonThrowsException() throws Exception { + RestSearchScrollAction action = new RestSearchScrollAction(Settings.EMPTY, mock(RestController.class)); + RestRequest request = new FakeRestRequest.Builder().withContent(new BytesArray("{invalid_json}")).build(); + Exception e = expectThrows(IllegalArgumentException.class, () -> action.prepareRequest(request, null)); + assertThat(e.getMessage(), equalTo("Failed to parse request body")); + } + + public void testParseSearchScrollRequestWithUnknownParamThrowsException() throws Exception { + SearchScrollRequest searchScrollRequest = new SearchScrollRequest(); + XContentParser invalidContent = XContentHelper.createParser(XContentFactory.jsonBuilder() + .startObject() + .field("scroll_id", "value_2") + .field("unknown", "keyword") + .endObject().bytes()); + + Exception e = expectThrows(IllegalArgumentException.class, + () -> RestSearchScrollAction.buildFromContent(invalidContent, searchScrollRequest)); + assertThat(e.getMessage(), startsWith("Unknown parameter [unknown]")); + } +} diff --git a/core/src/test/java/org/elasticsearch/search/scroll/SearchScrollIT.java b/core/src/test/java/org/elasticsearch/search/scroll/SearchScrollIT.java index 275bc1c0c81..f266268f0b2 100644 --- a/core/src/test/java/org/elasticsearch/search/scroll/SearchScrollIT.java +++ b/core/src/test/java/org/elasticsearch/search/scroll/SearchScrollIT.java @@ -19,15 +19,12 @@ package org.elasticsearch.search.scroll; -import org.elasticsearch.action.search.ClearScrollRequest; import org.elasticsearch.action.search.ClearScrollResponse; import org.elasticsearch.action.search.SearchRequestBuilder; import org.elasticsearch.action.search.SearchResponse; -import org.elasticsearch.action.search.SearchScrollRequest; import org.elasticsearch.action.search.SearchType; import org.elasticsearch.cluster.metadata.IndexMetaData; import org.elasticsearch.common.Priority; -import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.unit.TimeValue; @@ -38,8 +35,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.rest.RestStatus; -import org.elasticsearch.rest.action.search.RestClearScrollAction; -import org.elasticsearch.rest.action.search.RestSearchScrollAction; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.sort.FieldSortBuilder; import org.elasticsearch.search.sort.SortOrder; @@ -60,13 +55,10 @@ import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertNoSe import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchHits; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertSearchResponse; import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertThrows; -import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.greaterThan; -import static org.hamcrest.Matchers.instanceOf; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.notNullValue; -import static org.hamcrest.Matchers.startsWith; /** * Tests for scrolling. @@ -500,84 +492,6 @@ public class SearchScrollIT extends ESIntegTestCase { assertThat(response.getHits().getHits().length, equalTo(0)); } - public void testParseSearchScrollRequest() throws Exception { - BytesReference content = XContentFactory.jsonBuilder() - .startObject() - .field("scroll_id", "SCROLL_ID") - .field("scroll", "1m") - .endObject().bytes(); - - SearchScrollRequest searchScrollRequest = new SearchScrollRequest(); - RestSearchScrollAction.buildFromContent(content, searchScrollRequest); - - assertThat(searchScrollRequest.scrollId(), equalTo("SCROLL_ID")); - assertThat(searchScrollRequest.scroll().keepAlive(), equalTo(TimeValue.parseTimeValue("1m", null, "scroll"))); - } - - public void testParseSearchScrollRequestWithInvalidJsonThrowsException() throws Exception { - SearchScrollRequest searchScrollRequest = new SearchScrollRequest(); - try { - RestSearchScrollAction.buildFromContent(new BytesArray("{invalid_json}"), searchScrollRequest); - fail("expected parseContent failure"); - } catch (Exception e) { - assertThat(e, instanceOf(IllegalArgumentException.class)); - assertThat(e.getMessage(), equalTo("Failed to parse request body")); - } - } - - public void testParseSearchScrollRequestWithUnknownParamThrowsException() throws Exception { - SearchScrollRequest searchScrollRequest = new SearchScrollRequest(); - BytesReference invalidContent = XContentFactory.jsonBuilder().startObject() - .field("scroll_id", "value_2") - .field("unknown", "keyword") - .endObject().bytes(); - - try { - RestSearchScrollAction.buildFromContent(invalidContent, searchScrollRequest); - fail("expected parseContent failure"); - } catch (Exception e) { - assertThat(e, instanceOf(IllegalArgumentException.class)); - assertThat(e.getMessage(), startsWith("Unknown parameter [unknown]")); - } - } - - public void testParseClearScrollRequest() throws Exception { - BytesReference content = XContentFactory.jsonBuilder().startObject() - .array("scroll_id", "value_1", "value_2") - .endObject().bytes(); - ClearScrollRequest clearScrollRequest = new ClearScrollRequest(); - RestClearScrollAction.buildFromContent(content, clearScrollRequest); - assertThat(clearScrollRequest.scrollIds(), contains("value_1", "value_2")); - } - - public void testParseClearScrollRequestWithInvalidJsonThrowsException() throws Exception { - ClearScrollRequest clearScrollRequest = new ClearScrollRequest(); - - try { - RestClearScrollAction.buildFromContent(new BytesArray("{invalid_json}"), clearScrollRequest); - fail("expected parseContent failure"); - } catch (Exception e) { - assertThat(e, instanceOf(IllegalArgumentException.class)); - assertThat(e.getMessage(), equalTo("Failed to parse request body")); - } - } - - public void testParseClearScrollRequestWithUnknownParamThrowsException() throws Exception { - BytesReference invalidContent = XContentFactory.jsonBuilder().startObject() - .array("scroll_id", "value_1", "value_2") - .field("unknown", "keyword") - .endObject().bytes(); - ClearScrollRequest clearScrollRequest = new ClearScrollRequest(); - - try { - RestClearScrollAction.buildFromContent(invalidContent, clearScrollRequest); - fail("expected parseContent failure"); - } catch (Exception e) { - assertThat(e, instanceOf(IllegalArgumentException.class)); - assertThat(e.getMessage(), startsWith("Unknown parameter [unknown]")); - } - } - public void testCloseAndReopenOrDeleteWithActiveScroll() throws IOException { createIndex("test"); for (int i = 0; i < 100; i++) { diff --git a/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestMultiSearchTemplateAction.java b/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestMultiSearchTemplateAction.java index 818e170a90f..7eb134f74ff 100644 --- a/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestMultiSearchTemplateAction.java +++ b/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestMultiSearchTemplateAction.java @@ -55,7 +55,7 @@ public class RestMultiSearchTemplateAction extends BaseRestHandler { @Override public RestChannelConsumer prepareRequest(RestRequest request, NodeClient client) throws IOException { - if (RestActions.hasBodyContent(request) == false) { + if (request.hasContentOrSourceParam() == false) { throw new ElasticsearchException("request body is required"); } diff --git a/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestRenderSearchTemplateAction.java b/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestRenderSearchTemplateAction.java index c41baae2e69..482b2a13c89 100644 --- a/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestRenderSearchTemplateAction.java +++ b/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestRenderSearchTemplateAction.java @@ -22,10 +22,10 @@ package org.elasticsearch.script.mustache; import org.elasticsearch.client.node.NodeClient; import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.rest.BaseRestHandler; import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestRequest; -import org.elasticsearch.rest.action.RestActions; import org.elasticsearch.rest.action.RestToXContentListener; import org.elasticsearch.script.ScriptType; @@ -48,7 +48,10 @@ public class RestRenderSearchTemplateAction extends BaseRestHandler { @Override public RestChannelConsumer prepareRequest(RestRequest request, NodeClient client) throws IOException { // Creates the render template request - SearchTemplateRequest renderRequest = RestSearchTemplateAction.parse(RestActions.getRestContent(request)); + SearchTemplateRequest renderRequest; + try (XContentParser parser = request.contentOrSourceParamParser()) { + renderRequest = RestSearchTemplateAction.parse(parser); + } renderRequest.setSimulate(true); String id = request.param("id"); diff --git a/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestSearchTemplateAction.java b/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestSearchTemplateAction.java index ed6ed6a050b..a6d705386fc 100644 --- a/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestSearchTemplateAction.java +++ b/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/RestSearchTemplateAction.java @@ -26,18 +26,15 @@ import org.elasticsearch.common.ParseField; import org.elasticsearch.common.ParseFieldMatcher; import org.elasticsearch.common.ParseFieldMatcherSupplier; import org.elasticsearch.common.ParsingException; -import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; -import org.elasticsearch.common.xcontent.XContentHelper; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.rest.BaseRestHandler; import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestRequest; -import org.elasticsearch.rest.action.RestActions; import org.elasticsearch.rest.action.RestStatusToXContentListener; import org.elasticsearch.rest.action.search.RestSearchAction; import org.elasticsearch.script.ScriptType; @@ -50,7 +47,7 @@ import static org.elasticsearch.rest.RestRequest.Method.POST; public class RestSearchTemplateAction extends BaseRestHandler { - private static ObjectParser PARSER; + private static final ObjectParser PARSER; static { PARSER = new ObjectParser<>("search_template"); PARSER.declareField((parser, request, s) -> @@ -97,7 +94,7 @@ public class RestSearchTemplateAction extends BaseRestHandler { @Override public RestChannelConsumer prepareRequest(RestRequest request, NodeClient client) throws IOException { - if (RestActions.hasBodyContent(request) == false) { + if (request.hasContentOrSourceParam() == false) { throw new ElasticsearchException("request body is required"); } @@ -106,15 +103,16 @@ public class RestSearchTemplateAction extends BaseRestHandler { RestSearchAction.parseSearchRequest(searchRequest, request, searchRequestParsers, parseFieldMatcher, null); // Creates the search template request - SearchTemplateRequest searchTemplateRequest = parse(RestActions.getRestContent(request)); + SearchTemplateRequest searchTemplateRequest; + try (XContentParser parser = request.contentOrSourceParamParser()) { + searchTemplateRequest = PARSER.parse(parser, new SearchTemplateRequest(), () -> ParseFieldMatcher.EMPTY); + } searchTemplateRequest.setRequest(searchRequest); return channel -> client.execute(SearchTemplateAction.INSTANCE, searchTemplateRequest, new RestStatusToXContentListener<>(channel)); } - public static SearchTemplateRequest parse(BytesReference bytes) throws IOException { - try (XContentParser parser = XContentHelper.createParser(bytes)) { - return PARSER.parse(parser, new SearchTemplateRequest(), () -> ParseFieldMatcher.STRICT); - } + public static SearchTemplateRequest parse(XContentParser parser) throws IOException { + return PARSER.parse(parser, new SearchTemplateRequest(), () -> ParseFieldMatcher.EMPTY); } } diff --git a/modules/lang-mustache/src/test/java/org/elasticsearch/script/mustache/SearchTemplateIT.java b/modules/lang-mustache/src/test/java/org/elasticsearch/script/mustache/SearchTemplateIT.java index fb67c561b83..4960e995e3c 100644 --- a/modules/lang-mustache/src/test/java/org/elasticsearch/script/mustache/SearchTemplateIT.java +++ b/modules/lang-mustache/src/test/java/org/elasticsearch/script/mustache/SearchTemplateIT.java @@ -24,6 +24,7 @@ import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.common.ParsingException; import org.elasticsearch.common.bytes.BytesArray; +import org.elasticsearch.common.xcontent.XContentHelper; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.script.ScriptType; import org.elasticsearch.test.ESSingleNodeTestCase; @@ -95,7 +96,7 @@ public class SearchTemplateIT extends ESSingleNodeTestCase { searchRequest.indices("_all"); String query = "{" + " \"inline\" : \"{ \\\"size\\\": \\\"{{size}}\\\", \\\"query\\\":{\\\"match_all\\\":{}}}\"," + " \"params\":{" + " \"size\": 1" + " }" + "}"; - SearchTemplateRequest request = RestSearchTemplateAction.parse(new BytesArray(query)); + SearchTemplateRequest request = RestSearchTemplateAction.parse(XContentHelper.createParser(new BytesArray(query))); request.setRequest(searchRequest); SearchTemplateResponse searchResponse = client().execute(SearchTemplateAction.INSTANCE, request).get(); assertThat(searchResponse.getResponse().getHits().hits().length, equalTo(1)); @@ -111,7 +112,7 @@ public class SearchTemplateIT extends ESSingleNodeTestCase { String templateString = "{" + " \"inline\" : \"{ {{#use_size}} \\\"size\\\": \\\"{{size}}\\\", {{/use_size}} \\\"query\\\":{\\\"match_all\\\":{}}}\"," + " \"params\":{" + " \"size\": 1," + " \"use_size\": true" + " }" + "}"; - SearchTemplateRequest request = RestSearchTemplateAction.parse(new BytesArray(templateString)); + SearchTemplateRequest request = RestSearchTemplateAction.parse(XContentHelper.createParser(new BytesArray(templateString))); request.setRequest(searchRequest); SearchTemplateResponse searchResponse = client().execute(SearchTemplateAction.INSTANCE, request).get(); assertThat(searchResponse.getResponse().getHits().hits().length, equalTo(1)); @@ -127,7 +128,7 @@ public class SearchTemplateIT extends ESSingleNodeTestCase { String templateString = "{" + " \"inline\" : \"{ \\\"query\\\":{\\\"match_all\\\":{}} {{#use_size}}, \\\"size\\\": \\\"{{size}}\\\" {{/use_size}} }\"," + " \"params\":{" + " \"size\": 1," + " \"use_size\": true" + " }" + "}"; - SearchTemplateRequest request = RestSearchTemplateAction.parse(new BytesArray(templateString)); + SearchTemplateRequest request = RestSearchTemplateAction.parse(XContentHelper.createParser(new BytesArray(templateString))); request.setRequest(searchRequest); SearchTemplateResponse searchResponse = client().execute(SearchTemplateAction.INSTANCE, request).get(); assertThat(searchResponse.getResponse().getHits().hits().length, equalTo(1)); diff --git a/modules/lang-mustache/src/test/java/org/elasticsearch/script/mustache/SearchTemplateRequestTests.java b/modules/lang-mustache/src/test/java/org/elasticsearch/script/mustache/SearchTemplateRequestTests.java index 528f87f1dd2..8179b086341 100644 --- a/modules/lang-mustache/src/test/java/org/elasticsearch/script/mustache/SearchTemplateRequestTests.java +++ b/modules/lang-mustache/src/test/java/org/elasticsearch/script/mustache/SearchTemplateRequestTests.java @@ -21,10 +21,12 @@ package org.elasticsearch.script.mustache; import org.elasticsearch.common.ParsingException; import org.elasticsearch.common.bytes.BytesArray; -import org.elasticsearch.common.bytes.BytesReference; +import org.elasticsearch.common.xcontent.XContentHelper; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.script.ScriptType; import org.elasticsearch.test.ESTestCase; +import java.io.IOException; import java.util.List; import static org.hamcrest.Matchers.equalTo; @@ -50,7 +52,7 @@ public class SearchTemplateRequestTests extends ESTestCase { " }" + "}"; - SearchTemplateRequest request = RestSearchTemplateAction.parse(newBytesReference(source)); + SearchTemplateRequest request = RestSearchTemplateAction.parse(newParser(source)); assertThat(request.getScript(), equalTo("{\"query\":{\"terms\":{\"status\":[\"{{#status}}\",\"{{.}}\",\"{{/status}}\"]}}}")); assertThat(request.getScriptType(), equalTo(ScriptType.INLINE)); assertThat(request.getScriptParams(), nullValue()); @@ -69,7 +71,7 @@ public class SearchTemplateRequestTests extends ESTestCase { " }" + "}"; - SearchTemplateRequest request = RestSearchTemplateAction.parse(newBytesReference(source)); + SearchTemplateRequest request = RestSearchTemplateAction.parse(newParser(source)); assertThat(request.getScript(), equalTo("{\"query\":{\"match\":{\"{{my_field}}\":\"{{my_value}}\"}},\"size\":\"{{my_size}}\"}")); assertThat(request.getScriptType(), equalTo(ScriptType.INLINE)); assertThat(request.getScriptParams().size(), equalTo(3)); @@ -81,7 +83,7 @@ public class SearchTemplateRequestTests extends ESTestCase { public void testParseInlineTemplateAsString() throws Exception { String source = "{'inline' : '{\\\"query\\\":{\\\"bool\\\":{\\\"must\\\":{\\\"match\\\":{\\\"foo\\\":\\\"{{text}}\\\"}}}}}'}"; - SearchTemplateRequest request = RestSearchTemplateAction.parse(newBytesReference(source)); + SearchTemplateRequest request = RestSearchTemplateAction.parse(newParser(source)); assertThat(request.getScript(), equalTo("{\"query\":{\"bool\":{\"must\":{\"match\":{\"foo\":\"{{text}}\"}}}}}")); assertThat(request.getScriptType(), equalTo(ScriptType.INLINE)); assertThat(request.getScriptParams(), nullValue()); @@ -92,7 +94,7 @@ public class SearchTemplateRequestTests extends ESTestCase { String source = "{'inline' : '{\\\"query\\\":{\\\"match\\\":{\\\"{{field}}\\\":\\\"{{value}}\\\"}}}', " + "'params': {'status': ['pending', 'published']}}"; - SearchTemplateRequest request = RestSearchTemplateAction.parse(newBytesReference(source)); + SearchTemplateRequest request = RestSearchTemplateAction.parse(newParser(source)); assertThat(request.getScript(), equalTo("{\"query\":{\"match\":{\"{{field}}\":\"{{value}}\"}}}")); assertThat(request.getScriptType(), equalTo(ScriptType.INLINE)); assertThat(request.getScriptParams().size(), equalTo(1)); @@ -103,7 +105,7 @@ public class SearchTemplateRequestTests extends ESTestCase { public void testParseFileTemplate() throws Exception { String source = "{'file' : 'fileTemplate'}"; - SearchTemplateRequest request = RestSearchTemplateAction.parse(newBytesReference(source)); + SearchTemplateRequest request = RestSearchTemplateAction.parse(newParser(source)); assertThat(request.getScript(), equalTo("fileTemplate")); assertThat(request.getScriptType(), equalTo(ScriptType.FILE)); assertThat(request.getScriptParams(), nullValue()); @@ -112,7 +114,7 @@ public class SearchTemplateRequestTests extends ESTestCase { public void testParseFileTemplateWithParams() throws Exception { String source = "{'file' : 'template_foo', 'params' : {'foo': 'bar', 'size': 500}}"; - SearchTemplateRequest request = RestSearchTemplateAction.parse(newBytesReference(source)); + SearchTemplateRequest request = RestSearchTemplateAction.parse(newParser(source)); assertThat(request.getScript(), equalTo("template_foo")); assertThat(request.getScriptType(), equalTo(ScriptType.FILE)); assertThat(request.getScriptParams().size(), equalTo(2)); @@ -123,7 +125,7 @@ public class SearchTemplateRequestTests extends ESTestCase { public void testParseStoredTemplate() throws Exception { String source = "{'id' : 'storedTemplate'}"; - SearchTemplateRequest request = RestSearchTemplateAction.parse(newBytesReference(source)); + SearchTemplateRequest request = RestSearchTemplateAction.parse(newParser(source)); assertThat(request.getScript(), equalTo("storedTemplate")); assertThat(request.getScriptType(), equalTo(ScriptType.STORED)); assertThat(request.getScriptParams(), nullValue()); @@ -132,7 +134,7 @@ public class SearchTemplateRequestTests extends ESTestCase { public void testParseStoredTemplateWithParams() throws Exception { String source = "{'id' : 'another_template', 'params' : {'bar': 'foo'}}"; - SearchTemplateRequest request = RestSearchTemplateAction.parse(newBytesReference(source)); + SearchTemplateRequest request = RestSearchTemplateAction.parse(newParser(source)); assertThat(request.getScript(), equalTo("another_template")); assertThat(request.getScriptType(), equalTo(ScriptType.STORED)); assertThat(request.getScriptParams().size(), equalTo(1)); @@ -141,14 +143,14 @@ public class SearchTemplateRequestTests extends ESTestCase { public void testParseWrongTemplate() { // Unclosed template id - expectThrows(ParsingException.class, () -> RestSearchTemplateAction.parse(newBytesReference("{'id' : 'another_temp }"))); + expectThrows(ParsingException.class, () -> RestSearchTemplateAction.parse(newParser("{'id' : 'another_temp }"))); } /** - * Creates a {@link BytesReference} with the given string while replacing single quote to double quotes. + * Creates a {@link XContentParser} with the given String while replacing single quote to double quotes. */ - private static BytesReference newBytesReference(String s) { + private static XContentParser newParser(String s) throws IOException { assertNotNull(s); - return new BytesArray(s.replace("'", "\"")); + return XContentHelper.createParser(new BytesArray(s.replace("'", "\""))); } } diff --git a/modules/percolator/src/main/java/org/elasticsearch/percolator/RestMultiPercolateAction.java b/modules/percolator/src/main/java/org/elasticsearch/percolator/RestMultiPercolateAction.java index a7a8e518621..193e1ec6e6d 100644 --- a/modules/percolator/src/main/java/org/elasticsearch/percolator/RestMultiPercolateAction.java +++ b/modules/percolator/src/main/java/org/elasticsearch/percolator/RestMultiPercolateAction.java @@ -27,7 +27,6 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.rest.BaseRestHandler; import org.elasticsearch.rest.RestController; import org.elasticsearch.rest.RestRequest; -import org.elasticsearch.rest.action.RestActions; import org.elasticsearch.rest.action.RestToXContentListener; import java.io.IOException; @@ -60,7 +59,7 @@ public class RestMultiPercolateAction extends BaseRestHandler { multiPercolateRequest.indicesOptions(IndicesOptions.fromRequest(restRequest, multiPercolateRequest.indicesOptions())); multiPercolateRequest.indices(Strings.splitStringByCommaToArray(restRequest.param("index"))); multiPercolateRequest.documentType(restRequest.param("type")); - multiPercolateRequest.add(RestActions.getRestContent(restRequest), allowExplicitIndex); + multiPercolateRequest.add(restRequest.contentOrSourceParam(), allowExplicitIndex); return channel -> client.execute(MultiPercolateAction.INSTANCE, multiPercolateRequest, new RestToXContentListener<>(channel)); } diff --git a/modules/percolator/src/main/java/org/elasticsearch/percolator/RestPercolateAction.java b/modules/percolator/src/main/java/org/elasticsearch/percolator/RestPercolateAction.java index 0c9eaa4d12d..55c17c8715a 100644 --- a/modules/percolator/src/main/java/org/elasticsearch/percolator/RestPercolateAction.java +++ b/modules/percolator/src/main/java/org/elasticsearch/percolator/RestPercolateAction.java @@ -65,7 +65,7 @@ public class RestPercolateAction extends BaseRestHandler { percolateRequest.documentType(restRequest.param("type")); percolateRequest.routing(restRequest.param("routing")); percolateRequest.preference(restRequest.param("preference")); - percolateRequest.source(RestActions.getRestContent(restRequest)); + percolateRequest.source(restRequest.contentOrSourceParam()); percolateRequest.indicesOptions(IndicesOptions.fromRequest(restRequest, percolateRequest.indicesOptions())); return channel -> executePercolate(client, percolateRequest, channel); @@ -89,7 +89,7 @@ public class RestPercolateAction extends BaseRestHandler { percolateRequest.getRequest(getRequest); percolateRequest.routing(restRequest.param("percolate_routing")); percolateRequest.preference(restRequest.param("percolate_preference")); - percolateRequest.source(RestActions.getRestContent(restRequest)); + percolateRequest.source(restRequest.contentOrSourceParam()); percolateRequest.indicesOptions(IndicesOptions.fromRequest(restRequest, percolateRequest.indicesOptions())); return channel -> executePercolate(client, percolateRequest, channel); diff --git a/modules/reindex/src/main/java/org/elasticsearch/index/reindex/AbstractBulkByQueryRestHandler.java b/modules/reindex/src/main/java/org/elasticsearch/index/reindex/AbstractBulkByQueryRestHandler.java index 2db5f4123cf..08204dc4a11 100644 --- a/modules/reindex/src/main/java/org/elasticsearch/index/reindex/AbstractBulkByQueryRestHandler.java +++ b/modules/reindex/src/main/java/org/elasticsearch/index/reindex/AbstractBulkByQueryRestHandler.java @@ -19,25 +19,22 @@ package org.elasticsearch.index.reindex; -import java.io.IOException; -import java.util.Map; -import java.util.function.Consumer; - +import org.apache.lucene.util.IOUtils; import org.elasticsearch.action.GenericAction; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.cluster.service.ClusterService; -import org.elasticsearch.common.bytes.BytesReference; -import org.elasticsearch.common.collect.Tuple; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; -import org.elasticsearch.common.xcontent.XContentHelper; -import org.elasticsearch.common.xcontent.XContentType; +import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.rest.RestRequest; -import org.elasticsearch.rest.action.RestActions; import org.elasticsearch.rest.action.search.RestSearchAction; import org.elasticsearch.search.SearchRequestParsers; +import java.io.IOException; +import java.util.Map; +import java.util.function.Consumer; + import static org.elasticsearch.index.reindex.AbstractBulkByScrollRequest.SIZE_ALL_MATCHES; /** @@ -53,7 +50,7 @@ public abstract class AbstractBulkByQueryRestHandler< } protected void parseInternalRequest(Request internal, RestRequest restRequest, - Map> consumers) throws IOException { + Map> bodyConsumers) throws IOException { assert internal != null : "Request should not be null"; assert restRequest != null : "RestRequest should not be null"; @@ -61,7 +58,19 @@ public abstract class AbstractBulkByQueryRestHandler< int scrollSize = searchRequest.source().size(); searchRequest.source().size(SIZE_ALL_MATCHES); - parseSearchRequest(searchRequest, restRequest, consumers); + restRequest.withContentOrSourceParamParserOrNull(parser -> { + XContentParser searchRequestParser = extractRequestSpecificFieldsAndReturnSearchCompatibleParser(parser, bodyConsumers); + /* searchRequestParser might be parser or it might be a new parser built from parser's contents. If it is parser then + * withContentOrSourceParamParserOrNull will close it for us but if it isn't then we should close it. Technically close on + * the generated parser probably is a noop but we should do the accounting just in case. It doesn't hurt to close twice but it + * really hurts not to close if by some miracle we have to. */ + try { + RestSearchAction.parseSearchRequest(searchRequest, restRequest, searchRequestParsers, parseFieldMatcher, + searchRequestParser); + } finally { + IOUtils.close(searchRequestParser); + } + }); internal.setSize(searchRequest.source().size()); searchRequest.source().size(restRequest.paramAsInt("scroll_size", scrollSize)); @@ -77,37 +86,33 @@ public abstract class AbstractBulkByQueryRestHandler< } } - protected void parseSearchRequest(SearchRequest searchRequest, RestRequest restRequest, - Map> consumers) throws IOException { - assert searchRequest != null : "SearchRequest should not be null"; - assert restRequest != null : "RestRequest should not be null"; + /** + * We can't send parseSearchRequest REST content that it doesn't support + * so we will have to remove the content that is valid in addition to + * what it supports from the content first. This is a temporary hack and + * should get better when SearchRequest has full ObjectParser support + * then we can delegate and stuff. + */ + private XContentParser extractRequestSpecificFieldsAndReturnSearchCompatibleParser(XContentParser parser, + Map> bodyConsumers) throws IOException { + if (parser == null) { + return parser; + } + try { + Map body = parser.map(); - /* - * We can't send parseSearchRequest REST content that it doesn't support - * so we will have to remove the content that is valid in addition to - * what it supports from the content first. This is a temporary hack and - * should get better when SearchRequest has full ObjectParser support - * then we can delegate and stuff. - */ - BytesReference content = RestActions.hasBodyContent(restRequest) ? RestActions.getRestContent(restRequest) : null; - if ((content != null) && (consumers != null && consumers.size() > 0)) { - Tuple> body = XContentHelper.convertToMap(content, false); - boolean modified = false; - for (Map.Entry> consumer : consumers.entrySet()) { - Object value = body.v2().remove(consumer.getKey()); + for (Map.Entry> consumer : bodyConsumers.entrySet()) { + Object value = body.remove(consumer.getKey()); if (value != null) { consumer.getValue().accept(value); - modified = true; } } - if (modified) { - try (XContentBuilder builder = XContentFactory.contentBuilder(body.v1())) { - content = builder.map(body.v2()).bytes(); - } + try (XContentBuilder builder = XContentFactory.contentBuilder(parser.contentType())) { + return parser.contentType().xContent().createParser(builder.map(body).bytes()); } + } finally { + parser.close(); } - - RestSearchAction.parseSearchRequest(searchRequest, restRequest, searchRequestParsers, parseFieldMatcher, content); } } From 01d67e09b98c4ae494160ac26ced6aad62477e3e Mon Sep 17 00:00:00 2001 From: Simon Willnauer Date: Sat, 10 Dec 2016 10:03:26 +0100 Subject: [PATCH 33/51] Detach handshake from connect to node (#22037) Today we connect and publish the nodes connection before we execute a handshake with the node we connect to. In the case of connecting to a node that won't pass the handshake this connection is already `published` and other code paths can use it. This commit detaches the connection and the publish of the connection such that `TransportService` can do a handshake before actually connect and publish the connection. --- .../elasticsearch/transport/TcpTransport.java | 95 +++++----- .../elasticsearch/transport/Transport.java | 44 ++++- .../TransportConnectionListener.java | 15 +- .../transport/TransportInterceptor.java | 7 +- .../transport/TransportService.java | 164 +++++++++++------- .../transport/TransportServiceAdapter.java | 7 +- .../transport/FailAndRetryMockTransport.java | 92 ++++++---- .../TransportClientHeadersTests.java | 9 +- .../TransportClientNodesServiceTests.java | 12 +- .../cluster/ClusterInfoServiceIT.java | 8 +- .../cluster/NodeConnectionsServiceTests.java | 24 ++- .../DiscoveryWithServiceDisruptionsIT.java | 14 +- .../discovery/zen/UnicastZenPingTests.java | 4 + .../index/IndexWithShadowReplicasIT.java | 9 +- .../index/store/CorruptedFileIT.java | 10 +- .../index/store/ExceptionRetryIT.java | 10 +- .../indices/recovery/IndexRecoveryIT.java | 7 +- .../store/IndicesStoreIntegrationIT.java | 7 +- .../elasticsearch/recovery/RelocationIT.java | 8 +- .../recovery/TruncatedRecoveryIT.java | 7 +- .../transport/TCPTransportTests.java | 9 +- .../TransportServiceHandshakeTests.java | 26 +-- .../transport/netty4/Netty4Transport.java | 4 +- .../test/transport/CapturingTransport.java | 34 +++- .../test/transport/MockTransportService.java | 95 +++++++--- .../AbstractSimpleTransportTestCase.java | 50 +++--- .../AssertingTransportInterceptor.java | 5 +- .../transport/MockTcpTransport.java | 2 +- 28 files changed, 492 insertions(+), 286 deletions(-) diff --git a/core/src/main/java/org/elasticsearch/transport/TcpTransport.java b/core/src/main/java/org/elasticsearch/transport/TcpTransport.java index 6749d782853..7522ab98ed4 100644 --- a/core/src/main/java/org/elasticsearch/transport/TcpTransport.java +++ b/core/src/main/java/org/elasticsearch/transport/TcpTransport.java @@ -68,7 +68,6 @@ import org.elasticsearch.monitor.jvm.JvmInfo; import org.elasticsearch.rest.RestStatus; import org.elasticsearch.threadpool.ThreadPool; -import java.io.Closeable; import java.io.IOException; import java.io.StreamCorruptedException; import java.net.BindException; @@ -81,7 +80,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.EnumMap; -import java.util.EnumSet; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -313,13 +311,15 @@ public abstract class TcpTransport extends AbstractLifecycleComponent i } } - public final class NodeChannels implements Closeable { + public final class NodeChannels implements Connection { private final Map typeMapping = new EnumMap<>(TransportRequestOptions.Type.class); private final Channel[] channels; - private final AtomicBoolean establishedAllConnections = new AtomicBoolean(false); + private final DiscoveryNode node; + private final AtomicBoolean closed = new AtomicBoolean(false); - public NodeChannels(Channel[] channels, ConnectionProfile connectionProfile) { + public NodeChannels(DiscoveryNode node, Channel[] channels, ConnectionProfile connectionProfile) { + this.node = node; this.channels = channels; assert channels.length == connectionProfile.getNumConnections() : "expected channels size to be == " + connectionProfile.getNumConnections() + " but was: [" + channels.length + "]"; @@ -329,12 +329,6 @@ public abstract class TcpTransport extends AbstractLifecycleComponent i } } - public void connectionsEstablished() { - if (establishedAllConnections.compareAndSet(false, true) == false) { - throw new AssertionError("connected more than once"); - } - - } public boolean hasChannel(Channel channel) { for (Channel channel1 : channels) { @@ -346,15 +340,10 @@ public abstract class TcpTransport extends AbstractLifecycleComponent i } public List getChannels() { - if (establishedAllConnections.get()) { // don't expose the channels until we are connected - return Arrays.asList(channels); - } else { - return Collections.emptyList(); - } + return Arrays.asList(channels); } public Channel channel(TransportRequestOptions.Type type) { - assert establishedAllConnections.get(); ConnectionProfile.ConnectionTypeHandle connectionTypeHandle = typeMapping.get(type); if (connectionTypeHandle == null) { throw new IllegalArgumentException("no type channel for [" + type + "]"); @@ -364,7 +353,24 @@ public abstract class TcpTransport extends AbstractLifecycleComponent i @Override public synchronized void close() throws IOException { - closeChannels(Arrays.asList(channels).stream().filter(Objects::nonNull).collect(Collectors.toList())); + if (closed.compareAndSet(false, true)) { + closeChannels(Arrays.stream(channels).filter(Objects::nonNull).collect(Collectors.toList())); + } + } + + @Override + public DiscoveryNode getNode() { + return this.node; + } + + @Override + public void sendRequest(long requestId, String action, TransportRequest request, TransportRequestOptions options) + throws IOException, TransportException { + if (closed.get()) { + throw new NodeNotConnectedException(node, "connection already closed"); + } + Channel channel = channel(options.type()); + sendRequestToChannel(this.node, channel, requestId, action, request, options); } } @@ -395,20 +401,18 @@ public abstract class TcpTransport extends AbstractLifecycleComponent i } try { try { - nodeChannels = connectToChannels(node, connectionProfile); + nodeChannels = openConnection(node, connectionProfile); } catch (Exception e) { logger.trace( (Supplier) () -> new ParameterizedMessage( "failed to connect to [{}], cleaning dangling connections", node), e); throw e; } - // we acquire a connection lock, so no way there is an existing connection - nodeChannels.connectionsEstablished(); connectedNodes.put(node, nodeChannels); if (logger.isDebugEnabled()) { logger.debug("connected to node [{}]", node); } - transportServiceAdapter.raiseNodeConnected(node); + transportServiceAdapter.onNodeConnected(node); } catch (ConnectTransportException e) { throw e; } catch (Exception e) { @@ -419,6 +423,14 @@ public abstract class TcpTransport extends AbstractLifecycleComponent i globalLock.readLock().unlock(); } } + + @Override + public final NodeChannels openConnection(DiscoveryNode node, ConnectionProfile profile) throws IOException { + NodeChannels nodeChannels = connectToChannels(node, profile); + transportServiceAdapter.onConnectionOpened(node); + return nodeChannels; + } + /** * Disconnects from a node, only if the relevant channel is found to be part of the node channels. */ @@ -432,13 +444,7 @@ public abstract class TcpTransport extends AbstractLifecycleComponent i // check again within the connection lock, if its still applicable to remove it if (nodeChannels != null && nodeChannels.hasChannel(channel)) { connectedNodes.remove(node); - try { - logger.debug("disconnecting from [{}], {}", node, reason); - IOUtils.closeWhileHandlingException(nodeChannels); - } finally { - logger.trace("disconnected from [{}], {}", node, reason); - transportServiceAdapter.raiseNodeDisconnected(node); - } + closeAndNotify(node, nodeChannels, reason); return true; } } @@ -446,6 +452,16 @@ public abstract class TcpTransport extends AbstractLifecycleComponent i return false; } + private void closeAndNotify(DiscoveryNode node, NodeChannels nodeChannels, String reason) { + try { + logger.debug("disconnecting from [{}], {}", node, reason); + IOUtils.closeWhileHandlingException(nodeChannels); + } finally { + logger.trace("disconnected from [{}], {}", node, reason); + transportServiceAdapter.onNodeDisconnected(node); + } + } + /** * Disconnects from a node if a channel is found as part of that nodes channels. */ @@ -469,12 +485,13 @@ public abstract class TcpTransport extends AbstractLifecycleComponent i }); } - protected Channel nodeChannel(DiscoveryNode node, TransportRequestOptions options) throws ConnectTransportException { + @Override + public Connection getConnection(DiscoveryNode node) { NodeChannels nodeChannels = connectedNodes.get(node); if (nodeChannels == null) { throw new NodeNotConnectedException(node, "Node not connected"); } - return nodeChannels.channel(options.type()); + return nodeChannels; } @Override @@ -482,13 +499,7 @@ public abstract class TcpTransport extends AbstractLifecycleComponent i try (Releasable ignored = connectionLock.acquire(node.getId())) { NodeChannels nodeChannels = connectedNodes.remove(node); if (nodeChannels != null) { - try { - logger.debug("disconnecting from [{}] due to explicit disconnect call", node); - IOUtils.closeWhileHandlingException(nodeChannels); - } finally { - logger.trace("disconnected from [{}] due to explicit disconnect call", node); - transportServiceAdapter.raiseNodeDisconnected(node); - } + closeAndNotify(node, nodeChannels, "due to explicit disconnect call"); } } } @@ -883,10 +894,10 @@ public abstract class TcpTransport extends AbstractLifecycleComponent i return compress && (!(request instanceof BytesTransportRequest)); } - @Override - public void sendRequest(final DiscoveryNode node, final long requestId, final String action, final TransportRequest request, - TransportRequestOptions options) throws IOException, TransportException { - Channel targetChannel = nodeChannel(node, options); + + protected void sendRequestToChannel(DiscoveryNode node, Channel targetChannel, final long requestId, final String action, + final TransportRequest request, TransportRequestOptions options) throws IOException, + TransportException { if (compress) { options = TransportRequestOptions.builder(options).withCompress(true).build(); } diff --git a/core/src/main/java/org/elasticsearch/transport/Transport.java b/core/src/main/java/org/elasticsearch/transport/Transport.java index 96dcd61483d..b0821c609c0 100644 --- a/core/src/main/java/org/elasticsearch/transport/Transport.java +++ b/core/src/main/java/org/elasticsearch/transport/Transport.java @@ -28,6 +28,7 @@ import org.elasticsearch.common.settings.Setting.Property; import org.elasticsearch.common.transport.BoundTransportAddress; import org.elasticsearch.common.transport.TransportAddress; +import java.io.Closeable; import java.io.IOException; import java.net.UnknownHostException; import java.util.List; @@ -35,7 +36,6 @@ import java.util.Map; public interface Transport extends LifecycleComponent { - Setting TRANSPORT_TCP_COMPRESS = Setting.boolSetting("transport.tcp.compress", false, Property.NodeScope); void transportServiceAdapter(TransportServiceAdapter service); @@ -72,13 +72,6 @@ public interface Transport extends LifecycleComponent { */ void disconnectFromNode(DiscoveryNode node); - /** - * Sends the request to the node. - * @throws NodeNotConnectedException if the given node is not connected - */ - void sendRequest(DiscoveryNode node, long requestId, String action, TransportRequest request, TransportRequestOptions options) throws - IOException, TransportException; - /** * Returns count of currently open connections */ @@ -89,4 +82,39 @@ public interface Transport extends LifecycleComponent { default CircuitBreaker getInFlightRequestBreaker() { return new NoopCircuitBreaker("in-flight-noop"); } + + /** + * Returns a connection for the given node if the node is connected. + * Connections returned from this method must not be closed. The lifecylce of this connection is maintained by the Transport + * implementation. + * + * @throws NodeNotConnectedException if the node is not connected + * @see #connectToNode(DiscoveryNode, ConnectionProfile) + */ + Connection getConnection(DiscoveryNode node); + + /** + * Opens a new connection to the given node and returns it. In contrast to {@link #connectToNode(DiscoveryNode, ConnectionProfile)} + * the returned connection is not managed by the transport implementation. This connection must be closed once it's not needed anymore. + * This connection type can be used to execute a handshake between two nodes before the node will be published via + * {@link #connectToNode(DiscoveryNode, ConnectionProfile)}. + */ + Connection openConnection(DiscoveryNode node, ConnectionProfile profile) throws IOException; + + /** + * A unidirectional connection to a {@link DiscoveryNode} + */ + interface Connection extends Closeable { + /** + * The node this connection is associated with + */ + DiscoveryNode getNode(); + + /** + * Sends the request to the node this connection is associated with + * @throws NodeNotConnectedException if the given node is not connected + */ + void sendRequest(long requestId, String action, TransportRequest request, TransportRequestOptions options) throws + IOException, TransportException; + } } diff --git a/core/src/main/java/org/elasticsearch/transport/TransportConnectionListener.java b/core/src/main/java/org/elasticsearch/transport/TransportConnectionListener.java index 32bb9ca4ec2..3f277a0ee11 100644 --- a/core/src/main/java/org/elasticsearch/transport/TransportConnectionListener.java +++ b/core/src/main/java/org/elasticsearch/transport/TransportConnectionListener.java @@ -23,7 +23,18 @@ import org.elasticsearch.cluster.node.DiscoveryNode; public interface TransportConnectionListener { - void onNodeConnected(DiscoveryNode node); + /** + * Called once a node connection is opened and registered. + */ + default void onNodeConnected(DiscoveryNode node) {} - void onNodeDisconnected(DiscoveryNode node); + /** + * Called once a node connection is closed and unregistered. + */ + default void onNodeDisconnected(DiscoveryNode node) {} + + /** + * Called once a node connection is opened. + */ + default void onConnectionOpened(DiscoveryNode node) {} } diff --git a/core/src/main/java/org/elasticsearch/transport/TransportInterceptor.java b/core/src/main/java/org/elasticsearch/transport/TransportInterceptor.java index 7b478ce48e6..8dfcf39bd9d 100644 --- a/core/src/main/java/org/elasticsearch/transport/TransportInterceptor.java +++ b/core/src/main/java/org/elasticsearch/transport/TransportInterceptor.java @@ -51,10 +51,11 @@ public interface TransportInterceptor { /** * A simple interface to decorate - * {@link #sendRequest(DiscoveryNode, String, TransportRequest, TransportRequestOptions, TransportResponseHandler)} + * {@link #sendRequest(Transport.Connection, String, TransportRequest, TransportRequestOptions, TransportResponseHandler)} */ interface AsyncSender { - void sendRequest(final DiscoveryNode node, final String action, final TransportRequest request, - final TransportRequestOptions options, TransportResponseHandler handler); + void sendRequest(Transport.Connection connection, final String action, + final TransportRequest request, final TransportRequestOptions options, + TransportResponseHandler handler); } } diff --git a/core/src/main/java/org/elasticsearch/transport/TransportService.java b/core/src/main/java/org/elasticsearch/transport/TransportService.java index c15735ea1de..543cb5c940e 100644 --- a/core/src/main/java/org/elasticsearch/transport/TransportService.java +++ b/core/src/main/java/org/elasticsearch/transport/TransportService.java @@ -121,6 +121,22 @@ public class TransportService extends AbstractLifecycleComponent { /** if set will call requests sent to this id to shortcut and executed locally */ volatile DiscoveryNode localNode = null; + private final Transport.Connection localNodeConnection = new Transport.Connection() { + @Override + public DiscoveryNode getNode() { + return localNode; + } + + @Override + public void sendRequest(long requestId, String action, TransportRequest request, TransportRequestOptions options) + throws IOException, TransportException { + sendLocalRequest(requestId, action, request); + } + + @Override + public void close() throws IOException { + } + }; /** * Build the service. @@ -297,22 +313,6 @@ public class TransportService extends AbstractLifecycleComponent { transport.connectToNode(node, connectionProfile); } - /** - * Lightly connect to the specified node, and handshake cluster - * name and version - * - * @param node the node to connect to - * @param handshakeTimeout handshake timeout - * @return the connected node with version set - * @throws ConnectTransportException if the connection or the - * handshake failed - */ - public DiscoveryNode connectToNodeAndHandshake( - final DiscoveryNode node, - final long handshakeTimeout) throws ConnectTransportException { - return connectToNodeAndHandshake(node, handshakeTimeout, true); - } - /** * Lightly connect to the specified node, returning updated node * information. The handshake will fail if the cluster name on the @@ -321,50 +321,45 @@ public class TransportService extends AbstractLifecycleComponent { * * @param node the node to connect to * @param handshakeTimeout handshake timeout - * @param checkClusterName whether or not to ignore cluster name - * mismatches * @return the connected node * @throws ConnectTransportException if the connection failed * @throws IllegalStateException if the handshake failed */ public DiscoveryNode connectToNodeAndHandshake( - final DiscoveryNode node, - final long handshakeTimeout, - final boolean checkClusterName) { + final DiscoveryNode node, + final long handshakeTimeout) throws IOException { if (node.equals(localNode)) { return localNode; } - transport.connectToNode(node, ConnectionProfile.LIGHT_PROFILE); - try { - return handshake(node, handshakeTimeout, checkClusterName); - } catch (ConnectTransportException | IllegalStateException e) { - transport.disconnectFromNode(node); - throw e; + DiscoveryNode handshakeNode; + try (Transport.Connection connection = transport.openConnection(node, ConnectionProfile.LIGHT_PROFILE)) { + handshakeNode = handshake(connection, handshakeTimeout); } + connectToNode(node, ConnectionProfile.LIGHT_PROFILE); + return handshakeNode; } private DiscoveryNode handshake( - final DiscoveryNode node, - final long handshakeTimeout, - final boolean checkClusterName) throws ConnectTransportException { + final Transport.Connection connection, + final long handshakeTimeout) throws ConnectTransportException { final HandshakeResponse response; + final DiscoveryNode node = connection.getNode(); try { - response = this.submitRequest( - node, - HANDSHAKE_ACTION_NAME, - HandshakeRequest.INSTANCE, - TransportRequestOptions.builder().withTimeout(handshakeTimeout).build(), + PlainTransportFuture futureHandler = new PlainTransportFuture<>( new FutureTransportResponseHandler() { - @Override - public HandshakeResponse newInstance() { - return new HandshakeResponse(); - } - }).txGet(); + @Override + public HandshakeResponse newInstance() { + return new HandshakeResponse(); + } + }); + sendRequest(connection, HANDSHAKE_ACTION_NAME, HandshakeRequest.INSTANCE, + TransportRequestOptions.builder().withTimeout(handshakeTimeout).build(), futureHandler); + response = futureHandler.txGet(); } catch (Exception e) { throw new IllegalStateException("handshake failed with " + node, e); } - if (checkClusterName && !Objects.equals(clusterName, response.clusterName)) { + if (!Objects.equals(clusterName, response.clusterName)) { throw new IllegalStateException("handshake failed, mismatched cluster name [" + response.clusterName + "] - " + node); } else if (response.version.isCompatible((localNode != null ? localNode.getVersion() : Version.CURRENT)) == false) { throw new IllegalStateException("handshake failed, incompatible version [" + response.version + "] - " + node); @@ -437,21 +432,59 @@ public class TransportService extends AbstractLifecycleComponent { TransportRequestOptions options, TransportResponseHandler handler) throws TransportException { PlainTransportFuture futureHandler = new PlainTransportFuture<>(handler); - sendRequest(node, action, request, options, futureHandler); + try { + Transport.Connection connection = getConnection(node); + sendRequest(connection, action, request, options, futureHandler); + } catch (NodeNotConnectedException ex) { + // the caller might not handle this so we invoke the handler + futureHandler.handleException(ex); + } return futureHandler; } public void sendRequest(final DiscoveryNode node, final String action, final TransportRequest request, final TransportResponseHandler handler) { - sendRequest(node, action, request, TransportRequestOptions.EMPTY, handler); + try { + Transport.Connection connection = getConnection(node); + sendRequest(connection, action, request, TransportRequestOptions.EMPTY, handler); + } catch (NodeNotConnectedException ex) { + // the caller might not handle this so we invoke the handler + handler.handleException(ex); + } } public final void sendRequest(final DiscoveryNode node, final String action, final TransportRequest request, final TransportRequestOptions options, TransportResponseHandler handler) { - asyncSender.sendRequest(node, action, request, options, handler); + try { + Transport.Connection connection = getConnection(node); + sendRequest(connection, action, request, options, handler); + } catch (NodeNotConnectedException ex) { + // the caller might not handle this so we invoke the handler + handler.handleException(ex); + } + } + + final void sendRequest(final Transport.Connection connection, final String action, + final TransportRequest request, + final TransportRequestOptions options, + TransportResponseHandler handler) { + + asyncSender.sendRequest(connection, action, request, options, handler); + } + + /** + * Returns either a real transport connection or a local node connection if we are using the local node optimization. + * @throws NodeNotConnectedException if the given node is not connected + */ + private Transport.Connection getConnection(DiscoveryNode node) { + if (Objects.requireNonNull(node, "node must be non-null").equals(localNode)) { + return localNodeConnection; + } else { + return transport.getConnection(node); + } } public void sendChildRequest(final DiscoveryNode node, final String action, @@ -467,21 +500,26 @@ public class TransportService extends AbstractLifecycleComponent { request.setParentTask(localNode.getId(), parentTask.getId()); try { taskManager.registerChildTask(parentTask, node.getId()); - sendRequest(node, action, request, options, handler); + final Transport.Connection connection = getConnection(node); + sendRequest(connection, action, request, options, handler); } catch (TaskCancelledException ex) { // The parent task is already cancelled - just fail the request handler.handleException(new TransportException(ex)); + } catch (NodeNotConnectedException ex) { + // the caller might not handle this so we invoke the handler + handler.handleException(ex); } } - private void sendRequestInternal(final DiscoveryNode node, final String action, + private void sendRequestInternal(final Transport.Connection connection, final String action, final TransportRequest request, final TransportRequestOptions options, TransportResponseHandler handler) { - if (node == null) { - throw new IllegalStateException("can't send request to a null node"); + if (connection == null) { + throw new IllegalStateException("can't send request to a null connection"); } + DiscoveryNode node = connection.getNode(); final long requestId = newRequestId(); final TimeoutHandler timeoutHandler; try { @@ -493,7 +531,7 @@ public class TransportService extends AbstractLifecycleComponent { } TransportResponseHandler responseHandler = new ContextRestoreResponseHandler<>(threadPool.getThreadContext().newStoredContext(), handler); - clientHandlers.put(requestId, new RequestHolder<>(responseHandler, node, action, timeoutHandler)); + clientHandlers.put(requestId, new RequestHolder<>(responseHandler, connection.getNode(), action, timeoutHandler)); if (lifecycle.stoppedOrClosed()) { // if we are not started the exception handling will remove the RequestHolder again and calls the handler to notify // the caller. It will only notify if the toStop code hasn't done the work yet. @@ -503,11 +541,7 @@ public class TransportService extends AbstractLifecycleComponent { assert options.timeout() != null; timeoutHandler.future = threadPool.schedule(options.timeout(), ThreadPool.Names.GENERIC, timeoutHandler); } - if (node.equals(localNode)) { - sendLocalRequest(requestId, action, request); - } else { - transport.sendRequest(node, requestId, action, request, options); - } + connection.sendRequest(requestId, action, request, options); // local node optimization happens upstream } catch (final Exception e) { // usually happen either because we failed to connect to the node // or because we failed serializing the message @@ -595,7 +629,6 @@ public class TransportService extends AbstractLifecycleComponent { "failed to notify channel of error message for action [{}]", action), inner); } } - } private boolean shouldTraceAction(String action) { @@ -777,7 +810,7 @@ public class TransportService extends AbstractLifecycleComponent { } @Override - public void raiseNodeConnected(final DiscoveryNode node) { + public void onNodeConnected(final DiscoveryNode node) { threadPool.generic().execute(() -> { for (TransportConnectionListener connectionListener : connectionListeners) { connectionListener.onNodeConnected(node); @@ -786,11 +819,22 @@ public class TransportService extends AbstractLifecycleComponent { } @Override - public void raiseNodeDisconnected(final DiscoveryNode node) { - try { - for (final TransportConnectionListener connectionListener : connectionListeners) { - threadPool.generic().execute(() -> connectionListener.onNodeDisconnected(node)); + public void onConnectionOpened(DiscoveryNode node) { + threadPool.generic().execute(() -> { + for (TransportConnectionListener connectionListener : connectionListeners) { + connectionListener.onConnectionOpened(node); } + }); + } + + @Override + public void onNodeDisconnected(final DiscoveryNode node) { + try { + threadPool.generic().execute( () -> { + for (final TransportConnectionListener connectionListener : connectionListeners) { + connectionListener.onNodeDisconnected(node); + } + }); for (Map.Entry entry : clientHandlers.entrySet()) { RequestHolder holder = entry.getValue(); if (holder.node().equals(node)) { diff --git a/core/src/main/java/org/elasticsearch/transport/TransportServiceAdapter.java b/core/src/main/java/org/elasticsearch/transport/TransportServiceAdapter.java index 34910532a02..70748b01a68 100644 --- a/core/src/main/java/org/elasticsearch/transport/TransportServiceAdapter.java +++ b/core/src/main/java/org/elasticsearch/transport/TransportServiceAdapter.java @@ -21,7 +21,7 @@ package org.elasticsearch.transport; import org.elasticsearch.cluster.node.DiscoveryNode; -public interface TransportServiceAdapter { +public interface TransportServiceAdapter extends TransportConnectionListener { void addBytesReceived(long size); @@ -50,9 +50,4 @@ public interface TransportServiceAdapter { void onRequestReceived(long requestId, String action); RequestHandlerRegistry getRequestHandler(String action); - - void raiseNodeConnected(DiscoveryNode node); - - void raiseNodeDisconnected(DiscoveryNode node); - } diff --git a/core/src/test/java/org/elasticsearch/client/transport/FailAndRetryMockTransport.java b/core/src/test/java/org/elasticsearch/client/transport/FailAndRetryMockTransport.java index 0416f6aff41..fabd0c70f16 100644 --- a/core/src/test/java/org/elasticsearch/client/transport/FailAndRetryMockTransport.java +++ b/core/src/test/java/org/elasticsearch/client/transport/FailAndRetryMockTransport.java @@ -72,48 +72,68 @@ abstract class FailAndRetryMockTransport imp protected abstract ClusterState getMockClusterState(DiscoveryNode node); @Override - @SuppressWarnings("unchecked") - public void sendRequest(DiscoveryNode node, long requestId, String action, TransportRequest request, TransportRequestOptions options) - throws IOException, TransportException { - - //we make sure that nodes get added to the connected ones when calling addTransportAddress, by returning proper nodes info - if (connectMode) { - if (TransportLivenessAction.NAME.equals(action)) { - TransportResponseHandler transportResponseHandler = transportServiceAdapter.onResponseReceived(requestId); - transportResponseHandler.handleResponse(new LivenessResponse(ClusterName.CLUSTER_NAME_SETTING.getDefault(Settings.EMPTY), - node)); - } else if (ClusterStateAction.NAME.equals(action)) { - TransportResponseHandler transportResponseHandler = transportServiceAdapter.onResponseReceived(requestId); - ClusterState clusterState = getMockClusterState(node); - transportResponseHandler.handleResponse(new ClusterStateResponse(clusterName, clusterState)); - } else { - throw new UnsupportedOperationException("Mock transport does not understand action " + action); + public Connection getConnection(DiscoveryNode node) { + return new Connection() { + @Override + public DiscoveryNode getNode() { + return node; } - return; - } - //once nodes are connected we'll just return errors for each sendRequest call - triedNodes.add(node); + @Override + public void sendRequest(long requestId, String action, TransportRequest request, TransportRequestOptions options) + throws IOException, TransportException { - if (random.nextInt(100) > 10) { - connectTransportExceptions.incrementAndGet(); - throw new ConnectTransportException(node, "node not available"); - } else { - if (random.nextBoolean()) { - failures.incrementAndGet(); - //throw whatever exception that is not a subclass of ConnectTransportException - throw new IllegalStateException(); - } else { - TransportResponseHandler transportResponseHandler = transportServiceAdapter.onResponseReceived(requestId); - if (random.nextBoolean()) { - successes.incrementAndGet(); - transportResponseHandler.handleResponse(newResponse()); + //we make sure that nodes get added to the connected ones when calling addTransportAddress, by returning proper nodes info + if (connectMode) { + if (TransportLivenessAction.NAME.equals(action)) { + TransportResponseHandler transportResponseHandler = transportServiceAdapter.onResponseReceived(requestId); + transportResponseHandler.handleResponse(new LivenessResponse(ClusterName.CLUSTER_NAME_SETTING. + getDefault(Settings.EMPTY), + node)); + } else if (ClusterStateAction.NAME.equals(action)) { + TransportResponseHandler transportResponseHandler = transportServiceAdapter.onResponseReceived(requestId); + ClusterState clusterState = getMockClusterState(node); + transportResponseHandler.handleResponse(new ClusterStateResponse(clusterName, clusterState)); + } else { + throw new UnsupportedOperationException("Mock transport does not understand action " + action); + } + return; + } + + //once nodes are connected we'll just return errors for each sendRequest call + triedNodes.add(node); + + if (random.nextInt(100) > 10) { + connectTransportExceptions.incrementAndGet(); + throw new ConnectTransportException(node, "node not available"); } else { - failures.incrementAndGet(); - transportResponseHandler.handleException(new TransportException("transport exception")); + if (random.nextBoolean()) { + failures.incrementAndGet(); + //throw whatever exception that is not a subclass of ConnectTransportException + throw new IllegalStateException(); + } else { + TransportResponseHandler transportResponseHandler = transportServiceAdapter.onResponseReceived(requestId); + if (random.nextBoolean()) { + successes.incrementAndGet(); + transportResponseHandler.handleResponse(newResponse()); + } else { + failures.incrementAndGet(); + transportResponseHandler.handleException(new TransportException("transport exception")); + } + } } } - } + + @Override + public void close() throws IOException { + + } + }; + } + + @Override + public Connection openConnection(DiscoveryNode node, ConnectionProfile profile) throws IOException { + return getConnection(node); } protected abstract Response newResponse(); diff --git a/core/src/test/java/org/elasticsearch/client/transport/TransportClientHeadersTests.java b/core/src/test/java/org/elasticsearch/client/transport/TransportClientHeadersTests.java index d25ae28cf28..d5ae66c6bd6 100644 --- a/core/src/test/java/org/elasticsearch/client/transport/TransportClientHeadersTests.java +++ b/core/src/test/java/org/elasticsearch/client/transport/TransportClientHeadersTests.java @@ -41,6 +41,7 @@ import org.elasticsearch.plugins.PluginsService; import org.elasticsearch.test.transport.MockTransportService; import org.elasticsearch.threadpool.ThreadPool; import org.elasticsearch.transport.MockTransportClient; +import org.elasticsearch.transport.Transport; import org.elasticsearch.transport.TransportException; import org.elasticsearch.transport.TransportInterceptor; import org.elasticsearch.transport.TransportRequest; @@ -149,12 +150,14 @@ public class TransportClientHeadersTests extends AbstractClientHeadersTestCase { public AsyncSender interceptSender(AsyncSender sender) { return new AsyncSender() { @Override - public void sendRequest(DiscoveryNode node, String action, TransportRequest request, - TransportRequestOptions options, TransportResponseHandler handler) { + public void sendRequest(Transport.Connection connection, String action, + TransportRequest request, + TransportRequestOptions options, + TransportResponseHandler handler) { if (TransportLivenessAction.NAME.equals(action)) { assertHeaders(threadPool); ((TransportResponseHandler) handler).handleResponse( - new LivenessResponse(new ClusterName("cluster1"), node)); + new LivenessResponse(new ClusterName("cluster1"), connection.getNode())); return; } if (ClusterStateAction.NAME.equals(action)) { diff --git a/core/src/test/java/org/elasticsearch/client/transport/TransportClientNodesServiceTests.java b/core/src/test/java/org/elasticsearch/client/transport/TransportClientNodesServiceTests.java index f513660de95..eaaafe1e1ec 100644 --- a/core/src/test/java/org/elasticsearch/client/transport/TransportClientNodesServiceTests.java +++ b/core/src/test/java/org/elasticsearch/client/transport/TransportClientNodesServiceTests.java @@ -43,6 +43,7 @@ import org.elasticsearch.common.transport.TransportAddress; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.threadpool.TestThreadPool; import org.elasticsearch.threadpool.ThreadPool; +import org.elasticsearch.transport.Transport; import org.elasticsearch.transport.TransportException; import org.elasticsearch.transport.TransportInterceptor; import org.elasticsearch.transport.TransportRequest; @@ -129,12 +130,15 @@ public class TransportClientNodesServiceTests extends ESTestCase { public AsyncSender interceptSender(AsyncSender sender) { return new AsyncSender() { @Override - public void sendRequest(DiscoveryNode node, String action, TransportRequest request, - TransportRequestOptions options, TransportResponseHandler handler) { + public void sendRequest(Transport.Connection connection, String action, + TransportRequest request, + TransportRequestOptions options, + TransportResponseHandler handler) { if (TransportLivenessAction.NAME.equals(action)) { - sender.sendRequest(node, action, request, options, wrapLivenessResponseHandler(handler, node, clusterName)); + sender.sendRequest(connection, action, request, options, wrapLivenessResponseHandler(handler, + connection.getNode(), clusterName)); } else { - sender.sendRequest(node, action, request, options, handler); + sender.sendRequest(connection, action, request, options, handler); } } }; diff --git a/core/src/test/java/org/elasticsearch/cluster/ClusterInfoServiceIT.java b/core/src/test/java/org/elasticsearch/cluster/ClusterInfoServiceIT.java index 3d3e87db083..637b6733e22 100644 --- a/core/src/test/java/org/elasticsearch/cluster/ClusterInfoServiceIT.java +++ b/core/src/test/java/org/elasticsearch/cluster/ClusterInfoServiceIT.java @@ -48,6 +48,8 @@ import org.elasticsearch.plugins.Plugin; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.test.InternalTestCluster; import org.elasticsearch.test.transport.MockTransportService; +import org.elasticsearch.transport.ConnectionProfile; +import org.elasticsearch.transport.Transport; import org.elasticsearch.transport.TransportException; import org.elasticsearch.transport.TransportRequest; import org.elasticsearch.transport.TransportRequestOptions; @@ -196,15 +198,15 @@ public class ClusterInfoServiceIT extends ESIntegTestCase { for (DiscoveryNode node : internalTestCluster.clusterService().state().getNodes()) { mockTransportService.addDelegate(internalTestCluster.getInstance(TransportService.class, node.getName()), new MockTransportService.DelegateTransport(mockTransportService.original()) { @Override - public void sendRequest(DiscoveryNode node, long requestId, String action, TransportRequest request, - TransportRequestOptions options) throws IOException, TransportException { + protected void sendRequest(Connection connection, long requestId, String action, TransportRequest request, + TransportRequestOptions options) throws IOException { if (blockedActions.contains(action)) { if (timeout.get()) { logger.info("dropping [{}] to [{}]", action, node); return; } } - super.sendRequest(node, requestId, action, request, options); + super.sendRequest(connection, requestId, action, request, options); } }); } diff --git a/core/src/test/java/org/elasticsearch/cluster/NodeConnectionsServiceTests.java b/core/src/test/java/org/elasticsearch/cluster/NodeConnectionsServiceTests.java index 7372218a9ed..d5d3099c4d0 100644 --- a/core/src/test/java/org/elasticsearch/cluster/NodeConnectionsServiceTests.java +++ b/core/src/test/java/org/elasticsearch/cluster/NodeConnectionsServiceTests.java @@ -214,9 +214,29 @@ public class NodeConnectionsServiceTests extends ESTestCase { } @Override - public void sendRequest(DiscoveryNode node, long requestId, String action, TransportRequest request, - TransportRequestOptions options) throws IOException, TransportException { + public Connection getConnection(DiscoveryNode node) { + return new Connection() { + @Override + public DiscoveryNode getNode() { + return node; + } + @Override + public void sendRequest(long requestId, String action, TransportRequest request, TransportRequestOptions options) + throws IOException, TransportException { + + } + + @Override + public void close() throws IOException { + + } + }; + } + + @Override + public Connection openConnection(DiscoveryNode node, ConnectionProfile profile) throws IOException { + return getConnection(node); } @Override diff --git a/core/src/test/java/org/elasticsearch/discovery/DiscoveryWithServiceDisruptionsIT.java b/core/src/test/java/org/elasticsearch/discovery/DiscoveryWithServiceDisruptionsIT.java index 9a54419bc5c..ce57e7be05b 100644 --- a/core/src/test/java/org/elasticsearch/discovery/DiscoveryWithServiceDisruptionsIT.java +++ b/core/src/test/java/org/elasticsearch/discovery/DiscoveryWithServiceDisruptionsIT.java @@ -84,7 +84,9 @@ import org.elasticsearch.test.disruption.SingleNodeDisruption; import org.elasticsearch.test.disruption.SlowClusterStateProcessing; import org.elasticsearch.test.junit.annotations.TestLogging; import org.elasticsearch.test.transport.MockTransportService; +import org.elasticsearch.transport.ConnectionProfile; import org.elasticsearch.transport.TcpTransport; +import org.elasticsearch.transport.Transport; import org.elasticsearch.transport.TransportException; import org.elasticsearch.transport.TransportRequest; import org.elasticsearch.transport.TransportRequestOptions; @@ -953,13 +955,19 @@ public class DiscoveryWithServiceDisruptionsIT extends ESIntegTestCase { nonMasterTransportService.addDelegate(masterTranspotService, new MockTransportService.DelegateTransport(nonMasterTransportService .original()) { @Override - public void sendRequest(DiscoveryNode node, long requestId, String action, TransportRequest request, TransportRequestOptions - options) throws IOException, TransportException { + protected void sendRequest(Connection connection, long requestId, String action, TransportRequest request, + TransportRequestOptions options) throws IOException { if (action.equals(MembershipAction.DISCOVERY_JOIN_ACTION_NAME)) { countDownLatch.countDown(); } - super.sendRequest(node, requestId, action, request, options); + super.sendRequest(connection, requestId, action, request, options); } + + @Override + public Connection openConnection(DiscoveryNode node, ConnectionProfile profile) throws IOException { + return super.openConnection(node, profile); + } + }); countDownLatch.await(); diff --git a/core/src/test/java/org/elasticsearch/discovery/zen/UnicastZenPingTests.java b/core/src/test/java/org/elasticsearch/discovery/zen/UnicastZenPingTests.java index c9c1e984182..9886abb900a 100644 --- a/core/src/test/java/org/elasticsearch/discovery/zen/UnicastZenPingTests.java +++ b/core/src/test/java/org/elasticsearch/discovery/zen/UnicastZenPingTests.java @@ -579,6 +579,10 @@ public class UnicastZenPingTests extends ESTestCase { @Override public void onNodeConnected(DiscoveryNode node) { + } + + @Override + public void onConnectionOpened(DiscoveryNode node) { counters.computeIfAbsent(node.getAddress(), k -> new AtomicInteger()); counters.get(node.getAddress()).incrementAndGet(); } diff --git a/core/src/test/java/org/elasticsearch/index/IndexWithShadowReplicasIT.java b/core/src/test/java/org/elasticsearch/index/IndexWithShadowReplicasIT.java index d5a003003ac..e0f5d2a4377 100644 --- a/core/src/test/java/org/elasticsearch/index/IndexWithShadowReplicasIT.java +++ b/core/src/test/java/org/elasticsearch/index/IndexWithShadowReplicasIT.java @@ -57,6 +57,8 @@ import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.test.InternalTestCluster; import org.elasticsearch.test.junit.annotations.TestLogging; import org.elasticsearch.test.transport.MockTransportService; +import org.elasticsearch.transport.ConnectionProfile; +import org.elasticsearch.transport.Transport; import org.elasticsearch.transport.TransportException; import org.elasticsearch.transport.TransportRequest; import org.elasticsearch.transport.TransportRequestOptions; @@ -493,14 +495,13 @@ public class IndexWithShadowReplicasIT extends ESIntegTestCase { new MockTransportService.DelegateTransport(mockTransportService.original()) { @Override - public void sendRequest(DiscoveryNode node, long requestId, String action, - TransportRequest request, TransportRequestOptions options) - throws IOException, TransportException { + protected void sendRequest(Connection connection, long requestId, String action, TransportRequest request, + TransportRequestOptions options) throws IOException { if (keepFailing.get() && action.equals(PeerRecoveryTargetService.Actions.TRANSLOG_OPS)) { logger.info("--> failing translog ops"); throw new ElasticsearchException("failing on purpose"); } - super.sendRequest(node, requestId, action, request, options); + super.sendRequest(connection, requestId, action, request, options); } }); diff --git a/core/src/test/java/org/elasticsearch/index/store/CorruptedFileIT.java b/core/src/test/java/org/elasticsearch/index/store/CorruptedFileIT.java index d1be0d77613..1d8534246c0 100644 --- a/core/src/test/java/org/elasticsearch/index/store/CorruptedFileIT.java +++ b/core/src/test/java/org/elasticsearch/index/store/CorruptedFileIT.java @@ -73,6 +73,8 @@ import org.elasticsearch.test.MockIndexEventListener; import org.elasticsearch.test.junit.annotations.TestLogging; import org.elasticsearch.test.store.MockFSIndexStore; import org.elasticsearch.test.transport.MockTransportService; +import org.elasticsearch.transport.ConnectionProfile; +import org.elasticsearch.transport.Transport; import org.elasticsearch.transport.TransportException; import org.elasticsearch.transport.TransportRequest; import org.elasticsearch.transport.TransportRequestOptions; @@ -348,7 +350,7 @@ public class CorruptedFileIT extends ESIntegTestCase { mockTransportService.addDelegate(internalCluster().getInstance(TransportService.class, unluckyNode.getNode().getName()), new MockTransportService.DelegateTransport(mockTransportService.original()) { @Override - public void sendRequest(DiscoveryNode node, long requestId, String action, TransportRequest request, TransportRequestOptions options) throws IOException, TransportException { + protected void sendRequest(Connection connection, long requestId, String action, TransportRequest request, TransportRequestOptions options) throws IOException { if (corrupt.get() && action.equals(PeerRecoveryTargetService.Actions.FILE_CHUNK)) { RecoveryFileChunkRequest req = (RecoveryFileChunkRequest) request; byte[] array = BytesRef.deepCopyOf(req.content().toBytesRef()).bytes; @@ -356,7 +358,7 @@ public class CorruptedFileIT extends ESIntegTestCase { array[i] = (byte) ~array[i]; // flip one byte in the content hasCorrupted.countDown(); } - super.sendRequest(node, requestId, action, request, options); + super.sendRequest(connection, requestId, action, request, options); } }); } @@ -420,7 +422,7 @@ public class CorruptedFileIT extends ESIntegTestCase { mockTransportService.addDelegate(internalCluster().getInstance(TransportService.class, unluckyNode.getNode().getName()), new MockTransportService.DelegateTransport(mockTransportService.original()) { @Override - public void sendRequest(DiscoveryNode node, long requestId, String action, TransportRequest request, TransportRequestOptions options) throws IOException, TransportException { + protected void sendRequest(Connection connection, long requestId, String action, TransportRequest request, TransportRequestOptions options) throws IOException { if (action.equals(PeerRecoveryTargetService.Actions.FILE_CHUNK)) { RecoveryFileChunkRequest req = (RecoveryFileChunkRequest) request; if (truncate && req.length() > 1) { @@ -434,7 +436,7 @@ public class CorruptedFileIT extends ESIntegTestCase { array[i] = (byte) ~array[i]; // flip one byte in the content } } - super.sendRequest(node, requestId, action, request, options); + super.sendRequest(connection, requestId, action, request, options); } }); } diff --git a/core/src/test/java/org/elasticsearch/index/store/ExceptionRetryIT.java b/core/src/test/java/org/elasticsearch/index/store/ExceptionRetryIT.java index aa9de8de871..373937784b3 100644 --- a/core/src/test/java/org/elasticsearch/index/store/ExceptionRetryIT.java +++ b/core/src/test/java/org/elasticsearch/index/store/ExceptionRetryIT.java @@ -39,6 +39,7 @@ import org.elasticsearch.search.SearchHit; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.test.transport.MockTransportService; import org.elasticsearch.transport.ConnectTransportException; +import org.elasticsearch.transport.Transport; import org.elasticsearch.transport.TransportException; import org.elasticsearch.transport.TransportRequest; import org.elasticsearch.transport.TransportRequestOptions; @@ -99,14 +100,13 @@ public class ExceptionRetryIT extends ESIntegTestCase { dataNode.getNode().getName())); mockTransportService.addDelegate(internalCluster().getInstance(TransportService.class, unluckyNode.getNode().getName()), new MockTransportService.DelegateTransport(mockTransportService.original()) { - @Override - public void sendRequest(DiscoveryNode node, long requestId, String action, TransportRequest request, - TransportRequestOptions options) throws IOException, TransportException { - super.sendRequest(node, requestId, action, request, options); + protected void sendRequest(Connection connection, long requestId, String action, TransportRequest request, + TransportRequestOptions options) throws IOException { + super.sendRequest(connection, requestId, action, request, options); if (action.equals(TransportShardBulkAction.ACTION_NAME) && exceptionThrown.compareAndSet(false, true)) { logger.debug("Throw ConnectTransportException"); - throw new ConnectTransportException(node, action); + throw new ConnectTransportException(connection.getNode(), action); } } }); diff --git a/core/src/test/java/org/elasticsearch/indices/recovery/IndexRecoveryIT.java b/core/src/test/java/org/elasticsearch/indices/recovery/IndexRecoveryIT.java index e0a6111833b..4e3c516aa72 100644 --- a/core/src/test/java/org/elasticsearch/indices/recovery/IndexRecoveryIT.java +++ b/core/src/test/java/org/elasticsearch/indices/recovery/IndexRecoveryIT.java @@ -640,16 +640,17 @@ public class IndexRecoveryIT extends ESIntegTestCase { } @Override - public void sendRequest(DiscoveryNode node, long requestId, String action, TransportRequest request, TransportRequestOptions options) throws IOException, TransportException { + protected void sendRequest(Connection connection, long requestId, String action, TransportRequest request, + TransportRequestOptions options) throws IOException { if (recoveryActionToBlock.equals(action) || requestBlocked.getCount() == 0) { logger.info("--> preventing {} request", action); requestBlocked.countDown(); if (dropRequests) { return; } - throw new ConnectTransportException(node, "DISCONNECT: prevented " + action + " request"); + throw new ConnectTransportException(connection.getNode(), "DISCONNECT: prevented " + action + " request"); } - transport.sendRequest(node, requestId, action, request, options); + super.sendRequest(connection, requestId, action, request, options); } } } diff --git a/core/src/test/java/org/elasticsearch/indices/store/IndicesStoreIntegrationIT.java b/core/src/test/java/org/elasticsearch/indices/store/IndicesStoreIntegrationIT.java index d8e7e7c4ac3..29845e5396d 100644 --- a/core/src/test/java/org/elasticsearch/indices/store/IndicesStoreIntegrationIT.java +++ b/core/src/test/java/org/elasticsearch/indices/store/IndicesStoreIntegrationIT.java @@ -56,6 +56,7 @@ import org.elasticsearch.test.disruption.BlockClusterStateProcessing; import org.elasticsearch.test.disruption.SingleNodeDisruption; import org.elasticsearch.test.transport.MockTransportService; import org.elasticsearch.transport.ConnectTransportException; +import org.elasticsearch.transport.Transport; import org.elasticsearch.transport.TransportException; import org.elasticsearch.transport.TransportRequest; import org.elasticsearch.transport.TransportRequestOptions; @@ -198,13 +199,13 @@ public class IndicesStoreIntegrationIT extends ESIntegTestCase { final CountDownLatch shardActiveRequestSent = new CountDownLatch(1); transportServiceNode_1.addDelegate(transportServiceNode_2, new MockTransportService.DelegateTransport(transportServiceNode_1.original()) { @Override - public void sendRequest(DiscoveryNode node, long requestId, String action, TransportRequest request, TransportRequestOptions options) throws IOException, TransportException { + protected void sendRequest(Connection connection, long requestId, String action, TransportRequest request, TransportRequestOptions options) throws IOException { if (action.equals("internal:index/shard/exists") && shardActiveRequestSent.getCount() > 0) { shardActiveRequestSent.countDown(); logger.info("prevent shard active request from being sent"); - throw new ConnectTransportException(node, "DISCONNECT: simulated"); + throw new ConnectTransportException(connection.getNode(), "DISCONNECT: simulated"); } - super.sendRequest(node, requestId, action, request, options); + super.sendRequest(connection, requestId, action, request, options); } }); diff --git a/core/src/test/java/org/elasticsearch/recovery/RelocationIT.java b/core/src/test/java/org/elasticsearch/recovery/RelocationIT.java index 2017b2796b4..f4de4bdea0b 100644 --- a/core/src/test/java/org/elasticsearch/recovery/RelocationIT.java +++ b/core/src/test/java/org/elasticsearch/recovery/RelocationIT.java @@ -533,20 +533,20 @@ public class RelocationIT extends ESIntegTestCase { } @Override - public void sendRequest(DiscoveryNode node, long requestId, String action, TransportRequest request, TransportRequestOptions options) throws IOException, TransportException { + protected void sendRequest(Connection connection, long requestId, String action, TransportRequest request, TransportRequestOptions options) throws IOException { if (action.equals(PeerRecoveryTargetService.Actions.FILE_CHUNK)) { RecoveryFileChunkRequest chunkRequest = (RecoveryFileChunkRequest) request; if (chunkRequest.name().startsWith(IndexFileNames.SEGMENTS)) { // corrupting the segments_N files in order to make sure future recovery re-send files - logger.debug("corrupting [{}] to {}. file name: [{}]", action, node, chunkRequest.name()); + logger.debug("corrupting [{}] to {}. file name: [{}]", action, connection.getNode(), chunkRequest.name()); assert chunkRequest.content().toBytesRef().bytes == chunkRequest.content().toBytesRef().bytes : "no internal reference!!"; byte[] array = chunkRequest.content().toBytesRef().bytes; array[0] = (byte) ~array[0]; // flip one byte in the content corruptionCount.countDown(); } - transport.sendRequest(node, requestId, action, request, options); + super.sendRequest(connection, requestId, action, request, options); } else { - transport.sendRequest(node, requestId, action, request, options); + super.sendRequest(connection, requestId, action, request, options); } } } diff --git a/core/src/test/java/org/elasticsearch/recovery/TruncatedRecoveryIT.java b/core/src/test/java/org/elasticsearch/recovery/TruncatedRecoveryIT.java index b81de043921..564eca54d8e 100644 --- a/core/src/test/java/org/elasticsearch/recovery/TruncatedRecoveryIT.java +++ b/core/src/test/java/org/elasticsearch/recovery/TruncatedRecoveryIT.java @@ -36,6 +36,8 @@ import org.elasticsearch.node.RecoverySettingsChunkSizePlugin; import org.elasticsearch.plugins.Plugin; import org.elasticsearch.test.ESIntegTestCase; import org.elasticsearch.test.transport.MockTransportService; +import org.elasticsearch.transport.ConnectionProfile; +import org.elasticsearch.transport.Transport; import org.elasticsearch.transport.TransportException; import org.elasticsearch.transport.TransportRequest; import org.elasticsearch.transport.TransportRequestOptions; @@ -121,7 +123,8 @@ public class TruncatedRecoveryIT extends ESIntegTestCase { mockTransportService.addDelegate(internalCluster().getInstance(TransportService.class, unluckyNode.getNode().getName()), new MockTransportService.DelegateTransport(mockTransportService.original()) { @Override - public void sendRequest(DiscoveryNode node, long requestId, String action, TransportRequest request, TransportRequestOptions options) throws IOException, TransportException { + protected void sendRequest(Connection connection, long requestId, String action, TransportRequest request, + TransportRequestOptions options) throws IOException { if (action.equals(PeerRecoveryTargetService.Actions.FILE_CHUNK)) { RecoveryFileChunkRequest req = (RecoveryFileChunkRequest) request; logger.debug("file chunk [{}] lastChunk: {}", req, req.lastChunk()); @@ -130,7 +133,7 @@ public class TruncatedRecoveryIT extends ESIntegTestCase { throw new RuntimeException("Caused some truncated files for fun and profit"); } } - super.sendRequest(node, requestId, action, request, options); + super.sendRequest(connection, requestId, action, request, options); } }); } diff --git a/core/src/test/java/org/elasticsearch/transport/TCPTransportTests.java b/core/src/test/java/org/elasticsearch/transport/TCPTransportTests.java index 3df135df236..f081cfa45e4 100644 --- a/core/src/test/java/org/elasticsearch/transport/TCPTransportTests.java +++ b/core/src/test/java/org/elasticsearch/transport/TCPTransportTests.java @@ -193,7 +193,7 @@ public class TCPTransportTests extends ESTestCase { @Override protected NodeChannels connectToChannels(DiscoveryNode node, ConnectionProfile profile) throws IOException { - return new NodeChannels(new Object[profile.getNumConnections()], profile); + return new NodeChannels(node, new Object[profile.getNumConnections()], profile); } @Override @@ -207,13 +207,14 @@ public class TCPTransportTests extends ESTestCase { } @Override - protected Object nodeChannel(DiscoveryNode node, TransportRequestOptions options) throws ConnectTransportException { - return new NodeChannels(new Object[ConnectionProfile.LIGHT_PROFILE.getNumConnections()], + public Connection getConnection(DiscoveryNode node) { + return new NodeChannels(node, new Object[ConnectionProfile.LIGHT_PROFILE.getNumConnections()], ConnectionProfile.LIGHT_PROFILE); } }; DiscoveryNode node = new DiscoveryNode("foo", buildNewFakeTransportAddress(), Version.CURRENT); - transport.sendRequest(node, 42, "foobar", request, TransportRequestOptions.EMPTY); + Transport.Connection connection = transport.getConnection(node); + connection.sendRequest(42, "foobar", request, TransportRequestOptions.EMPTY); assertTrue(called.get()); } finally { ThreadPool.terminate(threadPool, 10, TimeUnit.SECONDS); diff --git a/core/src/test/java/org/elasticsearch/transport/TransportServiceHandshakeTests.java b/core/src/test/java/org/elasticsearch/transport/TransportServiceHandshakeTests.java index 45aca7fe2c0..16735f34efe 100644 --- a/core/src/test/java/org/elasticsearch/transport/TransportServiceHandshakeTests.java +++ b/core/src/test/java/org/elasticsearch/transport/TransportServiceHandshakeTests.java @@ -35,6 +35,7 @@ import org.junit.After; import org.junit.AfterClass; import org.junit.BeforeClass; +import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -97,7 +98,7 @@ public class TransportServiceHandshakeTests extends ESTestCase { threadPool = null; } - public void testConnectToNodeLight() { + public void testConnectToNodeLight() throws IOException { Settings settings = Settings.builder().put("cluster.name", "test").build(); NetworkHandle handleA = startServices("TS_A", settings, Version.CURRENT); @@ -155,29 +156,6 @@ public class TransportServiceHandshakeTests extends ESTestCase { assertFalse(handleA.transportService.nodeConnected(discoveryNode)); } - public void testIgnoreMismatchedClusterName() { - Settings settings = Settings.builder().put("cluster.name", "a").build(); - - NetworkHandle handleA = startServices("TS_A", settings, Version.CURRENT); - NetworkHandle handleB = - startServices( - "TS_B", - Settings.builder().put("cluster.name", "b").build(), - VersionUtils.randomVersionBetween(random(), Version.CURRENT.minimumCompatibilityVersion(), Version.CURRENT) - ); - DiscoveryNode discoveryNode = new DiscoveryNode( - "", - handleB.discoveryNode.getAddress(), - emptyMap(), - emptySet(), - Version.CURRENT.minimumCompatibilityVersion()); - DiscoveryNode connectedNode = handleA.transportService.connectToNodeAndHandshake(discoveryNode, timeout, false); - assertNotNull(connectedNode); - assertEquals(connectedNode.getName(), "TS_B"); - assertEquals(connectedNode.getVersion(), handleB.discoveryNode.getVersion()); - assertTrue(handleA.transportService.nodeConnected(discoveryNode)); - } - private static class NetworkHandle { private TransportService transportService; private DiscoveryNode discoveryNode; diff --git a/modules/transport-netty4/src/main/java/org/elasticsearch/transport/netty4/Netty4Transport.java b/modules/transport-netty4/src/main/java/org/elasticsearch/transport/netty4/Netty4Transport.java index e1e497a4161..048b1f90015 100644 --- a/modules/transport-netty4/src/main/java/org/elasticsearch/transport/netty4/Netty4Transport.java +++ b/modules/transport-netty4/src/main/java/org/elasticsearch/transport/netty4/Netty4Transport.java @@ -46,7 +46,6 @@ import org.elasticsearch.cluster.node.DiscoveryNode; import org.elasticsearch.common.SuppressForbidden; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.collect.Tuple; -import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.io.stream.NamedWriteableRegistry; import org.elasticsearch.common.lease.Releasables; import org.elasticsearch.common.network.NetworkService; @@ -143,7 +142,6 @@ public class Netty4Transport extends TcpTransport { protected volatile Bootstrap bootstrap; protected final Map serverBootstraps = newConcurrentMap(); - @Inject public Netty4Transport(Settings settings, ThreadPool threadPool, NetworkService networkService, BigArrays bigArrays, NamedWriteableRegistry namedWriteableRegistry, CircuitBreakerService circuitBreakerService) { super("netty", settings, threadPool, bigArrays, circuitBreakerService, namedWriteableRegistry, networkService); @@ -342,7 +340,7 @@ public class Netty4Transport extends TcpTransport { @Override protected NodeChannels connectToChannels(DiscoveryNode node, ConnectionProfile profile) { final Channel[] channels = new Channel[profile.getNumConnections()]; - final NodeChannels nodeChannels = new NodeChannels(channels, profile); + final NodeChannels nodeChannels = new NodeChannels(node, channels, profile); boolean success = false; try { final TimeValue connectTimeout; diff --git a/test/framework/src/main/java/org/elasticsearch/test/transport/CapturingTransport.java b/test/framework/src/main/java/org/elasticsearch/test/transport/CapturingTransport.java index 7dd4569dc56..809fff8bc0d 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/transport/CapturingTransport.java +++ b/test/framework/src/main/java/org/elasticsearch/test/transport/CapturingTransport.java @@ -41,6 +41,7 @@ import org.elasticsearch.transport.TransportResponse; import org.elasticsearch.transport.TransportServiceAdapter; import java.io.IOException; +import java.io.UncheckedIOException; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.Collections; @@ -187,12 +188,26 @@ public class CapturingTransport implements Transport { } @Override - public void sendRequest(DiscoveryNode node, long requestId, String action, TransportRequest request, TransportRequestOptions options) - throws IOException, TransportException { - requests.put(requestId, Tuple.tuple(node, action)); - capturedRequests.add(new CapturedRequest(node, requestId, action, request)); - } + public Connection openConnection(DiscoveryNode node, ConnectionProfile profile) throws IOException { + return new Connection() { + @Override + public DiscoveryNode getNode() { + return node; + } + @Override + public void sendRequest(long requestId, String action, TransportRequest request, TransportRequestOptions options) + throws IOException, TransportException { + requests.put(requestId, Tuple.tuple(node, action)); + capturedRequests.add(new CapturedRequest(node, requestId, action, request)); + } + + @Override + public void close() throws IOException { + + } + }; + } @Override public void transportServiceAdapter(TransportServiceAdapter adapter) { @@ -263,4 +278,13 @@ public class CapturingTransport implements Transport { return Collections.emptyList(); } + @Override + public Connection getConnection(DiscoveryNode node) { + try { + return openConnection(node, null); + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } + } diff --git a/test/framework/src/main/java/org/elasticsearch/test/transport/MockTransportService.java b/test/framework/src/main/java/org/elasticsearch/test/transport/MockTransportService.java index 2790b548b18..fad7203283a 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/transport/MockTransportService.java +++ b/test/framework/src/main/java/org/elasticsearch/test/transport/MockTransportService.java @@ -183,9 +183,9 @@ public final class MockTransportService extends TransportService { } @Override - public void sendRequest(DiscoveryNode node, long requestId, String action, TransportRequest request, - TransportRequestOptions options) throws IOException, TransportException { - throw new ConnectTransportException(node, "DISCONNECT: simulated"); + protected void sendRequest(Connection connection, long requestId, String action, TransportRequest request, + TransportRequestOptions options) throws IOException { + throw new ConnectTransportException(connection.getNode(), "DISCONNECT: simulated"); } }); } @@ -226,13 +226,13 @@ public final class MockTransportService extends TransportService { } @Override - public void sendRequest(DiscoveryNode node, long requestId, String action, TransportRequest request, - TransportRequestOptions options) throws IOException, TransportException { + protected void sendRequest(Connection connection, long requestId, String action, TransportRequest request, + TransportRequestOptions options) throws IOException { if (blockedActions.contains(action)) { logger.info("--> preventing {} request", action); - throw new ConnectTransportException(node, "DISCONNECT: prevented " + action + " request"); + throw new ConnectTransportException(connection.getNode(), "DISCONNECT: prevented " + action + " request"); } - original.sendRequest(node, requestId, action, request, options); + connection.sendRequest(requestId, action, request, options); } }); } @@ -260,8 +260,8 @@ public final class MockTransportService extends TransportService { } @Override - public void sendRequest(DiscoveryNode node, long requestId, String action, TransportRequest request, - TransportRequestOptions options) throws IOException, TransportException { + protected void sendRequest(Connection connection, long requestId, String action, TransportRequest request, + TransportRequestOptions options) throws IOException { // don't send anything, the receiving node is unresponsive } }); @@ -320,13 +320,12 @@ public final class MockTransportService extends TransportService { } @Override - public void sendRequest(final DiscoveryNode node, final long requestId, final String action, TransportRequest request, - final TransportRequestOptions options) throws IOException, TransportException { + protected void sendRequest(Connection connection, long requestId, String action, TransportRequest request, + TransportRequestOptions options) throws IOException { // delayed sending - even if larger then the request timeout to simulated a potential late response from target node - TimeValue delay = getDelay(); if (delay.millis() <= 0) { - original.sendRequest(node, requestId, action, request, options); + connection.sendRequest(requestId, action, request, options); return; } @@ -348,7 +347,7 @@ public final class MockTransportService extends TransportService { @Override protected void doRun() throws IOException { if (requestSent.compareAndSet(false, true)) { - original.sendRequest(node, requestId, action, clonedRequest, options); + connection.sendRequest(requestId, action, clonedRequest, options); } } }; @@ -364,7 +363,6 @@ public final class MockTransportService extends TransportService { } } - @Override public void clearRule() { synchronized (this) { @@ -439,9 +437,13 @@ public final class MockTransportService extends TransportService { } @Override - public void sendRequest(DiscoveryNode node, long requestId, String action, TransportRequest request, - TransportRequestOptions options) throws IOException, TransportException { - getTransport(node).sendRequest(node, requestId, action, request, options); + public Connection getConnection(DiscoveryNode node) { + return getTransport(node).getConnection(node); + } + + @Override + public Connection openConnection(DiscoveryNode node, ConnectionProfile profile) throws IOException { + return getTransport(node).openConnection(node, profile); } } @@ -488,12 +490,6 @@ public final class MockTransportService extends TransportService { transport.disconnectFromNode(node); } - @Override - public void sendRequest(DiscoveryNode node, long requestId, String action, TransportRequest request, - TransportRequestOptions options) throws IOException, TransportException { - transport.sendRequest(node, requestId, action, request, options); - } - @Override public long serverOpen() { return transport.serverOpen(); @@ -504,6 +500,28 @@ public final class MockTransportService extends TransportService { return transport.getLocalAddresses(); } + @Override + public Connection getConnection(DiscoveryNode node) { + return new FilteredConnection(transport.getConnection(node)) { + @Override + public void sendRequest(long requestId, String action, TransportRequest request, TransportRequestOptions options) + throws IOException, TransportException { + DelegateTransport.this.sendRequest(connection, requestId, action, request, options); + } + }; + } + + @Override + public Connection openConnection(DiscoveryNode node, ConnectionProfile profile) throws IOException { + return new FilteredConnection(transport.openConnection(node, profile)) { + @Override + public void sendRequest(long requestId, String action, TransportRequest request, TransportRequestOptions options) + throws IOException, TransportException { + DelegateTransport.this.sendRequest(connection, requestId, action, request, options); + } + }; + } + @Override public Lifecycle.State lifecycleState() { return transport.lifecycleState(); @@ -538,6 +556,11 @@ public final class MockTransportService extends TransportService { public Map profileBoundAddresses() { return transport.profileBoundAddresses(); } + + protected void sendRequest(Transport.Connection connection, long requestId, String action, TransportRequest request, + TransportRequestOptions options) throws IOException { + connection.sendRequest(requestId, action, request, options); + } } /** @@ -641,4 +664,28 @@ public final class MockTransportService extends TransportService { } } } + + private static class FilteredConnection implements Transport.Connection { + protected final Transport.Connection connection; + + private FilteredConnection(Transport.Connection connection) { + this.connection = connection; + } + + @Override + public DiscoveryNode getNode() { + return connection.getNode(); + } + + @Override + public void sendRequest(long requestId, String action, TransportRequest request, TransportRequestOptions options) + throws IOException, TransportException { + connection.sendRequest(requestId, action, request, options); + } + + @Override + public void close() throws IOException { + connection.close(); + } + } } diff --git a/test/framework/src/main/java/org/elasticsearch/transport/AbstractSimpleTransportTestCase.java b/test/framework/src/main/java/org/elasticsearch/transport/AbstractSimpleTransportTestCase.java index 434990afba9..aa2271c9655 100644 --- a/test/framework/src/main/java/org/elasticsearch/transport/AbstractSimpleTransportTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/transport/AbstractSimpleTransportTestCase.java @@ -48,9 +48,7 @@ import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.ServerSocket; -import java.sql.Time; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -568,17 +566,22 @@ public abstract class AbstractSimpleTransportTestCase extends ESTestCase { PlainActionFuture listener = new PlainActionFuture<>(); final String info = sender + "_" + iter; final DiscoveryNode node = nodeB; // capture now - serviceA.sendRequest(node, "test", new TestRequest(info), - new ActionListenerResponseHandler<>(listener, TestResponse::new)); try { - listener.actionGet(); - } catch (ConnectTransportException e) { - // ok! - } catch (Exception e) { - logger.error( - (Supplier) () -> new ParameterizedMessage("caught exception while sending to node {}", node), e); - sendingErrors.add(e); + serviceA.sendRequest(node, "test", new TestRequest(info), + new ActionListenerResponseHandler<>(listener, TestResponse::new)); + try { + listener.actionGet(); + } catch (ConnectTransportException e) { + // ok! + } catch (Exception e) { + logger.error( + (Supplier) () -> new ParameterizedMessage("caught exception while sending to node {}", node), e); + sendingErrors.add(e); + } + } catch (NodeNotConnectedException ex) { + // ok } + } } @@ -1184,16 +1187,13 @@ public abstract class AbstractSimpleTransportTestCase extends ESTestCase { public void testVersionFrom1to1() throws Exception { serviceB.registerRequestHandler("/version", Version1Request::new, ThreadPool.Names.SAME, - new TransportRequestHandler() { - @Override - public void messageReceived(Version1Request request, TransportChannel channel) throws Exception { - assertThat(request.value1, equalTo(1)); - assertThat(request.value2, equalTo(2)); - Version1Response response = new Version1Response(); - response.value1 = 1; - response.value2 = 2; - channel.sendResponse(response); - } + (request, channel) -> { + assertThat(request.value1, equalTo(1)); + assertThat(request.value2, equalTo(2)); + Version1Response response = new Version1Response(); + response.value1 = 1; + response.value2 = 2; + channel.sendResponse(response); }); Version1Request version1Request = new Version1Request(); @@ -1266,7 +1266,7 @@ public abstract class AbstractSimpleTransportTestCase extends ESTestCase { assertThat(version0Response.value1, equalTo(1)); } - public void testMockFailToSendNoConnectRule() { + public void testMockFailToSendNoConnectRule() throws IOException { serviceA.registerRequestHandler("sayHello", StringMessageRequest::new, ThreadPool.Names.GENERIC, new TransportRequestHandler() { @Override @@ -1318,12 +1318,12 @@ public abstract class AbstractSimpleTransportTestCase extends ESTestCase { try { serviceB.connectToNodeAndHandshake(nodeA, 100); fail("exception should be thrown"); - } catch (ConnectTransportException e) { + } catch (IllegalStateException e) { // all is well } } - public void testMockUnresponsiveRule() { + public void testMockUnresponsiveRule() throws IOException { serviceA.registerRequestHandler("sayHello", StringMessageRequest::new, ThreadPool.Names.GENERIC, new TransportRequestHandler() { @Override @@ -1376,7 +1376,7 @@ public abstract class AbstractSimpleTransportTestCase extends ESTestCase { try { serviceB.connectToNodeAndHandshake(nodeA, 100); fail("exception should be thrown"); - } catch (ConnectTransportException e) { + } catch (IllegalStateException e) { // all is well } } diff --git a/test/framework/src/main/java/org/elasticsearch/transport/AssertingTransportInterceptor.java b/test/framework/src/main/java/org/elasticsearch/transport/AssertingTransportInterceptor.java index 37ebebc64a6..0c6c18e1a20 100644 --- a/test/framework/src/main/java/org/elasticsearch/transport/AssertingTransportInterceptor.java +++ b/test/framework/src/main/java/org/elasticsearch/transport/AssertingTransportInterceptor.java @@ -19,7 +19,6 @@ package org.elasticsearch.transport; import org.elasticsearch.Version; -import org.elasticsearch.cluster.node.DiscoveryNode; import org.elasticsearch.common.io.stream.NamedWriteableRegistry; import org.elasticsearch.common.io.stream.Streamable; import org.elasticsearch.common.settings.Settings; @@ -92,11 +91,11 @@ public final class AssertingTransportInterceptor implements TransportInterceptor public AsyncSender interceptSender(final AsyncSender sender) { return new AsyncSender() { @Override - public void sendRequest(DiscoveryNode node, String action, TransportRequest request, + public void sendRequest(Transport.Connection connection, String action, TransportRequest request, TransportRequestOptions options, final TransportResponseHandler handler) { assertVersionSerializable(request); - sender.sendRequest(node, action, request, options, new TransportResponseHandler() { + sender.sendRequest(connection, action, request, options, new TransportResponseHandler() { @Override public T newInstance() { return handler.newInstance(); diff --git a/test/framework/src/main/java/org/elasticsearch/transport/MockTcpTransport.java b/test/framework/src/main/java/org/elasticsearch/transport/MockTcpTransport.java index e9a97e030b2..0778c344bcc 100644 --- a/test/framework/src/main/java/org/elasticsearch/transport/MockTcpTransport.java +++ b/test/framework/src/main/java/org/elasticsearch/transport/MockTcpTransport.java @@ -161,7 +161,7 @@ public class MockTcpTransport extends TcpTransport @Override protected NodeChannels connectToChannels(DiscoveryNode node, ConnectionProfile profile) throws IOException { final MockChannel[] mockChannels = new MockChannel[1]; - final NodeChannels nodeChannels = new NodeChannels(mockChannels, ConnectionProfile.LIGHT_PROFILE); // we always use light here + final NodeChannels nodeChannels = new NodeChannels(node, mockChannels, ConnectionProfile.LIGHT_PROFILE); // we always use light here boolean success = false; final Socket socket = new Socket(); try { From 4ad85c38c3d4d7d439239342541cc88679d77dc1 Mon Sep 17 00:00:00 2001 From: Yannick Welsch Date: Fri, 9 Dec 2016 10:41:40 +0100 Subject: [PATCH 34/51] Throw NoSuchFileException to correctly adhere to readBlob contract URLBlobContainer can in certain situations throw a FileNotFoundException. To fulfill the contract of the readBlob method it should throw a NoSuchFileException instead when the given blob cannot be found. --- .../common/blobstore/url/URLBlobContainer.java | 8 +++++++- .../repositories/blobstore/BlobStoreRepository.java | 7 +++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/org/elasticsearch/common/blobstore/url/URLBlobContainer.java b/core/src/main/java/org/elasticsearch/common/blobstore/url/URLBlobContainer.java index 537031ef778..ede57d461a1 100644 --- a/core/src/main/java/org/elasticsearch/common/blobstore/url/URLBlobContainer.java +++ b/core/src/main/java/org/elasticsearch/common/blobstore/url/URLBlobContainer.java @@ -24,9 +24,11 @@ import org.elasticsearch.common.blobstore.BlobPath; import org.elasticsearch.common.blobstore.support.AbstractBlobContainer; import java.io.BufferedInputStream; +import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.net.URL; +import java.nio.file.NoSuchFileException; import java.util.Map; /** @@ -99,7 +101,11 @@ public class URLBlobContainer extends AbstractBlobContainer { @Override public InputStream readBlob(String name) throws IOException { - return new BufferedInputStream(new URL(path, name).openStream(), blobStore.bufferSizeInBytes()); + try { + return new BufferedInputStream(new URL(path, name).openStream(), blobStore.bufferSizeInBytes()); + } catch (FileNotFoundException fnfe) { + throw new NoSuchFileException("[" + name + "] blob not found"); + } } @Override diff --git a/core/src/main/java/org/elasticsearch/repositories/blobstore/BlobStoreRepository.java b/core/src/main/java/org/elasticsearch/repositories/blobstore/BlobStoreRepository.java index 23807c84475..aa487056cc1 100644 --- a/core/src/main/java/org/elasticsearch/repositories/blobstore/BlobStoreRepository.java +++ b/core/src/main/java/org/elasticsearch/repositories/blobstore/BlobStoreRepository.java @@ -100,7 +100,6 @@ import org.elasticsearch.snapshots.SnapshotInfo; import org.elasticsearch.snapshots.SnapshotMissingException; import org.elasticsearch.snapshots.SnapshotShardFailure; -import java.io.FileNotFoundException; import java.io.FilterInputStream; import java.io.IOException; import java.io.InputStream; @@ -488,7 +487,7 @@ public abstract class BlobStoreRepository extends AbstractLifecycleComponent imp public SnapshotInfo getSnapshotInfo(final SnapshotId snapshotId) { try { return snapshotFormat.read(snapshotsBlobContainer, snapshotId.getUUID()); - } catch (FileNotFoundException | NoSuchFileException ex) { + } catch (NoSuchFileException ex) { throw new SnapshotMissingException(metadata.name(), snapshotId, ex); } catch (IOException | NotXContentException ex) { throw new SnapshotException(metadata.name(), snapshotId, "failed to get snapshots", ex); @@ -509,7 +508,7 @@ public abstract class BlobStoreRepository extends AbstractLifecycleComponent imp } try { metaData = globalMetaDataFormat(snapshotVersion).read(snapshotsBlobContainer, snapshotId.getUUID()); - } catch (FileNotFoundException | NoSuchFileException ex) { + } catch (NoSuchFileException ex) { throw new SnapshotMissingException(metadata.name(), snapshotId, ex); } catch (IOException ex) { throw new SnapshotException(metadata.name(), snapshotId, "failed to get snapshots", ex); @@ -631,7 +630,7 @@ public abstract class BlobStoreRepository extends AbstractLifecycleComponent imp } } return repositoryData; - } catch (NoSuchFileException nsfe) { + } catch (NoSuchFileException ex) { // repository doesn't have an index blob, its a new blank repo return RepositoryData.EMPTY; } catch (IOException ioe) { From 4831632a6f247ae6c6c928708b4f36de4adf34eb Mon Sep 17 00:00:00 2001 From: Yannick Welsch Date: Fri, 9 Dec 2016 10:43:49 +0100 Subject: [PATCH 35/51] [TEST] Handle legacy snapshots as if they don't exist anymore An earlier commit removed BWC for pre-5.0 snapshots, which also meant removing the capability to load pre-5.0 snapshots. In 6.0, such snapshots are now invisible and must be treated by the BWC tests in that way. --- .../org/elasticsearch/bwcompat/RestoreBackwardsCompatIT.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/core/src/test/java/org/elasticsearch/bwcompat/RestoreBackwardsCompatIT.java b/core/src/test/java/org/elasticsearch/bwcompat/RestoreBackwardsCompatIT.java index edab9876d5b..2532d32561b 100644 --- a/core/src/test/java/org/elasticsearch/bwcompat/RestoreBackwardsCompatIT.java +++ b/core/src/test/java/org/elasticsearch/bwcompat/RestoreBackwardsCompatIT.java @@ -209,8 +209,7 @@ public class RestoreBackwardsCompatIT extends AbstractSnapshotIntegTestCase { client().admin().cluster().prepareRestoreSnapshot(repo, snapshot).setRestoreGlobalState(true).setWaitForCompletion(true).get(); fail("should have failed to restore - " + repo); } catch (SnapshotRestoreException ex) { - assertThat(ex.getMessage(), containsString("cannot restore index")); - assertThat(ex.getMessage(), containsString("because it cannot be upgraded")); + assertThat(ex.getMessage(), containsString("snapshot does not exist")); } } } From 68f30cae0c64f073456c69bcfb5d6d6112e1861b Mon Sep 17 00:00:00 2001 From: Yannick Welsch Date: Sat, 10 Dec 2016 13:47:02 +0100 Subject: [PATCH 36/51] [TEST] Unmute testRestoreUnsupportedSnapshots --- .../org/elasticsearch/bwcompat/RestoreBackwardsCompatIT.java | 1 - 1 file changed, 1 deletion(-) diff --git a/core/src/test/java/org/elasticsearch/bwcompat/RestoreBackwardsCompatIT.java b/core/src/test/java/org/elasticsearch/bwcompat/RestoreBackwardsCompatIT.java index 2532d32561b..6d13d3cf418 100644 --- a/core/src/test/java/org/elasticsearch/bwcompat/RestoreBackwardsCompatIT.java +++ b/core/src/test/java/org/elasticsearch/bwcompat/RestoreBackwardsCompatIT.java @@ -116,7 +116,6 @@ public class RestoreBackwardsCompatIT extends AbstractSnapshotIntegTestCase { } } - @AwaitsFix(bugUrl="https://github.com/elastic/elasticsearch/issues/22068") public void testRestoreUnsupportedSnapshots() throws Exception { String repo = "test_repo"; String snapshot = "test_1"; From 7a74a41a0c61ec442b0de541f8fb00f4e882bfdc Mon Sep 17 00:00:00 2001 From: Nik Everett Date: Fri, 9 Dec 2016 21:20:41 -0500 Subject: [PATCH 37/51] Fix test for changed message Message is only changed in 5.2.0 so we shouldn't assert on it if we're running with any nodes less than that version. --- .../main/resources/rest-api-spec/test/tasks.get/10_basic.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rest-api-spec/src/main/resources/rest-api-spec/test/tasks.get/10_basic.yaml b/rest-api-spec/src/main/resources/rest-api-spec/test/tasks.get/10_basic.yaml index caf97b302f1..fdb62cdce2e 100644 --- a/rest-api-spec/src/main/resources/rest-api-spec/test/tasks.get/10_basic.yaml +++ b/rest-api-spec/src/main/resources/rest-api-spec/test/tasks.get/10_basic.yaml @@ -1,5 +1,8 @@ --- "get task test": + - skip: + version: " - 5.1.99" + reason: massage was changed in 5.2.0 # Note that this gets much better testing in reindex's tests because it actually saves the task - do: cluster.state: {} From 6003cbfb641b79423e0a59f8ac411240b5595418 Mon Sep 17 00:00:00 2001 From: javanna Date: Sat, 10 Dec 2016 21:09:26 +0100 Subject: [PATCH 38/51] fix typos in qa/backwards gradle build file --- qa/backwards-5.0/build.gradle | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/qa/backwards-5.0/build.gradle b/qa/backwards-5.0/build.gradle index 797e1109ae7..3864139d8e3 100644 --- a/qa/backwards-5.0/build.gradle +++ b/qa/backwards-5.0/build.gradle @@ -1,9 +1,9 @@ apply plugin: 'elasticsearch.rest-test' /* This project runs the core REST tests against a 2 node cluster where one of the nodes has a different minor. - * Since we don't have a version to test against we currently use the hardcoded snapshot for to bascially run - * against ourself. To test that useing a different version works got into distribution/zip and execute: - * gradle clean install -Dbuild.snapshot=false + * Since we don't have a version to test against we currently use the hardcoded snapshot for to basically run + * against ourselves. To test that using a different version go to distribution/zip and execute: + * gradle clean publishToMavenLocal -Dbuild.snapshot=false * * This installs the release-build into a local .m2 repository, then change this version here to: * bwcVersion = "5.0.0" @@ -11,14 +11,14 @@ apply plugin: 'elasticsearch.rest-test' * now you can run the bwc tests with: * gradle check -Drepos.mavenlocal=true * - * (-Drepos.mavenlocal=true will force gradle to look for the zip distribuiton in the local .m2 repository) + * (-Drepos.mavenlocal=true will force gradle to look for the zip distribution in the local .m2 repository) */ integTest { includePackaged = true cluster { numNodes = 2 numBwcNodes = 1 - bwcVersion = "6.0.0-alpha1-SNAPSHOT" + bwcVersion = "5.1.0" setting 'logger.org.elasticsearch', 'DEBUG' } } From e6b10ca4db0ef403c2d43ba13e3bb78ae2da4466 Mon Sep 17 00:00:00 2001 From: javanna Date: Sat, 10 Dec 2016 21:11:05 +0100 Subject: [PATCH 39/51] Restore proper bwcVersion in qa/backwards gradle build file --- qa/backwards-5.0/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qa/backwards-5.0/build.gradle b/qa/backwards-5.0/build.gradle index 3864139d8e3..b151485ef3f 100644 --- a/qa/backwards-5.0/build.gradle +++ b/qa/backwards-5.0/build.gradle @@ -18,7 +18,7 @@ integTest { cluster { numNodes = 2 numBwcNodes = 1 - bwcVersion = "5.1.0" + bwcVersion = "6.0.0-alpha1-SNAPSHOT" setting 'logger.org.elasticsearch', 'DEBUG' } } From 20ff703e07c692c5e68e6b30a6e6413a34dd10a7 Mon Sep 17 00:00:00 2001 From: Simon Willnauer Date: Sun, 11 Dec 2016 09:55:53 +0100 Subject: [PATCH 40/51] Fix IncludeExclude parsing `include` / `exclude` in terms / sig-terms aggs seems completely broken and massively untested. This commit makes the TermsTests pass again that randomly use `include` / `exclude`. This class must be tested individually and we need real integ tests that use xcontent that use this feature. --- .../bucket/terms/support/IncludeExclude.java | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/support/IncludeExclude.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/support/IncludeExclude.java index 827d661d104..ea4797780c5 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/support/IncludeExclude.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/support/IncludeExclude.java @@ -103,8 +103,11 @@ public class IncludeExclude implements Writeable, ToXContent { String currentFieldName = null; Integer partition = null, numPartitions = null; while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { + if (token == XContentParser.Token.FIELD_NAME) { + currentFieldName = parser.currentName(); + } else // This "include":{"pattern":"foo.*"} syntax is undocumented since 2.0 - // Regexes should be "include":"foo.*" + // Regexes should be "include":"foo.*" if (parseFieldMatcher.match(currentFieldName, PATTERN_FIELD)) { return new IncludeExclude(parser.text(), null); } else if (parseFieldMatcher.match(currentFieldName, NUM_PARTITIONS_FIELD)) { @@ -146,12 +149,10 @@ public class IncludeExclude implements Writeable, ToXContent { // in the index. public abstract static class LongFilter { public abstract boolean accept(long value); - - } - - public class PartitionedLongFilter extends LongFilter { - private final ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES); + } + + public class PartitionedLongFilter extends LongFilter { @Override public boolean accept(long value) { // hash the value to keep even distributions @@ -159,8 +160,8 @@ public class IncludeExclude implements Writeable, ToXContent { return Math.floorMod(hashCode, incNumPartitions) == incZeroBasedPartition; } } - - + + public static class SetBackedLongFilter extends LongFilter { private LongSet valids; private LongSet invalids; @@ -197,8 +198,8 @@ public class IncludeExclude implements Writeable, ToXContent { public boolean accept(BytesRef value) { return Math.floorMod(value.hashCode(), incNumPartitions) == incZeroBasedPartition; } - } - + } + static class AutomatonBackedStringFilter extends StringFilter { private final ByteRunAutomaton runAutomaton; @@ -361,7 +362,7 @@ public class IncludeExclude implements Writeable, ToXContent { this.include = null; this.exclude = null; this.incZeroBasedPartition = 0; - this.incNumPartitions = 0; + this.incNumPartitions = 0; this.includeValues = includeValues; this.excludeValues = excludeValues; } @@ -388,11 +389,11 @@ public class IncludeExclude implements Writeable, ToXContent { this.exclude = null; this.includeValues = null; this.excludeValues = null; - + } - - + + /** * Read from a stream. */ @@ -580,7 +581,7 @@ public class IncludeExclude implements Writeable, ToXContent { public boolean isPartitionBased() { return incNumPartitions > 0; } - + private Automaton toAutomaton() { Automaton a = null; if (include != null) { @@ -629,16 +630,16 @@ public class IncludeExclude implements Writeable, ToXContent { if (isPartitionBased()){ return new PartitionedOrdinalsFilter(); } - + return new TermListBackedOrdinalsFilter(parseForDocValues(includeValues, format), parseForDocValues(excludeValues, format)); } public LongFilter convertToLongFilter(DocValueFormat format) { - + if(isPartitionBased()){ return new PartitionedLongFilter(); } - + int numValids = includeValues == null ? 0 : includeValues.size(); int numInvalids = excludeValues == null ? 0 : excludeValues.size(); SetBackedLongFilter result = new SetBackedLongFilter(numValids, numInvalids); @@ -659,7 +660,7 @@ public class IncludeExclude implements Writeable, ToXContent { if(isPartitionBased()){ return new PartitionedLongFilter(); } - + int numValids = includeValues == null ? 0 : includeValues.size(); int numInvalids = excludeValues == null ? 0 : excludeValues.size(); SetBackedLongFilter result = new SetBackedLongFilter(numValids, numInvalids); @@ -682,22 +683,21 @@ public class IncludeExclude implements Writeable, ToXContent { public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { if (include != null) { builder.field(INCLUDE_FIELD.getPreferredName(), include.getOriginalString()); - } - if (includeValues != null) { + } else if (includeValues != null) { builder.startArray(INCLUDE_FIELD.getPreferredName()); for (BytesRef value : includeValues) { builder.value(value.utf8ToString()); } builder.endArray(); - } - if (isPartitionBased()) { + } else if (isPartitionBased()) { + builder.startObject(INCLUDE_FIELD.getPreferredName()); builder.field(PARTITION_FIELD.getPreferredName(), incZeroBasedPartition); builder.field(NUM_PARTITIONS_FIELD.getPreferredName(), incNumPartitions); + builder.endObject(); } if (exclude != null) { builder.field(EXCLUDE_FIELD.getPreferredName(), exclude.getOriginalString()); - } - if (excludeValues != null) { + } else if (excludeValues != null) { builder.startArray(EXCLUDE_FIELD.getPreferredName()); for (BytesRef value : excludeValues) { builder.value(value.utf8ToString()); From 726f5dccc06bf1813790b6cc39207a5e30db43a0 Mon Sep 17 00:00:00 2001 From: Artur Nowosielski Date: Sun, 11 Dec 2016 14:37:12 +0100 Subject: [PATCH 41/51] Rewrite filter queries in FiltersAggregationBuilder (#22076) Queries must be rewritten before the query phase executes otherwise non-executable queries like `wrapper` query or `terms` will fail or queries that require resources like script service can't access these service unless rewritten. Relates to #21303 --- .../filters/FiltersAggregationBuilder.java | 7 ++- .../test/search.aggregation/60_filters.yaml | 52 +++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 rest-api-spec/src/main/resources/rest-api-spec/test/search.aggregation/60_filters.yaml diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregationBuilder.java index 989dcd45353..2cf1028a6eb 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregationBuilder.java @@ -173,7 +173,12 @@ public class FiltersAggregationBuilder extends AbstractAggregationBuilder doBuild(AggregationContext context, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { - return new FiltersAggregatorFactory(name, type, filters, keyed, otherBucket, otherBucketKey, context, parent, + List rewrittenFilters = new ArrayList<>(); + for(KeyedFilter kf : filters) { + rewrittenFilters.add(new KeyedFilter(kf.key(), QueryBuilder.rewriteQuery(kf.filter(), + context.searchContext().getQueryShardContext()))); + } + return new FiltersAggregatorFactory(name, type, rewrittenFilters, keyed, otherBucket, otherBucketKey, context, parent, subFactoriesBuilder, metaData); } diff --git a/rest-api-spec/src/main/resources/rest-api-spec/test/search.aggregation/60_filters.yaml b/rest-api-spec/src/main/resources/rest-api-spec/test/search.aggregation/60_filters.yaml new file mode 100644 index 00000000000..3d265699d46 --- /dev/null +++ b/rest-api-spec/src/main/resources/rest-api-spec/test/search.aggregation/60_filters.yaml @@ -0,0 +1,52 @@ +setup: + - do: + indices.create: + index: test + body: + settings: + number_of_shards: 1 + number_of_replicas: 0 + mappings: + post: + properties: + title: + type: text + + - do: + index: + index: test + type: test + id: 1 + body: { "title" : "foo bar baz" } + + - do: + index: + index: test + type: test + id: 2 + body: { "title" : "foo foo foo" } + + - do: + index: + index: test + type: test + id: 3 + body: { "title" : "bar baz bax" } + + - do: + indices.refresh: {} + +--- +"Filters aggs with wrapper query": + - skip: + version: " - 5.1.1" + reason: Using filters aggs that needs rewriting, this was fixed in 5.1.2 + + - do: + search: + body: {"size": 0, "aggs": {"titles": {"filters": {"filters" : {"titleterms" : {"wrapper" : {"query": "eyJ0ZXJtcyIgOiB7ICJ0aXRsZSI6IFsiZm9vIl0gfX0="}}}}}}} + + # validate result + - match: { hits.total: 3 } + - length: { aggregations.titles.buckets: 1 } + - match: { aggregations.titles.buckets.titleterms.doc_count: 2 } From d339814f772c6f41ad175f1b92be496a36f45cf5 Mon Sep 17 00:00:00 2001 From: Peter Dyson Date: Mon, 12 Dec 2016 11:33:31 +1000 Subject: [PATCH 42/51] Fix Fuziness typo in multimatch error message and associated tests --- .../org/elasticsearch/index/query/MultiMatchQueryBuilder.java | 2 +- .../elasticsearch/index/query/MultiMatchQueryBuilderTests.java | 2 +- .../elasticsearch/index/query/QueryStringQueryBuilderTests.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/org/elasticsearch/index/query/MultiMatchQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/MultiMatchQueryBuilder.java index f45009f7466..ff9c1f2c721 100644 --- a/core/src/main/java/org/elasticsearch/index/query/MultiMatchQueryBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/MultiMatchQueryBuilder.java @@ -657,7 +657,7 @@ public class MultiMatchQueryBuilder extends AbstractQueryBuilder parseQuery(json)); - assertEquals("Fuziness not allowed for type [" + type +"]", e.getMessage()); + assertEquals("Fuzziness not allowed for type [" + type +"]", e.getMessage()); } } diff --git a/core/src/test/java/org/elasticsearch/index/query/QueryStringQueryBuilderTests.java b/core/src/test/java/org/elasticsearch/index/query/QueryStringQueryBuilderTests.java index 687d44e6cbf..f9eca12d4bd 100644 --- a/core/src/test/java/org/elasticsearch/index/query/QueryStringQueryBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/index/query/QueryStringQueryBuilderTests.java @@ -396,7 +396,7 @@ public class QueryStringQueryBuilderTests extends AbstractQueryTestCase 0); int length = randomIntBetween(1, 10); From 73cf0022937ccd857da9fd0c5d5db462a982ec81 Mon Sep 17 00:00:00 2001 From: Luca Cavanna Date: Mon, 12 Dec 2016 12:09:16 +0100 Subject: [PATCH 43/51] Un-deprecate fuzzy query (#22088) When we decided to deprecate and remove fuzzy query in #15760, we didn't realize we would take away the possibililty for uses to use a fuzzy query as part of a span query, which is not possible using match query. This means we have to go back and un-deprecate fuzzy query, which will not be removed. Closes #15760 --- .../index/query/FuzzyQueryBuilder.java | 9 ------ .../index/query/QueryBuilders.java | 8 ----- .../index/query/FuzzyQueryBuilderTests.java | 32 ++----------------- .../index/query/RandomQueryBuilder.java | 6 +++- .../profile/query/RandomQueryGenerator.java | 1 - docs/java-api/query-dsl/fuzzy-query.asciidoc | 2 -- docs/reference/query-dsl/fuzzy-query.asciidoc | 4 --- 7 files changed, 7 insertions(+), 55 deletions(-) diff --git a/core/src/main/java/org/elasticsearch/index/query/FuzzyQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/FuzzyQueryBuilder.java index ef94ff16cf8..1215ddcfbba 100644 --- a/core/src/main/java/org/elasticsearch/index/query/FuzzyQueryBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/FuzzyQueryBuilder.java @@ -28,8 +28,6 @@ import org.elasticsearch.common.ParsingException; import org.elasticsearch.common.Strings; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; -import org.elasticsearch.common.logging.DeprecationLogger; -import org.elasticsearch.common.logging.Loggers; import org.elasticsearch.common.lucene.BytesRefs; import org.elasticsearch.common.unit.Fuzziness; import org.elasticsearch.common.xcontent.XContentBuilder; @@ -43,16 +41,10 @@ import java.util.Optional; /** * A Query that does fuzzy matching for a specific value. - * - * @deprecated Fuzzy queries are not useful enough. This class will be removed with Elasticsearch 4.0. In most cases you may want to use - * a match query with the fuzziness parameter for strings or range queries for numeric and date fields. */ -@Deprecated public class FuzzyQueryBuilder extends AbstractQueryBuilder implements MultiTermQueryBuilder { public static final String NAME = "fuzzy"; - private static final DeprecationLogger DEPRECATION_LOGGER = new DeprecationLogger(Loggers.getLogger(FuzzyQueryBuilder.class)); - /** Default maximum edit distance. Defaults to AUTO. */ public static final Fuzziness DEFAULT_FUZZINESS = Fuzziness.AUTO; @@ -155,7 +147,6 @@ public class FuzzyQueryBuilder extends AbstractQueryBuilder i * @param value The value of the term */ public FuzzyQueryBuilder(String fieldName, Object value) { - DEPRECATION_LOGGER.deprecated("{} query is deprecated. Instead use the [match] query with fuzziness parameter", NAME); if (Strings.isEmpty(fieldName)) { throw new IllegalArgumentException("field name cannot be null or empty"); } diff --git a/core/src/main/java/org/elasticsearch/index/query/QueryBuilders.java b/core/src/main/java/org/elasticsearch/index/query/QueryBuilders.java index 229c7200f19..da8fdeda296 100644 --- a/core/src/main/java/org/elasticsearch/index/query/QueryBuilders.java +++ b/core/src/main/java/org/elasticsearch/index/query/QueryBuilders.java @@ -197,13 +197,9 @@ public abstract class QueryBuilders { * @param name The name of the field * @param value The value of the term * - * @deprecated Fuzzy queries are not useful enough and will be removed with Elasticsearch 4.0. In most cases you may want to use - * a match query with the fuzziness parameter for strings or range queries for numeric and date fields. - * * @see #matchQuery(String, Object) * @see #rangeQuery(String) */ - @Deprecated public static FuzzyQueryBuilder fuzzyQuery(String name, String value) { return new FuzzyQueryBuilder(name, value); } @@ -214,13 +210,9 @@ public abstract class QueryBuilders { * @param name The name of the field * @param value The value of the term * - * @deprecated Fuzzy queries are not useful enough and will be removed with Elasticsearch 4.0. In most cases you may want to use - * a match query with the fuzziness parameter for strings or range queries for numeric and date fields. - * * @see #matchQuery(String, Object) * @see #rangeQuery(String) */ - @Deprecated public static FuzzyQueryBuilder fuzzyQuery(String name, Object value) { return new FuzzyQueryBuilder(name, value); } diff --git a/core/src/test/java/org/elasticsearch/index/query/FuzzyQueryBuilderTests.java b/core/src/test/java/org/elasticsearch/index/query/FuzzyQueryBuilderTests.java index adf747abd2e..d5fbf05e269 100644 --- a/core/src/test/java/org/elasticsearch/index/query/FuzzyQueryBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/index/query/FuzzyQueryBuilderTests.java @@ -27,8 +27,6 @@ import org.elasticsearch.common.ParsingException; import org.elasticsearch.common.unit.Fuzziness; import org.elasticsearch.search.internal.SearchContext; import org.elasticsearch.test.AbstractQueryTestCase; -import org.junit.After; -import org.junit.internal.AssumptionViolatedException; import java.io.IOException; import java.util.HashMap; @@ -40,20 +38,6 @@ import static org.hamcrest.Matchers.instanceOf; public class FuzzyQueryBuilderTests extends AbstractQueryTestCase { - private boolean testSkipped = false; - - /** - * All tests create deprecation warnings when an new FuzzyQueryBuilder is created. Instead of having to check them once - * in every single test, this is done here after each test is run - */ - @After - void checkWarningHeaders() throws IOException { - // only check that warning headers got created for tests that satisfied certain assumptions and were thus not skipped - if (testSkipped == false) { - checkWarningHeaders("fuzzy query is deprecated. Instead use the [match] query with fuzziness parameter"); - } - } - @Override protected FuzzyQueryBuilder doCreateTestQueryBuilder() { FuzzyQueryBuilder query = new FuzzyQueryBuilder(STRING_FIELD_NAME, getRandomValueForFieldName(STRING_FIELD_NAME)); @@ -114,13 +98,7 @@ public class FuzzyQueryBuilderTests extends AbstractQueryTestCase 0); - } catch (AssumptionViolatedException e) { - // we need to know that this test was skipped in @After checkWarningHeaders(), because no warnings will be generated - testSkipped = true; - throw e; - } + assumeTrue("test runs only when at least a type is registered", getCurrentTypes().length > 0); String query = "{\n" + " \"fuzzy\":{\n" + " \"" + STRING_FIELD_NAME + "\":{\n" + @@ -143,13 +121,7 @@ public class FuzzyQueryBuilderTests extends AbstractQueryTestCase 0); - } catch (AssumptionViolatedException e) { - // we need to know that this test was skipped in @After checkWarningHeaders(), because no warnings will be generated - testSkipped = true; - throw e; - } + assumeTrue("test runs only when at least a type is registered", getCurrentTypes().length > 0); String query = "{\n" + " \"fuzzy\":{\n" + " \"" + INT_FIELD_NAME + "\":{\n" + diff --git a/core/src/test/java/org/elasticsearch/index/query/RandomQueryBuilder.java b/core/src/test/java/org/elasticsearch/index/query/RandomQueryBuilder.java index 68510d4e893..9b064485592 100644 --- a/core/src/test/java/org/elasticsearch/index/query/RandomQueryBuilder.java +++ b/core/src/test/java/org/elasticsearch/index/query/RandomQueryBuilder.java @@ -62,7 +62,7 @@ public class RandomQueryBuilder { // for now, only use String Rangequeries for MultiTerm test, numeric and date makes little sense // see issue #12123 for discussion MultiTermQueryBuilder multiTermQueryBuilder; - switch(RandomNumbers.randomIntBetween(r, 0, 2)) { + switch(RandomNumbers.randomIntBetween(r, 0, 3)) { case 0: RangeQueryBuilder stringRangeQuery = new RangeQueryBuilder(AbstractQueryTestCase.STRING_FIELD_NAME); stringRangeQuery.from("a" + RandomStrings.randomAsciiOfLengthBetween(r, 1, 10)); @@ -75,6 +75,10 @@ public class RandomQueryBuilder { case 2: multiTermQueryBuilder = new WildcardQueryBuilderTests().createTestQueryBuilder(); break; + case 3: + multiTermQueryBuilder = new FuzzyQueryBuilder(AbstractQueryTestCase.STRING_FIELD_NAME, + RandomStrings.randomAsciiOfLengthBetween(r, 1, 10)); + break; default: throw new UnsupportedOperationException(); } diff --git a/core/src/test/java/org/elasticsearch/search/profile/query/RandomQueryGenerator.java b/core/src/test/java/org/elasticsearch/search/profile/query/RandomQueryGenerator.java index d40f85aa04e..14fe8d58132 100644 --- a/core/src/test/java/org/elasticsearch/search/profile/query/RandomQueryGenerator.java +++ b/core/src/test/java/org/elasticsearch/search/profile/query/RandomQueryGenerator.java @@ -195,7 +195,6 @@ public class RandomQueryGenerator { return q; } - @Deprecated private static QueryBuilder randomFuzzyQuery(List fields) { QueryBuilder q = QueryBuilders.fuzzyQuery(randomField(fields), randomQueryString(1)); diff --git a/docs/java-api/query-dsl/fuzzy-query.asciidoc b/docs/java-api/query-dsl/fuzzy-query.asciidoc index 1ea59830723..e871bc9d0b4 100644 --- a/docs/java-api/query-dsl/fuzzy-query.asciidoc +++ b/docs/java-api/query-dsl/fuzzy-query.asciidoc @@ -1,8 +1,6 @@ [[java-query-dsl-fuzzy-query]] ==== Fuzzy Query -deprecated[3.0.0, Will be removed without a replacement for `string` fields. Note that the `fuzziness` parameter is still supported for match queries and in suggesters. Use range queries for `date` and `numeric` fields instead.] - See {ref}/query-dsl-fuzzy-query.html[Fuzzy Query] [source,java] diff --git a/docs/reference/query-dsl/fuzzy-query.asciidoc b/docs/reference/query-dsl/fuzzy-query.asciidoc index 4df30dec2f1..70f7eb48ada 100644 --- a/docs/reference/query-dsl/fuzzy-query.asciidoc +++ b/docs/reference/query-dsl/fuzzy-query.asciidoc @@ -1,8 +1,6 @@ [[query-dsl-fuzzy-query]] === Fuzzy Query -deprecated[5.0.0, Will be removed in 6.0. Use match queries with fuzziness instead] - The fuzzy query uses similarity based on Levenshtein edit distance. ==== String fields @@ -24,7 +22,6 @@ GET /_search } -------------------------------------------------- // CONSOLE -// TEST[warning:fuzzy query is deprecated. Instead use the [match] query with fuzziness parameter] Or with more advanced settings: @@ -46,7 +43,6 @@ GET /_search } -------------------------------------------------- // CONSOLE -// TEST[warning:fuzzy query is deprecated. Instead use the [match] query with fuzziness parameter] [float] ===== Parameters From a42bee5d60b1704c331024671159d799bcfc165f Mon Sep 17 00:00:00 2001 From: Luca Cavanna Date: Mon, 12 Dec 2016 12:10:23 +0100 Subject: [PATCH 44/51] Don't output empty ext object in SearchSourceBuilder#toXContent (#22093) We shouldn't output an empty ext object if no ext sections have been set to the SearchSourceBuilder. Closes #20969 --- .../search/builder/SearchSourceBuilder.java | 2 +- .../builder/SearchSourceBuilderTests.java | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/elasticsearch/search/builder/SearchSourceBuilder.java b/core/src/main/java/org/elasticsearch/search/builder/SearchSourceBuilder.java index 34fb29305bd..8d4adf55317 100644 --- a/core/src/main/java/org/elasticsearch/search/builder/SearchSourceBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/builder/SearchSourceBuilder.java @@ -1228,7 +1228,7 @@ public final class SearchSourceBuilder extends ToXContentToBytes implements Writ builder.field(STATS_FIELD.getPreferredName(), stats); } - if (extBuilders != null) { + if (extBuilders != null && extBuilders.isEmpty() == false) { builder.startObject(EXT_FIELD.getPreferredName()); for (SearchExtBuilder extBuilder : extBuilders) { extBuilder.toXContent(builder, params); diff --git a/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java b/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java index c494e7c14eb..086c9ca76ee 100644 --- a/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java @@ -31,10 +31,12 @@ import org.elasticsearch.common.unit.TimeValue; import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; +import org.elasticsearch.common.xcontent.XContentHelper; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.QueryParseContext; +import org.elasticsearch.index.query.RandomQueryBuilder; import org.elasticsearch.search.AbstractSearchTestCase; import org.elasticsearch.search.rescore.QueryRescorerBuilder; import org.elasticsearch.search.sort.FieldSortBuilder; @@ -44,6 +46,7 @@ import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.EqualsHashCodeTestUtils; import java.io.IOException; +import java.util.Map; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.Matchers.equalTo; @@ -290,6 +293,29 @@ public class SearchSourceBuilderTests extends AbstractSearchTestCase { } } + public void testToXContent() throws IOException { + //verify that only what is set gets printed out through toXContent + XContentType xContentType = randomFrom(XContentType.values()); + { + SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); + XContentBuilder builder = XContentFactory.contentBuilder(xContentType); + searchSourceBuilder.toXContent(builder, ToXContent.EMPTY_PARAMS); + BytesReference source = builder.bytes(); + Map sourceAsMap = XContentHelper.convertToMap(source, false).v2(); + assertEquals(0, sourceAsMap.size()); + } + { + SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); + searchSourceBuilder.query(RandomQueryBuilder.createQuery(random())); + XContentBuilder builder = XContentFactory.contentBuilder(xContentType); + searchSourceBuilder.toXContent(builder, ToXContent.EMPTY_PARAMS); + BytesReference source = builder.bytes(); + Map sourceAsMap = XContentHelper.convertToMap(source, false).v2(); + assertEquals(1, sourceAsMap.size()); + assertEquals("query", sourceAsMap.keySet().iterator().next()); + } + } + public void testEmptyPostFilter() throws IOException { SearchSourceBuilder builder = new SearchSourceBuilder(); String query = "{ \"post_filter\": {} }"; From 9be778c5e588a19bef0393331322cc8dd3a0f09f Mon Sep 17 00:00:00 2001 From: Luca Cavanna Date: Mon, 12 Dec 2016 12:11:42 +0100 Subject: [PATCH 45/51] Warn log deprecation warnings received from server (#21895) The warnings get printed out in a single line e.g. WARNING: request [DELETE http://localhost:9200/index/type/_api] returned 3 warnings:[this is warning number 0],[this is warning number 1],[this is warning number 2] --- .../elasticsearch/client/RequestLogger.java | 19 ++++ .../client/RequestLoggerTests.java | 92 +++++++++++-------- 2 files changed, 71 insertions(+), 40 deletions(-) diff --git a/client/rest/src/main/java/org/elasticsearch/client/RequestLogger.java b/client/rest/src/main/java/org/elasticsearch/client/RequestLogger.java index fd4c3600234..24e09364c22 100644 --- a/client/rest/src/main/java/org/elasticsearch/client/RequestLogger.java +++ b/client/rest/src/main/java/org/elasticsearch/client/RequestLogger.java @@ -37,6 +37,7 @@ import java.io.IOException; import java.io.InputStreamReader; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; +import java.util.StringJoiner; /** * Helper class that exposes static methods to unify the way requests are logged. @@ -59,6 +60,12 @@ final class RequestLogger { logger.debug("request [" + request.getMethod() + " " + host + getUri(request.getRequestLine()) + "] returned [" + httpResponse.getStatusLine() + "]"); } + if (logger.isWarnEnabled()) { + Header[] warnings = httpResponse.getHeaders("Warning"); + if (warnings != null && warnings.length > 0) { + logger.warn(buildWarningMessage(request, host, warnings)); + } + } if (tracer.isTraceEnabled()) { String requestLine; try { @@ -97,6 +104,18 @@ final class RequestLogger { } } + static String buildWarningMessage(HttpUriRequest request, HttpHost host, Header[] warnings) { + StringBuilder message = new StringBuilder("request [").append(request.getMethod()).append(" ").append(host) + .append(getUri(request.getRequestLine())).append("] returned ").append(warnings.length).append(" warnings: "); + for (int i = 0; i < warnings.length; i++) { + if (i > 0) { + message.append(","); + } + message.append("[").append(warnings[i].getValue()).append("]"); + } + return message.toString(); + } + /** * Creates curl output for given request */ diff --git a/client/rest/src/test/java/org/elasticsearch/client/RequestLoggerTests.java b/client/rest/src/test/java/org/elasticsearch/client/RequestLoggerTests.java index 17c2a158ea8..b66a7bcea2d 100644 --- a/client/rest/src/test/java/org/elasticsearch/client/RequestLoggerTests.java +++ b/client/rest/src/test/java/org/elasticsearch/client/RequestLoggerTests.java @@ -19,7 +19,7 @@ package org.elasticsearch.client; -import com.carrotsearch.randomizedtesting.generators.RandomNumbers; +import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.HttpEntityEnclosingRequest; import org.apache.http.HttpHost; @@ -29,10 +29,11 @@ import org.apache.http.client.methods.HttpOptions; import org.apache.http.client.methods.HttpPatch; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpPut; -import org.apache.http.client.methods.HttpRequestBase; import org.apache.http.client.methods.HttpTrace; +import org.apache.http.client.methods.HttpUriRequest; import org.apache.http.entity.InputStreamEntity; import org.apache.http.entity.StringEntity; +import org.apache.http.message.BasicHeader; import org.apache.http.message.BasicHttpResponse; import org.apache.http.message.BasicStatusLine; import org.apache.http.nio.entity.NByteArrayEntity; @@ -46,13 +47,13 @@ import java.net.URISyntaxException; import java.nio.charset.StandardCharsets; import static org.hamcrest.CoreMatchers.equalTo; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; public class RequestLoggerTests extends RestClientTestCase { public void testTraceRequest() throws IOException, URISyntaxException { - HttpHost host = new HttpHost("localhost", 9200, getRandom().nextBoolean() ? "http" : "https"); - + HttpHost host = new HttpHost("localhost", 9200, randomBoolean() ? "http" : "https"); String expectedEndpoint = "/index/type/_api"; URI uri; if (randomBoolean()) { @@ -60,46 +61,15 @@ public class RequestLoggerTests extends RestClientTestCase { } else { uri = new URI("index/type/_api"); } - - HttpRequestBase request; - int requestType = RandomNumbers.randomIntBetween(getRandom(), 0, 7); - switch(requestType) { - case 0: - request = new HttpGetWithEntity(uri); - break; - case 1: - request = new HttpPost(uri); - break; - case 2: - request = new HttpPut(uri); - break; - case 3: - request = new HttpDeleteWithEntity(uri); - break; - case 4: - request = new HttpHead(uri); - break; - case 5: - request = new HttpTrace(uri); - break; - case 6: - request = new HttpOptions(uri); - break; - case 7: - request = new HttpPatch(uri); - break; - default: - throw new UnsupportedOperationException(); - } - + HttpUriRequest request = randomHttpRequest(uri); String expected = "curl -iX " + request.getMethod() + " '" + host + expectedEndpoint + "'"; - boolean hasBody = request instanceof HttpEntityEnclosingRequest && getRandom().nextBoolean(); + boolean hasBody = request instanceof HttpEntityEnclosingRequest && randomBoolean(); String requestBody = "{ \"field\": \"value\" }"; if (hasBody) { expected += " -d '" + requestBody + "'"; HttpEntityEnclosingRequest enclosingRequest = (HttpEntityEnclosingRequest) request; HttpEntity entity; - switch(RandomNumbers.randomIntBetween(getRandom(), 0, 3)) { + switch(randomIntBetween(0, 3)) { case 0: entity = new StringEntity(requestBody, StandardCharsets.UTF_8); break; @@ -128,12 +98,12 @@ public class RequestLoggerTests extends RestClientTestCase { public void testTraceResponse() throws IOException { ProtocolVersion protocolVersion = new ProtocolVersion("HTTP", 1, 1); - int statusCode = RandomNumbers.randomIntBetween(getRandom(), 200, 599); + int statusCode = randomIntBetween(200, 599); String reasonPhrase = "REASON"; BasicStatusLine statusLine = new BasicStatusLine(protocolVersion, statusCode, reasonPhrase); String expected = "# " + statusLine.toString(); BasicHttpResponse httpResponse = new BasicHttpResponse(statusLine); - int numHeaders = RandomNumbers.randomIntBetween(getRandom(), 0, 3); + int numHeaders = randomIntBetween(0, 3); for (int i = 0; i < numHeaders; i++) { httpResponse.setHeader("header" + i, "value"); expected += "\n# header" + i + ": value"; @@ -162,4 +132,46 @@ public class RequestLoggerTests extends RestClientTestCase { assertThat(body, equalTo(responseBody)); } } + + public void testResponseWarnings() throws Exception { + HttpHost host = new HttpHost("localhost", 9200); + HttpUriRequest request = randomHttpRequest(new URI("/index/type/_api")); + int numWarnings = randomIntBetween(1, 5); + StringBuilder expected = new StringBuilder("request [").append(request.getMethod()).append(" ").append(host) + .append("/index/type/_api] returned ").append(numWarnings).append(" warnings: "); + Header[] warnings = new Header[numWarnings]; + for (int i = 0; i < numWarnings; i++) { + String warning = "this is warning number " + i; + warnings[i] = new BasicHeader("Warning", warning); + if (i > 0) { + expected.append(","); + } + expected.append("[").append(warning).append("]"); + } + assertEquals(expected.toString(), RequestLogger.buildWarningMessage(request, host, warnings)); + } + + private static HttpUriRequest randomHttpRequest(URI uri) { + int requestType = randomIntBetween(0, 7); + switch(requestType) { + case 0: + return new HttpGetWithEntity(uri); + case 1: + return new HttpPost(uri); + case 2: + return new HttpPut(uri); + case 3: + return new HttpDeleteWithEntity(uri); + case 4: + return new HttpHead(uri); + case 5: + return new HttpTrace(uri); + case 6: + return new HttpOptions(uri); + case 7: + return new HttpPatch(uri); + default: + throw new UnsupportedOperationException(); + } + } } From 6d987a9b699c40376667fbd47ac8dda767ba1289 Mon Sep 17 00:00:00 2001 From: Luca Cavanna Date: Mon, 12 Dec 2016 12:37:12 +0100 Subject: [PATCH 46/51] Remove support for empty queries (#22092) Our query DSL supports empty queries (`{}`), which have a different meaning depending on the query that holds it, either ignored, match_all or match_none. We deprecated the support for empty queries in 5.0, where we log a deprecation warning wherever they are used. The way we supported it once we moved query parsing to the coordinating node was having an Optional return type in all of our parse methods (called fromXContent). See #17624. The central place for this was QueryParseContext#parseInnerQueryBuilder. We can now remove all the optional return types and simply throw an exception whenever an empty query is found. --- .../cluster/metadata/AliasValidator.java | 9 +-- .../index/query/BoolQueryBuilder.java | 21 +++--- .../index/query/BoostingQueryBuilder.java | 14 ++-- .../index/query/CommonTermsQueryBuilder.java | 7 +- .../query/ConstantScoreQueryBuilder.java | 14 ++-- .../index/query/DisMaxQueryBuilder.java | 9 ++- .../index/query/ExistsQueryBuilder.java | 5 +- .../query/FieldMaskingSpanQueryBuilder.java | 11 ++- .../index/query/FuzzyQueryBuilder.java | 7 +- .../query/GeoBoundingBoxQueryBuilder.java | 5 +- .../index/query/GeoDistanceQueryBuilder.java | 5 +- .../index/query/GeoPolygonQueryBuilder.java | 5 +- .../index/query/GeoShapeQueryBuilder.java | 5 +- .../index/query/HasChildQueryBuilder.java | 15 ++--- .../index/query/HasParentQueryBuilder.java | 13 ++-- .../index/query/IdsQueryBuilder.java | 5 +- .../index/query/MatchAllQueryBuilder.java | 4 +- .../index/query/MatchNoneQueryBuilder.java | 5 +- .../query/MatchPhrasePrefixQueryBuilder.java | 5 +- .../index/query/MatchPhraseQueryBuilder.java | 5 +- .../index/query/MatchQueryBuilder.java | 5 +- .../index/query/MoreLikeThisQueryBuilder.java | 4 +- .../index/query/MultiMatchQueryBuilder.java | 6 +- .../index/query/NestedQueryBuilder.java | 14 ++-- .../index/query/ParentIdQueryBuilder.java | 5 +- .../index/query/PrefixQueryBuilder.java | 7 +- .../index/query/QueryParseContext.java | 22 ++---- .../index/query/QueryParser.java | 3 +- .../index/query/QueryStringQueryBuilder.java | 5 +- .../index/query/RangeQueryBuilder.java | 5 +- .../index/query/RegexpQueryBuilder.java | 7 +- .../index/query/ScriptQueryBuilder.java | 7 +- .../index/query/SimpleQueryStringBuilder.java | 5 +- .../query/SpanContainingQueryBuilder.java | 17 +++-- .../index/query/SpanFirstQueryBuilder.java | 11 ++- .../query/SpanMultiTermQueryBuilder.java | 11 ++- .../index/query/SpanNearQueryBuilder.java | 11 ++- .../index/query/SpanNotQueryBuilder.java | 17 +++-- .../index/query/SpanOrQueryBuilder.java | 11 ++- .../index/query/SpanTermQueryBuilder.java | 5 +- .../index/query/SpanWithinQueryBuilder.java | 17 +++-- .../index/query/TermQueryBuilder.java | 5 +- .../index/query/TermsQueryBuilder.java | 7 +- .../index/query/TypeQueryBuilder.java | 7 +- .../index/query/WildcardQueryBuilder.java | 7 +- .../index/query/WrapperQueryBuilder.java | 8 +-- .../FunctionScoreQueryBuilder.java | 10 ++- .../filter/FilterAggregationBuilder.java | 3 +- .../filters/FiltersAggregationBuilder.java | 8 +-- .../SignificantTermsAggregationBuilder.java | 2 +- .../search/builder/SearchSourceBuilder.java | 4 +- .../highlight/AbstractHighlighterBuilder.java | 2 +- .../search/internal/ShardSearchRequest.java | 7 +- .../search/rescore/QueryRescorerBuilder.java | 3 +- .../search/sort/GeoDistanceSortBuilder.java | 7 +- .../search/sort/SortBuilder.java | 4 +- .../suggest/phrase/PhraseSuggester.java | 8 +-- .../elasticsearch/aliases/IndexAliasesIT.java | 4 +- .../index/query/BoolQueryBuilderTests.java | 29 -------- .../query/BoostingQueryBuilderTests.java | 46 +------------ .../query/ConstantScoreQueryBuilderTests.java | 28 -------- .../index/query/DisMaxQueryBuilderTests.java | 19 ------ .../query/HasChildQueryBuilderTests.java | 27 -------- .../query/HasParentQueryBuilderTests.java | 26 ------- .../index/query/QueryParseContextTests.java | 30 +-------- .../index/query/plugin/DummyQueryBuilder.java | 5 +- .../search/aggregations/bucket/FilterIT.java | 25 ------- .../search/aggregations/bucket/FiltersIT.java | 67 ++++--------------- .../builder/SearchSourceBuilderTests.java | 13 ---- .../migration/migrate_6_0/search.asciidoc | 3 + .../script/mustache/TemplateQueryBuilder.java | 9 +-- .../percolator/PercolateQueryBuilder.java | 5 +- .../percolator/PercolatorFieldMapper.java | 3 +- .../percolator/TransportPercolateAction.java | 2 +- .../PercolatorFieldMapperTests.java | 3 +- .../http/TestDeprecatedQueryBuilder.java | 5 +- .../test/AbstractQueryTestCase.java | 3 +- 77 files changed, 215 insertions(+), 593 deletions(-) diff --git a/core/src/main/java/org/elasticsearch/cluster/metadata/AliasValidator.java b/core/src/main/java/org/elasticsearch/cluster/metadata/AliasValidator.java index 9a2f3dc5526..29faa0f7956 100644 --- a/core/src/main/java/org/elasticsearch/cluster/metadata/AliasValidator.java +++ b/core/src/main/java/org/elasticsearch/cluster/metadata/AliasValidator.java @@ -33,7 +33,6 @@ import org.elasticsearch.index.query.QueryShardContext; import org.elasticsearch.indices.InvalidAliasNameException; import java.io.IOException; -import java.util.Optional; import java.util.function.Function; /** @@ -139,10 +138,8 @@ public class AliasValidator extends AbstractComponent { private static void validateAliasFilter(XContentParser parser, QueryShardContext queryShardContext) throws IOException { QueryParseContext queryParseContext = queryShardContext.newParseContext(parser); - Optional parseInnerQueryBuilder = queryParseContext.parseInnerQueryBuilder(); - if (parseInnerQueryBuilder.isPresent()) { - QueryBuilder queryBuilder = QueryBuilder.rewriteQuery(parseInnerQueryBuilder.get(), queryShardContext); - queryBuilder.toFilter(queryShardContext); - } + QueryBuilder parseInnerQueryBuilder = queryParseContext.parseInnerQueryBuilder(); + QueryBuilder queryBuilder = QueryBuilder.rewriteQuery(parseInnerQueryBuilder, queryShardContext); + queryBuilder.toFilter(queryShardContext); } } diff --git a/core/src/main/java/org/elasticsearch/index/query/BoolQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/BoolQueryBuilder.java index 8e877823431..7866035dfac 100644 --- a/core/src/main/java/org/elasticsearch/index/query/BoolQueryBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/BoolQueryBuilder.java @@ -37,7 +37,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.Optional; import java.util.function.Consumer; import static org.elasticsearch.common.lucene.search.Queries.fixNegativeQueryIfNeeded; @@ -299,7 +298,7 @@ public class BoolQueryBuilder extends AbstractQueryBuilder { builder.endArray(); } - public static Optional fromXContent(QueryParseContext parseContext) throws IOException, ParsingException { + public static BoolQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException, ParsingException { XContentParser parser = parseContext.parser(); boolean disableCoord = BoolQueryBuilder.DISABLE_COORD_DEFAULT; @@ -323,17 +322,17 @@ public class BoolQueryBuilder extends AbstractQueryBuilder { } else if (token == XContentParser.Token.START_OBJECT) { switch (currentFieldName) { case MUST: - parseContext.parseInnerQueryBuilder().ifPresent(mustClauses::add); + mustClauses.add(parseContext.parseInnerQueryBuilder()); break; case SHOULD: - parseContext.parseInnerQueryBuilder().ifPresent(shouldClauses::add); + shouldClauses.add(parseContext.parseInnerQueryBuilder()); break; case FILTER: - parseContext.parseInnerQueryBuilder().ifPresent(filterClauses::add); + filterClauses.add(parseContext.parseInnerQueryBuilder()); break; case MUST_NOT: case MUSTNOT: - parseContext.parseInnerQueryBuilder().ifPresent(mustNotClauses::add); + mustNotClauses.add(parseContext.parseInnerQueryBuilder()); break; default: throw new ParsingException(parser.getTokenLocation(), "[bool] query does not support [" + currentFieldName + "]"); @@ -342,17 +341,17 @@ public class BoolQueryBuilder extends AbstractQueryBuilder { while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { switch (currentFieldName) { case MUST: - parseContext.parseInnerQueryBuilder().ifPresent(mustClauses::add); + mustClauses.add(parseContext.parseInnerQueryBuilder()); break; case SHOULD: - parseContext.parseInnerQueryBuilder().ifPresent(shouldClauses::add); + shouldClauses.add(parseContext.parseInnerQueryBuilder()); break; case FILTER: - parseContext.parseInnerQueryBuilder().ifPresent(filterClauses::add); + filterClauses.add(parseContext.parseInnerQueryBuilder()); break; case MUST_NOT: case MUSTNOT: - parseContext.parseInnerQueryBuilder().ifPresent(mustNotClauses::add); + mustNotClauses.add(parseContext.parseInnerQueryBuilder()); break; default: throw new ParsingException(parser.getTokenLocation(), "bool query does not support [" + currentFieldName + "]"); @@ -394,7 +393,7 @@ public class BoolQueryBuilder extends AbstractQueryBuilder { boolQuery.adjustPureNegative(adjustPureNegative); boolQuery.minimumNumberShouldMatch(minimumShouldMatch); boolQuery.queryName(queryName); - return Optional.of(boolQuery); + return boolQuery; } @Override diff --git a/core/src/main/java/org/elasticsearch/index/query/BoostingQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/BoostingQueryBuilder.java index 4c86fce4a57..19f7a1b6ea1 100644 --- a/core/src/main/java/org/elasticsearch/index/query/BoostingQueryBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/BoostingQueryBuilder.java @@ -31,7 +31,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import java.io.IOException; import java.util.Map; import java.util.Objects; -import java.util.Optional; /** * The BoostingQuery class can be used to effectively demote results that match a given query. @@ -137,12 +136,12 @@ public class BoostingQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static BoostingQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); - Optional positiveQuery = null; + QueryBuilder positiveQuery = null; boolean positiveQueryFound = false; - Optional negativeQuery = null; + QueryBuilder negativeQuery = null; boolean negativeQueryFound = false; float boost = AbstractQueryBuilder.DEFAULT_BOOST; float negativeBoost = -1; @@ -186,15 +185,12 @@ public class BoostingQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static CommonTermsQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); String fieldName = null; @@ -348,7 +347,7 @@ public class CommonTermsQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static ConstantScoreQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); - Optional query = null; + QueryBuilder query = null; boolean queryFound = false; String queryName = null; float boost = AbstractQueryBuilder.DEFAULT_BOOST; @@ -130,15 +129,10 @@ public class ConstantScoreQueryBuilder extends AbstractQueryBuilder builder.endObject(); } - public static Optional fromXContent(QueryParseContext parseContext) throws IOException { + public static DisMaxQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); float boost = AbstractQueryBuilder.DEFAULT_BOOST; @@ -140,7 +139,7 @@ public class DisMaxQueryBuilder extends AbstractQueryBuilder } else if (token == XContentParser.Token.START_OBJECT) { if (parseContext.getParseFieldMatcher().match(currentFieldName, QUERIES_FIELD)) { queriesFound = true; - parseContext.parseInnerQueryBuilder().ifPresent(queries::add); + queries.add(parseContext.parseInnerQueryBuilder()); } else { throw new ParsingException(parser.getTokenLocation(), "[dis_max] query does not support [" + currentFieldName + "]"); } @@ -148,7 +147,7 @@ public class DisMaxQueryBuilder extends AbstractQueryBuilder if (parseContext.getParseFieldMatcher().match(currentFieldName, QUERIES_FIELD)) { queriesFound = true; while (token != XContentParser.Token.END_ARRAY) { - parseContext.parseInnerQueryBuilder().ifPresent(queries::add); + queries.add(parseContext.parseInnerQueryBuilder()); token = parser.nextToken(); } } else { @@ -178,7 +177,7 @@ public class DisMaxQueryBuilder extends AbstractQueryBuilder for (QueryBuilder query : queries) { disMaxQuery.add(query); } - return Optional.of(disMaxQuery); + return disMaxQuery; } @Override diff --git a/core/src/main/java/org/elasticsearch/index/query/ExistsQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/ExistsQueryBuilder.java index 93e491d6269..a6f85f96be4 100644 --- a/core/src/main/java/org/elasticsearch/index/query/ExistsQueryBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/ExistsQueryBuilder.java @@ -37,7 +37,6 @@ import java.io.IOException; import java.util.Collection; import java.util.Collections; import java.util.Objects; -import java.util.Optional; /** * Constructs a query that only match on documents that the field has a value in them. @@ -84,7 +83,7 @@ public class ExistsQueryBuilder extends AbstractQueryBuilder builder.endObject(); } - public static Optional fromXContent(QueryParseContext parseContext) throws IOException { + public static ExistsQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); String fieldPattern = null; @@ -120,7 +119,7 @@ public class ExistsQueryBuilder extends AbstractQueryBuilder ExistsQueryBuilder builder = new ExistsQueryBuilder(fieldPattern); builder.queryName(queryName); builder.boost(boost); - return Optional.of(builder); + return builder; } @Override diff --git a/core/src/main/java/org/elasticsearch/index/query/FieldMaskingSpanQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/FieldMaskingSpanQueryBuilder.java index dc8bc786aed..2bd384aff95 100644 --- a/core/src/main/java/org/elasticsearch/index/query/FieldMaskingSpanQueryBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/FieldMaskingSpanQueryBuilder.java @@ -33,7 +33,6 @@ import org.elasticsearch.index.mapper.MappedFieldType; import java.io.IOException; import java.util.Objects; -import java.util.Optional; public class FieldMaskingSpanQueryBuilder extends AbstractQueryBuilder implements SpanQueryBuilder { public static final String NAME = "field_masking_span"; @@ -101,7 +100,7 @@ public class FieldMaskingSpanQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static FieldMaskingSpanQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); float boost = AbstractQueryBuilder.DEFAULT_BOOST; @@ -117,11 +116,11 @@ public class FieldMaskingSpanQueryBuilder extends AbstractQueryBuilder query = parseContext.parseInnerQueryBuilder(); - if (query.isPresent() == false || query.get() instanceof SpanQueryBuilder == false) { + QueryBuilder query = parseContext.parseInnerQueryBuilder(); + if (query instanceof SpanQueryBuilder == false) { throw new ParsingException(parser.getTokenLocation(), "[field_masking_span] query must be of type span query"); } - inner = (SpanQueryBuilder) query.get(); + inner = (SpanQueryBuilder) query; } else { throw new ParsingException(parser.getTokenLocation(), "[field_masking_span] query does not support [" + currentFieldName + "]"); @@ -149,7 +148,7 @@ public class FieldMaskingSpanQueryBuilder extends AbstractQueryBuilder i builder.endObject(); } - public static Optional fromXContent(QueryParseContext parseContext) throws IOException { + public static FuzzyQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); String fieldName = null; Object value = null; @@ -307,14 +306,14 @@ public class FuzzyQueryBuilder extends AbstractQueryBuilder i value = parser.objectBytes(); } } - return Optional.of(new FuzzyQueryBuilder(fieldName, value) + return new FuzzyQueryBuilder(fieldName, value) .fuzziness(fuzziness) .prefixLength(prefixLength) .maxExpansions(maxExpansions) .transpositions(transpositions) .rewrite(rewrite) .boost(boost) - .queryName(queryName)); + .queryName(queryName); } @Override diff --git a/core/src/main/java/org/elasticsearch/index/query/GeoBoundingBoxQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/GeoBoundingBoxQueryBuilder.java index cec8c59c56a..ca61a66066c 100644 --- a/core/src/main/java/org/elasticsearch/index/query/GeoBoundingBoxQueryBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/GeoBoundingBoxQueryBuilder.java @@ -40,7 +40,6 @@ import org.elasticsearch.index.mapper.MappedFieldType; import java.io.IOException; import java.util.Objects; -import java.util.Optional; /** * Creates a Lucene query that will filter for all documents that lie within the specified @@ -374,7 +373,7 @@ public class GeoBoundingBoxQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static GeoBoundingBoxQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); String fieldName = null; @@ -485,7 +484,7 @@ public class GeoBoundingBoxQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static GeoDistanceQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); XContentParser.Token token; @@ -425,7 +424,7 @@ public class GeoDistanceQueryBuilder extends AbstractQueryBuilder { public static final String NAME = "geo_polygon"; @@ -227,7 +226,7 @@ public class GeoPolygonQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static GeoPolygonQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); String fieldName = null; @@ -308,7 +307,7 @@ public class GeoPolygonQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static GeoShapeQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); String fieldName = null; @@ -562,7 +561,7 @@ public class GeoShapeQueryBuilder extends AbstractQueryBuilderhas_child query. @@ -222,7 +221,7 @@ public class HasChildQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static HasChildQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); float boost = AbstractQueryBuilder.DEFAULT_BOOST; String childType = null; @@ -234,7 +233,7 @@ public class HasChildQueryBuilder extends AbstractQueryBuilder iqb = Optional.empty(); + QueryBuilder iqb = null; while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { if (token == XContentParser.Token.FIELD_NAME) { currentFieldName = parser.currentName(); @@ -268,13 +267,7 @@ public class HasChildQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static HasParentQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); float boost = AbstractQueryBuilder.DEFAULT_BOOST; String parentType = null; @@ -234,7 +233,7 @@ public class HasParentQueryBuilder extends AbstractQueryBuilder iqb = Optional.empty(); + QueryBuilder iqb = null; while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { if (token == XContentParser.Token.FIELD_NAME) { currentFieldName = parser.currentName(); @@ -272,18 +271,14 @@ public class HasParentQueryBuilder extends AbstractQueryBuilder { declareStandardFields(PARSER); } - public static Optional fromXContent(QueryParseContext context) { + public static IdsQueryBuilder fromXContent(QueryParseContext context) { try { - return Optional.of(PARSER.apply(context.parser(), context)); + return PARSER.apply(context.parser(), context); } catch (IllegalArgumentException e) { throw new ParsingException(context.parser().getTokenLocation(), e.getMessage(), e); } diff --git a/core/src/main/java/org/elasticsearch/index/query/MatchAllQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/MatchAllQueryBuilder.java index 0796fb662a6..4a86854e7bf 100644 --- a/core/src/main/java/org/elasticsearch/index/query/MatchAllQueryBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/MatchAllQueryBuilder.java @@ -64,9 +64,9 @@ public class MatchAllQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext context) { + public static MatchAllQueryBuilder fromXContent(QueryParseContext context) { try { - return Optional.of(PARSER.apply(context.parser(), context)); + return PARSER.apply(context.parser(), context); } catch (IllegalArgumentException e) { throw new ParsingException(context.parser().getTokenLocation(), e.getMessage(), e); } diff --git a/core/src/main/java/org/elasticsearch/index/query/MatchNoneQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/MatchNoneQueryBuilder.java index ee1238a0e0d..674d7c4f698 100644 --- a/core/src/main/java/org/elasticsearch/index/query/MatchNoneQueryBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/MatchNoneQueryBuilder.java @@ -28,7 +28,6 @@ import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentParser; import java.io.IOException; -import java.util.Optional; /** * A query that matches no document. @@ -58,7 +57,7 @@ public class MatchNoneQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static MatchNoneQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); String currentFieldName = null; @@ -86,7 +85,7 @@ public class MatchNoneQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static MatchPhrasePrefixQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); String fieldName = null; Object value = null; @@ -247,6 +246,6 @@ public class MatchPhrasePrefixQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static MatchPhraseQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); String fieldName = null; Object value = null; @@ -215,6 +214,6 @@ public class MatchPhraseQueryBuilder extends AbstractQueryBuilder { return NAME; } - public static Optional fromXContent(QueryParseContext parseContext) throws IOException { + public static MatchQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); String fieldName = null; MatchQuery.Type type = MatchQuery.Type.BOOLEAN; @@ -646,7 +645,7 @@ public class MatchQueryBuilder extends AbstractQueryBuilder { matchQuery.zeroTermsQuery(zeroTermsQuery); matchQuery.queryName(queryName); matchQuery.boost(boost); - return Optional.of(matchQuery); + return matchQuery; } } diff --git a/core/src/main/java/org/elasticsearch/index/query/MoreLikeThisQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/MoreLikeThisQueryBuilder.java index da3cc85ee98..cad4f11214e 100644 --- a/core/src/main/java/org/elasticsearch/index/query/MoreLikeThisQueryBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/MoreLikeThisQueryBuilder.java @@ -802,7 +802,7 @@ public class MoreLikeThisQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static MoreLikeThisQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); // document inputs @@ -952,7 +952,7 @@ public class MoreLikeThisQueryBuilder extends AbstractQueryBuilder texts, List items) throws IOException { diff --git a/core/src/main/java/org/elasticsearch/index/query/MultiMatchQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/MultiMatchQueryBuilder.java index f45009f7466..edd7428efea 100644 --- a/core/src/main/java/org/elasticsearch/index/query/MultiMatchQueryBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/MultiMatchQueryBuilder.java @@ -556,7 +556,7 @@ public class MultiMatchQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static MultiMatchQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); Object value = null; @@ -660,7 +660,7 @@ public class MultiMatchQueryBuilder extends AbstractQueryBuilder fieldsBoosts) throws IOException { diff --git a/core/src/main/java/org/elasticsearch/index/query/NestedQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/NestedQueryBuilder.java index f3b0b7379dd..6c1a8b27f6b 100644 --- a/core/src/main/java/org/elasticsearch/index/query/NestedQueryBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/NestedQueryBuilder.java @@ -36,7 +36,6 @@ import org.elasticsearch.index.mapper.ObjectMapper; import java.io.IOException; import java.util.Map; import java.util.Objects; -import java.util.Optional; public class NestedQueryBuilder extends AbstractQueryBuilder { public static final String NAME = "nested"; @@ -152,12 +151,12 @@ public class NestedQueryBuilder extends AbstractQueryBuilder builder.endObject(); } - public static Optional fromXContent(QueryParseContext parseContext) throws IOException { + public static NestedQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); float boost = AbstractQueryBuilder.DEFAULT_BOOST; ScoreMode scoreMode = ScoreMode.Avg; String queryName = null; - Optional query = Optional.empty(); + QueryBuilder query = null; String path = null; String currentFieldName = null; InnerHitBuilder innerHitBuilder = null; @@ -190,19 +189,14 @@ public class NestedQueryBuilder extends AbstractQueryBuilder } } } - - if (query.isPresent() == false) { - // if inner query is empty, bubble this up to caller so they can decide how to deal with it - return Optional.empty(); - } - NestedQueryBuilder queryBuilder = new NestedQueryBuilder(path, query.get(), scoreMode) + NestedQueryBuilder queryBuilder = new NestedQueryBuilder(path, query, scoreMode) .ignoreUnmapped(ignoreUnmapped) .queryName(queryName) .boost(boost); if (innerHitBuilder != null) { queryBuilder.innerHit(innerHitBuilder); } - return Optional.of(queryBuilder); + return queryBuilder; } @Override diff --git a/core/src/main/java/org/elasticsearch/index/query/ParentIdQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/ParentIdQueryBuilder.java index 1b1a9508bc4..f85e232032a 100644 --- a/core/src/main/java/org/elasticsearch/index/query/ParentIdQueryBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/ParentIdQueryBuilder.java @@ -38,7 +38,6 @@ import org.elasticsearch.index.mapper.TypeFieldMapper; import java.io.IOException; import java.util.Objects; -import java.util.Optional; public final class ParentIdQueryBuilder extends AbstractQueryBuilder { public static final String NAME = "parent_id"; @@ -116,7 +115,7 @@ public final class ParentIdQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static ParentIdQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); float boost = AbstractQueryBuilder.DEFAULT_BOOST; String type = null; @@ -150,7 +149,7 @@ public final class ParentIdQueryBuilder extends AbstractQueryBuilder builder.endObject(); } - public static Optional fromXContent(QueryParseContext parseContext) throws IOException { + public static PrefixQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); String fieldName = null; @@ -161,10 +160,10 @@ public class PrefixQueryBuilder extends AbstractQueryBuilder } } - return Optional.of(new PrefixQueryBuilder(fieldName, value) + return new PrefixQueryBuilder(fieldName, value) .rewrite(rewrite) .boost(boost) - .queryName(queryName)); + .queryName(queryName); } @Override diff --git a/core/src/main/java/org/elasticsearch/index/query/QueryParseContext.java b/core/src/main/java/org/elasticsearch/index/query/QueryParseContext.java index 4fcecdf9f2a..b944bd3a42c 100644 --- a/core/src/main/java/org/elasticsearch/index/query/QueryParseContext.java +++ b/core/src/main/java/org/elasticsearch/index/query/QueryParseContext.java @@ -23,20 +23,15 @@ import org.elasticsearch.common.ParseField; import org.elasticsearch.common.ParseFieldMatcher; import org.elasticsearch.common.ParseFieldMatcherSupplier; import org.elasticsearch.common.ParsingException; -import org.elasticsearch.common.logging.DeprecationLogger; -import org.elasticsearch.common.logging.Loggers; import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.script.Script; import java.io.IOException; import java.util.Objects; -import java.util.Optional; public class QueryParseContext implements ParseFieldMatcherSupplier { - private static final DeprecationLogger DEPRECATION_LOGGER = new DeprecationLogger(Loggers.getLogger(QueryParseContext.class)); - private static final ParseField CACHE = new ParseField("_cache").withAllDeprecated("Elasticsearch makes its own caching decisions"); private static final ParseField CACHE_KEY = new ParseField("_cache_key").withAllDeprecated("Filters are always used as cache keys"); @@ -75,7 +70,7 @@ public class QueryParseContext implements ParseFieldMatcherSupplier { if (token == XContentParser.Token.FIELD_NAME) { String fieldName = parser.currentName(); if ("query".equals(fieldName)) { - queryBuilder = parseInnerQueryBuilder().orElse(null); + queryBuilder = parseInnerQueryBuilder(); } else { throw new ParsingException(parser.getTokenLocation(), "request does not support [" + parser.currentName() + "]"); } @@ -92,20 +87,15 @@ public class QueryParseContext implements ParseFieldMatcherSupplier { /** * Parses a query excluding the query element that wraps it */ - public Optional parseInnerQueryBuilder() throws IOException { + public QueryBuilder parseInnerQueryBuilder() throws IOException { if (parser.currentToken() != XContentParser.Token.START_OBJECT) { if (parser.nextToken() != XContentParser.Token.START_OBJECT) { throw new ParsingException(parser.getTokenLocation(), "[_na] query malformed, must start with start_object"); } } if (parser.nextToken() == XContentParser.Token.END_OBJECT) { - // we encountered '{}' for a query clause - String msg = "query malformed, empty clause found at [" + parser.getTokenLocation() +"]"; - DEPRECATION_LOGGER.deprecated(msg); - if (parseFieldMatcher.isStrict()) { - throw new IllegalArgumentException(msg); - } - return Optional.empty(); + // we encountered '{}' for a query clause, it used to be supported, deprecated in 5.0 and removed in 6.0 + throw new IllegalArgumentException("query malformed, empty clause found at [" + parser.getTokenLocation() +"]"); } if (parser.currentToken() != XContentParser.Token.FIELD_NAME) { throw new ParsingException(parser.getTokenLocation(), "[_na] query malformed, no field after start_object"); @@ -115,9 +105,7 @@ public class QueryParseContext implements ParseFieldMatcherSupplier { if (parser.nextToken() != XContentParser.Token.START_OBJECT) { throw new ParsingException(parser.getTokenLocation(), "[" + queryName + "] query malformed, no start_object after query name"); } - @SuppressWarnings("unchecked") - Optional result = (Optional) indicesQueriesRegistry.lookup(queryName, parseFieldMatcher, - parser.getTokenLocation()).fromXContent(this); + QueryBuilder result = indicesQueriesRegistry.lookup(queryName, parseFieldMatcher, parser.getTokenLocation()).fromXContent(this); //end_object of the specific query (e.g. match, multi_match etc.) element if (parser.currentToken() != XContentParser.Token.END_OBJECT) { throw new ParsingException(parser.getTokenLocation(), diff --git a/core/src/main/java/org/elasticsearch/index/query/QueryParser.java b/core/src/main/java/org/elasticsearch/index/query/QueryParser.java index c17b80460e3..069dc86cf8a 100644 --- a/core/src/main/java/org/elasticsearch/index/query/QueryParser.java +++ b/core/src/main/java/org/elasticsearch/index/query/QueryParser.java @@ -20,7 +20,6 @@ package org.elasticsearch.index.query; import java.io.IOException; -import java.util.Optional; /** * Defines a query parser that is able to parse {@link QueryBuilder}s from {@link org.elasticsearch.common.xcontent.XContent}. @@ -37,5 +36,5 @@ public interface QueryParser { * call * @return the new QueryBuilder */ - Optional fromXContent(QueryParseContext parseContext) throws IOException; + QB fromXContent(QueryParseContext parseContext) throws IOException; } diff --git a/core/src/main/java/org/elasticsearch/index/query/QueryStringQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/QueryStringQueryBuilder.java index d019b20b425..e9e194c6a28 100644 --- a/core/src/main/java/org/elasticsearch/index/query/QueryStringQueryBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/QueryStringQueryBuilder.java @@ -57,7 +57,6 @@ import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Objects; -import java.util.Optional; import java.util.Set; import java.util.TreeMap; @@ -685,7 +684,7 @@ public class QueryStringQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static QueryStringQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); String currentFieldName = null; XContentParser.Token token; @@ -855,7 +854,7 @@ public class QueryStringQueryBuilder extends AbstractQueryBuilder i builder.endObject(); } - public static Optional fromXContent(QueryParseContext parseContext) throws IOException { + public static RangeQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); String fieldName = null; @@ -435,7 +434,7 @@ public class RangeQueryBuilder extends AbstractQueryBuilder i if (relation != null) { rangeQuery.relation(relation); } - return Optional.of(rangeQuery); + return rangeQuery; } @Override diff --git a/core/src/main/java/org/elasticsearch/index/query/RegexpQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/RegexpQueryBuilder.java index d8481d1529c..e5632e96c81 100644 --- a/core/src/main/java/org/elasticsearch/index/query/RegexpQueryBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/RegexpQueryBuilder.java @@ -37,7 +37,6 @@ import org.elasticsearch.index.query.support.QueryParsers; import java.io.IOException; import java.util.Objects; -import java.util.Optional; /** * A Query that does fuzzy matching for a specific value. @@ -178,7 +177,7 @@ public class RegexpQueryBuilder extends AbstractQueryBuilder builder.endObject(); } - public static Optional fromXContent(QueryParseContext parseContext) throws IOException { + public static RegexpQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); String fieldName = null; String rewrite = null; @@ -233,12 +232,12 @@ public class RegexpQueryBuilder extends AbstractQueryBuilder } } - return Optional.of(new RegexpQueryBuilder(fieldName, value) + return new RegexpQueryBuilder(fieldName, value) .flags(flagsValue) .maxDeterminizedStates(maxDeterminizedStates) .rewrite(rewrite) .boost(boost) - .queryName(queryName)); + .queryName(queryName); } @Override diff --git a/core/src/main/java/org/elasticsearch/index/query/ScriptQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/ScriptQueryBuilder.java index 444d79491cb..377aeb103d6 100644 --- a/core/src/main/java/org/elasticsearch/index/query/ScriptQueryBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/ScriptQueryBuilder.java @@ -38,7 +38,6 @@ import org.elasticsearch.script.SearchScript; import java.io.IOException; import java.util.Objects; -import java.util.Optional; public class ScriptQueryBuilder extends AbstractQueryBuilder { public static final String NAME = "script"; @@ -84,7 +83,7 @@ public class ScriptQueryBuilder extends AbstractQueryBuilder builder.endObject(); } - public static Optional fromXContent(QueryParseContext parseContext) throws IOException { + public static ScriptQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); // also, when caching, since its isCacheable is false, will result in loading all bit set... Script script = null; @@ -122,9 +121,9 @@ public class ScriptQueryBuilder extends AbstractQueryBuilder throw new ParsingException(parser.getTokenLocation(), "script must be provided with a [script] filter"); } - return Optional.of(new ScriptQueryBuilder(script) + return new ScriptQueryBuilder(script) .boost(boost) - .queryName(queryName)); + .queryName(queryName); } @Override diff --git a/core/src/main/java/org/elasticsearch/index/query/SimpleQueryStringBuilder.java b/core/src/main/java/org/elasticsearch/index/query/SimpleQueryStringBuilder.java index ae30021d5ed..8025b25c30c 100644 --- a/core/src/main/java/org/elasticsearch/index/query/SimpleQueryStringBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/SimpleQueryStringBuilder.java @@ -40,7 +40,6 @@ import java.util.HashMap; import java.util.Locale; import java.util.Map; import java.util.Objects; -import java.util.Optional; import java.util.TreeMap; /** @@ -471,7 +470,7 @@ public class SimpleQueryStringBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static SimpleQueryStringBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); String currentFieldName = null; @@ -580,7 +579,7 @@ public class SimpleQueryStringBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static SpanContainingQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); float boost = AbstractQueryBuilder.DEFAULT_BOOST; String queryName = null; @@ -114,17 +113,17 @@ public class SpanContainingQueryBuilder extends AbstractQueryBuilder query = parseContext.parseInnerQueryBuilder(); - if (query.isPresent() == false || query.get() instanceof SpanQueryBuilder == false) { + QueryBuilder query = parseContext.parseInnerQueryBuilder(); + if (query instanceof SpanQueryBuilder == false) { throw new ParsingException(parser.getTokenLocation(), "span_containing [big] must be of type span query"); } - big = (SpanQueryBuilder) query.get(); + big = (SpanQueryBuilder) query; } else if (parseContext.getParseFieldMatcher().match(currentFieldName, LITTLE_FIELD)) { - Optional query = parseContext.parseInnerQueryBuilder(); - if (query.isPresent() == false || query.get() instanceof SpanQueryBuilder == false) { + QueryBuilder query = parseContext.parseInnerQueryBuilder(); + if (query instanceof SpanQueryBuilder == false) { throw new ParsingException(parser.getTokenLocation(), "span_containing [little] must be of type span query"); } - little = (SpanQueryBuilder) query.get(); + little = (SpanQueryBuilder) query; } else { throw new ParsingException(parser.getTokenLocation(), "[span_containing] query does not support [" + currentFieldName + "]"); @@ -141,7 +140,7 @@ public class SpanContainingQueryBuilder extends AbstractQueryBuilder implements SpanQueryBuilder { public static final String NAME = "span_first"; @@ -100,7 +99,7 @@ public class SpanFirstQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static SpanFirstQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); float boost = AbstractQueryBuilder.DEFAULT_BOOST; @@ -116,11 +115,11 @@ public class SpanFirstQueryBuilder extends AbstractQueryBuilder query = parseContext.parseInnerQueryBuilder(); - if (query.isPresent() == false || query.get() instanceof SpanQueryBuilder == false) { + QueryBuilder query = parseContext.parseInnerQueryBuilder(); + if (query instanceof SpanQueryBuilder == false) { throw new ParsingException(parser.getTokenLocation(), "spanFirst [match] must be of type span query"); } - match = (SpanQueryBuilder) query.get(); + match = (SpanQueryBuilder) query; } else { throw new ParsingException(parser.getTokenLocation(), "[span_first] query does not support [" + currentFieldName + "]"); } @@ -144,7 +143,7 @@ public class SpanFirstQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static SpanMultiTermQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); String currentFieldName = null; MultiTermQueryBuilder subQuery = null; @@ -94,12 +93,12 @@ public class SpanMultiTermQueryBuilder extends AbstractQueryBuilder query = parseContext.parseInnerQueryBuilder(); - if (query.isPresent() == false || query.get() instanceof MultiTermQueryBuilder == false) { + QueryBuilder query = parseContext.parseInnerQueryBuilder(); + if (query instanceof MultiTermQueryBuilder == false) { throw new ParsingException(parser.getTokenLocation(), "[span_multi] [" + MATCH_FIELD.getPreferredName() + "] must be of type multi term query"); } - subQuery = (MultiTermQueryBuilder) query.get(); + subQuery = (MultiTermQueryBuilder) query; } else { throw new ParsingException(parser.getTokenLocation(), "[span_multi] query does not support [" + currentFieldName + "]"); } @@ -119,7 +118,7 @@ public class SpanMultiTermQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static SpanNearQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); float boost = AbstractQueryBuilder.DEFAULT_BOOST; @@ -162,11 +161,11 @@ public class SpanNearQueryBuilder extends AbstractQueryBuilder query = parseContext.parseInnerQueryBuilder(); - if (query.isPresent() == false || query.get() instanceof SpanQueryBuilder == false) { + QueryBuilder query = parseContext.parseInnerQueryBuilder(); + if (query instanceof SpanQueryBuilder == false) { throw new ParsingException(parser.getTokenLocation(), "spanNear [clauses] must be of type span query"); } - clauses.add((SpanQueryBuilder) query.get()); + clauses.add((SpanQueryBuilder) query); } } else { throw new ParsingException(parser.getTokenLocation(), "[span_near] query does not support [" + currentFieldName + "]"); @@ -203,7 +202,7 @@ public class SpanNearQueryBuilder extends AbstractQueryBuilder implements SpanQueryBuilder { public static final String NAME = "span_not"; @@ -161,7 +160,7 @@ public class SpanNotQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static SpanNotQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); float boost = AbstractQueryBuilder.DEFAULT_BOOST; @@ -182,17 +181,17 @@ public class SpanNotQueryBuilder extends AbstractQueryBuilder query = parseContext.parseInnerQueryBuilder(); - if (query.isPresent() == false || query.get() instanceof SpanQueryBuilder == false) { + QueryBuilder query = parseContext.parseInnerQueryBuilder(); + if (query instanceof SpanQueryBuilder == false) { throw new ParsingException(parser.getTokenLocation(), "spanNot [include] must be of type span query"); } - include = (SpanQueryBuilder) query.get(); + include = (SpanQueryBuilder) query; } else if (parseContext.getParseFieldMatcher().match(currentFieldName, EXCLUDE_FIELD)) { - Optional query = parseContext.parseInnerQueryBuilder(); - if (query.isPresent() == false || query.get() instanceof SpanQueryBuilder == false) { + QueryBuilder query = parseContext.parseInnerQueryBuilder(); + if (query instanceof SpanQueryBuilder == false) { throw new ParsingException(parser.getTokenLocation(), "spanNot [exclude] must be of type span query"); } - exclude = (SpanQueryBuilder) query.get(); + exclude = (SpanQueryBuilder) query; } else { throw new ParsingException(parser.getTokenLocation(), "[span_not] query does not support [" + currentFieldName + "]"); } @@ -234,7 +233,7 @@ public class SpanNotQueryBuilder extends AbstractQueryBuilder builder.endObject(); } - public static Optional fromXContent(QueryParseContext parseContext) throws IOException { + public static SpanOrQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); float boost = AbstractQueryBuilder.DEFAULT_BOOST; @@ -114,11 +113,11 @@ public class SpanOrQueryBuilder extends AbstractQueryBuilder } else if (token == XContentParser.Token.START_ARRAY) { if (parseContext.getParseFieldMatcher().match(currentFieldName, CLAUSES_FIELD)) { while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { - Optional query = parseContext.parseInnerQueryBuilder(); - if (query.isPresent() == false || query.get() instanceof SpanQueryBuilder == false) { + QueryBuilder query = parseContext.parseInnerQueryBuilder(); + if (query instanceof SpanQueryBuilder == false) { throw new ParsingException(parser.getTokenLocation(), "spanOr [clauses] must be of type span query"); } - clauses.add((SpanQueryBuilder) query.get()); + clauses.add((SpanQueryBuilder) query); } } else { throw new ParsingException(parser.getTokenLocation(), "[span_or] query does not support [" + currentFieldName + "]"); @@ -144,7 +143,7 @@ public class SpanOrQueryBuilder extends AbstractQueryBuilder } queryBuilder.boost(boost); queryBuilder.queryName(queryName); - return Optional.of(queryBuilder); + return queryBuilder; } @Override diff --git a/core/src/main/java/org/elasticsearch/index/query/SpanTermQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/SpanTermQueryBuilder.java index b57206c33b5..fae55b35e66 100644 --- a/core/src/main/java/org/elasticsearch/index/query/SpanTermQueryBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/SpanTermQueryBuilder.java @@ -31,7 +31,6 @@ import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.mapper.MappedFieldType; import java.io.IOException; -import java.util.Optional; /** * A Span Query that matches documents containing a term. @@ -92,7 +91,7 @@ public class SpanTermQueryBuilder extends BaseTermQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException, ParsingException { + public static SpanTermQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException, ParsingException { XContentParser parser = parseContext.parser(); String fieldName = null; Object value = null; @@ -133,7 +132,7 @@ public class SpanTermQueryBuilder extends BaseTermQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static SpanWithinQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); float boost = AbstractQueryBuilder.DEFAULT_BOOST; @@ -120,17 +119,17 @@ public class SpanWithinQueryBuilder extends AbstractQueryBuilder query = parseContext.parseInnerQueryBuilder(); - if (query.isPresent() == false || query.get() instanceof SpanQueryBuilder == false) { + QueryBuilder query = parseContext.parseInnerQueryBuilder(); + if (query instanceof SpanQueryBuilder == false) { throw new ParsingException(parser.getTokenLocation(), "span_within [big] must be of type span query"); } - big = (SpanQueryBuilder) query.get(); + big = (SpanQueryBuilder) query; } else if (parseContext.getParseFieldMatcher().match(currentFieldName, LITTLE_FIELD)) { - Optional query = parseContext.parseInnerQueryBuilder(); - if (query.isPresent() == false || query.get() instanceof SpanQueryBuilder == false) { + QueryBuilder query = parseContext.parseInnerQueryBuilder(); + if (query instanceof SpanQueryBuilder == false) { throw new ParsingException(parser.getTokenLocation(), "span_within [little] must be of type span query"); } - little = (SpanQueryBuilder) query.get(); + little = (SpanQueryBuilder) query; } else { throw new ParsingException(parser.getTokenLocation(), "[span_within] query does not support [" + currentFieldName + "]"); @@ -153,7 +152,7 @@ public class SpanWithinQueryBuilder extends AbstractQueryBuilder { super(in); } - public static Optional fromXContent(QueryParseContext parseContext) throws IOException { + public static TermQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); String queryName = null; @@ -132,7 +131,7 @@ public class TermQueryBuilder extends BaseTermQueryBuilder { if (queryName != null) { termQuery.queryName(queryName); } - return Optional.of(termQuery); + return termQuery; } @Override diff --git a/core/src/main/java/org/elasticsearch/index/query/TermsQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/TermsQueryBuilder.java index 58292af7196..c301aedcd89 100644 --- a/core/src/main/java/org/elasticsearch/index/query/TermsQueryBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/TermsQueryBuilder.java @@ -48,7 +48,6 @@ import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Objects; -import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.IntStream; @@ -321,7 +320,7 @@ public class TermsQueryBuilder extends AbstractQueryBuilder { builder.endObject(); } - public static Optional fromXContent(QueryParseContext parseContext) throws IOException { + public static TermsQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); String fieldName = null; @@ -372,9 +371,9 @@ public class TermsQueryBuilder extends AbstractQueryBuilder { throw new ParsingException(parser.getTokenLocation(), "[" + TermsQueryBuilder.NAME + "] query requires a field name, " + "followed by array of terms or a document lookup specification"); } - return Optional.of(new TermsQueryBuilder(fieldName, values, termsLookup) + return new TermsQueryBuilder(fieldName, values, termsLookup) .boost(boost) - .queryName(queryName)); + .queryName(queryName); } private static List parseValues(XContentParser parser) throws IOException { diff --git a/core/src/main/java/org/elasticsearch/index/query/TypeQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/TypeQueryBuilder.java index c5b071aa64e..e7fb520faf1 100644 --- a/core/src/main/java/org/elasticsearch/index/query/TypeQueryBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/TypeQueryBuilder.java @@ -33,7 +33,6 @@ import org.elasticsearch.index.mapper.DocumentMapper; import java.io.IOException; import java.util.Objects; -import java.util.Optional; public class TypeQueryBuilder extends AbstractQueryBuilder { public static final String NAME = "type"; @@ -81,7 +80,7 @@ public class TypeQueryBuilder extends AbstractQueryBuilder { builder.endObject(); } - public static Optional fromXContent(QueryParseContext parseContext) throws IOException { + public static TypeQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); BytesRef type = null; @@ -114,9 +113,9 @@ public class TypeQueryBuilder extends AbstractQueryBuilder { throw new ParsingException(parser.getTokenLocation(), "[" + TypeQueryBuilder.NAME + "] filter needs to be provided with a value for the type"); } - return Optional.of(new TypeQueryBuilder(type) + return new TypeQueryBuilder(type) .boost(boost) - .queryName(queryName)); + .queryName(queryName); } diff --git a/core/src/main/java/org/elasticsearch/index/query/WildcardQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/WildcardQueryBuilder.java index 0cef251be07..bfe173664f4 100644 --- a/core/src/main/java/org/elasticsearch/index/query/WildcardQueryBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/WildcardQueryBuilder.java @@ -36,7 +36,6 @@ import org.elasticsearch.index.query.support.QueryParsers; import java.io.IOException; import java.util.Objects; -import java.util.Optional; /** * Implements the wildcard search query. Supported wildcards are *, which @@ -133,7 +132,7 @@ public class WildcardQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static WildcardQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); String fieldName = null; String rewrite = null; @@ -177,10 +176,10 @@ public class WildcardQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static WrapperQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); XContentParser.Token token = parser.nextToken(); @@ -136,7 +135,7 @@ public class WrapperQueryBuilder extends AbstractQueryBuilder new ParsingException(qSourceParser.getTokenLocation(), "inner query cannot be empty")); + final QueryBuilder queryBuilder = parseContext.parseInnerQueryBuilder(); if (boost() != DEFAULT_BOOST || queryName() != null) { final BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder(); boolQueryBuilder.must(queryBuilder); diff --git a/core/src/main/java/org/elasticsearch/index/query/functionscore/FunctionScoreQueryBuilder.java b/core/src/main/java/org/elasticsearch/index/query/functionscore/FunctionScoreQueryBuilder.java index c9bb00270d4..17422ce4f0a 100644 --- a/core/src/main/java/org/elasticsearch/index/query/functionscore/FunctionScoreQueryBuilder.java +++ b/core/src/main/java/org/elasticsearch/index/query/functionscore/FunctionScoreQueryBuilder.java @@ -40,7 +40,6 @@ import org.elasticsearch.index.query.AbstractQueryBuilder; import org.elasticsearch.index.query.InnerHitBuilder; import org.elasticsearch.index.query.MatchAllQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; -import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryRewriteContext; import org.elasticsearch.index.query.QueryShardContext; @@ -52,7 +51,6 @@ import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Objects; -import java.util.Optional; /** * A query that uses a filters with a script associated with them to compute the @@ -437,7 +435,7 @@ public class FunctionScoreQueryBuilder extends AbstractQueryBuilder fromXContent(ParseFieldRegistry> scoreFunctionsRegistry, + public static FunctionScoreQueryBuilder fromXContent(ParseFieldRegistry> scoreFunctionsRegistry, QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); @@ -467,7 +465,7 @@ public class FunctionScoreQueryBuilder extends AbstractQueryBuilder { public static final String NAME = "filters"; private static final Type TYPE = new Type(NAME); @@ -240,7 +238,7 @@ public class FiltersAggregationBuilder extends AbstractAggregationBuilder(); while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { - QueryBuilder filter = context.parseInnerQueryBuilder().orElse(matchAllQuery()); + QueryBuilder filter = context.parseInnerQueryBuilder(); nonKeyedFilters.add(filter); } } else { diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregationBuilder.java index e1b52ad0b30..7ecba5e9213 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregationBuilder.java @@ -77,7 +77,7 @@ public class SignificantTermsAggregationBuilder extends ValuesSourceAggregationB parser.declareString(SignificantTermsAggregationBuilder::executionHint, TermsAggregationBuilder.EXECUTION_HINT_FIELD_NAME); - parser.declareObject((b, v) -> { if (v.isPresent()) b.backgroundFilter(v.get()); }, + parser.declareObject(SignificantTermsAggregationBuilder::backgroundFilter, (p, context) -> context.parseInnerQueryBuilder(), SignificantTermsAggregationBuilder.BACKGROUND_FILTER); diff --git a/core/src/main/java/org/elasticsearch/search/builder/SearchSourceBuilder.java b/core/src/main/java/org/elasticsearch/search/builder/SearchSourceBuilder.java index 8d4adf55317..ccacee0a391 100644 --- a/core/src/main/java/org/elasticsearch/search/builder/SearchSourceBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/builder/SearchSourceBuilder.java @@ -991,9 +991,9 @@ public final class SearchSourceBuilder extends ToXContentToBytes implements Writ } } else if (token == XContentParser.Token.START_OBJECT) { if (context.getParseFieldMatcher().match(currentFieldName, QUERY_FIELD)) { - queryBuilder = context.parseInnerQueryBuilder().orElse(null); + queryBuilder = context.parseInnerQueryBuilder(); } else if (context.getParseFieldMatcher().match(currentFieldName, POST_FILTER_FIELD)) { - postQueryBuilder = context.parseInnerQueryBuilder().orElse(null); + postQueryBuilder = context.parseInnerQueryBuilder(); } else if (context.getParseFieldMatcher().match(currentFieldName, _SOURCE_FIELD)) { fetchSourceContext = FetchSourceContext.parse(context.parser()); } else if (context.getParseFieldMatcher().match(currentFieldName, SCRIPT_FIELDS_FIELD)) { diff --git a/core/src/main/java/org/elasticsearch/search/fetch/subphase/highlight/AbstractHighlighterBuilder.java b/core/src/main/java/org/elasticsearch/search/fetch/subphase/highlight/AbstractHighlighterBuilder.java index 72bd436a88c..e3a78227d9c 100644 --- a/core/src/main/java/org/elasticsearch/search/fetch/subphase/highlight/AbstractHighlighterBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/fetch/subphase/highlight/AbstractHighlighterBuilder.java @@ -539,7 +539,7 @@ public abstract class AbstractHighlighterBuilder { try { - return c.parseInnerQueryBuilder().orElse(null); + return c.parseInnerQueryBuilder(); } catch (IOException e) { throw new RuntimeException("Error parsing query", e); } diff --git a/core/src/main/java/org/elasticsearch/search/internal/ShardSearchRequest.java b/core/src/main/java/org/elasticsearch/search/internal/ShardSearchRequest.java index 01852506cdc..414d1880e7f 100644 --- a/core/src/main/java/org/elasticsearch/search/internal/ShardSearchRequest.java +++ b/core/src/main/java/org/elasticsearch/search/internal/ShardSearchRequest.java @@ -38,7 +38,6 @@ import org.elasticsearch.search.Scroll; import org.elasticsearch.search.builder.SearchSourceBuilder; import java.io.IOException; -import java.util.Optional; import java.util.function.Function; /** @@ -110,11 +109,7 @@ public interface ShardSearchRequest { try { byte[] filterSource = alias.filter().uncompressed(); try (XContentParser parser = XContentFactory.xContent(filterSource).createParser(filterSource)) { - Optional innerQueryBuilder = contextFactory.apply(parser).parseInnerQueryBuilder(); - if (innerQueryBuilder.isPresent()) { - return innerQueryBuilder.get(); - } - return null; + return contextFactory.apply(parser).parseInnerQueryBuilder(); } } catch (IOException ex) { throw new AliasFilterParsingException(index, alias.getAlias(), "Invalid alias filter", ex); diff --git a/core/src/main/java/org/elasticsearch/search/rescore/QueryRescorerBuilder.java b/core/src/main/java/org/elasticsearch/search/rescore/QueryRescorerBuilder.java index 5603446914c..f4174e48953 100644 --- a/core/src/main/java/org/elasticsearch/search/rescore/QueryRescorerBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/rescore/QueryRescorerBuilder.java @@ -26,7 +26,6 @@ import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.ObjectParser; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.index.query.QueryBuilder; -import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryShardContext; import org.elasticsearch.search.rescore.QueryRescorer.QueryRescoreContext; @@ -57,7 +56,7 @@ public class QueryRescorerBuilder extends RescoreBuilder { static { QUERY_RESCORE_PARSER.declareObject(InnerBuilder::setQueryBuilder, (p, c) -> { try { - return c.parseInnerQueryBuilder().orElse(QueryBuilders.matchAllQuery()); + return c.parseInnerQueryBuilder(); } catch (IOException e) { throw new ParsingException(p.getTokenLocation(), "Could not parse inner query", e); } diff --git a/core/src/main/java/org/elasticsearch/search/sort/GeoDistanceSortBuilder.java b/core/src/main/java/org/elasticsearch/search/sort/GeoDistanceSortBuilder.java index d7b369ac257..9defd05f471 100644 --- a/core/src/main/java/org/elasticsearch/search/sort/GeoDistanceSortBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/sort/GeoDistanceSortBuilder.java @@ -62,7 +62,6 @@ import java.util.Arrays; import java.util.List; import java.util.Locale; import java.util.Objects; -import java.util.Optional; /** * A geo distance based sorting on a geo point like field. @@ -408,7 +407,7 @@ public class GeoDistanceSortBuilder extends SortBuilder GeoDistance geoDistance = GeoDistance.DEFAULT; SortOrder order = SortOrder.ASC; SortMode sortMode = null; - Optional nestedFilter = Optional.empty(); + QueryBuilder nestedFilter = null; String nestedPath = null; boolean coerce = GeoValidationMethod.DEFAULT_LENIENT_PARSING; @@ -493,7 +492,9 @@ public class GeoDistanceSortBuilder extends SortBuilder if (sortMode != null) { result.sortMode(sortMode); } - nestedFilter.ifPresent(result::setNestedFilter); + if (nestedFilter != null) { + result.setNestedFilter(nestedFilter); + } result.setNestedPath(nestedPath); if (validation == null) { // looks like either validation was left unset or we are parsing old validation json diff --git a/core/src/main/java/org/elasticsearch/search/sort/SortBuilder.java b/core/src/main/java/org/elasticsearch/search/sort/SortBuilder.java index 365c1f9fe4c..962e8732551 100644 --- a/core/src/main/java/org/elasticsearch/search/sort/SortBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/sort/SortBuilder.java @@ -203,9 +203,7 @@ public abstract class SortBuilder> extends ToXContentTo protected static QueryBuilder parseNestedFilter(XContentParser parser, QueryParseContext context) { try { - QueryBuilder builder = context.parseInnerQueryBuilder().orElseThrow(() -> new ParsingException(parser.getTokenLocation(), - "Expected " + NESTED_FILTER_FIELD.getPreferredName() + " element.")); - return builder; + return context.parseInnerQueryBuilder(); } catch (Exception e) { throw new ParsingException(parser.getTokenLocation(), "Expected " + NESTED_FILTER_FIELD.getPreferredName() + " element.", e); } diff --git a/core/src/main/java/org/elasticsearch/search/suggest/phrase/PhraseSuggester.java b/core/src/main/java/org/elasticsearch/search/suggest/phrase/PhraseSuggester.java index 41168852d2c..8eb0aa0529a 100644 --- a/core/src/main/java/org/elasticsearch/search/suggest/phrase/PhraseSuggester.java +++ b/core/src/main/java/org/elasticsearch/search/suggest/phrase/PhraseSuggester.java @@ -34,14 +34,11 @@ import org.elasticsearch.common.lucene.Lucene; import org.elasticsearch.common.text.Text; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentParser; -import org.elasticsearch.index.query.MatchNoneQueryBuilder; import org.elasticsearch.index.query.ParsedQuery; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryShardContext; -import org.elasticsearch.script.CompiledScript; import org.elasticsearch.script.ExecutableScript; -import org.elasticsearch.script.ScriptService; import org.elasticsearch.search.suggest.Suggest.Suggestion; import org.elasticsearch.search.suggest.Suggest.Suggestion.Entry; import org.elasticsearch.search.suggest.Suggest.Suggestion.Entry.Option; @@ -54,7 +51,6 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.function.Function; public final class PhraseSuggester extends Suggester { @@ -125,8 +121,8 @@ public final class PhraseSuggester extends Suggester { final ExecutableScript executable = collateScript.apply(vars); final BytesReference querySource = (BytesReference) executable.run(); try (XContentParser parser = XContentFactory.xContent(querySource).createParser(querySource)) { - Optional innerQueryBuilder = shardContext.newParseContext(parser).parseInnerQueryBuilder(); - final ParsedQuery parsedQuery = shardContext.toQuery(innerQueryBuilder.orElse(new MatchNoneQueryBuilder())); + QueryBuilder innerQueryBuilder = shardContext.newParseContext(parser).parseInnerQueryBuilder(); + final ParsedQuery parsedQuery = shardContext.toQuery(innerQueryBuilder); collateMatch = Lucene.exists(searcher, parsedQuery.query()); } } diff --git a/core/src/test/java/org/elasticsearch/aliases/IndexAliasesIT.java b/core/src/test/java/org/elasticsearch/aliases/IndexAliasesIT.java index ebca512baec..9f04f74cd24 100644 --- a/core/src/test/java/org/elasticsearch/aliases/IndexAliasesIT.java +++ b/core/src/test/java/org/elasticsearch/aliases/IndexAliasesIT.java @@ -145,7 +145,9 @@ public class IndexAliasesIT extends ESIntegTestCase { ensureGreen(); logger.info("--> aliasing index [test] with [alias1] and empty filter"); - assertAcked(admin().indices().prepareAliases().addAlias("test", "alias1", "{}")); + IllegalArgumentException iae = expectThrows(IllegalArgumentException.class, + () -> admin().indices().prepareAliases().addAlias("test", "alias1", "{}").get()); + assertEquals("failed to parse filter for alias [alias1]", iae.getMessage()); } public void testSearchingFilteringAliasesSingleIndex() throws Exception { diff --git a/core/src/test/java/org/elasticsearch/index/query/BoolQueryBuilderTests.java b/core/src/test/java/org/elasticsearch/index/query/BoolQueryBuilderTests.java index c5c77e027ac..4987ef2ece7 100644 --- a/core/src/test/java/org/elasticsearch/index/query/BoolQueryBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/index/query/BoolQueryBuilderTests.java @@ -46,7 +46,6 @@ import static org.elasticsearch.index.query.QueryBuilders.constantScoreQuery; import static org.elasticsearch.index.query.QueryBuilders.termQuery; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.instanceOf; -import static org.hamcrest.CoreMatchers.startsWith; public class BoolQueryBuilderTests extends AbstractQueryTestCase { @Override @@ -330,34 +329,6 @@ public class BoolQueryBuilderTests extends AbstractQueryTestCase parseQuery(query, ParseFieldMatcher.STRICT)); - assertThat(ex.getMessage(), startsWith("query malformed, empty clause found at")); - checkWarningHeaders("query malformed, empty clause found at [1:27]"); - } - /** * test that unknown query names in the clauses throw an error */ diff --git a/core/src/test/java/org/elasticsearch/index/query/BoostingQueryBuilderTests.java b/core/src/test/java/org/elasticsearch/index/query/BoostingQueryBuilderTests.java index a4658fbbf23..49cb4442beb 100644 --- a/core/src/test/java/org/elasticsearch/index/query/BoostingQueryBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/index/query/BoostingQueryBuilderTests.java @@ -21,18 +21,13 @@ package org.elasticsearch.index.query; import org.apache.lucene.queries.BoostingQuery; import org.apache.lucene.search.Query; -import org.elasticsearch.common.ParseFieldMatcher; -import org.elasticsearch.common.xcontent.XContentFactory; -import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.internal.SearchContext; import org.elasticsearch.test.AbstractQueryTestCase; import java.io.IOException; -import java.util.Optional; -import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.instanceOf; -import static org.hamcrest.CoreMatchers.nullValue;; +import static org.hamcrest.CoreMatchers.nullValue; public class BoostingQueryBuilderTests extends AbstractQueryTestCase { @@ -94,45 +89,6 @@ public class BoostingQueryBuilderTests extends AbstractQueryTestCase innerQueryBuilder = context.parseInnerQueryBuilder(); - assertTrue(innerQueryBuilder.isPresent() == false); - - checkWarningHeaders("query malformed, empty clause found at [1:36]"); - - query = - "{ \"boosting\" : {\n" + - " \"positive\" : { \"match_all\" : {} },\n" + - " \"negative\" : { },\n" + - " \"negative_boost\" : 23.0\n" + - " }\n" + - "}"; - parser = XContentFactory.xContent(query).createParser(query); - context = createParseContext(parser, ParseFieldMatcher.EMPTY); - innerQueryBuilder = context.parseInnerQueryBuilder(); - assertTrue(innerQueryBuilder.isPresent() == false); - - checkWarningHeaders("query malformed, empty clause found at [3:20]"); - - parser = XContentFactory.xContent(query).createParser(query); - QueryParseContext otherContext = createParseContext(parser, ParseFieldMatcher.STRICT); - IllegalArgumentException ex = expectThrows(IllegalArgumentException.class, () -> otherContext.parseInnerQueryBuilder()); - assertThat(ex.getMessage(), equalTo("query malformed, empty clause found at [3:20]")); - checkWarningHeaders("query malformed, empty clause found at [3:20]"); - } - public void testRewrite() throws IOException { QueryBuilder positive = randomBoolean() ? new MatchAllQueryBuilder() : new WrapperQueryBuilder(new TermQueryBuilder("pos", "bar").toString()); QueryBuilder negative = randomBoolean() ? new MatchAllQueryBuilder() : new WrapperQueryBuilder(new TermQueryBuilder("neg", "bar").toString()); diff --git a/core/src/test/java/org/elasticsearch/index/query/ConstantScoreQueryBuilderTests.java b/core/src/test/java/org/elasticsearch/index/query/ConstantScoreQueryBuilderTests.java index 7ab852bc3f6..bec6d67f1be 100644 --- a/core/src/test/java/org/elasticsearch/index/query/ConstantScoreQueryBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/index/query/ConstantScoreQueryBuilderTests.java @@ -21,17 +21,12 @@ package org.elasticsearch.index.query; import org.apache.lucene.search.ConstantScoreQuery; import org.apache.lucene.search.Query; -import org.elasticsearch.common.ParseFieldMatcher; import org.elasticsearch.common.ParsingException; -import org.elasticsearch.common.xcontent.XContentFactory; -import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.search.internal.SearchContext; import org.elasticsearch.test.AbstractQueryTestCase; import java.io.IOException; -import java.util.Optional; -import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.Matchers.containsString; @@ -119,27 +114,4 @@ public class ConstantScoreQueryBuilderTests extends AbstractQueryTestCase innerQueryBuilder = context.parseInnerQueryBuilder(); - assertTrue(innerQueryBuilder.isPresent() == false); - checkWarningHeaders("query malformed, empty clause found at [1:40]"); - - parser = XContentFactory.xContent(query).createParser(query); - QueryParseContext otherContext = createParseContext(parser, ParseFieldMatcher.STRICT); - IllegalArgumentException ex = expectThrows(IllegalArgumentException.class, () -> otherContext.parseInnerQueryBuilder()); - assertThat(ex.getMessage(), equalTo("query malformed, empty clause found at [1:40]")); - checkWarningHeaders("query malformed, empty clause found at [1:40]"); - } - } diff --git a/core/src/test/java/org/elasticsearch/index/query/DisMaxQueryBuilderTests.java b/core/src/test/java/org/elasticsearch/index/query/DisMaxQueryBuilderTests.java index 114109736ea..ddd3ddf486f 100644 --- a/core/src/test/java/org/elasticsearch/index/query/DisMaxQueryBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/index/query/DisMaxQueryBuilderTests.java @@ -22,10 +22,8 @@ package org.elasticsearch.index.query; import org.apache.lucene.index.Term; import org.apache.lucene.search.BoostQuery; import org.apache.lucene.search.DisjunctionMaxQuery; -import org.apache.lucene.search.MatchNoDocsQuery; import org.apache.lucene.search.PrefixQuery; import org.apache.lucene.search.Query; -import org.elasticsearch.common.ParseFieldMatcher; import org.elasticsearch.search.internal.SearchContext; import org.elasticsearch.test.AbstractQueryTestCase; @@ -85,23 +83,6 @@ public class DisMaxQueryBuilderTests extends AbstractQueryTestCase disMaxQuery.add(null)); diff --git a/core/src/test/java/org/elasticsearch/index/query/HasChildQueryBuilderTests.java b/core/src/test/java/org/elasticsearch/index/query/HasChildQueryBuilderTests.java index aa0b82873fa..0caf112bd26 100644 --- a/core/src/test/java/org/elasticsearch/index/query/HasChildQueryBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/index/query/HasChildQueryBuilderTests.java @@ -20,7 +20,6 @@ package org.elasticsearch.index.query; import com.carrotsearch.randomizedtesting.generators.RandomPicks; - import org.apache.lucene.queries.TermsQuery; import org.apache.lucene.search.BooleanClause; import org.apache.lucene.search.BooleanQuery; @@ -33,11 +32,8 @@ import org.apache.lucene.search.similarities.PerFieldSimilarityWrapper; import org.apache.lucene.search.similarities.Similarity; import org.apache.lucene.util.BytesRef; import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest; -import org.elasticsearch.common.ParseFieldMatcher; import org.elasticsearch.common.compress.CompressedXContent; import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.common.xcontent.XContentFactory; -import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.mapper.MapperService; import org.elasticsearch.index.mapper.TypeFieldMapper; import org.elasticsearch.index.mapper.Uid; @@ -53,7 +49,6 @@ import java.io.IOException; import java.util.Collections; import java.util.HashMap; import java.util.Map; -import java.util.Optional; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.equalTo; @@ -223,28 +218,6 @@ public class HasChildQueryBuilderTests extends AbstractQueryTestCase innerQueryBuilder = context.parseInnerQueryBuilder(); - assertTrue(innerQueryBuilder.isPresent() == false); - - parser = XContentFactory.xContent(query).createParser(query); - QueryParseContext otherContext = createParseContext(parser, ParseFieldMatcher.STRICT); - IllegalArgumentException ex = expectThrows(IllegalArgumentException.class, () -> otherContext.parseInnerQueryBuilder()); - assertThat(ex.getMessage(), equalTo("query malformed, empty clause found at [3:17]")); - checkWarningHeaders("query malformed, empty clause found at [3:17]"); - } - public void testToQueryInnerQueryType() throws IOException { String[] searchTypes = new String[]{PARENT_TYPE}; QueryShardContext shardContext = createShardContext(); diff --git a/core/src/test/java/org/elasticsearch/index/query/HasParentQueryBuilderTests.java b/core/src/test/java/org/elasticsearch/index/query/HasParentQueryBuilderTests.java index eb740835054..ca402782e8c 100644 --- a/core/src/test/java/org/elasticsearch/index/query/HasParentQueryBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/index/query/HasParentQueryBuilderTests.java @@ -28,7 +28,6 @@ import org.elasticsearch.common.compress.CompressedXContent; import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.common.xcontent.XContentFactory; -import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.mapper.MapperService; import org.elasticsearch.search.fetch.subphase.InnerHitsContext; import org.elasticsearch.search.internal.SearchContext; @@ -39,7 +38,6 @@ import org.elasticsearch.test.AbstractQueryTestCase; import java.io.IOException; import java.util.HashMap; import java.util.Map; -import java.util.Optional; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.equalTo; @@ -206,30 +204,6 @@ public class HasParentQueryBuilderTests extends AbstractQueryTestCase innerQueryBuilder = context.parseInnerQueryBuilder(); - assertTrue(innerQueryBuilder.isPresent() == false); - - checkWarningHeaders("query malformed, empty clause found at [3:17]"); - - parser = XContentFactory.xContent(query).createParser(query); - QueryParseContext otherContext = createParseContext(parser, ParseFieldMatcher.STRICT); - IllegalArgumentException ex = expectThrows(IllegalArgumentException.class, () -> otherContext.parseInnerQueryBuilder()); - assertThat(ex.getMessage(), equalTo("query malformed, empty clause found at [3:17]")); - checkWarningHeaders("query malformed, empty clause found at [3:17]"); - } - public void testIgnoreUnmapped() throws IOException { final HasParentQueryBuilder queryBuilder = new HasParentQueryBuilder("unmapped", new MatchAllQueryBuilder(), false); queryBuilder.ignoreUnmapped(true); diff --git a/core/src/test/java/org/elasticsearch/index/query/QueryParseContextTests.java b/core/src/test/java/org/elasticsearch/index/query/QueryParseContextTests.java index aa8541ab956..3ccdae1afc6 100644 --- a/core/src/test/java/org/elasticsearch/index/query/QueryParseContextTests.java +++ b/core/src/test/java/org/elasticsearch/index/query/QueryParseContextTests.java @@ -35,13 +35,8 @@ import org.junit.Before; import org.junit.BeforeClass; import java.io.IOException; -import java.util.List; -import java.util.Optional; import static java.util.Collections.emptyList; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.hasItem; -import static org.hamcrest.Matchers.hasSize; public class QueryParseContextTests extends ESTestCase { @@ -99,20 +94,8 @@ public class QueryParseContextTests extends ESTestCase { String source = query.toString(); try (XContentParser parser = XContentFactory.xContent(source).createParser(source)) { QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.STRICT); - Optional actual = context.parseInnerQueryBuilder(); - assertEquals(query, actual.get()); - } - } - - public void testParseInnerQueryBuilderEmptyBody() throws IOException { - String source = "{}"; - try (XContentParser parser = XContentFactory.xContent(source).createParser(source)) { - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.EMPTY); - Optional emptyQuery = context.parseInnerQueryBuilder(); - assertFalse(emptyQuery.isPresent()); - final List warnings = threadContext.getResponseHeaders().get(DeprecationLogger.DEPRECATION_HEADER); - assertThat(warnings, hasSize(1)); - assertThat(warnings, hasItem(equalTo("query malformed, empty clause found at [1:2]"))); + QueryBuilder actual = context.parseInnerQueryBuilder(); + assertEquals(query, actual); } } @@ -128,12 +111,9 @@ public class QueryParseContextTests extends ESTestCase { source = "{}"; try (XContentParser parser = JsonXContent.jsonXContent.createParser(source)) { - QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.STRICT); + QueryParseContext context = new QueryParseContext(indicesQueriesRegistry, parser, ParseFieldMatcher.EMPTY); IllegalArgumentException exception = expectThrows(IllegalArgumentException.class, () -> context.parseInnerQueryBuilder()); assertEquals("query malformed, empty clause found at [1:2]", exception.getMessage()); - final List warnings = threadContext.getResponseHeaders().get(DeprecationLogger.DEPRECATION_HEADER); - assertThat(warnings, hasSize(1)); - assertThat(warnings, hasItem(equalTo("query malformed, empty clause found at [1:2]"))); } source = "{ \"foo\" : \"bar\" }"; @@ -149,9 +129,5 @@ public class QueryParseContextTests extends ESTestCase { ParsingException exception = expectThrows(ParsingException.class, () -> context.parseInnerQueryBuilder()); assertEquals("no [query] registered for [foo]", exception.getMessage()); } - final List warnings = threadContext.getResponseHeaders().get(DeprecationLogger.DEPRECATION_HEADER); - assertThat(warnings, hasSize(1)); - assertThat(warnings, hasItem(equalTo("query malformed, empty clause found at [1:2]"))); } - } diff --git a/core/src/test/java/org/elasticsearch/index/query/plugin/DummyQueryBuilder.java b/core/src/test/java/org/elasticsearch/index/query/plugin/DummyQueryBuilder.java index 08b9ee64742..5b6ea96dc3c 100644 --- a/core/src/test/java/org/elasticsearch/index/query/plugin/DummyQueryBuilder.java +++ b/core/src/test/java/org/elasticsearch/index/query/plugin/DummyQueryBuilder.java @@ -30,7 +30,6 @@ import org.elasticsearch.index.query.QueryShardContext; import org.elasticsearch.index.query.plugin.DummyQueryParserPlugin.DummyQuery; import java.io.IOException; -import java.util.Optional; public class DummyQueryBuilder extends AbstractQueryBuilder { public static final String NAME = "dummy"; @@ -52,10 +51,10 @@ public class DummyQueryBuilder extends AbstractQueryBuilder { builder.startObject(NAME).endObject(); } - public static Optional fromXContent(QueryParseContext parseContext) throws IOException { + public static DummyQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser.Token token = parseContext.parser().nextToken(); assert token == XContentParser.Token.END_OBJECT; - return Optional.of(new DummyQueryBuilder()); + return new DummyQueryBuilder(); } @Override diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/FilterIT.java b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/FilterIT.java index 0c8b9a22c37..5e43ac675aa 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/FilterIT.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/FilterIT.java @@ -21,17 +21,10 @@ package org.elasticsearch.search.aggregations.bucket; import org.elasticsearch.ElasticsearchException; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchResponse; -import org.elasticsearch.common.ParseFieldMatcher; import org.elasticsearch.common.xcontent.XContentBuilder; -import org.elasticsearch.common.xcontent.XContentFactory; -import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; -import org.elasticsearch.index.query.QueryParseContext; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; -import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.bucket.filter.Filter; -import org.elasticsearch.search.aggregations.bucket.filter.FilterAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.search.aggregations.metrics.avg.Avg; import org.elasticsearch.test.ESIntegTestCase; @@ -122,24 +115,6 @@ public class FilterIT extends ESIntegTestCase { assertThat(filter.getDocCount(), equalTo((long) numDocs)); } - /** - * test that "{ "filter" : {} }" is regarded as match_all when not parsing strict - */ - public void testEmptyFilter() throws Exception { - String emtpyFilterBody = "{ }"; - XContentParser parser = XContentFactory.xContent(emtpyFilterBody).createParser(emtpyFilterBody); - QueryParseContext parseContext = new QueryParseContext(new IndicesQueriesRegistry(), parser, ParseFieldMatcher.EMPTY); - AggregationBuilder filterAgg = FilterAggregationBuilder.parse("tag1", parseContext); - - SearchResponse response = client().prepareSearch("idx").addAggregation(filterAgg).execute().actionGet(); - - assertSearchResponse(response); - - Filter filter = response.getAggregations().get("tag1"); - assertThat(filter, notNullValue()); - assertThat(filter.getDocCount(), equalTo((long) numDocs)); - } - public void testWithSubAggregation() throws Exception { SearchResponse response = client().prepareSearch("idx") .addAggregation(filter("tag1", termQuery("tag", "tag1")) diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/FiltersIT.java b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/FiltersIT.java index 619bba7da12..f42d23d9e7f 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/FiltersIT.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/FiltersIT.java @@ -22,17 +22,10 @@ package org.elasticsearch.search.aggregations.bucket; import org.elasticsearch.ElasticsearchException; import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.search.SearchResponse; -import org.elasticsearch.common.ParseFieldMatcher; import org.elasticsearch.common.xcontent.XContentBuilder; -import org.elasticsearch.common.xcontent.XContentFactory; -import org.elasticsearch.common.xcontent.XContentParser; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; -import org.elasticsearch.index.query.QueryParseContext; -import org.elasticsearch.indices.query.IndicesQueriesRegistry; -import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.bucket.filters.Filters; -import org.elasticsearch.search.aggregations.bucket.filters.FiltersAggregationBuilder; import org.elasticsearch.search.aggregations.bucket.filters.FiltersAggregator.KeyedFilter; import org.elasticsearch.search.aggregations.bucket.histogram.Histogram; import org.elasticsearch.search.aggregations.metrics.avg.Avg; @@ -205,45 +198,9 @@ public class FiltersIT extends ESIntegTestCase { assertThat(avgValue, notNullValue()); assertThat(avgValue.getName(), equalTo("avg_value")); assertThat(avgValue.getValue(), equalTo((double) sum / numTag2Docs)); - assertThat((String) propertiesKeys[1], equalTo("tag2")); - assertThat((long) propertiesDocCounts[1], equalTo((long) numTag2Docs)); - assertThat((double) propertiesCounts[1], equalTo((double) sum / numTag2Docs)); - } - - public void testEmptyFilter() throws Exception { - String emtpyFilterBody = "{ \"filters\" : [ {} ] }"; - XContentParser parser = XContentFactory.xContent(emtpyFilterBody).createParser(emtpyFilterBody); - parser.nextToken(); - QueryParseContext parseContext = new QueryParseContext(new IndicesQueriesRegistry(), parser, ParseFieldMatcher.EMPTY); - AggregationBuilder filtersAgg = FiltersAggregationBuilder.parse("tag1", parseContext); - - SearchResponse response = client().prepareSearch("idx").addAggregation(filtersAgg).execute().actionGet(); - - assertSearchResponse(response); - - Filters filter = response.getAggregations().get("tag1"); - assertThat(filter, notNullValue()); - assertThat(filter.getBuckets().size(), equalTo(1)); - assertThat(filter.getBuckets().get(0).getDocCount(), equalTo((long) numDocs)); - } - - public void testEmptyKeyedFilter() throws Exception { - String emtpyFilterBody = "{ \"filters\" : {\"foo\" : {} } }"; - XContentParser parser = XContentFactory.xContent(emtpyFilterBody).createParser(emtpyFilterBody); - parser.nextToken(); - QueryParseContext parseContext = new QueryParseContext(new IndicesQueriesRegistry(), parser, ParseFieldMatcher.EMPTY); - AggregationBuilder filtersAgg = FiltersAggregationBuilder.parse("tag1", parseContext); - - SearchResponse response = client().prepareSearch("idx").addAggregation(filtersAgg) - .execute().actionGet(); - - assertSearchResponse(response); - - Filters filter = response.getAggregations().get("tag1"); - assertThat(filter, notNullValue()); - assertThat(filter.getBuckets().size(), equalTo(1)); - assertThat(filter.getBuckets().get(0).getKey(), equalTo("foo")); - assertThat(filter.getBuckets().get(0).getDocCount(), equalTo((long) numDocs)); + assertThat(propertiesKeys[1], equalTo("tag2")); + assertThat(propertiesDocCounts[1], equalTo((long) numTag2Docs)); + assertThat(propertiesCounts[1], equalTo((double) sum / numTag2Docs)); } public void testAsSubAggregation() { @@ -444,9 +401,9 @@ public class FiltersIT extends ESIntegTestCase { assertThat(avgValue, notNullValue()); assertThat(avgValue.getName(), equalTo("avg_value")); assertThat(avgValue.getValue(), equalTo((double) sum / numTag1Docs)); - assertThat((String) propertiesKeys[0], equalTo("tag1")); - assertThat((long) propertiesDocCounts[0], equalTo((long) numTag1Docs)); - assertThat((double) propertiesCounts[0], equalTo((double) sum / numTag1Docs)); + assertThat(propertiesKeys[0], equalTo("tag1")); + assertThat(propertiesDocCounts[0], equalTo((long) numTag1Docs)); + assertThat(propertiesCounts[0], equalTo((double) sum / numTag1Docs)); bucket = filters.getBucketByKey("tag2"); assertThat(bucket, Matchers.notNullValue()); @@ -460,9 +417,9 @@ public class FiltersIT extends ESIntegTestCase { assertThat(avgValue, notNullValue()); assertThat(avgValue.getName(), equalTo("avg_value")); assertThat(avgValue.getValue(), equalTo((double) sum / numTag2Docs)); - assertThat((String) propertiesKeys[1], equalTo("tag2")); - assertThat((long) propertiesDocCounts[1], equalTo((long) numTag2Docs)); - assertThat((double) propertiesCounts[1], equalTo((double) sum / numTag2Docs)); + assertThat(propertiesKeys[1], equalTo("tag2")); + assertThat(propertiesDocCounts[1], equalTo((long) numTag2Docs)); + assertThat(propertiesCounts[1], equalTo((double) sum / numTag2Docs)); bucket = filters.getBucketByKey("_other_"); assertThat(bucket, Matchers.notNullValue()); @@ -476,9 +433,9 @@ public class FiltersIT extends ESIntegTestCase { assertThat(avgValue, notNullValue()); assertThat(avgValue.getName(), equalTo("avg_value")); assertThat(avgValue.getValue(), equalTo((double) sum / numOtherDocs)); - assertThat((String) propertiesKeys[2], equalTo("_other_")); - assertThat((long) propertiesDocCounts[2], equalTo((long) numOtherDocs)); - assertThat((double) propertiesCounts[2], equalTo((double) sum / numOtherDocs)); + assertThat(propertiesKeys[2], equalTo("_other_")); + assertThat(propertiesDocCounts[2], equalTo((long) numOtherDocs)); + assertThat(propertiesCounts[2], equalTo((double) sum / numOtherDocs)); } public void testEmptyAggregationWithOtherBucket() throws Exception { diff --git a/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java b/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java index 086c9ca76ee..ea1a819ceb8 100644 --- a/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java +++ b/core/src/test/java/org/elasticsearch/search/builder/SearchSourceBuilderTests.java @@ -22,7 +22,6 @@ package org.elasticsearch.search.builder; import org.elasticsearch.ElasticsearchParseException; import org.elasticsearch.common.ParseFieldMatcher; import org.elasticsearch.common.ParsingException; -import org.elasticsearch.common.bytes.BytesArray; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.io.stream.BytesStreamOutput; import org.elasticsearch.common.io.stream.NamedWriteableAwareStreamInput; @@ -315,16 +314,4 @@ public class SearchSourceBuilderTests extends AbstractSearchTestCase { assertEquals("query", sourceAsMap.keySet().iterator().next()); } } - - public void testEmptyPostFilter() throws IOException { - SearchSourceBuilder builder = new SearchSourceBuilder(); - String query = "{ \"post_filter\": {} }"; - assertParseSearchSource(builder, new BytesArray(query), ParseFieldMatcher.EMPTY); - } - - public void testEmptyQuery() throws IOException { - SearchSourceBuilder builder = new SearchSourceBuilder(); - String query = "{ \"query\": {} }"; - assertParseSearchSource(builder, new BytesArray(query), ParseFieldMatcher.EMPTY); - } } diff --git a/docs/reference/migration/migrate_6_0/search.asciidoc b/docs/reference/migration/migrate_6_0/search.asciidoc index 6910d37edaf..bc90b90c8b2 100644 --- a/docs/reference/migration/migrate_6_0/search.asciidoc +++ b/docs/reference/migration/migrate_6_0/search.asciidoc @@ -23,6 +23,9 @@ * The deprecated `indices` query has been removed. +* Support for empty query objects (`{ }`) has been removed from the query DSL. + An error is thrown whenever an empty query object is provided. + ==== Search shards API The search shards API no longer accepts the `type` url parameter, which didn't diff --git a/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/TemplateQueryBuilder.java b/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/TemplateQueryBuilder.java index 3744416a4ef..59e2e8eac52 100644 --- a/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/TemplateQueryBuilder.java +++ b/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/TemplateQueryBuilder.java @@ -19,7 +19,6 @@ package org.elasticsearch.script.mustache; import org.apache.lucene.search.Query; -import org.elasticsearch.common.ParsingException; import org.elasticsearch.common.bytes.BytesReference; import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; @@ -42,7 +41,6 @@ import java.io.IOException; import java.util.Collections; import java.util.Map; import java.util.Objects; -import java.util.Optional; /** * Facilitates creating template query requests. @@ -122,8 +120,7 @@ public class TemplateQueryBuilder extends AbstractQueryBuilder new ParsingException(qSourceParser.getTokenLocation(), "inner query in [" + NAME + "] cannot be empty")); + final QueryBuilder queryBuilder = queryParseContext.parseInnerQueryBuilder(); if (boost() != DEFAULT_BOOST || queryName() != null) { final BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder(); boolQueryBuilder.must(queryBuilder); @@ -137,9 +134,9 @@ public class TemplateQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static TemplateQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); Script template = Script.parse(parser, parseContext.getParseFieldMatcher(), "mustache"); - return Optional.of(new TemplateQueryBuilder(template)); + return new TemplateQueryBuilder(template); } } diff --git a/modules/percolator/src/main/java/org/elasticsearch/percolator/PercolateQueryBuilder.java b/modules/percolator/src/main/java/org/elasticsearch/percolator/PercolateQueryBuilder.java index 14cb246ae92..24243081f23 100644 --- a/modules/percolator/src/main/java/org/elasticsearch/percolator/PercolateQueryBuilder.java +++ b/modules/percolator/src/main/java/org/elasticsearch/percolator/PercolateQueryBuilder.java @@ -75,7 +75,6 @@ import org.elasticsearch.index.query.QueryShardException; import java.io.IOException; import java.util.Objects; -import java.util.Optional; import static org.elasticsearch.index.mapper.SourceToParse.source; import static org.elasticsearch.percolator.PercolatorFieldMapper.parseQuery; @@ -233,7 +232,7 @@ public class PercolateQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { + public static PercolateQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException { XContentParser parser = parseContext.parser(); float boost = AbstractQueryBuilder.DEFAULT_BOOST; @@ -314,7 +313,7 @@ public class PercolateQueryBuilder extends AbstractQueryBuilder new ParsingException(location, "Failed to parse inner query, was empty")); + return context.parseInnerQueryBuilder(); } catch (IOException e) { throw new ParsingException(location, "Failed to parse", e); } diff --git a/modules/percolator/src/main/java/org/elasticsearch/percolator/TransportPercolateAction.java b/modules/percolator/src/main/java/org/elasticsearch/percolator/TransportPercolateAction.java index 2322c981a7d..3656049c9c6 100644 --- a/modules/percolator/src/main/java/org/elasticsearch/percolator/TransportPercolateAction.java +++ b/modules/percolator/src/main/java/org/elasticsearch/percolator/TransportPercolateAction.java @@ -209,7 +209,7 @@ public class TransportPercolateAction extends HandledTransportAction { throw new UnsupportedOperationException(); }) .newParseContext(sourceParser); - assertThat(qsc.parseInnerQueryBuilder().get(), equalTo(expected)); + assertThat(qsc.parseInnerQueryBuilder(), equalTo(expected)); } - public void testEmptyName() throws Exception { // after 5.x String mapping = XContentFactory.jsonBuilder().startObject().startObject("type1") diff --git a/qa/smoke-test-http/src/test/java/org/elasticsearch/http/TestDeprecatedQueryBuilder.java b/qa/smoke-test-http/src/test/java/org/elasticsearch/http/TestDeprecatedQueryBuilder.java index 84d564cb2e1..cf8b2539f07 100644 --- a/qa/smoke-test-http/src/test/java/org/elasticsearch/http/TestDeprecatedQueryBuilder.java +++ b/qa/smoke-test-http/src/test/java/org/elasticsearch/http/TestDeprecatedQueryBuilder.java @@ -33,7 +33,6 @@ import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.index.query.QueryShardContext; import java.io.IOException; -import java.util.Optional; /** * A query that performs a match_all query, but with each index touched getting a unique deprecation warning. @@ -66,14 +65,14 @@ public class TestDeprecatedQueryBuilder extends AbstractQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException, ParsingException { + public static TestDeprecatedQueryBuilder fromXContent(QueryParseContext parseContext) throws IOException, ParsingException { XContentParser parser = parseContext.parser(); if (parser.nextToken() != XContentParser.Token.END_OBJECT) { throw new ParsingException(parser.getTokenLocation(), "[{}] query does not have any fields", NAME); } - return Optional.of(new TestDeprecatedQueryBuilder()); + return new TestDeprecatedQueryBuilder(); } @Override diff --git a/test/framework/src/main/java/org/elasticsearch/test/AbstractQueryTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/AbstractQueryTestCase.java index 62fd7c9c195..aadec9f62a1 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/AbstractQueryTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/AbstractQueryTestCase.java @@ -591,8 +591,7 @@ public abstract class AbstractQueryTestCase> private static QueryBuilder parseQuery(XContentParser parser, ParseFieldMatcher matcher) throws IOException { QueryParseContext context = createParseContext(parser, matcher); - QueryBuilder parseInnerQueryBuilder = context.parseInnerQueryBuilder() - .orElseThrow(() -> new IllegalArgumentException("inner query body cannot be empty")); + QueryBuilder parseInnerQueryBuilder = context.parseInnerQueryBuilder(); assertNull(parser.nextToken()); return parseInnerQueryBuilder; } From abf718832d822585d13433206d199f9c2b06f3f7 Mon Sep 17 00:00:00 2001 From: yutaono Date: Mon, 12 Dec 2016 22:56:52 +0900 Subject: [PATCH 47/51] add missing url-access-control link (#21960) --- docs/reference/api-conventions.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/reference/api-conventions.asciidoc b/docs/reference/api-conventions.asciidoc index 6404f6ebf13..0398b99f25e 100644 --- a/docs/reference/api-conventions.asciidoc +++ b/docs/reference/api-conventions.asciidoc @@ -11,6 +11,7 @@ API, unless otherwise specified. * <> * <> * <> +* <> -- From 32fcb7220e8080e4d7f7f6d9a12c5f1d67bc251b Mon Sep 17 00:00:00 2001 From: Matt Sicker Date: Mon, 12 Dec 2016 08:00:27 -0600 Subject: [PATCH 48/51] Clarify first search API explanation of parameters (#21958) Added info about the sort parameter and included the pretty parameter in the example. --- docs/reference/getting-started.asciidoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/reference/getting-started.asciidoc b/docs/reference/getting-started.asciidoc index 3e6a3b0f6ad..0d2b564d1ca 100755 --- a/docs/reference/getting-started.asciidoc +++ b/docs/reference/getting-started.asciidoc @@ -623,12 +623,12 @@ The REST API for search is accessible from the `_search` endpoint. This example [source,js] -------------------------------------------------- -GET /bank/_search?q=*&sort=account_number:asc +GET /bank/_search?q=*&sort=account_number:asc&pretty -------------------------------------------------- // CONSOLE // TEST[continued] -Let's first dissect the search call. We are searching (`_search` endpoint) in the bank index, and the `q=*` parameter instructs Elasticsearch to match all documents in the index. The `pretty` parameter, again, just tells Elasticsearch to return pretty-printed JSON results. +Let's first dissect the search call. We are searching (`_search` endpoint) in the bank index, and the `q=*` parameter instructs Elasticsearch to match all documents in the index. The `sort=account_number:asc` parameter indicates to sort the results using the `account_number` field of each document in an ascending order. The `pretty` parameter, again, just tells Elasticsearch to return pretty-printed JSON results. And the response (partially shown): From b667ff46c4726875fd4bdcf626d68c192356d7fc Mon Sep 17 00:00:00 2001 From: Simon Willnauer Date: Mon, 12 Dec 2016 17:35:00 +0100 Subject: [PATCH 49/51] Allow plugins to install bootstrap checks (#22110) Plugins also have the need to provide better OOTB experience by configuring defaults unless the plugin is used in _production_ mode. This change exposes the bootstrap check infrastructure as part of the plugin API to allow plugins to specify / install their own bootstrap checks if necessary. --- .../elasticsearch/bootstrap/Bootstrap.java | 5 +- .../bootstrap/BootstrapCheck.java | 605 +---------------- .../bootstrap/BootstrapChecks.java | 609 ++++++++++++++++++ .../java/org/elasticsearch/node/Node.java | 8 +- .../node/NodeValidationException.java | 7 +- .../org/elasticsearch/plugins/Plugin.java | 9 + .../bootstrap/BootstrapCheckTests.java | 128 ++-- .../bootstrap/MaxMapCountCheckTests.java | 8 +- .../org/elasticsearch/node/NodeTests.java | 52 ++ 9 files changed, 759 insertions(+), 672 deletions(-) create mode 100644 core/src/main/java/org/elasticsearch/bootstrap/BootstrapChecks.java diff --git a/core/src/main/java/org/elasticsearch/bootstrap/Bootstrap.java b/core/src/main/java/org/elasticsearch/bootstrap/Bootstrap.java index d573e968ff3..aadb0c3593a 100644 --- a/core/src/main/java/org/elasticsearch/bootstrap/Bootstrap.java +++ b/core/src/main/java/org/elasticsearch/bootstrap/Bootstrap.java @@ -55,6 +55,7 @@ import java.io.UnsupportedEncodingException; import java.net.URISyntaxException; import java.nio.file.Path; import java.security.NoSuchAlgorithmException; +import java.util.List; import java.util.Map; import java.util.concurrent.CountDownLatch; @@ -215,8 +216,8 @@ final class Bootstrap { @Override protected void validateNodeBeforeAcceptingRequests( final Settings settings, - final BoundTransportAddress boundTransportAddress) throws NodeValidationException { - BootstrapCheck.check(settings, boundTransportAddress); + final BoundTransportAddress boundTransportAddress, List checks) throws NodeValidationException { + BootstrapChecks.check(settings, boundTransportAddress, checks); } }; } diff --git a/core/src/main/java/org/elasticsearch/bootstrap/BootstrapCheck.java b/core/src/main/java/org/elasticsearch/bootstrap/BootstrapCheck.java index 16a9cc28f70..ffe52dfe5b9 100644 --- a/core/src/main/java/org/elasticsearch/bootstrap/BootstrapCheck.java +++ b/core/src/main/java/org/elasticsearch/bootstrap/BootstrapCheck.java @@ -19,612 +19,27 @@ package org.elasticsearch.bootstrap; -import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.message.ParameterizedMessage; -import org.apache.logging.log4j.util.Supplier; -import org.apache.lucene.util.Constants; -import org.elasticsearch.common.SuppressForbidden; -import org.elasticsearch.common.io.PathUtils; -import org.elasticsearch.common.logging.Loggers; -import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.common.transport.BoundTransportAddress; -import org.elasticsearch.common.transport.TransportAddress; -import org.elasticsearch.monitor.jvm.JvmInfo; -import org.elasticsearch.monitor.process.ProcessProbe; -import org.elasticsearch.node.Node; -import org.elasticsearch.node.NodeValidationException; - -import java.io.BufferedReader; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Locale; -import java.util.function.Predicate; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - /** - * We enforce bootstrap checks once a node has the transport protocol bound to a non-loopback interface. In this case we assume the node is - * running in production and all bootstrap checks must pass. + * Encapsulates a bootstrap check. */ -final class BootstrapCheck { - - private BootstrapCheck() { - } +public interface BootstrapCheck { /** - * Executes the bootstrap checks if the node has the transport protocol bound to a non-loopback interface. + * Test if the node fails the check. * - * @param settings the current node settings - * @param boundTransportAddress the node network bindings + * @return {@code true} if the node failed the check */ - static void check(final Settings settings, final BoundTransportAddress boundTransportAddress) throws NodeValidationException { - check( - enforceLimits(boundTransportAddress), - checks(settings), - Node.NODE_NAME_SETTING.get(settings)); - } + boolean check(); /** - * Executes the provided checks and fails the node if {@code enforceLimits} is {@code true}, otherwise logs warnings. + * The error message for a failed check. * - * @param enforceLimits {@code true} if the checks should be enforced or otherwise warned - * @param checks the checks to execute - * @param nodeName the node name to be used as a logging prefix + * @return the error message on check failure */ - static void check( - final boolean enforceLimits, - final List checks, - final String nodeName) throws NodeValidationException { - check(enforceLimits, checks, Loggers.getLogger(BootstrapCheck.class, nodeName)); - } - - /** - * Executes the provided checks and fails the node if {@code enforceLimits} is {@code true}, otherwise logs warnings. - * - * @param enforceLimits {@code true} if the checks should be enforced or otherwise warned - * @param checks the checks to execute - * @param logger the logger to - */ - static void check( - final boolean enforceLimits, - final List checks, - final Logger logger) throws NodeValidationException { - final List errors = new ArrayList<>(); - final List ignoredErrors = new ArrayList<>(); - - if (enforceLimits) { - logger.info("bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks"); - } - - for (final Check check : checks) { - if (check.check()) { - if (!enforceLimits && !check.alwaysEnforce()) { - ignoredErrors.add(check.errorMessage()); - } else { - errors.add(check.errorMessage()); - } - } - } - - if (!ignoredErrors.isEmpty()) { - ignoredErrors.forEach(error -> log(logger, error)); - } - - if (!errors.isEmpty()) { - final List messages = new ArrayList<>(1 + errors.size()); - messages.add("bootstrap checks failed"); - messages.addAll(errors); - final NodeValidationException ne = new NodeValidationException(String.join("\n", messages)); - errors.stream().map(IllegalStateException::new).forEach(ne::addSuppressed); - throw ne; - } - - } - - static void log(final Logger logger, final String error) { - logger.warn(error); - } - - /** - * Tests if the checks should be enforced. - * - * @param boundTransportAddress the node network bindings - * @return {@code true} if the checks should be enforced - */ - static boolean enforceLimits(BoundTransportAddress boundTransportAddress) { - Predicate isLoopbackOrLinkLocalAddress = t -> t.address().getAddress().isLinkLocalAddress() - || t.address().getAddress().isLoopbackAddress(); - return !(Arrays.stream(boundTransportAddress.boundAddresses()).allMatch(isLoopbackOrLinkLocalAddress) && - isLoopbackOrLinkLocalAddress.test(boundTransportAddress.publishAddress())); - } - - // the list of checks to execute - static List checks(final Settings settings) { - final List checks = new ArrayList<>(); - checks.add(new HeapSizeCheck()); - final FileDescriptorCheck fileDescriptorCheck - = Constants.MAC_OS_X ? new OsXFileDescriptorCheck() : new FileDescriptorCheck(); - checks.add(fileDescriptorCheck); - checks.add(new MlockallCheck(BootstrapSettings.MEMORY_LOCK_SETTING.get(settings))); - if (Constants.LINUX) { - checks.add(new MaxNumberOfThreadsCheck()); - } - if (Constants.LINUX || Constants.MAC_OS_X) { - checks.add(new MaxSizeVirtualMemoryCheck()); - } - if (Constants.LINUX) { - checks.add(new MaxMapCountCheck()); - } - checks.add(new ClientJvmCheck()); - checks.add(new UseSerialGCCheck()); - checks.add(new SystemCallFilterCheck(BootstrapSettings.SECCOMP_SETTING.get(settings))); - checks.add(new OnErrorCheck()); - checks.add(new OnOutOfMemoryErrorCheck()); - checks.add(new G1GCCheck()); - return Collections.unmodifiableList(checks); - } - - /** - * Encapsulates a bootstrap check. - */ - interface Check { - - /** - * Test if the node fails the check. - * - * @return {@code true} if the node failed the check - */ - boolean check(); - - /** - * The error message for a failed check. - * - * @return the error message on check failure - */ - String errorMessage(); - - default boolean alwaysEnforce() { - return false; - } - - } - - static class HeapSizeCheck implements BootstrapCheck.Check { - - @Override - public boolean check() { - final long initialHeapSize = getInitialHeapSize(); - final long maxHeapSize = getMaxHeapSize(); - return initialHeapSize != 0 && maxHeapSize != 0 && initialHeapSize != maxHeapSize; - } - - @Override - public String errorMessage() { - return String.format( - Locale.ROOT, - "initial heap size [%d] not equal to maximum heap size [%d]; " + - "this can cause resize pauses and prevents mlockall from locking the entire heap", - getInitialHeapSize(), - getMaxHeapSize() - ); - } - - // visible for testing - long getInitialHeapSize() { - return JvmInfo.jvmInfo().getConfiguredInitialHeapSize(); - } - - // visible for testing - long getMaxHeapSize() { - return JvmInfo.jvmInfo().getConfiguredMaxHeapSize(); - } - - } - - static class OsXFileDescriptorCheck extends FileDescriptorCheck { - - public OsXFileDescriptorCheck() { - // see constant OPEN_MAX defined in - // /usr/include/sys/syslimits.h on OS X and its use in JVM - // initialization in int os:init_2(void) defined in the JVM - // code for BSD (contains OS X) - super(10240); - } - - } - - static class FileDescriptorCheck implements Check { - - private final int limit; - - FileDescriptorCheck() { - this(1 << 16); - } - - protected FileDescriptorCheck(final int limit) { - if (limit <= 0) { - throw new IllegalArgumentException("limit must be positive but was [" + limit + "]"); - } - this.limit = limit; - } - - public final boolean check() { - final long maxFileDescriptorCount = getMaxFileDescriptorCount(); - return maxFileDescriptorCount != -1 && maxFileDescriptorCount < limit; - } - - @Override - public final String errorMessage() { - return String.format( - Locale.ROOT, - "max file descriptors [%d] for elasticsearch process is too low, increase to at least [%d]", - getMaxFileDescriptorCount(), - limit - ); - } - - // visible for testing - long getMaxFileDescriptorCount() { - return ProcessProbe.getInstance().getMaxFileDescriptorCount(); - } - - } - - static class MlockallCheck implements Check { - - private final boolean mlockallSet; - - public MlockallCheck(final boolean mlockAllSet) { - this.mlockallSet = mlockAllSet; - } - - @Override - public boolean check() { - return mlockallSet && !isMemoryLocked(); - } - - @Override - public String errorMessage() { - return "memory locking requested for elasticsearch process but memory is not locked"; - } - - // visible for testing - boolean isMemoryLocked() { - return Natives.isMemoryLocked(); - } - - } - - static class MaxNumberOfThreadsCheck implements Check { - - // this should be plenty for machines up to 256 cores - private final long maxNumberOfThreadsThreshold = 1 << 12; - - @Override - public boolean check() { - return getMaxNumberOfThreads() != -1 && getMaxNumberOfThreads() < maxNumberOfThreadsThreshold; - } - - @Override - public String errorMessage() { - return String.format( - Locale.ROOT, - "max number of threads [%d] for user [%s] is too low, increase to at least [%d]", - getMaxNumberOfThreads(), - BootstrapInfo.getSystemProperties().get("user.name"), - maxNumberOfThreadsThreshold); - } - - // visible for testing - long getMaxNumberOfThreads() { - return JNANatives.MAX_NUMBER_OF_THREADS; - } - - } - - static class MaxSizeVirtualMemoryCheck implements Check { - - @Override - public boolean check() { - return getMaxSizeVirtualMemory() != Long.MIN_VALUE && getMaxSizeVirtualMemory() != getRlimInfinity(); - } - - @Override - public String errorMessage() { - return String.format( - Locale.ROOT, - "max size virtual memory [%d] for user [%s] is too low, increase to [unlimited]", - getMaxSizeVirtualMemory(), - BootstrapInfo.getSystemProperties().get("user.name")); - } - - // visible for testing - long getRlimInfinity() { - return JNACLibrary.RLIM_INFINITY; - } - - // visible for testing - long getMaxSizeVirtualMemory() { - return JNANatives.MAX_SIZE_VIRTUAL_MEMORY; - } - - } - - static class MaxMapCountCheck implements Check { - - private final long limit = 1 << 18; - - @Override - public boolean check() { - return getMaxMapCount() != -1 && getMaxMapCount() < limit; - } - - @Override - public String errorMessage() { - return String.format( - Locale.ROOT, - "max virtual memory areas vm.max_map_count [%d] is too low, increase to at least [%d]", - getMaxMapCount(), - limit); - } - - // visible for testing - long getMaxMapCount() { - return getMaxMapCount(Loggers.getLogger(BootstrapCheck.class)); - } - - // visible for testing - long getMaxMapCount(Logger logger) { - final Path path = getProcSysVmMaxMapCountPath(); - try (final BufferedReader bufferedReader = getBufferedReader(path)) { - final String rawProcSysVmMaxMapCount = readProcSysVmMaxMapCount(bufferedReader); - if (rawProcSysVmMaxMapCount != null) { - try { - return parseProcSysVmMaxMapCount(rawProcSysVmMaxMapCount); - } catch (final NumberFormatException e) { - logger.warn( - (Supplier) () -> new ParameterizedMessage( - "unable to parse vm.max_map_count [{}]", - rawProcSysVmMaxMapCount), - e); - } - } - } catch (final IOException e) { - logger.warn((Supplier) () -> new ParameterizedMessage("I/O exception while trying to read [{}]", path), e); - } - return -1; - } - - @SuppressForbidden(reason = "access /proc/sys/vm/max_map_count") - private Path getProcSysVmMaxMapCountPath() { - return PathUtils.get("/proc/sys/vm/max_map_count"); - } - - // visible for testing - BufferedReader getBufferedReader(final Path path) throws IOException { - return Files.newBufferedReader(path); - } - - // visible for testing - String readProcSysVmMaxMapCount(final BufferedReader bufferedReader) throws IOException { - return bufferedReader.readLine(); - } - - // visible for testing - long parseProcSysVmMaxMapCount(final String procSysVmMaxMapCount) throws NumberFormatException { - return Long.parseLong(procSysVmMaxMapCount); - } - - } - - static class ClientJvmCheck implements BootstrapCheck.Check { - - @Override - public boolean check() { - return getVmName().toLowerCase(Locale.ROOT).contains("client"); - } - - // visible for testing - String getVmName() { - return JvmInfo.jvmInfo().getVmName(); - } - - @Override - public String errorMessage() { - return String.format( - Locale.ROOT, - "JVM is using the client VM [%s] but should be using a server VM for the best performance", - getVmName()); - } - - } - - /** - * Checks if the serial collector is in use. This collector is single-threaded and devastating - * for performance and should not be used for a server application like Elasticsearch. - */ - static class UseSerialGCCheck implements BootstrapCheck.Check { - - @Override - public boolean check() { - return getUseSerialGC().equals("true"); - } - - // visible for testing - String getUseSerialGC() { - return JvmInfo.jvmInfo().useSerialGC(); - } - - @Override - public String errorMessage() { - return String.format( - Locale.ROOT, - "JVM is using the serial collector but should not be for the best performance; " + - "either it's the default for the VM [%s] or -XX:+UseSerialGC was explicitly specified", - JvmInfo.jvmInfo().getVmName()); - } - - } - - /** - * Bootstrap check that if system call filters are enabled, then system call filters must have installed successfully. - */ - static class SystemCallFilterCheck implements BootstrapCheck.Check { - - private final boolean areSystemCallFiltersEnabled; - - SystemCallFilterCheck(final boolean areSystemCallFiltersEnabled) { - this.areSystemCallFiltersEnabled = areSystemCallFiltersEnabled; - } - - @Override - public boolean check() { - return areSystemCallFiltersEnabled && !isSeccompInstalled(); - } - - // visible for testing - boolean isSeccompInstalled() { - return Natives.isSeccompInstalled(); - } - - @Override - public String errorMessage() { - return "system call filters failed to install; " + - "check the logs and fix your configuration or disable system call filters at your own risk"; - } - - } - - abstract static class MightForkCheck implements BootstrapCheck.Check { - - @Override - public boolean check() { - return isSeccompInstalled() && mightFork(); - } - - // visible for testing - boolean isSeccompInstalled() { - return Natives.isSeccompInstalled(); - } - - // visible for testing - abstract boolean mightFork(); - - @Override - public final boolean alwaysEnforce() { - return true; - } - - } - - static class OnErrorCheck extends MightForkCheck { - - @Override - boolean mightFork() { - final String onError = onError(); - return onError != null && !onError.equals(""); - } - - // visible for testing - String onError() { - return JvmInfo.jvmInfo().onError(); - } - - @Override - public String errorMessage() { - return String.format( - Locale.ROOT, - "OnError [%s] requires forking but is prevented by system call filters ([%s=true]);" + - " upgrade to at least Java 8u92 and use ExitOnOutOfMemoryError", - onError(), - BootstrapSettings.SECCOMP_SETTING.getKey()); - } - - } - - static class OnOutOfMemoryErrorCheck extends MightForkCheck { - - @Override - boolean mightFork() { - final String onOutOfMemoryError = onOutOfMemoryError(); - return onOutOfMemoryError != null && !onOutOfMemoryError.equals(""); - } - - // visible for testing - String onOutOfMemoryError() { - return JvmInfo.jvmInfo().onOutOfMemoryError(); - } - - @Override - public String errorMessage() { - return String.format( - Locale.ROOT, - "OnOutOfMemoryError [%s] requires forking but is prevented by system call filters ([%s=true]);" + - " upgrade to at least Java 8u92 and use ExitOnOutOfMemoryError", - onOutOfMemoryError(), - BootstrapSettings.SECCOMP_SETTING.getKey()); - } - - } - - /** - * Bootstrap check for versions of HotSpot that are known to have issues that can lead to index corruption when G1GC is enabled. - */ - static class G1GCCheck implements BootstrapCheck.Check { - - @Override - public boolean check() { - if ("Oracle Corporation".equals(jvmVendor()) && isJava8() && isG1GCEnabled()) { - final String jvmVersion = jvmVersion(); - // HotSpot versions on Java 8 match this regular expression; note that this changes with Java 9 after JEP-223 - final Pattern pattern = Pattern.compile("(\\d+)\\.(\\d+)-b\\d+"); - final Matcher matcher = pattern.matcher(jvmVersion); - final boolean matches = matcher.matches(); - assert matches : jvmVersion; - final int major = Integer.parseInt(matcher.group(1)); - final int update = Integer.parseInt(matcher.group(2)); - // HotSpot versions for Java 8 have major version 25, the bad versions are all versions prior to update 40 - return major == 25 && update < 40; - } else { - return false; - } - } - - // visible for testing - String jvmVendor() { - return Constants.JVM_VENDOR; - } - - // visible for testing - boolean isG1GCEnabled() { - assert "Oracle Corporation".equals(jvmVendor()); - return JvmInfo.jvmInfo().useG1GC().equals("true"); - } - - // visible for testing - String jvmVersion() { - assert "Oracle Corporation".equals(jvmVendor()); - return Constants.JVM_VERSION; - } - - // visible for testing - boolean isJava8() { - assert "Oracle Corporation".equals(jvmVendor()); - return JavaVersion.current().equals(JavaVersion.parse("1.8")); - } - - @Override - public String errorMessage() { - return String.format( - Locale.ROOT, - "JVM version [%s] can cause data corruption when used with G1GC; upgrade to at least Java 8u40", jvmVersion()); - } + String errorMessage(); + default boolean alwaysEnforce() { + return false; } } diff --git a/core/src/main/java/org/elasticsearch/bootstrap/BootstrapChecks.java b/core/src/main/java/org/elasticsearch/bootstrap/BootstrapChecks.java new file mode 100644 index 00000000000..bd62db6a9d8 --- /dev/null +++ b/core/src/main/java/org/elasticsearch/bootstrap/BootstrapChecks.java @@ -0,0 +1,609 @@ +/* + * Licensed to Elasticsearch under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.elasticsearch.bootstrap; + +import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.message.ParameterizedMessage; +import org.apache.logging.log4j.util.Supplier; +import org.apache.lucene.util.Constants; +import org.elasticsearch.common.SuppressForbidden; +import org.elasticsearch.common.io.PathUtils; +import org.elasticsearch.common.logging.Loggers; +import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.transport.BoundTransportAddress; +import org.elasticsearch.common.transport.TransportAddress; +import org.elasticsearch.monitor.jvm.JvmInfo; +import org.elasticsearch.monitor.process.ProcessProbe; +import org.elasticsearch.node.Node; +import org.elasticsearch.node.NodeValidationException; + +import java.io.BufferedReader; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Locale; +import java.util.function.Predicate; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * We enforce bootstrap checks once a node has the transport protocol bound to a non-loopback interface. In this case we assume the node is + * running in production and all bootstrap checks must pass. + */ +final class BootstrapChecks { + + private BootstrapChecks() { + } + + /** + * Executes the bootstrap checks if the node has the transport protocol bound to a non-loopback interface. + * + * @param settings the current node settings + * @param boundTransportAddress the node network bindings + */ + static void check(final Settings settings, final BoundTransportAddress boundTransportAddress, List additionalChecks) + throws NodeValidationException { + final List builtInChecks = checks(settings); + final List combinedChecks = new ArrayList<>(builtInChecks); + combinedChecks.addAll(additionalChecks); + check( + enforceLimits(boundTransportAddress), + Collections.unmodifiableList(combinedChecks), + Node.NODE_NAME_SETTING.get(settings)); + } + + /** + * Executes the provided checks and fails the node if {@code enforceLimits} is {@code true}, otherwise logs warnings. + * + * @param enforceLimits {@code true} if the checks should be enforced or otherwise warned + * @param checks the checks to execute + * @param nodeName the node name to be used as a logging prefix + */ + static void check( + final boolean enforceLimits, + final List checks, + final String nodeName) throws NodeValidationException { + check(enforceLimits, checks, Loggers.getLogger(BootstrapChecks.class, nodeName)); + } + + /** + * Executes the provided checks and fails the node if {@code enforceLimits} is {@code true}, otherwise logs warnings. + * + * @param enforceLimits {@code true} if the checks should be enforced or otherwise warned + * @param checks the checks to execute + * @param logger the logger to + */ + static void check( + final boolean enforceLimits, + final List checks, + final Logger logger) throws NodeValidationException { + final List errors = new ArrayList<>(); + final List ignoredErrors = new ArrayList<>(); + + if (enforceLimits) { + logger.info("bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks"); + } + + for (final BootstrapCheck check : checks) { + if (check.check()) { + if (!enforceLimits && !check.alwaysEnforce()) { + ignoredErrors.add(check.errorMessage()); + } else { + errors.add(check.errorMessage()); + } + } + } + + if (!ignoredErrors.isEmpty()) { + ignoredErrors.forEach(error -> log(logger, error)); + } + + if (!errors.isEmpty()) { + final List messages = new ArrayList<>(1 + errors.size()); + messages.add("bootstrap checks failed"); + messages.addAll(errors); + final NodeValidationException ne = new NodeValidationException(String.join("\n", messages)); + errors.stream().map(IllegalStateException::new).forEach(ne::addSuppressed); + throw ne; + } + + } + + static void log(final Logger logger, final String error) { + logger.warn(error); + } + + /** + * Tests if the checks should be enforced. + * + * @param boundTransportAddress the node network bindings + * @return {@code true} if the checks should be enforced + */ + static boolean enforceLimits(BoundTransportAddress boundTransportAddress) { + Predicate isLoopbackOrLinkLocalAddress = t -> t.address().getAddress().isLinkLocalAddress() + || t.address().getAddress().isLoopbackAddress(); + return !(Arrays.stream(boundTransportAddress.boundAddresses()).allMatch(isLoopbackOrLinkLocalAddress) && + isLoopbackOrLinkLocalAddress.test(boundTransportAddress.publishAddress())); + } + + // the list of checks to execute + static List checks(final Settings settings) { + final List checks = new ArrayList<>(); + checks.add(new HeapSizeCheck()); + final FileDescriptorCheck fileDescriptorCheck + = Constants.MAC_OS_X ? new OsXFileDescriptorCheck() : new FileDescriptorCheck(); + checks.add(fileDescriptorCheck); + checks.add(new MlockallCheck(BootstrapSettings.MEMORY_LOCK_SETTING.get(settings))); + if (Constants.LINUX) { + checks.add(new MaxNumberOfThreadsCheck()); + } + if (Constants.LINUX || Constants.MAC_OS_X) { + checks.add(new MaxSizeVirtualMemoryCheck()); + } + if (Constants.LINUX) { + checks.add(new MaxMapCountCheck()); + } + checks.add(new ClientJvmCheck()); + checks.add(new UseSerialGCCheck()); + checks.add(new SystemCallFilterCheck(BootstrapSettings.SECCOMP_SETTING.get(settings))); + checks.add(new OnErrorCheck()); + checks.add(new OnOutOfMemoryErrorCheck()); + checks.add(new G1GCCheck()); + return Collections.unmodifiableList(checks); + } + + static class HeapSizeCheck implements BootstrapCheck { + + @Override + public boolean check() { + final long initialHeapSize = getInitialHeapSize(); + final long maxHeapSize = getMaxHeapSize(); + return initialHeapSize != 0 && maxHeapSize != 0 && initialHeapSize != maxHeapSize; + } + + @Override + public String errorMessage() { + return String.format( + Locale.ROOT, + "initial heap size [%d] not equal to maximum heap size [%d]; " + + "this can cause resize pauses and prevents mlockall from locking the entire heap", + getInitialHeapSize(), + getMaxHeapSize() + ); + } + + // visible for testing + long getInitialHeapSize() { + return JvmInfo.jvmInfo().getConfiguredInitialHeapSize(); + } + + // visible for testing + long getMaxHeapSize() { + return JvmInfo.jvmInfo().getConfiguredMaxHeapSize(); + } + + } + + static class OsXFileDescriptorCheck extends FileDescriptorCheck { + + public OsXFileDescriptorCheck() { + // see constant OPEN_MAX defined in + // /usr/include/sys/syslimits.h on OS X and its use in JVM + // initialization in int os:init_2(void) defined in the JVM + // code for BSD (contains OS X) + super(10240); + } + + } + + static class FileDescriptorCheck implements BootstrapCheck { + + private final int limit; + + FileDescriptorCheck() { + this(1 << 16); + } + + protected FileDescriptorCheck(final int limit) { + if (limit <= 0) { + throw new IllegalArgumentException("limit must be positive but was [" + limit + "]"); + } + this.limit = limit; + } + + public final boolean check() { + final long maxFileDescriptorCount = getMaxFileDescriptorCount(); + return maxFileDescriptorCount != -1 && maxFileDescriptorCount < limit; + } + + @Override + public final String errorMessage() { + return String.format( + Locale.ROOT, + "max file descriptors [%d] for elasticsearch process is too low, increase to at least [%d]", + getMaxFileDescriptorCount(), + limit + ); + } + + // visible for testing + long getMaxFileDescriptorCount() { + return ProcessProbe.getInstance().getMaxFileDescriptorCount(); + } + + } + + static class MlockallCheck implements BootstrapCheck { + + private final boolean mlockallSet; + + public MlockallCheck(final boolean mlockAllSet) { + this.mlockallSet = mlockAllSet; + } + + @Override + public boolean check() { + return mlockallSet && !isMemoryLocked(); + } + + @Override + public String errorMessage() { + return "memory locking requested for elasticsearch process but memory is not locked"; + } + + // visible for testing + boolean isMemoryLocked() { + return Natives.isMemoryLocked(); + } + + } + + static class MaxNumberOfThreadsCheck implements BootstrapCheck { + + // this should be plenty for machines up to 256 cores + private final long maxNumberOfThreadsThreshold = 1 << 12; + + @Override + public boolean check() { + return getMaxNumberOfThreads() != -1 && getMaxNumberOfThreads() < maxNumberOfThreadsThreshold; + } + + @Override + public String errorMessage() { + return String.format( + Locale.ROOT, + "max number of threads [%d] for user [%s] is too low, increase to at least [%d]", + getMaxNumberOfThreads(), + BootstrapInfo.getSystemProperties().get("user.name"), + maxNumberOfThreadsThreshold); + } + + // visible for testing + long getMaxNumberOfThreads() { + return JNANatives.MAX_NUMBER_OF_THREADS; + } + + } + + static class MaxSizeVirtualMemoryCheck implements BootstrapCheck { + + @Override + public boolean check() { + return getMaxSizeVirtualMemory() != Long.MIN_VALUE && getMaxSizeVirtualMemory() != getRlimInfinity(); + } + + @Override + public String errorMessage() { + return String.format( + Locale.ROOT, + "max size virtual memory [%d] for user [%s] is too low, increase to [unlimited]", + getMaxSizeVirtualMemory(), + BootstrapInfo.getSystemProperties().get("user.name")); + } + + // visible for testing + long getRlimInfinity() { + return JNACLibrary.RLIM_INFINITY; + } + + // visible for testing + long getMaxSizeVirtualMemory() { + return JNANatives.MAX_SIZE_VIRTUAL_MEMORY; + } + + } + + static class MaxMapCountCheck implements BootstrapCheck { + + private final long limit = 1 << 18; + + @Override + public boolean check() { + return getMaxMapCount() != -1 && getMaxMapCount() < limit; + } + + @Override + public String errorMessage() { + return String.format( + Locale.ROOT, + "max virtual memory areas vm.max_map_count [%d] is too low, increase to at least [%d]", + getMaxMapCount(), + limit); + } + + // visible for testing + long getMaxMapCount() { + return getMaxMapCount(Loggers.getLogger(BootstrapChecks.class)); + } + + // visible for testing + long getMaxMapCount(Logger logger) { + final Path path = getProcSysVmMaxMapCountPath(); + try (final BufferedReader bufferedReader = getBufferedReader(path)) { + final String rawProcSysVmMaxMapCount = readProcSysVmMaxMapCount(bufferedReader); + if (rawProcSysVmMaxMapCount != null) { + try { + return parseProcSysVmMaxMapCount(rawProcSysVmMaxMapCount); + } catch (final NumberFormatException e) { + logger.warn( + (Supplier) () -> new ParameterizedMessage( + "unable to parse vm.max_map_count [{}]", + rawProcSysVmMaxMapCount), + e); + } + } + } catch (final IOException e) { + logger.warn((Supplier) () -> new ParameterizedMessage("I/O exception while trying to read [{}]", path), e); + } + return -1; + } + + @SuppressForbidden(reason = "access /proc/sys/vm/max_map_count") + private Path getProcSysVmMaxMapCountPath() { + return PathUtils.get("/proc/sys/vm/max_map_count"); + } + + // visible for testing + BufferedReader getBufferedReader(final Path path) throws IOException { + return Files.newBufferedReader(path); + } + + // visible for testing + String readProcSysVmMaxMapCount(final BufferedReader bufferedReader) throws IOException { + return bufferedReader.readLine(); + } + + // visible for testing + long parseProcSysVmMaxMapCount(final String procSysVmMaxMapCount) throws NumberFormatException { + return Long.parseLong(procSysVmMaxMapCount); + } + + } + + static class ClientJvmCheck implements BootstrapCheck { + + @Override + public boolean check() { + return getVmName().toLowerCase(Locale.ROOT).contains("client"); + } + + // visible for testing + String getVmName() { + return JvmInfo.jvmInfo().getVmName(); + } + + @Override + public String errorMessage() { + return String.format( + Locale.ROOT, + "JVM is using the client VM [%s] but should be using a server VM for the best performance", + getVmName()); + } + + } + + /** + * Checks if the serial collector is in use. This collector is single-threaded and devastating + * for performance and should not be used for a server application like Elasticsearch. + */ + static class UseSerialGCCheck implements BootstrapCheck { + + @Override + public boolean check() { + return getUseSerialGC().equals("true"); + } + + // visible for testing + String getUseSerialGC() { + return JvmInfo.jvmInfo().useSerialGC(); + } + + @Override + public String errorMessage() { + return String.format( + Locale.ROOT, + "JVM is using the serial collector but should not be for the best performance; " + + "either it's the default for the VM [%s] or -XX:+UseSerialGC was explicitly specified", + JvmInfo.jvmInfo().getVmName()); + } + + } + + /** + * Bootstrap check that if system call filters are enabled, then system call filters must have installed successfully. + */ + static class SystemCallFilterCheck implements BootstrapCheck { + + private final boolean areSystemCallFiltersEnabled; + + SystemCallFilterCheck(final boolean areSystemCallFiltersEnabled) { + this.areSystemCallFiltersEnabled = areSystemCallFiltersEnabled; + } + + @Override + public boolean check() { + return areSystemCallFiltersEnabled && !isSeccompInstalled(); + } + + // visible for testing + boolean isSeccompInstalled() { + return Natives.isSeccompInstalled(); + } + + @Override + public String errorMessage() { + return "system call filters failed to install; " + + "check the logs and fix your configuration or disable system call filters at your own risk"; + } + + } + + abstract static class MightForkCheck implements BootstrapCheck { + + @Override + public boolean check() { + return isSeccompInstalled() && mightFork(); + } + + // visible for testing + boolean isSeccompInstalled() { + return Natives.isSeccompInstalled(); + } + + // visible for testing + abstract boolean mightFork(); + + @Override + public final boolean alwaysEnforce() { + return true; + } + + } + + static class OnErrorCheck extends MightForkCheck { + + @Override + boolean mightFork() { + final String onError = onError(); + return onError != null && !onError.equals(""); + } + + // visible for testing + String onError() { + return JvmInfo.jvmInfo().onError(); + } + + @Override + public String errorMessage() { + return String.format( + Locale.ROOT, + "OnError [%s] requires forking but is prevented by system call filters ([%s=true]);" + + " upgrade to at least Java 8u92 and use ExitOnOutOfMemoryError", + onError(), + BootstrapSettings.SECCOMP_SETTING.getKey()); + } + + } + + static class OnOutOfMemoryErrorCheck extends MightForkCheck { + + @Override + boolean mightFork() { + final String onOutOfMemoryError = onOutOfMemoryError(); + return onOutOfMemoryError != null && !onOutOfMemoryError.equals(""); + } + + // visible for testing + String onOutOfMemoryError() { + return JvmInfo.jvmInfo().onOutOfMemoryError(); + } + + @Override + public String errorMessage() { + return String.format( + Locale.ROOT, + "OnOutOfMemoryError [%s] requires forking but is prevented by system call filters ([%s=true]);" + + " upgrade to at least Java 8u92 and use ExitOnOutOfMemoryError", + onOutOfMemoryError(), + BootstrapSettings.SECCOMP_SETTING.getKey()); + } + + } + + /** + * Bootstrap check for versions of HotSpot that are known to have issues that can lead to index corruption when G1GC is enabled. + */ + static class G1GCCheck implements BootstrapCheck { + + @Override + public boolean check() { + if ("Oracle Corporation".equals(jvmVendor()) && isJava8() && isG1GCEnabled()) { + final String jvmVersion = jvmVersion(); + // HotSpot versions on Java 8 match this regular expression; note that this changes with Java 9 after JEP-223 + final Pattern pattern = Pattern.compile("(\\d+)\\.(\\d+)-b\\d+"); + final Matcher matcher = pattern.matcher(jvmVersion); + final boolean matches = matcher.matches(); + assert matches : jvmVersion; + final int major = Integer.parseInt(matcher.group(1)); + final int update = Integer.parseInt(matcher.group(2)); + // HotSpot versions for Java 8 have major version 25, the bad versions are all versions prior to update 40 + return major == 25 && update < 40; + } else { + return false; + } + } + + // visible for testing + String jvmVendor() { + return Constants.JVM_VENDOR; + } + + // visible for testing + boolean isG1GCEnabled() { + assert "Oracle Corporation".equals(jvmVendor()); + return JvmInfo.jvmInfo().useG1GC().equals("true"); + } + + // visible for testing + String jvmVersion() { + assert "Oracle Corporation".equals(jvmVendor()); + return Constants.JVM_VERSION; + } + + // visible for testing + boolean isJava8() { + assert "Oracle Corporation".equals(jvmVendor()); + return JavaVersion.current().equals(JavaVersion.parse("1.8")); + } + + @Override + public String errorMessage() { + return String.format( + Locale.ROOT, + "JVM version [%s] can cause data corruption when used with G1GC; upgrade to at least Java 8u40", jvmVersion()); + } + + } + +} diff --git a/core/src/main/java/org/elasticsearch/node/Node.java b/core/src/main/java/org/elasticsearch/node/Node.java index 7863611e458..8756e09e8d8 100644 --- a/core/src/main/java/org/elasticsearch/node/Node.java +++ b/core/src/main/java/org/elasticsearch/node/Node.java @@ -32,6 +32,7 @@ import org.elasticsearch.action.search.SearchPhaseController; import org.elasticsearch.action.search.SearchTransportService; import org.elasticsearch.action.support.TransportAction; import org.elasticsearch.action.update.UpdateHelper; +import org.elasticsearch.bootstrap.BootstrapCheck; import org.elasticsearch.client.Client; import org.elasticsearch.client.node.NodeClient; import org.elasticsearch.cluster.ClusterInfoService; @@ -456,7 +457,6 @@ public class Node implements Closeable { .map(injector::getInstance).collect(Collectors.toList())); resourcesToClose.addAll(pluginLifecycleComponents); this.pluginLifecycleComponents = Collections.unmodifiableList(pluginLifecycleComponents); - client.initialize(injector.getInstance(new Key>() {})); logger.info("initialized"); @@ -568,8 +568,8 @@ public class Node implements Closeable { TransportService transportService = injector.getInstance(TransportService.class); transportService.getTaskManager().setTaskResultsService(injector.getInstance(TaskResultsService.class)); transportService.start(); - - validateNodeBeforeAcceptingRequests(settings, transportService.boundAddress()); + validateNodeBeforeAcceptingRequests(settings, transportService.boundAddress(), pluginsService.filterPlugins(Plugin.class).stream() + .flatMap(p -> p.getBootstrapChecks().stream()).collect(Collectors.toList())); DiscoveryNode localNode = DiscoveryNode.createLocal(settings, transportService.boundAddress().publishAddress(), injector.getInstance(NodeEnvironment.class).nodeId()); @@ -790,7 +790,7 @@ public class Node implements Closeable { @SuppressWarnings("unused") protected void validateNodeBeforeAcceptingRequests( final Settings settings, - final BoundTransportAddress boundTransportAddress) throws NodeValidationException { + final BoundTransportAddress boundTransportAddress, List bootstrapChecks) throws NodeValidationException { } /** Writes a file to the logs dir containing the ports for the given transport type */ diff --git a/core/src/main/java/org/elasticsearch/node/NodeValidationException.java b/core/src/main/java/org/elasticsearch/node/NodeValidationException.java index d4bedc49f0c..01840b2556b 100644 --- a/core/src/main/java/org/elasticsearch/node/NodeValidationException.java +++ b/core/src/main/java/org/elasticsearch/node/NodeValidationException.java @@ -22,12 +22,13 @@ package org.elasticsearch.node; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.BoundTransportAddress; +import java.util.List; + /** * An exception thrown during node validation. Node validation runs immediately before a node * begins accepting network requests in - * {@link Node#validateNodeBeforeAcceptingRequests(Settings, BoundTransportAddress)}. This - * exception is a checked exception that is declared as thrown from this method for the purpose - * of bubbling up to the user. + * {@link Node#validateNodeBeforeAcceptingRequests(Settings, BoundTransportAddress, List)}. This exception is a checked exception that + * is declared as thrown from this method for the purpose of bubbling up to the user. */ public class NodeValidationException extends Exception { diff --git a/core/src/main/java/org/elasticsearch/plugins/Plugin.java b/core/src/main/java/org/elasticsearch/plugins/Plugin.java index cc548b52f67..32d902248a6 100644 --- a/core/src/main/java/org/elasticsearch/plugins/Plugin.java +++ b/core/src/main/java/org/elasticsearch/plugins/Plugin.java @@ -26,6 +26,7 @@ import java.util.Collections; import java.util.List; import org.elasticsearch.action.ActionModule; +import org.elasticsearch.bootstrap.BootstrapCheck; import org.elasticsearch.client.Client; import org.elasticsearch.cluster.ClusterModule; import org.elasticsearch.cluster.metadata.MetaData; @@ -164,6 +165,14 @@ public abstract class Plugin implements Closeable { return Collections.emptyList(); } + /** + * Returns a list of checks that are enforced when a node starts up once a node has the transport protocol bound to a non-loopback + * interface. In this case we assume the node is running in production and all bootstrap checks must pass. This allows plugins + * to provide a better out of the box experience by pre-configuring otherwise (in production) mandatory settings or to enforce certain + * configurations like OS settings or 3rd party resources. + */ + public List getBootstrapChecks() { return Collections.emptyList(); } + /** * Close the resources opened by this plugin. * diff --git a/core/src/test/java/org/elasticsearch/bootstrap/BootstrapCheckTests.java b/core/src/test/java/org/elasticsearch/bootstrap/BootstrapCheckTests.java index 3d94fc68a43..95d5afcb402 100644 --- a/core/src/test/java/org/elasticsearch/bootstrap/BootstrapCheckTests.java +++ b/core/src/test/java/org/elasticsearch/bootstrap/BootstrapCheckTests.java @@ -63,18 +63,18 @@ public class BootstrapCheckTests extends ESTestCase { BoundTransportAddress boundTransportAddress = mock(BoundTransportAddress.class); when(boundTransportAddress.boundAddresses()).thenReturn(transportAddresses.toArray(new TransportAddress[0])); when(boundTransportAddress.publishAddress()).thenReturn(publishAddress); - BootstrapCheck.check(Settings.EMPTY, boundTransportAddress); + BootstrapChecks.check(Settings.EMPTY, boundTransportAddress, Collections.emptyList()); } public void testNoLogMessageInNonProductionMode() throws NodeValidationException { final Logger logger = mock(Logger.class); - BootstrapCheck.check(false, Collections.emptyList(), logger); + BootstrapChecks.check(false, Collections.emptyList(), logger); verifyNoMoreInteractions(logger); } public void testLogMessageInProductionMode() throws NodeValidationException { final Logger logger = mock(Logger.class); - BootstrapCheck.check(true, Collections.emptyList(), logger); + BootstrapChecks.check(true, Collections.emptyList(), logger); verify(logger).info("bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks"); verifyNoMoreInteractions(logger); } @@ -98,7 +98,7 @@ public class BootstrapCheckTests extends ESTestCase { when(boundTransportAddress.boundAddresses()).thenReturn(transportAddresses.toArray(new TransportAddress[0])); when(boundTransportAddress.publishAddress()).thenReturn(publishAddress); - assertTrue(BootstrapCheck.enforceLimits(boundTransportAddress)); + assertTrue(BootstrapChecks.enforceLimits(boundTransportAddress)); } public void testEnforceLimitsWhenPublishingToNonLocalAddress() { @@ -114,12 +114,12 @@ public class BootstrapCheckTests extends ESTestCase { when(boundTransportAddress.boundAddresses()).thenReturn(transportAddresses.toArray(new TransportAddress[0])); when(boundTransportAddress.publishAddress()).thenReturn(publishAddress); - assertTrue(BootstrapCheck.enforceLimits(boundTransportAddress)); + assertTrue(BootstrapChecks.enforceLimits(boundTransportAddress)); } public void testExceptionAggregation() { - final List checks = Arrays.asList( - new BootstrapCheck.Check() { + final List checks = Arrays.asList( + new BootstrapCheck() { @Override public boolean check() { return true; @@ -130,7 +130,7 @@ public class BootstrapCheckTests extends ESTestCase { return "first"; } }, - new BootstrapCheck.Check() { + new BootstrapCheck() { @Override public boolean check() { return true; @@ -144,7 +144,7 @@ public class BootstrapCheckTests extends ESTestCase { ); final NodeValidationException e = - expectThrows(NodeValidationException.class, () -> BootstrapCheck.check(true, checks, "testExceptionAggregation")); + expectThrows(NodeValidationException.class, () -> BootstrapChecks.check(true, checks, "testExceptionAggregation")); assertThat(e, hasToString(allOf(containsString("bootstrap checks failed"), containsString("first"), containsString("second")))); final Throwable[] suppressed = e.getSuppressed(); assertThat(suppressed.length, equalTo(2)); @@ -160,7 +160,7 @@ public class BootstrapCheckTests extends ESTestCase { final AtomicLong initialHeapSize = new AtomicLong(initial); final AtomicLong maxHeapSize = new AtomicLong(max); - final BootstrapCheck.HeapSizeCheck check = new BootstrapCheck.HeapSizeCheck() { + final BootstrapChecks.HeapSizeCheck check = new BootstrapChecks.HeapSizeCheck() { @Override long getInitialHeapSize() { return initialHeapSize.get(); @@ -175,7 +175,7 @@ public class BootstrapCheckTests extends ESTestCase { final NodeValidationException e = expectThrows( NodeValidationException.class, - () -> BootstrapCheck.check(true, Collections.singletonList(check), "testHeapSizeCheck")); + () -> BootstrapChecks.check(true, Collections.singletonList(check), "testHeapSizeCheck")); assertThat( e.getMessage(), containsString("initial heap size [" + initialHeapSize.get() + "] " + @@ -183,7 +183,7 @@ public class BootstrapCheckTests extends ESTestCase { initialHeapSize.set(maxHeapSize.get()); - BootstrapCheck.check(true, Collections.singletonList(check), "testHeapSizeCheck"); + BootstrapChecks.check(true, Collections.singletonList(check), "testHeapSizeCheck"); // nothing should happen if the initial heap size or the max // heap size is not available @@ -192,23 +192,23 @@ public class BootstrapCheckTests extends ESTestCase { } else { maxHeapSize.set(0); } - BootstrapCheck.check(true, Collections.singletonList(check), "testHeapSizeCheck"); + BootstrapChecks.check(true, Collections.singletonList(check), "testHeapSizeCheck"); } public void testFileDescriptorLimits() throws NodeValidationException { final boolean osX = randomBoolean(); // simulates OS X versus non-OS X final int limit = osX ? 10240 : 1 << 16; final AtomicLong maxFileDescriptorCount = new AtomicLong(randomIntBetween(1, limit - 1)); - final BootstrapCheck.FileDescriptorCheck check; + final BootstrapChecks.FileDescriptorCheck check; if (osX) { - check = new BootstrapCheck.OsXFileDescriptorCheck() { + check = new BootstrapChecks.OsXFileDescriptorCheck() { @Override long getMaxFileDescriptorCount() { return maxFileDescriptorCount.get(); } }; } else { - check = new BootstrapCheck.FileDescriptorCheck() { + check = new BootstrapChecks.FileDescriptorCheck() { @Override long getMaxFileDescriptorCount() { return maxFileDescriptorCount.get(); @@ -218,24 +218,24 @@ public class BootstrapCheckTests extends ESTestCase { final NodeValidationException e = expectThrows(NodeValidationException.class, - () -> BootstrapCheck.check(true, Collections.singletonList(check), "testFileDescriptorLimits")); + () -> BootstrapChecks.check(true, Collections.singletonList(check), "testFileDescriptorLimits")); assertThat(e.getMessage(), containsString("max file descriptors")); maxFileDescriptorCount.set(randomIntBetween(limit + 1, Integer.MAX_VALUE)); - BootstrapCheck.check(true, Collections.singletonList(check), "testFileDescriptorLimits"); + BootstrapChecks.check(true, Collections.singletonList(check), "testFileDescriptorLimits"); // nothing should happen if current file descriptor count is // not available maxFileDescriptorCount.set(-1); - BootstrapCheck.check(true, Collections.singletonList(check), "testFileDescriptorLimits"); + BootstrapChecks.check(true, Collections.singletonList(check), "testFileDescriptorLimits"); } public void testFileDescriptorLimitsThrowsOnInvalidLimit() { final IllegalArgumentException e = expectThrows( IllegalArgumentException.class, - () -> new BootstrapCheck.FileDescriptorCheck(-randomIntBetween(0, Integer.MAX_VALUE))); + () -> new BootstrapChecks.FileDescriptorCheck(-randomIntBetween(0, Integer.MAX_VALUE))); assertThat(e.getMessage(), containsString("limit must be positive but was")); } @@ -261,7 +261,7 @@ public class BootstrapCheckTests extends ESTestCase { testCases.add(new MlockallCheckTestCase(false, false, false)); for (final MlockallCheckTestCase testCase : testCases) { - final BootstrapCheck.MlockallCheck check = new BootstrapCheck.MlockallCheck(testCase.mlockallSet) { + final BootstrapChecks.MlockallCheck check = new BootstrapChecks.MlockallCheck(testCase.mlockallSet) { @Override boolean isMemoryLocked() { return testCase.isMemoryLocked; @@ -271,7 +271,7 @@ public class BootstrapCheckTests extends ESTestCase { if (testCase.shouldFail) { final NodeValidationException e = expectThrows( NodeValidationException.class, - () -> BootstrapCheck.check( + () -> BootstrapChecks.check( true, Collections.singletonList(check), "testFileDescriptorLimitsThrowsOnInvalidLimit")); @@ -280,7 +280,7 @@ public class BootstrapCheckTests extends ESTestCase { containsString("memory locking requested for elasticsearch process but memory is not locked")); } else { // nothing should happen - BootstrapCheck.check(true, Collections.singletonList(check), "testFileDescriptorLimitsThrowsOnInvalidLimit"); + BootstrapChecks.check(true, Collections.singletonList(check), "testFileDescriptorLimitsThrowsOnInvalidLimit"); } } } @@ -288,7 +288,7 @@ public class BootstrapCheckTests extends ESTestCase { public void testMaxNumberOfThreadsCheck() throws NodeValidationException { final int limit = 1 << 11; final AtomicLong maxNumberOfThreads = new AtomicLong(randomIntBetween(1, limit - 1)); - final BootstrapCheck.MaxNumberOfThreadsCheck check = new BootstrapCheck.MaxNumberOfThreadsCheck() { + final BootstrapChecks.MaxNumberOfThreadsCheck check = new BootstrapChecks.MaxNumberOfThreadsCheck() { @Override long getMaxNumberOfThreads() { return maxNumberOfThreads.get(); @@ -297,23 +297,23 @@ public class BootstrapCheckTests extends ESTestCase { final NodeValidationException e = expectThrows( NodeValidationException.class, - () -> BootstrapCheck.check(true, Collections.singletonList(check), "testMaxNumberOfThreadsCheck")); + () -> BootstrapChecks.check(true, Collections.singletonList(check), "testMaxNumberOfThreadsCheck")); assertThat(e.getMessage(), containsString("max number of threads")); maxNumberOfThreads.set(randomIntBetween(limit + 1, Integer.MAX_VALUE)); - BootstrapCheck.check(true, Collections.singletonList(check), "testMaxNumberOfThreadsCheck"); + BootstrapChecks.check(true, Collections.singletonList(check), "testMaxNumberOfThreadsCheck"); // nothing should happen if current max number of threads is // not available maxNumberOfThreads.set(-1); - BootstrapCheck.check(true, Collections.singletonList(check), "testMaxNumberOfThreadsCheck"); + BootstrapChecks.check(true, Collections.singletonList(check), "testMaxNumberOfThreadsCheck"); } public void testMaxSizeVirtualMemory() throws NodeValidationException { final long rlimInfinity = Constants.MAC_OS_X ? 9223372036854775807L : -1L; final AtomicLong maxSizeVirtualMemory = new AtomicLong(randomIntBetween(0, Integer.MAX_VALUE)); - final BootstrapCheck.MaxSizeVirtualMemoryCheck check = new BootstrapCheck.MaxSizeVirtualMemoryCheck() { + final BootstrapChecks.MaxSizeVirtualMemoryCheck check = new BootstrapChecks.MaxSizeVirtualMemoryCheck() { @Override long getMaxSizeVirtualMemory() { return maxSizeVirtualMemory.get(); @@ -328,23 +328,23 @@ public class BootstrapCheckTests extends ESTestCase { final NodeValidationException e = expectThrows( NodeValidationException.class, - () -> BootstrapCheck.check(true, Collections.singletonList(check), "testMaxSizeVirtualMemory")); + () -> BootstrapChecks.check(true, Collections.singletonList(check), "testMaxSizeVirtualMemory")); assertThat(e.getMessage(), containsString("max size virtual memory")); maxSizeVirtualMemory.set(rlimInfinity); - BootstrapCheck.check(true, Collections.singletonList(check), "testMaxSizeVirtualMemory"); + BootstrapChecks.check(true, Collections.singletonList(check), "testMaxSizeVirtualMemory"); // nothing should happen if max size virtual memory is not // available maxSizeVirtualMemory.set(Long.MIN_VALUE); - BootstrapCheck.check(true, Collections.singletonList(check), "testMaxSizeVirtualMemory"); + BootstrapChecks.check(true, Collections.singletonList(check), "testMaxSizeVirtualMemory"); } public void testMaxMapCountCheck() throws NodeValidationException { final int limit = 1 << 18; final AtomicLong maxMapCount = new AtomicLong(randomIntBetween(1, limit - 1)); - final BootstrapCheck.MaxMapCountCheck check = new BootstrapCheck.MaxMapCountCheck() { + final BootstrapChecks.MaxMapCountCheck check = new BootstrapChecks.MaxMapCountCheck() { @Override long getMaxMapCount() { return maxMapCount.get(); @@ -353,22 +353,22 @@ public class BootstrapCheckTests extends ESTestCase { final NodeValidationException e = expectThrows( NodeValidationException.class, - () -> BootstrapCheck.check(true, Collections.singletonList(check), "testMaxMapCountCheck")); + () -> BootstrapChecks.check(true, Collections.singletonList(check), "testMaxMapCountCheck")); assertThat(e.getMessage(), containsString("max virtual memory areas vm.max_map_count")); maxMapCount.set(randomIntBetween(limit + 1, Integer.MAX_VALUE)); - BootstrapCheck.check(true, Collections.singletonList(check), "testMaxMapCountCheck"); + BootstrapChecks.check(true, Collections.singletonList(check), "testMaxMapCountCheck"); // nothing should happen if current vm.max_map_count is not // available maxMapCount.set(-1); - BootstrapCheck.check(true, Collections.singletonList(check), "testMaxMapCountCheck"); + BootstrapChecks.check(true, Collections.singletonList(check), "testMaxMapCountCheck"); } public void testClientJvmCheck() throws NodeValidationException { final AtomicReference vmName = new AtomicReference<>("Java HotSpot(TM) 32-Bit Client VM"); - final BootstrapCheck.Check check = new BootstrapCheck.ClientJvmCheck() { + final BootstrapCheck check = new BootstrapChecks.ClientJvmCheck() { @Override String getVmName() { return vmName.get(); @@ -377,19 +377,19 @@ public class BootstrapCheckTests extends ESTestCase { final NodeValidationException e = expectThrows( NodeValidationException.class, - () -> BootstrapCheck.check(true, Collections.singletonList(check), "testClientJvmCheck")); + () -> BootstrapChecks.check(true, Collections.singletonList(check), "testClientJvmCheck")); assertThat( e.getMessage(), containsString("JVM is using the client VM [Java HotSpot(TM) 32-Bit Client VM] " + "but should be using a server VM for the best performance")); vmName.set("Java HotSpot(TM) 32-Bit Server VM"); - BootstrapCheck.check(true, Collections.singletonList(check), "testClientJvmCheck"); + BootstrapChecks.check(true, Collections.singletonList(check), "testClientJvmCheck"); } public void testUseSerialGCCheck() throws NodeValidationException { final AtomicReference useSerialGC = new AtomicReference<>("true"); - final BootstrapCheck.Check check = new BootstrapCheck.UseSerialGCCheck() { + final BootstrapCheck check = new BootstrapChecks.UseSerialGCCheck() { @Override String getUseSerialGC() { return useSerialGC.get(); @@ -398,19 +398,19 @@ public class BootstrapCheckTests extends ESTestCase { final NodeValidationException e = expectThrows( NodeValidationException.class, - () -> BootstrapCheck.check(true, Collections.singletonList(check), "testUseSerialGCCheck")); + () -> BootstrapChecks.check(true, Collections.singletonList(check), "testUseSerialGCCheck")); assertThat( e.getMessage(), containsString("JVM is using the serial collector but should not be for the best performance; " + "" + "either it's the default for the VM [" + JvmInfo.jvmInfo().getVmName() +"] or -XX:+UseSerialGC was explicitly specified")); useSerialGC.set("false"); - BootstrapCheck.check(true, Collections.singletonList(check), "testUseSerialGCCheck"); + BootstrapChecks.check(true, Collections.singletonList(check), "testUseSerialGCCheck"); } public void testSystemCallFilterCheck() throws NodeValidationException { final AtomicBoolean isSecompInstalled = new AtomicBoolean(); - final BootstrapCheck.SystemCallFilterCheck systemCallFilterEnabledCheck = new BootstrapCheck.SystemCallFilterCheck(true) { + final BootstrapChecks.SystemCallFilterCheck systemCallFilterEnabledCheck = new BootstrapChecks.SystemCallFilterCheck(true) { @Override boolean isSeccompInstalled() { return isSecompInstalled.get(); @@ -419,31 +419,31 @@ public class BootstrapCheckTests extends ESTestCase { final NodeValidationException e = expectThrows( NodeValidationException.class, - () -> BootstrapCheck.check(true, Collections.singletonList(systemCallFilterEnabledCheck), "testSystemCallFilterCheck")); + () -> BootstrapChecks.check(true, Collections.singletonList(systemCallFilterEnabledCheck), "testSystemCallFilterCheck")); assertThat( e.getMessage(), containsString("system call filters failed to install; " + "check the logs and fix your configuration or disable system call filters at your own risk")); isSecompInstalled.set(true); - BootstrapCheck.check(true, Collections.singletonList(systemCallFilterEnabledCheck), "testSystemCallFilterCheck"); + BootstrapChecks.check(true, Collections.singletonList(systemCallFilterEnabledCheck), "testSystemCallFilterCheck"); - final BootstrapCheck.SystemCallFilterCheck systemCallFilterNotEnabledCheck = new BootstrapCheck.SystemCallFilterCheck(false) { + final BootstrapChecks.SystemCallFilterCheck systemCallFilterNotEnabledCheck = new BootstrapChecks.SystemCallFilterCheck(false) { @Override boolean isSeccompInstalled() { return isSecompInstalled.get(); } }; isSecompInstalled.set(false); - BootstrapCheck.check(true, Collections.singletonList(systemCallFilterNotEnabledCheck), "testSystemCallFilterCheck"); + BootstrapChecks.check(true, Collections.singletonList(systemCallFilterNotEnabledCheck), "testSystemCallFilterCheck"); isSecompInstalled.set(true); - BootstrapCheck.check(true, Collections.singletonList(systemCallFilterNotEnabledCheck), "testSystemCallFilterCheck"); + BootstrapChecks.check(true, Collections.singletonList(systemCallFilterNotEnabledCheck), "testSystemCallFilterCheck"); } public void testMightForkCheck() throws NodeValidationException { final AtomicBoolean isSeccompInstalled = new AtomicBoolean(); final AtomicBoolean mightFork = new AtomicBoolean(); - final BootstrapCheck.MightForkCheck check = new BootstrapCheck.MightForkCheck() { + final BootstrapChecks.MightForkCheck check = new BootstrapChecks.MightForkCheck() { @Override boolean isSeccompInstalled() { return isSeccompInstalled.get(); @@ -471,7 +471,7 @@ public class BootstrapCheckTests extends ESTestCase { public void testOnErrorCheck() throws NodeValidationException { final AtomicBoolean isSeccompInstalled = new AtomicBoolean(); final AtomicReference onError = new AtomicReference<>(); - final BootstrapCheck.MightForkCheck check = new BootstrapCheck.OnErrorCheck() { + final BootstrapChecks.MightForkCheck check = new BootstrapChecks.OnErrorCheck() { @Override boolean isSeccompInstalled() { return isSeccompInstalled.get(); @@ -499,7 +499,7 @@ public class BootstrapCheckTests extends ESTestCase { public void testOnOutOfMemoryErrorCheck() throws NodeValidationException { final AtomicBoolean isSeccompInstalled = new AtomicBoolean(); final AtomicReference onOutOfMemoryError = new AtomicReference<>(); - final BootstrapCheck.MightForkCheck check = new BootstrapCheck.OnOutOfMemoryErrorCheck() { + final BootstrapChecks.MightForkCheck check = new BootstrapChecks.OnOutOfMemoryErrorCheck() { @Override boolean isSeccompInstalled() { return isSeccompInstalled.get(); @@ -526,7 +526,7 @@ public class BootstrapCheckTests extends ESTestCase { } private void runMightForkTest( - final BootstrapCheck.MightForkCheck check, + final BootstrapChecks.MightForkCheck check, final AtomicBoolean isSeccompInstalled, final Runnable disableMightFork, final Runnable enableMightFork, @@ -541,13 +541,13 @@ public class BootstrapCheckTests extends ESTestCase { } else { enableMightFork.run(); } - BootstrapCheck.check(true, Collections.singletonList(check), methodName); + BootstrapChecks.check(true, Collections.singletonList(check), methodName); // if seccomp is enabled, but we will not fork, nothing should // happen isSeccompInstalled.set(true); disableMightFork.run(); - BootstrapCheck.check(true, Collections.singletonList(check), methodName); + BootstrapChecks.check(true, Collections.singletonList(check), methodName); // if seccomp is enabled, and we might fork, the check should // be enforced, regardless of bootstrap checks being enabled or @@ -557,7 +557,7 @@ public class BootstrapCheckTests extends ESTestCase { final NodeValidationException e = expectThrows( NodeValidationException.class, - () -> BootstrapCheck.check(randomBoolean(), Collections.singletonList(check), methodName)); + () -> BootstrapChecks.check(randomBoolean(), Collections.singletonList(check), methodName)); consumer.accept(e); } @@ -566,7 +566,7 @@ public class BootstrapCheckTests extends ESTestCase { final AtomicBoolean isJava8 = new AtomicBoolean(true); final AtomicReference jvmVersion = new AtomicReference<>(String.format(Locale.ROOT, "25.%d-b%d", randomIntBetween(0, 39), randomIntBetween(1, 128))); - final BootstrapCheck.G1GCCheck oracleCheck = new BootstrapCheck.G1GCCheck() { + final BootstrapChecks.G1GCCheck oracleCheck = new BootstrapChecks.G1GCCheck() { @Override String jvmVendor() { @@ -593,7 +593,7 @@ public class BootstrapCheckTests extends ESTestCase { final NodeValidationException e = expectThrows( NodeValidationException.class, - () -> BootstrapCheck.check(true, Collections.singletonList(oracleCheck), "testG1GCCheck")); + () -> BootstrapChecks.check(true, Collections.singletonList(oracleCheck), "testG1GCCheck")); assertThat( e.getMessage(), containsString( @@ -601,14 +601,14 @@ public class BootstrapCheckTests extends ESTestCase { // if G1GC is disabled, nothing should happen isG1GCEnabled.set(false); - BootstrapCheck.check(true, Collections.singletonList(oracleCheck), "testG1GCCheck"); + BootstrapChecks.check(true, Collections.singletonList(oracleCheck), "testG1GCCheck"); // if on or after update 40, nothing should happen independent of whether or not G1GC is enabled isG1GCEnabled.set(randomBoolean()); jvmVersion.set(String.format(Locale.ROOT, "25.%d-b%d", randomIntBetween(40, 112), randomIntBetween(1, 128))); - BootstrapCheck.check(true, Collections.singletonList(oracleCheck), "testG1GCCheck"); + BootstrapChecks.check(true, Collections.singletonList(oracleCheck), "testG1GCCheck"); - final BootstrapCheck.G1GCCheck nonOracleCheck = new BootstrapCheck.G1GCCheck() { + final BootstrapChecks.G1GCCheck nonOracleCheck = new BootstrapChecks.G1GCCheck() { @Override String jvmVendor() { @@ -618,9 +618,9 @@ public class BootstrapCheckTests extends ESTestCase { }; // if not on an Oracle JVM, nothing should happen - BootstrapCheck.check(true, Collections.singletonList(nonOracleCheck), "testG1GCCheck"); + BootstrapChecks.check(true, Collections.singletonList(nonOracleCheck), "testG1GCCheck"); - final BootstrapCheck.G1GCCheck nonJava8Check = new BootstrapCheck.G1GCCheck() { + final BootstrapChecks.G1GCCheck nonJava8Check = new BootstrapChecks.G1GCCheck() { @Override boolean isJava8() { @@ -630,11 +630,11 @@ public class BootstrapCheckTests extends ESTestCase { }; // if not Java 8, nothing should happen - BootstrapCheck.check(true, Collections.singletonList(nonJava8Check), "testG1GCCheck"); + BootstrapChecks.check(true, Collections.singletonList(nonJava8Check), "testG1GCCheck"); } public void testAlwaysEnforcedChecks() { - final BootstrapCheck.Check check = new BootstrapCheck.Check() { + final BootstrapCheck check = new BootstrapCheck() { @Override public boolean check() { return true; @@ -653,7 +653,7 @@ public class BootstrapCheckTests extends ESTestCase { final NodeValidationException alwaysEnforced = expectThrows( NodeValidationException.class, - () -> BootstrapCheck.check(randomBoolean(), Collections.singletonList(check), "testAlwaysEnforcedChecks")); + () -> BootstrapChecks.check(randomBoolean(), Collections.singletonList(check), "testAlwaysEnforcedChecks")); assertThat(alwaysEnforced, hasToString(containsString("error"))); } diff --git a/core/src/test/java/org/elasticsearch/bootstrap/MaxMapCountCheckTests.java b/core/src/test/java/org/elasticsearch/bootstrap/MaxMapCountCheckTests.java index d36a6bb9491..c5b99a91ffa 100644 --- a/core/src/test/java/org/elasticsearch/bootstrap/MaxMapCountCheckTests.java +++ b/core/src/test/java/org/elasticsearch/bootstrap/MaxMapCountCheckTests.java @@ -47,7 +47,7 @@ public class MaxMapCountCheckTests extends ESTestCase { public void testGetMaxMapCountOnLinux() { if (Constants.LINUX) { - final BootstrapCheck.MaxMapCountCheck check = new BootstrapCheck.MaxMapCountCheck(); + final BootstrapChecks.MaxMapCountCheck check = new BootstrapChecks.MaxMapCountCheck(); assertThat(check.getMaxMapCount(), greaterThan(0L)); } } @@ -57,7 +57,7 @@ public class MaxMapCountCheckTests extends ESTestCase { final BufferedReader reader = mock(BufferedReader.class); when(reader.readLine()).thenReturn(Long.toString(procSysVmMaxMapCount)); final Path procSysVmMaxMapCountPath = PathUtils.get("/proc/sys/vm/max_map_count"); - BootstrapCheck.MaxMapCountCheck check = new BootstrapCheck.MaxMapCountCheck() { + BootstrapChecks.MaxMapCountCheck check = new BootstrapChecks.MaxMapCountCheck() { @Override BufferedReader getBufferedReader(Path path) throws IOException { assertEquals(path, procSysVmMaxMapCountPath); @@ -164,13 +164,13 @@ public class MaxMapCountCheckTests extends ESTestCase { final String rawProcSysVmMaxMapCount = Long.toString(randomIntBetween(1, Integer.MAX_VALUE)); final BufferedReader reader = mock(BufferedReader.class); when(reader.readLine()).thenReturn(rawProcSysVmMaxMapCount); - final BootstrapCheck.MaxMapCountCheck check = new BootstrapCheck.MaxMapCountCheck(); + final BootstrapChecks.MaxMapCountCheck check = new BootstrapChecks.MaxMapCountCheck(); assertThat(check.readProcSysVmMaxMapCount(reader), equalTo(rawProcSysVmMaxMapCount)); } public void testMaxMapCountCheckParse() { final long procSysVmMaxMapCount = randomIntBetween(1, Integer.MAX_VALUE); - final BootstrapCheck.MaxMapCountCheck check = new BootstrapCheck.MaxMapCountCheck(); + final BootstrapChecks.MaxMapCountCheck check = new BootstrapChecks.MaxMapCountCheck(); assertThat(check.parseProcSysVmMaxMapCount(Long.toString(procSysVmMaxMapCount)), equalTo(procSysVmMaxMapCount)); } diff --git a/test/framework/src/main/java/org/elasticsearch/node/NodeTests.java b/test/framework/src/main/java/org/elasticsearch/node/NodeTests.java index ea924734765..9203b632cba 100644 --- a/test/framework/src/main/java/org/elasticsearch/node/NodeTests.java +++ b/test/framework/src/main/java/org/elasticsearch/node/NodeTests.java @@ -20,17 +20,23 @@ package org.elasticsearch.node; import org.apache.logging.log4j.Logger; import org.elasticsearch.Version; +import org.elasticsearch.bootstrap.BootstrapCheck; import org.elasticsearch.cluster.ClusterName; import org.elasticsearch.common.network.NetworkModule; import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.common.transport.BoundTransportAddress; import org.elasticsearch.env.Environment; +import org.elasticsearch.plugins.Plugin; import org.elasticsearch.test.ESTestCase; import org.elasticsearch.test.InternalTestCluster; import org.elasticsearch.transport.MockTcpTransportPlugin; import java.io.IOException; import java.nio.file.Path; +import java.util.Arrays; import java.util.Collections; +import java.util.List; +import java.util.concurrent.atomic.AtomicBoolean; import static org.hamcrest.Matchers.equalTo; import static org.mockito.Mockito.mock; @@ -62,6 +68,52 @@ public class NodeTests extends ESTestCase { } } + public static class CheckPlugin extends Plugin { + public static final BootstrapCheck CHECK = new BootstrapCheck() { + @Override + public boolean check() { + return false; + } + + @Override + public String errorMessage() { + return "boom"; + } + }; + @Override + public List getBootstrapChecks() { + return Collections.singletonList(CHECK); + } + } + + public void testLoadPluginBootstrapChecks() throws IOException { + final Path tempDir = createTempDir(); + final String name = randomBoolean() ? randomAsciiOfLength(10) : null; + Settings.Builder settings = Settings.builder() + .put(ClusterName.CLUSTER_NAME_SETTING.getKey(), InternalTestCluster.clusterName("single-node-cluster", randomLong())) + .put(Environment.PATH_HOME_SETTING.getKey(), tempDir) + .put(NetworkModule.HTTP_ENABLED.getKey(), false) + .put("transport.type", "mock-socket-network") + .put(Node.NODE_DATA_SETTING.getKey(), true); + if (name != null) { + settings.put(Node.NODE_NAME_SETTING.getKey(), name); + } + AtomicBoolean executed = new AtomicBoolean(false); + try (Node node = new MockNode(settings.build(), Arrays.asList(MockTcpTransportPlugin.class, CheckPlugin.class)) { + @Override + protected void validateNodeBeforeAcceptingRequests(Settings settings, BoundTransportAddress boundTransportAddress, + List bootstrapChecks) throws NodeValidationException { + assertEquals(1, bootstrapChecks.size()); + assertSame(CheckPlugin.CHECK, bootstrapChecks.get(0)); + executed.set(true); + throw new NodeValidationException("boom"); + } + }) { + expectThrows(NodeValidationException.class, () -> node.start()); + assertTrue(executed.get()); + } + } + public void testWarnIfPreRelease() { final Logger logger = mock(Logger.class); From a4e8b5d952aa58665b7a09e548ecad1c0f00e8df Mon Sep 17 00:00:00 2001 From: Lee Hinman Date: Fri, 9 Dec 2016 14:36:45 -0700 Subject: [PATCH 50/51] Throw an exception on unrecognized "match_mapping_type" When using dynamic templates, ES will now throw an exception if a `match_mapping_type` is used that doesn't correspond to an actual type. Relates to #17285 --- .../index/mapper/DynamicTemplate.java | 14 ++++++-------- .../index/mapper/DynamicTemplateTests.java | 9 +++++++++ docs/reference/migration/migrate_6_0.asciidoc | 3 +++ .../migration/migrate_6_0/mappings.asciidoc | 8 ++++++++ 4 files changed, 26 insertions(+), 8 deletions(-) create mode 100644 docs/reference/migration/migrate_6_0/mappings.asciidoc diff --git a/core/src/main/java/org/elasticsearch/index/mapper/DynamicTemplate.java b/core/src/main/java/org/elasticsearch/index/mapper/DynamicTemplate.java index 197d06cd099..dcb991095b2 100644 --- a/core/src/main/java/org/elasticsearch/index/mapper/DynamicTemplate.java +++ b/core/src/main/java/org/elasticsearch/index/mapper/DynamicTemplate.java @@ -205,15 +205,13 @@ public class DynamicTemplate implements ToXContent { try { xcontentFieldType = XContentFieldType.fromString(matchMappingType); } catch (IllegalArgumentException e) { - // TODO: do this in 6.0 - /*if (indexVersionCreated.onOrAfter(Version.V_6_0_0)) { + if (indexVersionCreated.onOrAfter(Version.V_6_0_0_alpha1_UNRELEASED)) { throw e; - }*/ - - DEPRECATION_LOGGER.deprecated("Ignoring unrecognized match_mapping_type: [" + matchMappingType + "]"); - // this template is on an unknown type so it will never match anything - // null indicates that the template should be ignored - return null; + } else { + // this template is on an unknown type so it will never match anything + // null indicates that the template should be ignored + return null; + } } } return new DynamicTemplate(name, pathMatch, pathUnmatch, match, unmatch, xcontentFieldType, MatchType.fromString(matchPattern), mapping); diff --git a/core/src/test/java/org/elasticsearch/index/mapper/DynamicTemplateTests.java b/core/src/test/java/org/elasticsearch/index/mapper/DynamicTemplateTests.java index 621e9a8cccc..f41b36068ad 100644 --- a/core/src/test/java/org/elasticsearch/index/mapper/DynamicTemplateTests.java +++ b/core/src/test/java/org/elasticsearch/index/mapper/DynamicTemplateTests.java @@ -49,6 +49,15 @@ public class DynamicTemplateTests extends ESTestCase { templateDef.put("mapping", Collections.singletonMap("store", true)); // if a wrong match type is specified, we ignore the template assertNull(DynamicTemplate.parse("my_template", templateDef, Version.V_5_0_0_alpha5)); + + Map templateDef2 = new HashMap<>(); + templateDef2.put("match_mapping_type", "text"); + templateDef2.put("mapping", Collections.singletonMap("store", true)); + // if a wrong match type is specified, we ignore the template + IllegalArgumentException e = expectThrows(IllegalArgumentException.class, + () -> DynamicTemplate.parse("my_template", templateDef2, Version.V_6_0_0_alpha1_UNRELEASED)); + assertEquals("No xcontent type matched on [text], possible values are [object, string, long, double, boolean, date, binary]", + e.getMessage()); } public void testMatchAllTemplate() { diff --git a/docs/reference/migration/migrate_6_0.asciidoc b/docs/reference/migration/migrate_6_0.asciidoc index 5dd7c6d8a20..f1712d29cf9 100644 --- a/docs/reference/migration/migrate_6_0.asciidoc +++ b/docs/reference/migration/migrate_6_0.asciidoc @@ -28,6 +28,7 @@ way to reindex old indices is to use the `reindex` API. * <> * <> * <> +* <> * <> * <> * <> @@ -43,6 +44,8 @@ include::migrate_6_0/rest.asciidoc[] include::migrate_6_0/search.asciidoc[] +include::migrate_6_0/mappings.asciidoc[] + include::migrate_6_0/docs.asciidoc[] include::migrate_6_0/cluster.asciidoc[] diff --git a/docs/reference/migration/migrate_6_0/mappings.asciidoc b/docs/reference/migration/migrate_6_0/mappings.asciidoc new file mode 100644 index 00000000000..97584aa1903 --- /dev/null +++ b/docs/reference/migration/migrate_6_0/mappings.asciidoc @@ -0,0 +1,8 @@ +[[breaking_60_mappings_changes]] +=== Mapping changes + +==== Unrecognized `match_mapping_type` options not silently ignored + +Previously Elastiscearch would silently ignore any dynamic templates that +included a `match_mapping_type` type that was unrecognized. An exception is now +thrown on an unrecognized type. From 049fd3991cb22384c24e7d4bafed7b05bd3c9d8e Mon Sep 17 00:00:00 2001 From: Adrien Grand Date: Tue, 13 Dec 2016 09:09:40 +0100 Subject: [PATCH 51/51] Remove `AggregationContext`. (#22124) This class is just a wrapper around `SearchContext`, so let's use `SearchContext` directly. The change is mechanical, except the `ValuesSourceConfig` class, where I moved the logic to get a `ValuesSource` given a config. --- .../elasticsearch/search/SearchService.java | 4 +- .../AbstractAggregationBuilder.java | 6 +- .../aggregations/AggregationBuilder.java | 4 +- .../search/aggregations/AggregationPhase.java | 4 - .../search/aggregations/Aggregator.java | 6 +- .../search/aggregations/AggregatorBase.java | 12 +- .../aggregations/AggregatorFactories.java | 8 +- .../aggregations/AggregatorFactory.java | 15 +- .../aggregations/NonCollectingAggregator.java | 6 +- .../SearchContextAggregations.java | 11 - .../bucket/BestBucketsDeferringCollector.java | 12 +- .../bucket/BucketsAggregator.java | 4 +- .../bucket/DeferringBucketCollector.java | 4 +- .../bucket/SingleBucketAggregator.java | 4 +- .../children/ChildrenAggregationBuilder.java | 12 +- .../children/ChildrenAggregatorFactory.java | 6 +- .../children/ParentToChildrenAggregator.java | 16 +- .../filter/FilterAggregationBuilder.java | 6 +- .../bucket/filter/FilterAggregator.java | 6 +- .../filter/FilterAggregatorFactory.java | 8 +- .../filters/FiltersAggregationBuilder.java | 6 +- .../bucket/filters/FiltersAggregator.java | 7 +- .../filters/FiltersAggregatorFactory.java | 8 +- .../geogrid/GeoGridAggregationBuilder.java | 6 +- .../bucket/geogrid/GeoHashGridAggregator.java | 4 +- .../geogrid/GeoHashGridAggregatorFactory.java | 4 +- .../global/GlobalAggregationBuilder.java | 4 +- .../bucket/global/GlobalAggregator.java | 4 +- .../global/GlobalAggregatorFactory.java | 4 +- .../DateHistogramAggregationBuilder.java | 6 +- .../histogram/DateHistogramAggregator.java | 4 +- .../DateHistogramAggregatorFactory.java | 11 +- .../HistogramAggregationBuilder.java | 4 +- .../bucket/histogram/HistogramAggregator.java | 8 +- .../histogram/HistogramAggregatorFactory.java | 6 +- .../missing/MissingAggregationBuilder.java | 4 +- .../bucket/missing/MissingAggregator.java | 4 +- .../missing/MissingAggregatorFactory.java | 4 +- .../nested/NestedAggregationBuilder.java | 10 +- .../bucket/nested/NestedAggregator.java | 8 +- .../nested/NestedAggregatorFactory.java | 9 +- .../ReverseNestedAggregationBuilder.java | 10 +- .../nested/ReverseNestedAggregator.java | 9 +- .../ReverseNestedAggregatorFactory.java | 10 +- .../range/AbstractRangeAggregatorFactory.java | 4 +- .../bucket/range/AbstractRangeBuilder.java | 8 +- .../bucket/range/BinaryRangeAggregator.java | 6 +- .../range/BinaryRangeAggregatorFactory.java | 4 +- .../bucket/range/RangeAggregationBuilder.java | 4 +- .../bucket/range/RangeAggregator.java | 7 +- .../bucket/range/RangeAggregatorFactory.java | 4 +- .../date/DateRangeAggregationBuilder.java | 4 +- .../date/DateRangeAggregatorFactory.java | 4 +- .../GeoDistanceAggregationBuilder.java | 4 +- .../GeoDistanceRangeAggregatorFactory.java | 6 +- .../range/ip/IpRangeAggregationBuilder.java | 4 +- .../DiversifiedAggregationBuilder.java | 4 +- .../sampler/DiversifiedAggregatorFactory.java | 10 +- ...DiversifiedBytesHashSamplerAggregator.java | 6 +- .../DiversifiedMapSamplerAggregator.java | 8 +- .../DiversifiedNumericSamplerAggregator.java | 6 +- .../DiversifiedOrdinalsSamplerAggregator.java | 6 +- .../sampler/SamplerAggregationBuilder.java | 4 +- .../bucket/sampler/SamplerAggregator.java | 14 +- .../sampler/SamplerAggregatorFactory.java | 4 +- ...balOrdinalsSignificantTermsAggregator.java | 14 +- .../SignificantLongTermsAggregator.java | 8 +- .../SignificantStringTermsAggregator.java | 6 +- .../SignificantTermsAggregationBuilder.java | 6 +- .../SignificantTermsAggregatorFactory.java | 37 ++-- .../terms/AbstractStringTermsAggregator.java | 4 +- .../bucket/terms/DoubleTermsAggregator.java | 4 +- .../GlobalOrdinalsStringTermsAggregator.java | 17 +- .../bucket/terms/LongTermsAggregator.java | 6 +- .../bucket/terms/StringTermsAggregator.java | 10 +- .../bucket/terms/TermsAggregationBuilder.java | 4 +- .../bucket/terms/TermsAggregator.java | 4 +- .../bucket/terms/TermsAggregatorFactory.java | 34 ++-- .../metrics/MetricsAggregator.java | 4 +- .../metrics/NumericMetricsAggregator.java | 8 +- .../metrics/avg/AvgAggregationBuilder.java | 4 +- .../metrics/avg/AvgAggregator.java | 4 +- .../metrics/avg/AvgAggregatorFactory.java | 4 +- .../CardinalityAggregationBuilder.java | 4 +- .../cardinality/CardinalityAggregator.java | 5 +- .../CardinalityAggregatorFactory.java | 4 +- .../GeoBoundsAggregationBuilder.java | 4 +- .../geobounds/GeoBoundsAggregator.java | 4 +- .../geobounds/GeoBoundsAggregatorFactory.java | 4 +- .../GeoCentroidAggregationBuilder.java | 4 +- .../geocentroid/GeoCentroidAggregator.java | 6 +- .../GeoCentroidAggregatorFactory.java | 4 +- .../metrics/max/MaxAggregationBuilder.java | 4 +- .../metrics/max/MaxAggregator.java | 6 +- .../metrics/max/MaxAggregatorFactory.java | 4 +- .../metrics/min/MinAggregationBuilder.java | 4 +- .../metrics/min/MinAggregator.java | 6 +- .../metrics/min/MinAggregatorFactory.java | 4 +- .../PercentileRanksAggregationBuilder.java | 4 +- .../PercentilesAggregationBuilder.java | 4 +- .../hdr/AbstractHDRPercentilesAggregator.java | 4 +- .../hdr/HDRPercentileRanksAggregator.java | 4 +- .../HDRPercentileRanksAggregatorFactory.java | 4 +- .../hdr/HDRPercentilesAggregator.java | 4 +- .../hdr/HDRPercentilesAggregatorFactory.java | 4 +- .../AbstractTDigestPercentilesAggregator.java | 4 +- .../TDigestPercentileRanksAggregator.java | 4 +- ...igestPercentileRanksAggregatorFactory.java | 4 +- .../tdigest/TDigestPercentilesAggregator.java | 4 +- .../TDigestPercentilesAggregatorFactory.java | 4 +- .../ScriptedMetricAggregationBuilder.java | 7 +- .../scripted/ScriptedMetricAggregator.java | 8 +- .../ScriptedMetricAggregatorFactory.java | 7 +- .../stats/StatsAggregationBuilder.java | 4 +- .../metrics/stats/StatsAggregator.java | 4 +- .../metrics/stats/StatsAggregatorFactory.java | 4 +- .../ExtendedStatsAggregationBuilder.java | 4 +- .../extended/ExtendedStatsAggregator.java | 4 +- .../ExtendedStatsAggregatorFactory.java | 4 +- .../metrics/sum/SumAggregationBuilder.java | 4 +- .../metrics/sum/SumAggregator.java | 4 +- .../metrics/sum/SumAggregatorFactory.java | 4 +- .../tophits/TopHitsAggregationBuilder.java | 8 +- .../metrics/tophits/TopHitsAggregator.java | 10 +- .../tophits/TopHitsAggregatorFactory.java | 13 +- .../ValueCountAggregationBuilder.java | 4 +- .../valuecount/ValueCountAggregator.java | 4 +- .../ValueCountAggregatorFactory.java | 4 +- .../support/AggregationContext.java | 189 ------------------ .../ValuesSourceAggregationBuilder.java | 17 +- .../ValuesSourceAggregatorFactory.java | 5 +- .../support/ValuesSourceConfig.java | 149 ++++++++++++++ .../aggregation/ProfilingAggregator.java | 4 +- .../search/SearchModuleTests.java | 4 +- .../AggregationCollectorTests.java | 6 +- .../bucket/nested/NestedAggregatorTests.java | 6 +- .../stats/MatrixStatsAggregationBuilder.java | 4 +- .../matrix/stats/MatrixStatsAggregator.java | 4 +- .../stats/MatrixStatsAggregatorFactory.java | 4 +- .../MultiValuesSourceAggregationBuilder.java | 13 +- .../MultiValuesSourceAggregatorFactory.java | 7 +- 141 files changed, 584 insertions(+), 651 deletions(-) delete mode 100644 core/src/main/java/org/elasticsearch/search/aggregations/support/AggregationContext.java diff --git a/core/src/main/java/org/elasticsearch/search/SearchService.java b/core/src/main/java/org/elasticsearch/search/SearchService.java index 477aac2b014..55e4f100e76 100644 --- a/core/src/main/java/org/elasticsearch/search/SearchService.java +++ b/core/src/main/java/org/elasticsearch/search/SearchService.java @@ -55,7 +55,6 @@ import org.elasticsearch.script.SearchScript; import org.elasticsearch.search.aggregations.AggregationInitializationException; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.SearchContextAggregations; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.dfs.DfsPhase; import org.elasticsearch.search.dfs.DfsSearchResult; @@ -727,8 +726,7 @@ public class SearchService extends AbstractLifecycleComponent implements IndexEv context.terminateAfter(source.terminateAfter()); if (source.aggregations() != null) { try { - AggregationContext aggContext = new AggregationContext(context); - AggregatorFactories factories = source.aggregations().build(aggContext, null); + AggregatorFactories factories = source.aggregations().build(context, null); factories.validate(); context.aggregations(new SearchContextAggregations(factories)); } catch (IOException e) { diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/AbstractAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/AbstractAggregationBuilder.java index e84d7684304..47e512325fe 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/AbstractAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/AbstractAggregationBuilder.java @@ -22,7 +22,7 @@ import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.search.aggregations.InternalAggregation.Type; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Map; @@ -122,12 +122,12 @@ public abstract class AbstractAggregationBuilder build(AggregationContext context, AggregatorFactory parent) throws IOException { + public final AggregatorFactory build(SearchContext context, AggregatorFactory parent) throws IOException { AggregatorFactory factory = doBuild(context, parent, factoriesBuilder); return factory; } - protected abstract AggregatorFactory doBuild(AggregationContext context, AggregatorFactory parent, + protected abstract AggregatorFactory doBuild(SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subfactoriesBuilder) throws IOException; @Override diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/AggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/AggregationBuilder.java index 9417ec8a0e6..95317c293c4 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/AggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/AggregationBuilder.java @@ -24,7 +24,7 @@ import org.elasticsearch.common.ParseField; import org.elasticsearch.common.io.stream.NamedWriteable; import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.search.aggregations.InternalAggregation.Type; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Map; @@ -63,7 +63,7 @@ public abstract class AggregationBuilder } /** Internal: build an {@link AggregatorFactory} based on the configuration of this builder. */ - protected abstract AggregatorFactory build(AggregationContext context, AggregatorFactory parent) throws IOException; + protected abstract AggregatorFactory build(SearchContext context, AggregatorFactory parent) throws IOException; /** Associate metadata with this {@link AggregationBuilder}. */ public abstract AggregationBuilder setMetaData(Map metaData); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/AggregationPhase.java b/core/src/main/java/org/elasticsearch/search/aggregations/AggregationPhase.java index 8acd4f13752..03c21c9dad5 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/AggregationPhase.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/AggregationPhase.java @@ -28,7 +28,6 @@ import org.elasticsearch.search.SearchPhase; import org.elasticsearch.search.aggregations.bucket.global.GlobalAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; import org.elasticsearch.search.aggregations.pipeline.SiblingPipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.internal.SearchContext; import org.elasticsearch.search.profile.query.CollectorResult; import org.elasticsearch.search.profile.query.InternalProfileCollector; @@ -51,9 +50,6 @@ public class AggregationPhase implements SearchPhase { @Override public void preProcess(SearchContext context) { if (context.aggregations() != null) { - AggregationContext aggregationContext = new AggregationContext(context); - context.aggregations().aggregationContext(aggregationContext); - List collectors = new ArrayList<>(); Aggregator[] aggregators; try { diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/Aggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/Aggregator.java index bd81a397f04..37cfe18e83b 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/Aggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/Aggregator.java @@ -28,7 +28,7 @@ import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.common.lease.Releasable; import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.bucket.BucketsAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; @@ -77,9 +77,9 @@ public abstract class Aggregator extends BucketCollector implements Releasable { public abstract String name(); /** - * Return the {@link AggregationContext} attached with this {@link Aggregator}. + * Return the {@link SearchContext} attached with this {@link Aggregator}. */ - public abstract AggregationContext context(); + public abstract SearchContext context(); /** * Return the parent aggregator. diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/AggregatorBase.java b/core/src/main/java/org/elasticsearch/search/aggregations/AggregatorBase.java index c99da85f331..2d2c2abf65e 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/AggregatorBase.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/AggregatorBase.java @@ -25,7 +25,7 @@ import org.elasticsearch.indices.breaker.CircuitBreakerService; import org.elasticsearch.search.aggregations.bucket.BestBucketsDeferringCollector; import org.elasticsearch.search.aggregations.bucket.DeferringBucketCollector; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import org.elasticsearch.search.internal.SearchContext.Lifetime; import org.elasticsearch.search.query.QueryPhaseExecutionException; @@ -45,7 +45,7 @@ public abstract class AggregatorBase extends Aggregator { protected final String name; protected final Aggregator parent; - protected final AggregationContext context; + protected final SearchContext context; private final Map metaData; protected final Aggregator[] subAggregators; @@ -66,7 +66,7 @@ public abstract class AggregatorBase extends Aggregator { * @param parent The parent aggregator (may be {@code null} for top level aggregators) * @param metaData The metaData associated with this aggregator */ - protected AggregatorBase(String name, AggregatorFactories factories, AggregationContext context, Aggregator parent, + protected AggregatorBase(String name, AggregatorFactories factories, SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { this.name = name; this.pipelineAggregators = pipelineAggregators; @@ -76,11 +76,11 @@ public abstract class AggregatorBase extends Aggregator { this.breakerService = context.bigArrays().breakerService(); assert factories != null : "sub-factories provided to BucketAggregator must not be null, use AggragatorFactories.EMPTY instead"; this.subAggregators = factories.createSubAggregators(this); - context.searchContext().addReleasable(this, Lifetime.PHASE); + context.addReleasable(this, Lifetime.PHASE); // Register a safeguard to highlight any invalid construction logic (call to this constructor without subsequent preCollection call) collectableSubAggregators = new BucketCollector() { void badState(){ - throw new QueryPhaseExecutionException(AggregatorBase.this.context.searchContext(), + throw new QueryPhaseExecutionException(AggregatorBase.this.context, "preCollection not called on new Aggregator before use", null); } @Override @@ -245,7 +245,7 @@ public abstract class AggregatorBase extends Aggregator { * @return The current aggregation context. */ @Override - public AggregationContext context() { + public SearchContext context() { return context; } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/AggregatorFactories.java b/core/src/main/java/org/elasticsearch/search/aggregations/AggregatorFactories.java index a18395d5e66..200232930a9 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/AggregatorFactories.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/AggregatorFactories.java @@ -24,9 +24,9 @@ import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.AggregationPath; import org.elasticsearch.search.aggregations.support.AggregationPath.PathElement; +import org.elasticsearch.search.internal.SearchContext; import org.elasticsearch.search.profile.Profilers; import org.elasticsearch.search.profile.aggregation.ProfilingAggregator; @@ -81,7 +81,7 @@ public class AggregatorFactories { // aggs final boolean collectsFromSingleBucket = false; Aggregator factory = factories[i].create(parent, collectsFromSingleBucket); - Profilers profilers = factory.context().searchContext().getProfilers(); + Profilers profilers = factory.context().getProfilers(); if (profilers != null) { factory = new ProfilingAggregator(factory, profilers.getAggregationProfiler()); } @@ -97,7 +97,7 @@ public class AggregatorFactories { // top-level aggs only get called with bucket 0 final boolean collectsFromSingleBucket = true; Aggregator factory = factories[i].create(null, collectsFromSingleBucket); - Profilers profilers = factory.context().searchContext().getProfilers(); + Profilers profilers = factory.context().getProfilers(); if (profilers != null) { factory = new ProfilingAggregator(factory, profilers.getAggregationProfiler()); } @@ -193,7 +193,7 @@ public class AggregatorFactories { return this; } - public AggregatorFactories build(AggregationContext context, AggregatorFactory parent) throws IOException { + public AggregatorFactories build(SearchContext context, AggregatorFactory parent) throws IOException { if (aggregationBuilders.isEmpty() && pipelineAggregatorBuilders.isEmpty()) { return EMPTY; } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/AggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/AggregatorFactory.java index 44ecacd8417..151fc57dded 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/AggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/AggregatorFactory.java @@ -26,8 +26,9 @@ import org.elasticsearch.common.util.BigArrays; import org.elasticsearch.common.util.ObjectArray; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import org.elasticsearch.search.internal.SearchContext.Lifetime; + import java.io.IOException; import java.util.List; import java.util.Map; @@ -42,13 +43,13 @@ public abstract class AggregatorFactory> { ObjectArray aggregators; ObjectArray collectors; - MultiBucketAggregatorWrapper(BigArrays bigArrays, AggregationContext context, Aggregator parent, AggregatorFactory factory, + MultiBucketAggregatorWrapper(BigArrays bigArrays, SearchContext context, Aggregator parent, AggregatorFactory factory, Aggregator first) { this.bigArrays = bigArrays; this.parent = parent; this.factory = factory; this.first = first; - context.searchContext().addReleasable(this, Lifetime.PHASE); + context.addReleasable(this, Lifetime.PHASE); aggregators = bigArrays.newObjectArray(1); aggregators.set(0, first); collectors = bigArrays.newObjectArray(1); @@ -64,7 +65,7 @@ public abstract class AggregatorFactory> { } @Override - public AggregationContext context() { + public SearchContext context() { return first.context(); } @@ -166,7 +167,7 @@ public abstract class AggregatorFactory> { protected final AggregatorFactory parent; protected final AggregatorFactories factories; protected final Map metaData; - protected final AggregationContext context; + protected final SearchContext context; /** * Constructs a new aggregator factory. @@ -178,7 +179,7 @@ public abstract class AggregatorFactory> { * @throws IOException * if an error occurs creating the factory */ - public AggregatorFactory(String name, Type type, AggregationContext context, AggregatorFactory parent, + public AggregatorFactory(String name, Type type, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { this.name = name; this.type = type; @@ -238,7 +239,7 @@ public abstract class AggregatorFactory> { * {@link Aggregator}s that only know how to collect bucket 0, this * returns an aggregator that can collect any bucket. */ - protected static Aggregator asMultiBucketAggregator(final AggregatorFactory factory, final AggregationContext context, + protected static Aggregator asMultiBucketAggregator(final AggregatorFactory factory, final SearchContext context, final Aggregator parent) throws IOException { final Aggregator first = factory.create(parent, true); final BigArrays bigArrays = context.bigArrays(); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/NonCollectingAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/NonCollectingAggregator.java index 7e0e3cc9f9f..d65afd2ba91 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/NonCollectingAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/NonCollectingAggregator.java @@ -21,7 +21,7 @@ package org.elasticsearch.search.aggregations; import org.apache.lucene.index.LeafReaderContext; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -33,12 +33,12 @@ import java.util.Map; */ public abstract class NonCollectingAggregator extends AggregatorBase { - protected NonCollectingAggregator(String name, AggregationContext context, Aggregator parent, AggregatorFactories subFactories, + protected NonCollectingAggregator(String name, SearchContext context, Aggregator parent, AggregatorFactories subFactories, List pipelineAggregators, Map metaData) throws IOException { super(name, subFactories, context, parent, pipelineAggregators, metaData); } - protected NonCollectingAggregator(String name, AggregationContext context, Aggregator parent, + protected NonCollectingAggregator(String name, SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { this(name, context, parent, AggregatorFactories.EMPTY, pipelineAggregators, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/SearchContextAggregations.java b/core/src/main/java/org/elasticsearch/search/aggregations/SearchContextAggregations.java index f003519350f..9476af03846 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/SearchContextAggregations.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/SearchContextAggregations.java @@ -18,8 +18,6 @@ */ package org.elasticsearch.search.aggregations; -import org.elasticsearch.search.aggregations.support.AggregationContext; - /** * The aggregation context that is part of the search context. */ @@ -27,7 +25,6 @@ public class SearchContextAggregations { private final AggregatorFactories factories; private Aggregator[] aggregators; - private AggregationContext aggregationContext; /** * Creates a new aggregation context with the parsed aggregator factories @@ -44,14 +41,6 @@ public class SearchContextAggregations { return aggregators; } - public AggregationContext aggregationContext() { - return aggregationContext; - } - - public void aggregationContext(AggregationContext aggregationContext) { - this.aggregationContext = aggregationContext; - } - /** * Registers all the created aggregators (top level aggregators) for the search execution context. * diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/BestBucketsDeferringCollector.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/BestBucketsDeferringCollector.java index 7c6ebae7403..7348046494f 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/BestBucketsDeferringCollector.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/BestBucketsDeferringCollector.java @@ -31,7 +31,7 @@ import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.BucketCollector; import org.elasticsearch.search.aggregations.InternalAggregation; import org.elasticsearch.search.aggregations.LeafBucketCollector; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.ArrayList; @@ -58,7 +58,7 @@ public class BestBucketsDeferringCollector extends DeferringBucketCollector { final List entries = new ArrayList<>(); BucketCollector collector; - final AggregationContext aggContext; + final SearchContext searchContext; LeafReaderContext context; PackedLongValues.Builder docDeltas; PackedLongValues.Builder buckets; @@ -67,8 +67,8 @@ public class BestBucketsDeferringCollector extends DeferringBucketCollector { LongHash selectedBuckets; /** Sole constructor. */ - public BestBucketsDeferringCollector(AggregationContext context) { - this.aggContext = context; + public BestBucketsDeferringCollector(SearchContext context) { + this.searchContext = context; } @Override @@ -147,8 +147,8 @@ public class BestBucketsDeferringCollector extends DeferringBucketCollector { boolean needsScores = collector.needsScores(); Weight weight = null; if (needsScores) { - weight = aggContext.searchContext().searcher() - .createNormalizedWeight(aggContext.searchContext().query(), true); + weight = searchContext.searcher() + .createNormalizedWeight(searchContext.query(), true); } for (Entry entry : entries) { final LeafBucketCollector leafCollector = collector.getLeafCollector(entry.context); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/BucketsAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/BucketsAggregator.java index ca355320408..546cb07af26 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/BucketsAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/BucketsAggregator.java @@ -28,7 +28,7 @@ import org.elasticsearch.search.aggregations.InternalAggregation; import org.elasticsearch.search.aggregations.InternalAggregations; import org.elasticsearch.search.aggregations.LeafBucketCollector; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Arrays; @@ -40,7 +40,7 @@ public abstract class BucketsAggregator extends AggregatorBase { private final BigArrays bigArrays; private IntArray docCounts; - public BucketsAggregator(String name, AggregatorFactories factories, AggregationContext context, Aggregator parent, + public BucketsAggregator(String name, AggregatorFactories factories, SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { super(name, factories, context, parent, pipelineAggregators, metaData); bigArrays = context.bigArrays(); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/DeferringBucketCollector.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/DeferringBucketCollector.java index 7ecf7672bfd..3c63df2c06a 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/DeferringBucketCollector.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/DeferringBucketCollector.java @@ -24,7 +24,7 @@ import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.BucketCollector; import org.elasticsearch.search.aggregations.InternalAggregation; import org.elasticsearch.search.aggregations.LeafBucketCollector; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; @@ -82,7 +82,7 @@ public abstract class DeferringBucketCollector extends BucketCollector { } @Override - public AggregationContext context() { + public SearchContext context() { return in.context(); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/SingleBucketAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/SingleBucketAggregator.java index 44b1eea9146..f74df5d63b1 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/SingleBucketAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/SingleBucketAggregator.java @@ -21,7 +21,7 @@ package org.elasticsearch.search.aggregations.bucket; import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -33,7 +33,7 @@ import java.util.Map; public abstract class SingleBucketAggregator extends BucketsAggregator { protected SingleBucketAggregator(String name, AggregatorFactories factories, - AggregationContext aggregationContext, Aggregator parent, + SearchContext aggregationContext, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { super(name, factories, aggregationContext, parent, pipelineAggregators, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/children/ChildrenAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/children/ChildrenAggregationBuilder.java index a05dda207e3..48025e13aa1 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/children/ChildrenAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/children/ChildrenAggregationBuilder.java @@ -32,7 +32,6 @@ import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.FieldContext; import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource.Bytes.ParentChild; @@ -40,6 +39,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuil import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Objects; @@ -81,16 +81,16 @@ public class ChildrenAggregationBuilder extends ValuesSourceAggregationBuilder

    innerBuild(AggregationContext context, + protected ValuesSourceAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { return new ChildrenAggregatorFactory(name, type, config, parentType, childFilter, parentFilter, context, parent, subFactoriesBuilder, metaData); } @Override - protected ValuesSourceConfig resolveConfig(AggregationContext aggregationContext) { + protected ValuesSourceConfig resolveConfig(SearchContext context) { ValuesSourceConfig config = new ValuesSourceConfig<>(ValuesSourceType.BYTES); - DocumentMapper childDocMapper = aggregationContext.searchContext().mapperService().documentMapper(childType); + DocumentMapper childDocMapper = context.mapperService().documentMapper(childType); if (childDocMapper != null) { ParentFieldMapper parentFieldMapper = childDocMapper.parentFieldMapper(); @@ -98,11 +98,11 @@ public class ChildrenAggregationBuilder extends ValuesSourceAggregationBuilder

    config, String parentType, Query childFilter, - Query parentFilter, AggregationContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, + Query parentFilter, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); this.parentType = parentType; @@ -70,7 +70,7 @@ public class ChildrenAggregatorFactory protected Aggregator doCreateInternal(ValuesSource.Bytes.WithOrdinals.ParentChild valuesSource, Aggregator parent, boolean collectsFromSingleBucket, List pipelineAggregators, Map metaData) throws IOException { - long maxOrd = valuesSource.globalMaxOrd(context.searchContext().searcher(), parentType); + long maxOrd = valuesSource.globalMaxOrd(context.searcher(), parentType); return new ParentToChildrenAggregator(name, factories, context, parent, parentType, childFilter, parentFilter, valuesSource, maxOrd, pipelineAggregators, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/children/ParentToChildrenAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/children/ParentToChildrenAggregator.java index c844f968b9c..5aa55c771b2 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/children/ParentToChildrenAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/children/ParentToChildrenAggregator.java @@ -38,8 +38,8 @@ import org.elasticsearch.search.aggregations.InternalAggregation; import org.elasticsearch.search.aggregations.LeafBucketCollector; import org.elasticsearch.search.aggregations.bucket.SingleBucketAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Arrays; @@ -67,18 +67,18 @@ public class ParentToChildrenAggregator extends SingleBucketAggregator { private final LongObjectPagedHashMap parentOrdToOtherBuckets; private boolean multipleBucketsPerParentOrd = false; - public ParentToChildrenAggregator(String name, AggregatorFactories factories, AggregationContext aggregationContext, + public ParentToChildrenAggregator(String name, AggregatorFactories factories, SearchContext context, Aggregator parent, String parentType, Query childFilter, Query parentFilter, ValuesSource.Bytes.WithOrdinals.ParentChild valuesSource, long maxOrd, List pipelineAggregators, Map metaData) throws IOException { - super(name, factories, aggregationContext, parent, pipelineAggregators, metaData); + super(name, factories, context, parent, pipelineAggregators, metaData); this.parentType = parentType; // these two filters are cached in the parser - this.childFilter = aggregationContext.searchContext().searcher().createNormalizedWeight(childFilter, false); - this.parentFilter = aggregationContext.searchContext().searcher().createNormalizedWeight(parentFilter, false); - this.parentOrdToBuckets = aggregationContext.bigArrays().newLongArray(maxOrd, false); + this.childFilter = context.searcher().createNormalizedWeight(childFilter, false); + this.parentFilter = context.searcher().createNormalizedWeight(parentFilter, false); + this.parentOrdToBuckets = context.bigArrays().newLongArray(maxOrd, false); this.parentOrdToBuckets.fill(0, maxOrd, -1); - this.parentOrdToOtherBuckets = new LongObjectPagedHashMap<>(aggregationContext.bigArrays()); + this.parentOrdToOtherBuckets = new LongObjectPagedHashMap<>(context.bigArrays()); this.valuesSource = valuesSource; } @@ -132,7 +132,7 @@ public class ParentToChildrenAggregator extends SingleBucketAggregator { @Override protected void doPostCollection() throws IOException { - IndexReader indexReader = context().searchContext().searcher().getIndexReader(); + IndexReader indexReader = context().searcher().getIndexReader(); for (LeafReaderContext ctx : indexReader.leaves()) { Scorer childDocsScorer = childFilter.scorer(ctx); if (childDocsScorer == null) { diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filter/FilterAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filter/FilterAggregationBuilder.java index c0761d18cf6..ccf1883ecf4 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filter/FilterAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filter/FilterAggregationBuilder.java @@ -28,7 +28,7 @@ import org.elasticsearch.search.aggregations.AbstractAggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Objects; @@ -69,10 +69,10 @@ public class FilterAggregationBuilder extends AbstractAggregationBuilder doBuild(AggregationContext context, AggregatorFactory parent, + protected AggregatorFactory doBuild(SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder) throws IOException { // TODO this sucks we need a rewrite phase for aggregations too - final QueryBuilder rewrittenFilter = QueryBuilder.rewriteQuery(filter, context.searchContext().getQueryShardContext()); + final QueryBuilder rewrittenFilter = QueryBuilder.rewriteQuery(filter, context.getQueryShardContext()); return new FilterAggregatorFactory(name, type, rewrittenFilter, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filter/FilterAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filter/FilterAggregator.java index 1a79631f93d..5313bdade80 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filter/FilterAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filter/FilterAggregator.java @@ -29,7 +29,7 @@ import org.elasticsearch.search.aggregations.LeafBucketCollector; import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.bucket.SingleBucketAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -45,10 +45,10 @@ public class FilterAggregator extends SingleBucketAggregator { public FilterAggregator(String name, Weight filter, AggregatorFactories factories, - AggregationContext aggregationContext, + SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { - super(name, factories, aggregationContext, parent, pipelineAggregators, metaData); + super(name, factories, context, parent, pipelineAggregators, metaData); this.filter = filter; } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filter/FilterAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filter/FilterAggregatorFactory.java index 212494ef48b..01ae8f6d22e 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filter/FilterAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filter/FilterAggregatorFactory.java @@ -28,7 +28,7 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -38,11 +38,11 @@ public class FilterAggregatorFactory extends AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, context, parent, subFactoriesBuilder, metaData); - IndexSearcher contextSearcher = context.searchContext().searcher(); - Query filter = filterBuilder.toQuery(context.searchContext().getQueryShardContext()); + IndexSearcher contextSearcher = context.searcher(); + Query filter = filterBuilder.toQuery(context.getQueryShardContext()); weight = contextSearcher.createNormalizedWeight(filter, false); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregationBuilder.java index 79a23dbb767..10bbc03dd46 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregationBuilder.java @@ -32,7 +32,7 @@ import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.bucket.filters.FiltersAggregator.KeyedFilter; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.ArrayList; @@ -169,12 +169,12 @@ public class FiltersAggregationBuilder extends AbstractAggregationBuilder doBuild(AggregationContext context, AggregatorFactory parent, Builder subFactoriesBuilder) + protected AggregatorFactory doBuild(SearchContext context, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { List rewrittenFilters = new ArrayList<>(); for(KeyedFilter kf : filters) { rewrittenFilters.add(new KeyedFilter(kf.key(), QueryBuilder.rewriteQuery(kf.filter(), - context.searchContext().getQueryShardContext()))); + context.getQueryShardContext()))); } return new FiltersAggregatorFactory(name, type, rewrittenFilters, keyed, otherBucket, otherBucketKey, context, parent, subFactoriesBuilder, metaData); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregator.java index 2c91b62a84d..a225d5f92f0 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregator.java @@ -29,7 +29,6 @@ import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.common.lucene.Lucene; import org.elasticsearch.common.xcontent.ToXContent; import org.elasticsearch.common.xcontent.XContentBuilder; -import org.elasticsearch.index.query.MatchAllQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.AggregatorFactories; @@ -39,7 +38,7 @@ import org.elasticsearch.search.aggregations.LeafBucketCollector; import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.bucket.BucketsAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.ArrayList; @@ -123,10 +122,10 @@ public class FiltersAggregator extends BucketsAggregator { private final int totalNumKeys; public FiltersAggregator(String name, AggregatorFactories factories, String[] keys, Weight[] filters, boolean keyed, String otherBucketKey, - AggregationContext aggregationContext, + SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { - super(name, factories, aggregationContext, parent, pipelineAggregators, metaData); + super(name, factories, context, parent, pipelineAggregators, metaData); this.keyed = keyed; this.keys = keys; this.filters = filters; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregatorFactory.java index 9b7def2395e..d8f109231be 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/filters/FiltersAggregatorFactory.java @@ -28,7 +28,7 @@ import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.bucket.filters.FiltersAggregator.KeyedFilter; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -43,19 +43,19 @@ public class FiltersAggregatorFactory extends AggregatorFactory filters, boolean keyed, boolean otherBucket, - String otherBucketKey, AggregationContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactories, + String otherBucketKey, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactories, Map metaData) throws IOException { super(name, type, context, parent, subFactories, metaData); this.keyed = keyed; this.otherBucket = otherBucket; this.otherBucketKey = otherBucketKey; - IndexSearcher contextSearcher = context.searchContext().searcher(); + IndexSearcher contextSearcher = context.searcher(); weights = new Weight[filters.size()]; keys = new String[filters.size()]; for (int i = 0; i < filters.size(); ++i) { KeyedFilter keyedFilter = filters.get(i); this.keys[i] = keyedFilter.key(); - Query filter = keyedFilter.filter().toFilter(context.searchContext().getQueryShardContext()); + Query filter = keyedFilter.filter().toFilter(context.getQueryShardContext()); this.weights[i] = contextSearcher.createNormalizedWeight(filter, false); } } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoGridAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoGridAggregationBuilder.java index e85e1a9c92a..26e58f51320 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoGridAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoGridAggregationBuilder.java @@ -37,7 +37,6 @@ import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.bucket.BucketUtils; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; @@ -45,6 +44,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFacto import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Objects; @@ -129,7 +129,7 @@ public class GeoGridAggregationBuilder extends ValuesSourceAggregationBuilder innerBuild(AggregationContext context, + protected ValuesSourceAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { int shardSize = this.shardSize; @@ -139,7 +139,7 @@ public class GeoGridAggregationBuilder extends ValuesSourceAggregationBuilder pipelineAggregators, + int requiredSize, int shardSize, SearchContext aggregationContext, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { super(name, factories, aggregationContext, parent, pipelineAggregators, metaData); this.valuesSource = valuesSource; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridAggregatorFactory.java index 1b2c4c26372..548b0e2509e 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/geogrid/GeoHashGridAggregatorFactory.java @@ -27,11 +27,11 @@ import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.NonCollectingAggregator; import org.elasticsearch.search.aggregations.bucket.geogrid.GeoGridAggregationBuilder.CellIdSource; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.GeoPoint; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Collections; @@ -45,7 +45,7 @@ public class GeoHashGridAggregatorFactory extends ValuesSourceAggregatorFactory< private final int shardSize; public GeoHashGridAggregatorFactory(String name, Type type, ValuesSourceConfig config, int precision, int requiredSize, - int shardSize, AggregationContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, + int shardSize, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); this.precision = precision; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/global/GlobalAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/global/GlobalAggregationBuilder.java index 94211f39dd0..c9941984d6e 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/global/GlobalAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/global/GlobalAggregationBuilder.java @@ -27,7 +27,7 @@ import org.elasticsearch.search.aggregations.AbstractAggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; @@ -52,7 +52,7 @@ public class GlobalAggregationBuilder extends AbstractAggregationBuilder doBuild(AggregationContext context, AggregatorFactory parent, Builder subFactoriesBuilder) + protected AggregatorFactory doBuild(SearchContext context, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { return new GlobalAggregatorFactory(name, type, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/global/GlobalAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/global/GlobalAggregator.java index bc5057eee14..c511cbf3165 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/global/GlobalAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/global/GlobalAggregator.java @@ -25,7 +25,7 @@ import org.elasticsearch.search.aggregations.LeafBucketCollector; import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.bucket.SingleBucketAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -33,7 +33,7 @@ import java.util.Map; public class GlobalAggregator extends SingleBucketAggregator { - public GlobalAggregator(String name, AggregatorFactories subFactories, AggregationContext aggregationContext, List pipelineAggregators, + public GlobalAggregator(String name, AggregatorFactories subFactories, SearchContext aggregationContext, List pipelineAggregators, Map metaData) throws IOException { super(name, subFactories, aggregationContext, null, pipelineAggregators, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/global/GlobalAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/global/GlobalAggregatorFactory.java index f92241f5345..bbdd280839a 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/global/GlobalAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/global/GlobalAggregatorFactory.java @@ -25,7 +25,7 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -33,7 +33,7 @@ import java.util.Map; public class GlobalAggregatorFactory extends AggregatorFactory { - public GlobalAggregatorFactory(String name, Type type, AggregationContext context, AggregatorFactory parent, + public GlobalAggregatorFactory(String name, Type type, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactories, Map metaData) throws IOException { super(name, type, context, parent, subFactories, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregationBuilder.java index 3fe64220c84..67f662bc334 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregationBuilder.java @@ -32,7 +32,6 @@ import org.elasticsearch.common.xcontent.XContentParser.Token; import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; @@ -41,6 +40,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFacto import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.HashMap; @@ -320,13 +320,13 @@ public class DateHistogramAggregationBuilder } @Override - protected ValuesSourceAggregatorFactory innerBuild(AggregationContext context, ValuesSourceConfig config, + protected ValuesSourceAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { Rounding rounding = createRounding(); ExtendedBounds roundedBounds = null; if (this.extendedBounds != null) { // parse any string bounds to longs and round - roundedBounds = this.extendedBounds.parseAndValidate(name, context.searchContext(), config.format()).round(rounding); + roundedBounds = this.extendedBounds.parseAndValidate(name, context, config.format()).round(rounding); } return new DateHistogramAggregatorFactory(name, type, config, interval, dateHistogramInterval, offset, order, keyed, minDocCount, rounding, roundedBounds, context, parent, subFactoriesBuilder, metaData); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregator.java index 0ea2fba719b..48f14211361 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregator.java @@ -33,8 +33,8 @@ import org.elasticsearch.search.aggregations.LeafBucketCollector; import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.bucket.BucketsAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.ArrayList; @@ -65,7 +65,7 @@ class DateHistogramAggregator extends BucketsAggregator { public DateHistogramAggregator(String name, AggregatorFactories factories, Rounding rounding, long offset, InternalOrder order, boolean keyed, long minDocCount, @Nullable ExtendedBounds extendedBounds, @Nullable ValuesSource.Numeric valuesSource, - DocValueFormat formatter, AggregationContext aggregationContext, + DocValueFormat formatter, SearchContext aggregationContext, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { super(name, factories, aggregationContext, parent, pipelineAggregators, metaData); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregatorFactory.java index f1c4a6b4fae..4cde6f2530d 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/DateHistogramAggregatorFactory.java @@ -25,17 +25,16 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; +import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; +import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; +import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; import java.util.Map; -import org.elasticsearch.search.aggregations.support.AggregationContext; -import org.elasticsearch.search.aggregations.support.ValuesSource; -import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; -import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; - public final class DateHistogramAggregatorFactory extends ValuesSourceAggregatorFactory { @@ -50,7 +49,7 @@ public final class DateHistogramAggregatorFactory public DateHistogramAggregatorFactory(String name, Type type, ValuesSourceConfig config, long interval, DateHistogramInterval dateHistogramInterval, long offset, InternalOrder order, boolean keyed, long minDocCount, - Rounding rounding, ExtendedBounds extendedBounds, AggregationContext context, AggregatorFactory parent, + Rounding rounding, ExtendedBounds extendedBounds, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); this.interval = interval; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregationBuilder.java index 06b82daf94b..873f32c1fde 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregationBuilder.java @@ -31,7 +31,6 @@ import org.elasticsearch.common.xcontent.XContentParser.Token; import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; @@ -40,6 +39,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFacto import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Objects; @@ -265,7 +265,7 @@ public class HistogramAggregationBuilder } @Override - protected ValuesSourceAggregatorFactory innerBuild(AggregationContext context, ValuesSourceConfig config, + protected ValuesSourceAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { return new HistogramAggregatorFactory(name, type, config, interval, offset, order, keyed, minDocCount, minBound, maxBound, context, parent, subFactoriesBuilder, metaData); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregator.java index 7d102578a72..d459618d8d0 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregator.java @@ -34,8 +34,8 @@ import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.bucket.BucketsAggregator; import org.elasticsearch.search.aggregations.bucket.histogram.InternalHistogram.EmptyBucketInfo; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.ArrayList; @@ -64,10 +64,10 @@ class HistogramAggregator extends BucketsAggregator { public HistogramAggregator(String name, AggregatorFactories factories, double interval, double offset, InternalOrder order, boolean keyed, long minDocCount, double minBound, double maxBound, @Nullable ValuesSource.Numeric valuesSource, DocValueFormat formatter, - AggregationContext aggregationContext, Aggregator parent, + SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { - super(name, factories, aggregationContext, parent, pipelineAggregators, metaData); + super(name, factories, context, parent, pipelineAggregators, metaData); if (interval <= 0) { throw new IllegalArgumentException("interval must be positive, got: " + interval); } @@ -81,7 +81,7 @@ class HistogramAggregator extends BucketsAggregator { this.valuesSource = valuesSource; this.formatter = formatter; - bucketOrds = new LongHash(1, aggregationContext.bigArrays()); + bucketOrds = new LongHash(1, context.bigArrays()); } @Override diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregatorFactory.java index 805aab9ecf5..af27b32b206 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/histogram/HistogramAggregatorFactory.java @@ -24,11 +24,11 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; -import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -44,7 +44,7 @@ public final class HistogramAggregatorFactory extends ValuesSourceAggregatorFact HistogramAggregatorFactory(String name, Type type, ValuesSourceConfig config, double interval, double offset, InternalOrder order, boolean keyed, long minDocCount, double minBound, double maxBound, - AggregationContext context, AggregatorFactory parent, + SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); this.interval = interval; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregationBuilder.java index 36232c00f03..986416922b6 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregationBuilder.java @@ -27,7 +27,6 @@ import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; @@ -35,6 +34,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFacto import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; @@ -74,7 +74,7 @@ public class MissingAggregationBuilder extends ValuesSourceAggregationBuilder innerBuild(AggregationContext context, + protected ValuesSourceAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { return new MissingAggregatorFactory(name, type, config, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregator.java index 013c25cfc88..0f2217dfe26 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregator.java @@ -27,8 +27,8 @@ import org.elasticsearch.search.aggregations.LeafBucketCollector; import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.bucket.SingleBucketAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -39,7 +39,7 @@ public class MissingAggregator extends SingleBucketAggregator { private final ValuesSource valuesSource; public MissingAggregator(String name, AggregatorFactories factories, ValuesSource valuesSource, - AggregationContext aggregationContext, Aggregator parent, List pipelineAggregators, + SearchContext aggregationContext, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { super(name, factories, aggregationContext, parent, pipelineAggregators, metaData); this.valuesSource = valuesSource; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregatorFactory.java index d7b478b78f8..5de7fada428 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/missing/MissingAggregatorFactory.java @@ -24,10 +24,10 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -35,7 +35,7 @@ import java.util.Map; public class MissingAggregatorFactory extends ValuesSourceAggregatorFactory { - public MissingAggregatorFactory(String name, Type type, ValuesSourceConfig config, AggregationContext context, + public MissingAggregatorFactory(String name, Type type, ValuesSourceConfig config, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregationBuilder.java index c2bf201e48f..dbb08e792ad 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregationBuilder.java @@ -31,7 +31,7 @@ import org.elasticsearch.search.aggregations.AggregationExecutionException; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Objects; @@ -78,9 +78,9 @@ public class NestedAggregationBuilder extends AbstractAggregationBuilder doBuild(AggregationContext context, AggregatorFactory parent, Builder subFactoriesBuilder) + protected AggregatorFactory doBuild(SearchContext context, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { - ObjectMapper childObjectMapper = context.searchContext().getObjectMapper(path); + ObjectMapper childObjectMapper = context.getObjectMapper(path); if (childObjectMapper == null) { // in case the path has been unmapped: return new NestedAggregatorFactory(name, type, null, null, context, parent, subFactoriesBuilder, metaData); @@ -90,11 +90,11 @@ public class NestedAggregationBuilder extends AbstractAggregationBuilder pipelineAggregators, Map metaData) throws IOException { - super(name, factories, aggregationContext, parentAggregator, pipelineAggregators, metaData); + super(name, factories, context, parentAggregator, pipelineAggregators, metaData); Query parentFilter = parentObjectMapper != null ? parentObjectMapper.nestedTypeFilter() : Queries.newNonNestedFilter(); - this.parentFilter = context.searchContext().bitsetFilterCache().getBitSetProducer(parentFilter); + this.parentFilter = context.bitsetFilterCache().getBitSetProducer(parentFilter); this.childFilter = childObjectMapper.nestedTypeFilter(); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregatorFactory.java index b4e9fa05f70..554e6c3455b 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregatorFactory.java @@ -20,15 +20,14 @@ package org.elasticsearch.search.aggregations.bucket.nested; import org.elasticsearch.index.mapper.ObjectMapper; -import org.elasticsearch.search.aggregations.AggregationExecutionException; import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation; -import org.elasticsearch.search.aggregations.NonCollectingAggregator; import org.elasticsearch.search.aggregations.InternalAggregation.Type; +import org.elasticsearch.search.aggregations.NonCollectingAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -40,7 +39,7 @@ public class NestedAggregatorFactory extends AggregatorFactory parent, AggregatorFactories.Builder subFactories, + SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactories, Map metaData) throws IOException { super(name, type, context, parent, subFactories, metaData); this.parentObjectMapper = parentObjectMapper; @@ -61,7 +60,7 @@ public class NestedAggregatorFactory extends AggregatorFactory pipelineAggregators, + public Unmapped(String name, SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { super(name, context, parent, pipelineAggregators, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/ReverseNestedAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/ReverseNestedAggregationBuilder.java index 707d4633845..6adadde12ce 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/ReverseNestedAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/ReverseNestedAggregationBuilder.java @@ -33,7 +33,7 @@ import org.elasticsearch.search.aggregations.AggregationExecutionException; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Objects; @@ -82,16 +82,16 @@ public class ReverseNestedAggregationBuilder extends AbstractAggregationBuilder< } @Override - protected AggregatorFactory doBuild(AggregationContext context, AggregatorFactory parent, Builder subFactoriesBuilder) + protected AggregatorFactory doBuild(SearchContext context, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { if (findNestedAggregatorFactory(parent) == null) { - throw new SearchParseException(context.searchContext(), + throw new SearchParseException(context, "Reverse nested aggregation [" + name + "] can only be used inside a [nested] aggregation", null); } ObjectMapper parentObjectMapper = null; if (path != null) { - parentObjectMapper = context.searchContext().getObjectMapper(path); + parentObjectMapper = context.getObjectMapper(path); if (parentObjectMapper == null) { return new ReverseNestedAggregatorFactory(name, type, true, null, context, parent, subFactoriesBuilder, metaData); } @@ -100,7 +100,7 @@ public class ReverseNestedAggregationBuilder extends AbstractAggregationBuilder< } } - NestedScope nestedScope = context.searchContext().getQueryShardContext().nestedScope(); + NestedScope nestedScope = context.getQueryShardContext().nestedScope(); try { nestedScope.nextLevel(parentObjectMapper); return new ReverseNestedAggregatorFactory(name, type, false, parentObjectMapper, context, parent, subFactoriesBuilder, diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/ReverseNestedAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/ReverseNestedAggregator.java index 7e88e38b7f2..d52412ec1ec 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/ReverseNestedAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/ReverseNestedAggregator.java @@ -19,6 +19,7 @@ package org.elasticsearch.search.aggregations.bucket.nested; import com.carrotsearch.hppc.LongIntHashMap; + import org.apache.lucene.index.LeafReaderContext; import org.apache.lucene.search.DocIdSetIterator; import org.apache.lucene.search.Query; @@ -34,7 +35,7 @@ import org.elasticsearch.search.aggregations.LeafBucketCollector; import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.bucket.SingleBucketAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -48,15 +49,15 @@ public class ReverseNestedAggregator extends SingleBucketAggregator { private final BitSetProducer parentBitsetProducer; public ReverseNestedAggregator(String name, AggregatorFactories factories, ObjectMapper objectMapper, - AggregationContext aggregationContext, Aggregator parent, List pipelineAggregators, Map metaData) + SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { - super(name, factories, aggregationContext, parent, pipelineAggregators, metaData); + super(name, factories, context, parent, pipelineAggregators, metaData); if (objectMapper == null) { parentFilter = Queries.newNonNestedFilter(); } else { parentFilter = objectMapper.nestedTypeFilter(); } - parentBitsetProducer = context.searchContext().bitsetFilterCache().getBitSetProducer(parentFilter); + parentBitsetProducer = context.bitsetFilterCache().getBitSetProducer(parentFilter); } @Override diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/ReverseNestedAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/ReverseNestedAggregatorFactory.java index b077e755bb7..2a691121efa 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/ReverseNestedAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/nested/ReverseNestedAggregatorFactory.java @@ -20,16 +20,14 @@ package org.elasticsearch.search.aggregations.bucket.nested; import org.elasticsearch.index.mapper.ObjectMapper; -import org.elasticsearch.search.SearchParseException; -import org.elasticsearch.search.aggregations.AggregationExecutionException; import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation; -import org.elasticsearch.search.aggregations.NonCollectingAggregator; import org.elasticsearch.search.aggregations.InternalAggregation.Type; +import org.elasticsearch.search.aggregations.NonCollectingAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -41,7 +39,7 @@ public class ReverseNestedAggregatorFactory extends AggregatorFactory parent, + SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactories, Map metaData) throws IOException { super(name, type, context, parent, subFactories, metaData); @@ -61,7 +59,7 @@ public class ReverseNestedAggregatorFactory extends AggregatorFactory pipelineAggregators, + public Unmapped(String name, SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { super(name, context, parent, pipelineAggregators, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/AbstractRangeAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/AbstractRangeAggregatorFactory.java index f67bec631bc..3de8e73ba93 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/AbstractRangeAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/AbstractRangeAggregatorFactory.java @@ -26,11 +26,11 @@ import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator.Range; import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator.Unmapped; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -44,7 +44,7 @@ public class AbstractRangeAggregatorFactory config, R[] ranges, boolean keyed, - InternalRange.Factory rangeFactory, AggregationContext context, AggregatorFactory parent, + InternalRange.Factory rangeFactory, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); this.ranges = ranges; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/AbstractRangeBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/AbstractRangeBuilder.java index 0692b0ed304..e7669df2d65 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/AbstractRangeBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/AbstractRangeBuilder.java @@ -25,11 +25,11 @@ import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.common.xcontent.XContentBuilder; import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator.Range; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; -import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.ArrayList; @@ -63,10 +63,10 @@ public abstract class AbstractRangeBuilder config) { + protected Range[] processRanges(SearchContext context, ValuesSourceConfig config) { Range[] ranges = new Range[this.ranges.size()]; for (int i = 0; i < ranges.length; i++) { - ranges[i] = this.ranges.get(i).process(config.format(), context.searchContext()); + ranges[i] = this.ranges.get(i).process(config.format(), context); } sortRanges(ranges); return ranges; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/BinaryRangeAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/BinaryRangeAggregator.java index 77a6fc547b0..7ec3b3bb9c8 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/BinaryRangeAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/BinaryRangeAggregator.java @@ -39,8 +39,8 @@ import org.elasticsearch.search.aggregations.LeafBucketCollector; import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.bucket.BucketsAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; /** A range aggregator for values that are stored in SORTED_SET doc values. */ public final class BinaryRangeAggregator extends BucketsAggregator { @@ -78,10 +78,10 @@ public final class BinaryRangeAggregator extends BucketsAggregator { public BinaryRangeAggregator(String name, AggregatorFactories factories, ValuesSource.Bytes valuesSource, DocValueFormat format, - List ranges, boolean keyed, AggregationContext aggregationContext, + List ranges, boolean keyed, SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { - super(name, factories, aggregationContext, parent, pipelineAggregators, metaData); + super(name, factories, context, parent, pipelineAggregators, metaData); this.valuesSource = valuesSource; this.format = format; this.keyed = keyed; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/BinaryRangeAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/BinaryRangeAggregatorFactory.java index fda822cf11b..86573d175c0 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/BinaryRangeAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/BinaryRangeAggregatorFactory.java @@ -27,10 +27,10 @@ import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; public class BinaryRangeAggregatorFactory extends ValuesSourceAggregatorFactory { @@ -41,7 +41,7 @@ public class BinaryRangeAggregatorFactory public BinaryRangeAggregatorFactory(String name, Type type, ValuesSourceConfig config, List ranges, boolean keyed, - AggregationContext context, + SearchContext context, AggregatorFactory parent, Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeAggregationBuilder.java index 95018cf465b..8f4f9d6ccd8 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeAggregationBuilder.java @@ -28,10 +28,10 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator.Range; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; @@ -138,7 +138,7 @@ public class RangeAggregationBuilder extends AbstractRangeBuilder config, + protected RangeAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { // We need to call processRanges here so they are parsed before we make the decision of whether to cache the request Range[] ranges = processRanges(context, config); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeAggregator.java index 3ca79c82e72..cdb1dda221d 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeAggregator.java @@ -38,7 +38,6 @@ import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.NonCollectingAggregator; import org.elasticsearch.search.aggregations.bucket.BucketsAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.internal.SearchContext; @@ -206,10 +205,10 @@ public class RangeAggregator extends BucketsAggregator { final double[] maxTo; public RangeAggregator(String name, AggregatorFactories factories, ValuesSource.Numeric valuesSource, DocValueFormat format, - InternalRange.Factory rangeFactory, Range[] ranges, boolean keyed, AggregationContext aggregationContext, + InternalRange.Factory rangeFactory, Range[] ranges, boolean keyed, SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { - super(name, factories, aggregationContext, parent, pipelineAggregators, metaData); + super(name, factories, context, parent, pipelineAggregators, metaData); assert valuesSource != null; this.valuesSource = valuesSource; this.format = format; @@ -338,7 +337,7 @@ public class RangeAggregator extends BucketsAggregator { @SuppressWarnings("unchecked") public Unmapped(String name, R[] ranges, boolean keyed, DocValueFormat format, - AggregationContext context, + SearchContext context, Aggregator parent, InternalRange.Factory factory, List pipelineAggregators, Map metaData) throws IOException { diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeAggregatorFactory.java index b3297401457..de512fbaad4 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/RangeAggregatorFactory.java @@ -25,8 +25,8 @@ import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.bucket.range.InternalRange.Factory; import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator.Range; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Map; @@ -34,7 +34,7 @@ import java.util.Map; public class RangeAggregatorFactory extends AbstractRangeAggregatorFactory { public RangeAggregatorFactory(String name, Type type, ValuesSourceConfig config, Range[] ranges, boolean keyed, - Factory rangeFactory, AggregationContext context, AggregatorFactory parent, + Factory rangeFactory, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, ranges, keyed, rangeFactory, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRangeAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRangeAggregationBuilder.java index 12e07f7187d..c2b34aee40b 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRangeAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRangeAggregationBuilder.java @@ -30,10 +30,10 @@ import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.bucket.range.AbstractRangeBuilder; import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator; import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator.Range; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; +import org.elasticsearch.search.internal.SearchContext; import org.joda.time.DateTime; import java.io.IOException; @@ -283,7 +283,7 @@ public class DateRangeAggregationBuilder extends AbstractRangeBuilder config, + protected DateRangeAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { // We need to call processRanges here so they are parsed and we know whether `now` has been used before we make // the decision of whether to cache the request diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRangeAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRangeAggregatorFactory.java index d5d16123ec3..03afbff663e 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRangeAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/date/DateRangeAggregatorFactory.java @@ -26,8 +26,8 @@ import org.elasticsearch.search.aggregations.bucket.range.AbstractRangeAggregato import org.elasticsearch.search.aggregations.bucket.range.InternalRange.Factory; import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator.Range; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Map; @@ -35,7 +35,7 @@ import java.util.Map; public class DateRangeAggregatorFactory extends AbstractRangeAggregatorFactory { public DateRangeAggregatorFactory(String name, Type type, ValuesSourceConfig config, Range[] ranges, boolean keyed, - Factory rangeFactory, AggregationContext context, AggregatorFactory parent, + Factory rangeFactory, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, ranges, keyed, rangeFactory, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceAggregationBuilder.java index a51b6ce046b..d70c150363b 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceAggregationBuilder.java @@ -38,12 +38,12 @@ import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.bucket.range.InternalRange; import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.ArrayList; @@ -385,7 +385,7 @@ public class GeoDistanceAggregationBuilder extends ValuesSourceAggregationBuilde } @Override - protected ValuesSourceAggregatorFactory innerBuild(AggregationContext context, + protected ValuesSourceAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { Range[] ranges = this.ranges.toArray(new Range[this.range().size()]); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceRangeAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceRangeAggregatorFactory.java index d216e8eb6c7..513c1fe8ee1 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceRangeAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/geodistance/GeoDistanceRangeAggregatorFactory.java @@ -22,8 +22,8 @@ package org.elasticsearch.search.aggregations.bucket.range.geodistance; import org.apache.lucene.index.LeafReaderContext; import org.apache.lucene.index.SortedNumericDocValues; import org.elasticsearch.common.geo.GeoDistance; -import org.elasticsearch.common.geo.GeoPoint; import org.elasticsearch.common.geo.GeoDistance.FixedSourceDistance; +import org.elasticsearch.common.geo.GeoPoint; import org.elasticsearch.common.unit.DistanceUnit; import org.elasticsearch.index.fielddata.MultiGeoPointValues; import org.elasticsearch.index.fielddata.SortedBinaryDocValues; @@ -37,10 +37,10 @@ import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator; import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator.Unmapped; import org.elasticsearch.search.aggregations.bucket.range.geodistance.GeoDistanceAggregationBuilder.Range; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -57,7 +57,7 @@ public class GeoDistanceRangeAggregatorFactory private final boolean keyed; public GeoDistanceRangeAggregatorFactory(String name, Type type, ValuesSourceConfig config, GeoPoint origin, - Range[] ranges, DistanceUnit unit, GeoDistance distanceType, boolean keyed, AggregationContext context, + Range[] ranges, DistanceUnit unit, GeoDistance distanceType, boolean keyed, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); this.origin = origin; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ip/IpRangeAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ip/IpRangeAggregationBuilder.java index 9ebd3fc2ead..507f1961d62 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ip/IpRangeAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/range/ip/IpRangeAggregationBuilder.java @@ -40,7 +40,6 @@ import org.elasticsearch.search.aggregations.InternalAggregation; import org.elasticsearch.search.aggregations.bucket.range.BinaryRangeAggregator; import org.elasticsearch.search.aggregations.bucket.range.BinaryRangeAggregatorFactory; import org.elasticsearch.search.aggregations.bucket.range.RangeAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; @@ -48,6 +47,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFacto import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.net.InetAddress; @@ -369,7 +369,7 @@ public final class IpRangeAggregationBuilder @Override protected ValuesSourceAggregatorFactory innerBuild( - AggregationContext context, ValuesSourceConfig config, + SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { List ranges = new ArrayList<>(); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregationBuilder.java index 3d5192e17ac..2465ef97457 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregationBuilder.java @@ -28,13 +28,13 @@ import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Objects; @@ -137,7 +137,7 @@ public class DiversifiedAggregationBuilder extends ValuesSourceAggregationBuilde } @Override - protected ValuesSourceAggregatorFactory innerBuild(AggregationContext context, + protected ValuesSourceAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { return new DiversifiedAggregatorFactory(name, TYPE, config, shardSize, maxDocsPerValue, executionHint, context, parent, subFactoriesBuilder, metaData); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregatorFactory.java index a39135192bc..39e5af4b78c 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedAggregatorFactory.java @@ -24,15 +24,15 @@ import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation; -import org.elasticsearch.search.aggregations.NonCollectingAggregator; import org.elasticsearch.search.aggregations.InternalAggregation.Type; +import org.elasticsearch.search.aggregations.NonCollectingAggregator; import org.elasticsearch.search.aggregations.bucket.sampler.SamplerAggregator.ExecutionMode; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; -import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -45,7 +45,7 @@ public class DiversifiedAggregatorFactory extends ValuesSourceAggregatorFactory< private final String executionHint; public DiversifiedAggregatorFactory(String name, Type type, ValuesSourceConfig config, int shardSize, int maxDocsPerValue, - String executionHint, AggregationContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, + String executionHint, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); this.shardSize = shardSize; @@ -65,7 +65,7 @@ public class DiversifiedAggregatorFactory extends ValuesSourceAggregatorFactory< if (valuesSource instanceof ValuesSource.Bytes) { ExecutionMode execution = null; if (executionHint != null) { - execution = ExecutionMode.fromString(executionHint, context.searchContext().parseFieldMatcher()); + execution = ExecutionMode.fromString(executionHint, context.parseFieldMatcher()); } // In some cases using ordinals is just not supported: override diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedBytesHashSamplerAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedBytesHashSamplerAggregator.java index b2f7be614db..e958639ab4e 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedBytesHashSamplerAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedBytesHashSamplerAggregator.java @@ -32,8 +32,8 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.bucket.BestDocsDeferringCollector; import org.elasticsearch.search.aggregations.bucket.DeferringBucketCollector; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -49,10 +49,10 @@ public class DiversifiedBytesHashSamplerAggregator extends SamplerAggregator { private int maxDocsPerValue; public DiversifiedBytesHashSamplerAggregator(String name, int shardSize, AggregatorFactories factories, - AggregationContext aggregationContext, Aggregator parent, List pipelineAggregators, Map metaData, + SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData, ValuesSource valuesSource, int maxDocsPerValue) throws IOException { - super(name, shardSize, factories, aggregationContext, parent, pipelineAggregators, metaData); + super(name, shardSize, factories, context, parent, pipelineAggregators, metaData); this.valuesSource = valuesSource; this.maxDocsPerValue = maxDocsPerValue; } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedMapSamplerAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedMapSamplerAggregator.java index 7578296cee8..e3e2b547285 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedMapSamplerAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedMapSamplerAggregator.java @@ -34,8 +34,8 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.bucket.BestDocsDeferringCollector; import org.elasticsearch.search.aggregations.bucket.DeferringBucketCollector; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -48,12 +48,12 @@ public class DiversifiedMapSamplerAggregator extends SamplerAggregator { private BytesRefHash bucketOrds; public DiversifiedMapSamplerAggregator(String name, int shardSize, AggregatorFactories factories, - AggregationContext aggregationContext, Aggregator parent, List pipelineAggregators, Map metaData, + SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData, ValuesSource valuesSource, int maxDocsPerValue) throws IOException { - super(name, shardSize, factories, aggregationContext, parent, pipelineAggregators, metaData); + super(name, shardSize, factories, context, parent, pipelineAggregators, metaData); this.valuesSource = valuesSource; this.maxDocsPerValue = maxDocsPerValue; - bucketOrds = new BytesRefHash(shardSize, aggregationContext.bigArrays()); + bucketOrds = new BytesRefHash(shardSize, context.bigArrays()); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedNumericSamplerAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedNumericSamplerAggregator.java index 430288db83b..fb3f5cd4e30 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedNumericSamplerAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedNumericSamplerAggregator.java @@ -31,8 +31,8 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.bucket.BestDocsDeferringCollector; import org.elasticsearch.search.aggregations.bucket.DeferringBucketCollector; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -44,9 +44,9 @@ public class DiversifiedNumericSamplerAggregator extends SamplerAggregator { private int maxDocsPerValue; public DiversifiedNumericSamplerAggregator(String name, int shardSize, AggregatorFactories factories, - AggregationContext aggregationContext, Aggregator parent, List pipelineAggregators, Map metaData, + SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData, ValuesSource.Numeric valuesSource, int maxDocsPerValue) throws IOException { - super(name, shardSize, factories, aggregationContext, parent, pipelineAggregators, metaData); + super(name, shardSize, factories, context, parent, pipelineAggregators, metaData); this.valuesSource = valuesSource; this.maxDocsPerValue = maxDocsPerValue; } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedOrdinalsSamplerAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedOrdinalsSamplerAggregator.java index 3725e10335c..e33cf6b867e 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedOrdinalsSamplerAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/DiversifiedOrdinalsSamplerAggregator.java @@ -32,8 +32,8 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.bucket.BestDocsDeferringCollector; import org.elasticsearch.search.aggregations.bucket.DeferringBucketCollector; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -45,9 +45,9 @@ public class DiversifiedOrdinalsSamplerAggregator extends SamplerAggregator { private int maxDocsPerValue; public DiversifiedOrdinalsSamplerAggregator(String name, int shardSize, AggregatorFactories factories, - AggregationContext aggregationContext, Aggregator parent, List pipelineAggregators, Map metaData, + SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData, ValuesSource.Bytes.WithOrdinals.FieldData valuesSource, int maxDocsPerValue) throws IOException { - super(name, shardSize, factories, aggregationContext, parent, pipelineAggregators, metaData); + super(name, shardSize, factories, context, parent, pipelineAggregators, metaData); this.valuesSource = valuesSource; this.maxDocsPerValue = maxDocsPerValue; } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/SamplerAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/SamplerAggregationBuilder.java index 2230408b033..46353ad371e 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/SamplerAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/SamplerAggregationBuilder.java @@ -29,7 +29,7 @@ import org.elasticsearch.search.aggregations.AbstractAggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Objects; @@ -75,7 +75,7 @@ public class SamplerAggregationBuilder extends AbstractAggregationBuilder parent, Builder subFactoriesBuilder) + protected SamplerAggregatorFactory doBuild(SearchContext context, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { return new SamplerAggregatorFactory(name, type, shardSize, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/SamplerAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/SamplerAggregator.java index cec2c4577df..7d15839062c 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/SamplerAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/SamplerAggregator.java @@ -31,8 +31,8 @@ import org.elasticsearch.search.aggregations.bucket.BestDocsDeferringCollector; import org.elasticsearch.search.aggregations.bucket.DeferringBucketCollector; import org.elasticsearch.search.aggregations.bucket.SingleBucketAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -61,7 +61,7 @@ public class SamplerAggregator extends SingleBucketAggregator { @Override Aggregator create(String name, AggregatorFactories factories, int shardSize, int maxDocsPerValue, ValuesSource valuesSource, - AggregationContext context, Aggregator parent, List pipelineAggregators, + SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { return new DiversifiedMapSamplerAggregator(name, shardSize, factories, context, parent, pipelineAggregators, metaData, @@ -79,7 +79,7 @@ public class SamplerAggregator extends SingleBucketAggregator { @Override Aggregator create(String name, AggregatorFactories factories, int shardSize, int maxDocsPerValue, ValuesSource valuesSource, - AggregationContext context, Aggregator parent, List pipelineAggregators, + SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { return new DiversifiedBytesHashSamplerAggregator(name, shardSize, factories, context, parent, pipelineAggregators, @@ -98,7 +98,7 @@ public class SamplerAggregator extends SingleBucketAggregator { @Override Aggregator create(String name, AggregatorFactories factories, int shardSize, int maxDocsPerValue, ValuesSource valuesSource, - AggregationContext context, Aggregator parent, List pipelineAggregators, + SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { return new DiversifiedOrdinalsSamplerAggregator(name, shardSize, factories, context, parent, pipelineAggregators, metaData, (ValuesSource.Bytes.WithOrdinals.FieldData) valuesSource, maxDocsPerValue); @@ -127,7 +127,7 @@ public class SamplerAggregator extends SingleBucketAggregator { } abstract Aggregator create(String name, AggregatorFactories factories, int shardSize, int maxDocsPerValue, ValuesSource valuesSource, - AggregationContext context, Aggregator parent, List pipelineAggregators, + SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException; abstract boolean needsGlobalOrdinals(); @@ -142,9 +142,9 @@ public class SamplerAggregator extends SingleBucketAggregator { protected final int shardSize; protected BestDocsDeferringCollector bdd; - public SamplerAggregator(String name, int shardSize, AggregatorFactories factories, AggregationContext aggregationContext, + public SamplerAggregator(String name, int shardSize, AggregatorFactories factories, SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { - super(name, factories, aggregationContext, parent, pipelineAggregators, metaData); + super(name, factories, context, parent, pipelineAggregators, metaData); this.shardSize = shardSize; } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/SamplerAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/SamplerAggregatorFactory.java index 09f510f80e5..a912f9bc999 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/SamplerAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/sampler/SamplerAggregatorFactory.java @@ -24,7 +24,7 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -34,7 +34,7 @@ public class SamplerAggregatorFactory extends AggregatorFactory parent, + public SamplerAggregatorFactory(String name, Type type, int shardSize, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactories, Map metaData) throws IOException { super(name, type, context, parent, subFactories, metaData); this.shardSize = shardSize; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/GlobalOrdinalsSignificantTermsAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/GlobalOrdinalsSignificantTermsAggregator.java index 1aeacf4be60..bf1714b14cc 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/GlobalOrdinalsSignificantTermsAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/GlobalOrdinalsSignificantTermsAggregator.java @@ -32,9 +32,9 @@ import org.elasticsearch.search.aggregations.bucket.significant.heuristics.Signi import org.elasticsearch.search.aggregations.bucket.terms.GlobalOrdinalsStringTermsAggregator; import org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.internal.ContextIndexSearcher; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Arrays; @@ -55,11 +55,11 @@ public class GlobalOrdinalsSignificantTermsAggregator extends GlobalOrdinalsStri public GlobalOrdinalsSignificantTermsAggregator(String name, AggregatorFactories factories, ValuesSource.Bytes.WithOrdinals.FieldData valuesSource, DocValueFormat format, BucketCountThresholds bucketCountThresholds, IncludeExclude.OrdinalsFilter includeExclude, - AggregationContext aggregationContext, Aggregator parent, + SearchContext context, Aggregator parent, SignificanceHeuristic significanceHeuristic, SignificantTermsAggregatorFactory termsAggFactory, List pipelineAggregators, Map metaData) throws IOException { - super(name, factories, valuesSource, null, format, bucketCountThresholds, includeExclude, aggregationContext, parent, + super(name, factories, valuesSource, null, format, bucketCountThresholds, includeExclude, context, parent, SubAggCollectionMode.DEPTH_FIRST, false, pipelineAggregators, metaData); this.significanceHeuristic = significanceHeuristic; this.termsAggFactory = termsAggFactory; @@ -143,7 +143,7 @@ public class GlobalOrdinalsSignificantTermsAggregator extends GlobalOrdinalsStri @Override public SignificantStringTerms buildEmptyAggregation() { // We need to account for the significance of a miss in our global stats - provide corpus size as context - ContextIndexSearcher searcher = context.searchContext().searcher(); + ContextIndexSearcher searcher = context.searcher(); IndexReader topReader = searcher.getIndexReader(); int supersetSize = topReader.numDocs(); return new SignificantStringTerms(name, bucketCountThresholds.getRequiredSize(), bucketCountThresholds.getMinDocCount(), @@ -161,12 +161,12 @@ public class GlobalOrdinalsSignificantTermsAggregator extends GlobalOrdinalsStri public WithHash(String name, AggregatorFactories factories, ValuesSource.Bytes.WithOrdinals.FieldData valuesSource, DocValueFormat format, BucketCountThresholds bucketCountThresholds, IncludeExclude.OrdinalsFilter includeExclude, - AggregationContext aggregationContext, Aggregator parent, SignificanceHeuristic significanceHeuristic, + SearchContext context, Aggregator parent, SignificanceHeuristic significanceHeuristic, SignificantTermsAggregatorFactory termsAggFactory, List pipelineAggregators, Map metaData) throws IOException { - super(name, factories, valuesSource, format, bucketCountThresholds, includeExclude, aggregationContext, parent, significanceHeuristic, + super(name, factories, valuesSource, format, bucketCountThresholds, includeExclude, context, parent, significanceHeuristic, termsAggFactory, pipelineAggregators, metaData); - bucketOrds = new LongHash(1, aggregationContext.bigArrays()); + bucketOrds = new LongHash(1, context.bigArrays()); } @Override diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantLongTermsAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantLongTermsAggregator.java index 7d15c8ea1ef..ed0ca1aa714 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantLongTermsAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantLongTermsAggregator.java @@ -30,9 +30,9 @@ import org.elasticsearch.search.aggregations.bucket.significant.heuristics.Signi import org.elasticsearch.search.aggregations.bucket.terms.LongTermsAggregator; import org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.internal.ContextIndexSearcher; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Arrays; @@ -44,12 +44,12 @@ import static java.util.Collections.emptyList; public class SignificantLongTermsAggregator extends LongTermsAggregator { public SignificantLongTermsAggregator(String name, AggregatorFactories factories, ValuesSource.Numeric valuesSource, - DocValueFormat format, BucketCountThresholds bucketCountThresholds, AggregationContext aggregationContext, Aggregator parent, + DocValueFormat format, BucketCountThresholds bucketCountThresholds, SearchContext context, Aggregator parent, SignificanceHeuristic significanceHeuristic, SignificantTermsAggregatorFactory termsAggFactory, IncludeExclude.LongFilter includeExclude, List pipelineAggregators, Map metaData) throws IOException { - super(name, factories, valuesSource, format, null, bucketCountThresholds, aggregationContext, parent, + super(name, factories, valuesSource, format, null, bucketCountThresholds, context, parent, SubAggCollectionMode.DEPTH_FIRST, false, includeExclude, pipelineAggregators, metaData); this.significanceHeuristic = significanceHeuristic; this.termsAggFactory = termsAggFactory; @@ -116,7 +116,7 @@ public class SignificantLongTermsAggregator extends LongTermsAggregator { @Override public SignificantLongTerms buildEmptyAggregation() { // We need to account for the significance of a miss in our global stats - provide corpus size as context - ContextIndexSearcher searcher = context.searchContext().searcher(); + ContextIndexSearcher searcher = context.searcher(); IndexReader topReader = searcher.getIndexReader(); int supersetSize = topReader.numDocs(); return new SignificantLongTerms(name, bucketCountThresholds.getRequiredSize(), bucketCountThresholds.getMinDocCount(), diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantStringTermsAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantStringTermsAggregator.java index ad7645b1efe..d9cd5b260d0 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantStringTermsAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantStringTermsAggregator.java @@ -31,9 +31,9 @@ import org.elasticsearch.search.aggregations.bucket.significant.heuristics.Signi import org.elasticsearch.search.aggregations.bucket.terms.StringTermsAggregator; import org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.internal.ContextIndexSearcher; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Arrays; @@ -52,7 +52,7 @@ public class SignificantStringTermsAggregator extends StringTermsAggregator { private final SignificanceHeuristic significanceHeuristic; public SignificantStringTermsAggregator(String name, AggregatorFactories factories, ValuesSource valuesSource, DocValueFormat format, - BucketCountThresholds bucketCountThresholds, IncludeExclude.StringFilter includeExclude, AggregationContext aggregationContext, + BucketCountThresholds bucketCountThresholds, IncludeExclude.StringFilter includeExclude, SearchContext aggregationContext, Aggregator parent, SignificanceHeuristic significanceHeuristic, SignificantTermsAggregatorFactory termsAggFactory, List pipelineAggregators, Map metaData) throws IOException { @@ -126,7 +126,7 @@ public class SignificantStringTermsAggregator extends StringTermsAggregator { @Override public SignificantStringTerms buildEmptyAggregation() { // We need to account for the significance of a miss in our global stats - provide corpus size as context - ContextIndexSearcher searcher = context.searchContext().searcher(); + ContextIndexSearcher searcher = context.searcher(); IndexReader topReader = searcher.getIndexReader(); int supersetSize = topReader.numDocs(); return new SignificantStringTerms(name, bucketCountThresholds.getRequiredSize(), bucketCountThresholds.getMinDocCount(), diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregationBuilder.java index 7ecba5e9213..6205ab2e787 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregationBuilder.java @@ -39,7 +39,6 @@ import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilde import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregator; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregator.BucketCountThresholds; import org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; @@ -47,6 +46,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFacto import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Objects; @@ -264,9 +264,9 @@ public class SignificantTermsAggregationBuilder extends ValuesSourceAggregationB } @Override - protected ValuesSourceAggregatorFactory innerBuild(AggregationContext context, ValuesSourceConfig config, + protected ValuesSourceAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { - SignificanceHeuristic executionHeuristic = this.significanceHeuristic.rewrite(context.searchContext()); + SignificanceHeuristic executionHeuristic = this.significanceHeuristic.rewrite(context); return new SignificantTermsAggregatorFactory(name, type, config, includeExclude, executionHint, filterBuilder, bucketCountThresholds, executionHeuristic, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregatorFactory.java index 6e820b6da26..80e15394ede 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/significant/SignificantTermsAggregatorFactory.java @@ -19,14 +19,14 @@ package org.elasticsearch.search.aggregations.bucket.significant; -import org.apache.lucene.search.BooleanQuery; -import org.apache.lucene.search.IndexSearcher; -import org.apache.lucene.search.Query; -import org.apache.lucene.search.TermQuery; import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.PostingsEnum; import org.apache.lucene.index.Term; import org.apache.lucene.search.BooleanClause.Occur; +import org.apache.lucene.search.BooleanQuery; +import org.apache.lucene.search.IndexSearcher; +import org.apache.lucene.search.Query; +import org.apache.lucene.search.TermQuery; import org.apache.lucene.util.BytesRef; import org.elasticsearch.common.ParseField; import org.elasticsearch.common.ParseFieldMatcher; @@ -41,15 +41,14 @@ import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation; -import org.elasticsearch.search.aggregations.NonCollectingAggregator; import org.elasticsearch.search.aggregations.InternalAggregation.Type; +import org.elasticsearch.search.aggregations.NonCollectingAggregator; import org.elasticsearch.search.aggregations.bucket.BucketUtils; import org.elasticsearch.search.aggregations.bucket.significant.heuristics.SignificanceHeuristic; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregator; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregator.BucketCountThresholds; import org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; @@ -75,15 +74,15 @@ public class SignificantTermsAggregatorFactory extends ValuesSourceAggregatorFac public SignificantTermsAggregatorFactory(String name, Type type, ValuesSourceConfig config, IncludeExclude includeExclude, String executionHint, QueryBuilder filterBuilder, TermsAggregator.BucketCountThresholds bucketCountThresholds, - SignificanceHeuristic significanceHeuristic, AggregationContext context, AggregatorFactory parent, + SignificanceHeuristic significanceHeuristic, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); this.includeExclude = includeExclude; this.executionHint = executionHint; this.filter = filterBuilder == null ? null - : filterBuilder.toQuery(context.searchContext().getQueryShardContext()); - IndexSearcher searcher = context.searchContext().searcher(); + : filterBuilder.toQuery(context.getQueryShardContext()); + IndexSearcher searcher = context.searcher(); this.supersetNumDocs = filter == null // Important - need to use the doc count that includes deleted docs // or we have this issue: https://github.com/elastic/elasticsearch/issues/7951 @@ -91,7 +90,7 @@ public class SignificantTermsAggregatorFactory extends ValuesSourceAggregatorFac : searcher.count(filter); this.bucketCountThresholds = bucketCountThresholds; this.significanceHeuristic = significanceHeuristic; - setFieldInfo(context.searchContext()); + setFieldInfo(context); } @@ -113,7 +112,7 @@ public class SignificantTermsAggregatorFactory extends ValuesSourceAggregatorFac if (termsEnum != null) { return termsEnum; } - IndexReader reader = context.searchContext().searcher().getIndexReader(); + IndexReader reader = context.searcher().getIndexReader(); if (numberOfAggregatorsCreated > 1) { termsEnum = new FreqTermsEnum(reader, field, true, false, filter, context.bigArrays()); } else { @@ -123,7 +122,7 @@ public class SignificantTermsAggregatorFactory extends ValuesSourceAggregatorFac } private long getBackgroundFrequency(String value) throws IOException { - Query query = fieldType.termQuery(value, context.searchContext().getQueryShardContext()); + Query query = fieldType.termQuery(value, context.getQueryShardContext()); if (query instanceof TermQuery) { // for types that use the inverted index, we prefer using a caching terms // enum that will do a better job at reusing index inputs @@ -142,7 +141,7 @@ public class SignificantTermsAggregatorFactory extends ValuesSourceAggregatorFac .add(filter, Occur.FILTER) .build(); } - return context.searchContext().searcher().count(query); + return context.searcher().count(query); } public long getBackgroundFrequency(BytesRef termBytes) throws IOException { @@ -191,13 +190,13 @@ public class SignificantTermsAggregatorFactory extends ValuesSourceAggregatorFac // such are impossible to differentiate from non-significant terms // at that early stage. bucketCountThresholds.setShardSize(2 * BucketUtils.suggestShardSideQueueSize(bucketCountThresholds.getRequiredSize(), - context.searchContext().numberOfShards())); + context.numberOfShards())); } if (valuesSource instanceof ValuesSource.Bytes) { ExecutionMode execution = null; if (executionHint != null) { - execution = ExecutionMode.fromString(executionHint, context.searchContext().parseFieldMatcher()); + execution = ExecutionMode.fromString(executionHint, context.parseFieldMatcher()); } if (!(valuesSource instanceof ValuesSource.Bytes.WithOrdinals)) { execution = ExecutionMode.MAP; @@ -251,7 +250,7 @@ public class SignificantTermsAggregatorFactory extends ValuesSourceAggregatorFac @Override Aggregator create(String name, AggregatorFactories factories, ValuesSource valuesSource, DocValueFormat format, TermsAggregator.BucketCountThresholds bucketCountThresholds, IncludeExclude includeExclude, - AggregationContext aggregationContext, Aggregator parent, SignificanceHeuristic significanceHeuristic, + SearchContext aggregationContext, Aggregator parent, SignificanceHeuristic significanceHeuristic, SignificantTermsAggregatorFactory termsAggregatorFactory, List pipelineAggregators, Map metaData) throws IOException { final IncludeExclude.StringFilter filter = includeExclude == null ? null : includeExclude.convertToStringFilter(format); @@ -265,7 +264,7 @@ public class SignificantTermsAggregatorFactory extends ValuesSourceAggregatorFac @Override Aggregator create(String name, AggregatorFactories factories, ValuesSource valuesSource, DocValueFormat format, TermsAggregator.BucketCountThresholds bucketCountThresholds, IncludeExclude includeExclude, - AggregationContext aggregationContext, Aggregator parent, SignificanceHeuristic significanceHeuristic, + SearchContext aggregationContext, Aggregator parent, SignificanceHeuristic significanceHeuristic, SignificantTermsAggregatorFactory termsAggregatorFactory, List pipelineAggregators, Map metaData) throws IOException { final IncludeExclude.OrdinalsFilter filter = includeExclude == null ? null : includeExclude.convertToOrdinalsFilter(format); @@ -280,7 +279,7 @@ public class SignificantTermsAggregatorFactory extends ValuesSourceAggregatorFac @Override Aggregator create(String name, AggregatorFactories factories, ValuesSource valuesSource, DocValueFormat format, TermsAggregator.BucketCountThresholds bucketCountThresholds, IncludeExclude includeExclude, - AggregationContext aggregationContext, Aggregator parent, SignificanceHeuristic significanceHeuristic, + SearchContext aggregationContext, Aggregator parent, SignificanceHeuristic significanceHeuristic, SignificantTermsAggregatorFactory termsAggregatorFactory, List pipelineAggregators, Map metaData) throws IOException { final IncludeExclude.OrdinalsFilter filter = includeExclude == null ? null : includeExclude.convertToOrdinalsFilter(format); @@ -307,7 +306,7 @@ public class SignificantTermsAggregatorFactory extends ValuesSourceAggregatorFac abstract Aggregator create(String name, AggregatorFactories factories, ValuesSource valuesSource, DocValueFormat format, TermsAggregator.BucketCountThresholds bucketCountThresholds, IncludeExclude includeExclude, - AggregationContext aggregationContext, Aggregator parent, SignificanceHeuristic significanceHeuristic, + SearchContext aggregationContext, Aggregator parent, SignificanceHeuristic significanceHeuristic, SignificantTermsAggregatorFactory termsAggregatorFactory, List pipelineAggregators, Map metaData) throws IOException; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/AbstractStringTermsAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/AbstractStringTermsAggregator.java index 5719fe7721b..f160c86943a 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/AbstractStringTermsAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/AbstractStringTermsAggregator.java @@ -24,7 +24,7 @@ import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.InternalAggregation; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -36,7 +36,7 @@ abstract class AbstractStringTermsAggregator extends TermsAggregator { protected final boolean showTermDocCountError; - public AbstractStringTermsAggregator(String name, AggregatorFactories factories, AggregationContext context, Aggregator parent, + public AbstractStringTermsAggregator(String name, AggregatorFactories factories, SearchContext context, Aggregator parent, Terms.Order order, DocValueFormat format, BucketCountThresholds bucketCountThresholds, SubAggCollectionMode subAggCollectMode, boolean showTermDocCountError, List pipelineAggregators, Map metaData) throws IOException { super(name, factories, context, parent, bucketCountThresholds, order, format, subAggCollectMode, pipelineAggregators, metaData); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/DoubleTermsAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/DoubleTermsAggregator.java index fe3d0dbbf38..cf7478e3196 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/DoubleTermsAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/DoubleTermsAggregator.java @@ -27,9 +27,9 @@ import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -39,7 +39,7 @@ import java.util.stream.Collectors; public class DoubleTermsAggregator extends LongTermsAggregator { public DoubleTermsAggregator(String name, AggregatorFactories factories, ValuesSource.Numeric valuesSource, DocValueFormat format, - Terms.Order order, BucketCountThresholds bucketCountThresholds, AggregationContext aggregationContext, Aggregator parent, + Terms.Order order, BucketCountThresholds bucketCountThresholds, SearchContext aggregationContext, Aggregator parent, SubAggCollectionMode collectionMode, boolean showTermDocCountError, IncludeExclude.LongFilter longFilter, List pipelineAggregators, Map metaData) throws IOException { super(name, factories, valuesSource, format, order, bucketCountThresholds, aggregationContext, parent, collectionMode, diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/GlobalOrdinalsStringTermsAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/GlobalOrdinalsStringTermsAggregator.java index 00a066c11ba..5da8e7c3337 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/GlobalOrdinalsStringTermsAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/GlobalOrdinalsStringTermsAggregator.java @@ -26,7 +26,6 @@ import org.apache.lucene.index.SortedDocValues; import org.apache.lucene.util.ArrayUtil; import org.apache.lucene.util.BytesRef; import org.apache.lucene.util.LongBitSet; -import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.io.stream.StreamOutput; import org.elasticsearch.common.lease.Releasables; import org.elasticsearch.common.util.IntArray; @@ -44,8 +43,8 @@ import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.bucket.terms.support.BucketPriorityQueue; import org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Arrays; @@ -72,10 +71,10 @@ public class GlobalOrdinalsStringTermsAggregator extends AbstractStringTermsAggr public GlobalOrdinalsStringTermsAggregator(String name, AggregatorFactories factories, ValuesSource.Bytes.WithOrdinals valuesSource, Terms.Order order, DocValueFormat format, BucketCountThresholds bucketCountThresholds, - IncludeExclude.OrdinalsFilter includeExclude, AggregationContext aggregationContext, Aggregator parent, + IncludeExclude.OrdinalsFilter includeExclude, SearchContext context, Aggregator parent, SubAggCollectionMode collectionMode, boolean showTermDocCountError, List pipelineAggregators, Map metaData) throws IOException { - super(name, factories, aggregationContext, parent, order, format, bucketCountThresholds, collectionMode, showTermDocCountError, + super(name, factories, context, parent, order, format, bucketCountThresholds, collectionMode, showTermDocCountError, pipelineAggregators, metaData); this.valuesSource = valuesSource; this.includeExclude = includeExclude; @@ -262,12 +261,12 @@ public class GlobalOrdinalsStringTermsAggregator extends AbstractStringTermsAggr public WithHash(String name, AggregatorFactories factories, ValuesSource.Bytes.WithOrdinals valuesSource, Terms.Order order, DocValueFormat format, BucketCountThresholds bucketCountThresholds, IncludeExclude.OrdinalsFilter includeExclude, - AggregationContext aggregationContext, Aggregator parent, SubAggCollectionMode collectionMode, + SearchContext context, Aggregator parent, SubAggCollectionMode collectionMode, boolean showTermDocCountError, List pipelineAggregators, Map metaData) throws IOException { - super(name, factories, valuesSource, order, format, bucketCountThresholds, includeExclude, aggregationContext, parent, collectionMode, + super(name, factories, valuesSource, order, format, bucketCountThresholds, includeExclude, context, parent, collectionMode, showTermDocCountError, pipelineAggregators, metaData); - bucketOrds = new LongHash(1, aggregationContext.bigArrays()); + bucketOrds = new LongHash(1, context.bigArrays()); } @Override @@ -335,10 +334,10 @@ public class GlobalOrdinalsStringTermsAggregator extends AbstractStringTermsAggr public LowCardinality(String name, AggregatorFactories factories, ValuesSource.Bytes.WithOrdinals valuesSource, Terms.Order order, DocValueFormat format, - BucketCountThresholds bucketCountThresholds, AggregationContext aggregationContext, Aggregator parent, + BucketCountThresholds bucketCountThresholds, SearchContext context, Aggregator parent, SubAggCollectionMode collectionMode, boolean showTermDocCountError, List pipelineAggregators, Map metaData) throws IOException { - super(name, factories, valuesSource, order, format, bucketCountThresholds, null, aggregationContext, parent, collectionMode, + super(name, factories, valuesSource, order, format, bucketCountThresholds, null, context, parent, collectionMode, showTermDocCountError, pipelineAggregators, metaData); assert factories == null || factories.countAggregators() == 0; this.segmentDocCounts = context.bigArrays().newIntArray(1, true); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/LongTermsAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/LongTermsAggregator.java index cbb2ef6378c..ffb7da13bc0 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/LongTermsAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/LongTermsAggregator.java @@ -32,8 +32,8 @@ import org.elasticsearch.search.aggregations.bucket.terms.support.BucketPriority import org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude; import org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude.LongFilter; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Arrays; @@ -50,7 +50,7 @@ public class LongTermsAggregator extends TermsAggregator { private LongFilter longFilter; public LongTermsAggregator(String name, AggregatorFactories factories, ValuesSource.Numeric valuesSource, DocValueFormat format, - Terms.Order order, BucketCountThresholds bucketCountThresholds, AggregationContext aggregationContext, Aggregator parent, + Terms.Order order, BucketCountThresholds bucketCountThresholds, SearchContext aggregationContext, Aggregator parent, SubAggCollectionMode subAggCollectMode, boolean showTermDocCountError, IncludeExclude.LongFilter longFilter, List pipelineAggregators, Map metaData) throws IOException { super(name, factories, aggregationContext, parent, bucketCountThresholds, order, format, subAggCollectMode, pipelineAggregators, metaData); @@ -107,7 +107,7 @@ public class LongTermsAggregator extends TermsAggregator { if (bucketCountThresholds.getMinDocCount() == 0 && (order != InternalOrder.COUNT_DESC || bucketOrds.size() < bucketCountThresholds.getRequiredSize())) { // we need to fill-in the blanks - for (LeafReaderContext ctx : context.searchContext().searcher().getTopReaderContext().leaves()) { + for (LeafReaderContext ctx : context.searcher().getTopReaderContext().leaves()) { final SortedNumericDocValues values = getValues(valuesSource, ctx); for (int docId = 0; docId < ctx.reader().maxDoc(); ++docId) { values.setDocument(docId); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/StringTermsAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/StringTermsAggregator.java index 7b2b76a0861..c93fc94ff61 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/StringTermsAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/StringTermsAggregator.java @@ -33,8 +33,8 @@ import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.bucket.terms.support.BucketPriorityQueue; import org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Arrays; @@ -52,15 +52,15 @@ public class StringTermsAggregator extends AbstractStringTermsAggregator { public StringTermsAggregator(String name, AggregatorFactories factories, ValuesSource valuesSource, Terms.Order order, DocValueFormat format, BucketCountThresholds bucketCountThresholds, - IncludeExclude.StringFilter includeExclude, AggregationContext aggregationContext, + IncludeExclude.StringFilter includeExclude, SearchContext context, Aggregator parent, SubAggCollectionMode collectionMode, boolean showTermDocCountError, List pipelineAggregators, Map metaData) throws IOException { - super(name, factories, aggregationContext, parent, order, format, bucketCountThresholds, collectionMode, showTermDocCountError, + super(name, factories, context, parent, order, format, bucketCountThresholds, collectionMode, showTermDocCountError, pipelineAggregators, metaData); this.valuesSource = valuesSource; this.includeExclude = includeExclude; - bucketOrds = new BytesRefHash(1, aggregationContext.bigArrays()); + bucketOrds = new BytesRefHash(1, context.bigArrays()); } @Override @@ -110,7 +110,7 @@ public class StringTermsAggregator extends AbstractStringTermsAggregator { if (bucketCountThresholds.getMinDocCount() == 0 && (order != InternalOrder.COUNT_DESC || bucketOrds.size() < bucketCountThresholds.getRequiredSize())) { // we need to fill-in the blanks - for (LeafReaderContext ctx : context.searchContext().searcher().getTopReaderContext().leaves()) { + for (LeafReaderContext ctx : context.searcher().getTopReaderContext().leaves()) { final SortedBinaryDocValues values = valuesSource.bytesValues(ctx); // brute force for (int docId = 0; docId < ctx.reader().maxDoc(); ++docId) { diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregationBuilder.java index 06c6de59305..857b3350c85 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregationBuilder.java @@ -35,7 +35,6 @@ import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.bucket.terms.Terms.Order; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregator.BucketCountThresholds; import org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; @@ -43,6 +42,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFacto import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -285,7 +285,7 @@ public class TermsAggregationBuilder extends ValuesSourceAggregationBuilder innerBuild(AggregationContext context, ValuesSourceConfig config, + protected ValuesSourceAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { return new TermsAggregatorFactory(name, type, config, order, includeExclude, executionHint, collectMode, bucketCountThresholds, showTermDocCountError, context, parent, subFactoriesBuilder, metaData); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregator.java index 61ccba70424..78d6cde211c 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregator.java @@ -33,8 +33,8 @@ import org.elasticsearch.search.aggregations.bucket.BucketsAggregator; import org.elasticsearch.search.aggregations.bucket.terms.InternalOrder.Aggregation; import org.elasticsearch.search.aggregations.bucket.terms.InternalOrder.CompoundOrder; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.AggregationPath; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.HashSet; @@ -172,7 +172,7 @@ public abstract class TermsAggregator extends BucketsAggregator { protected final Set aggsUsedForSorting = new HashSet<>(); protected final SubAggCollectionMode collectMode; - public TermsAggregator(String name, AggregatorFactories factories, AggregationContext context, Aggregator parent, + public TermsAggregator(String name, AggregatorFactories factories, SearchContext context, Aggregator parent, BucketCountThresholds bucketCountThresholds, Terms.Order order, DocValueFormat format, SubAggCollectionMode collectMode, List pipelineAggregators, Map metaData) throws IOException { super(name, factories, context, parent, pipelineAggregators, metaData); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregatorFactory.java index 3a7053d26d2..37e6813ebcc 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/bucket/terms/TermsAggregatorFactory.java @@ -25,20 +25,20 @@ import org.elasticsearch.common.ParseFieldMatcher; import org.elasticsearch.search.DocValueFormat; import org.elasticsearch.search.aggregations.AggregationExecutionException; import org.elasticsearch.search.aggregations.Aggregator; +import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation; -import org.elasticsearch.search.aggregations.NonCollectingAggregator; -import org.elasticsearch.search.aggregations.Aggregator.SubAggCollectionMode; import org.elasticsearch.search.aggregations.InternalAggregation.Type; +import org.elasticsearch.search.aggregations.NonCollectingAggregator; import org.elasticsearch.search.aggregations.bucket.BucketUtils; import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregator.BucketCountThresholds; import org.elasticsearch.search.aggregations.bucket.terms.support.IncludeExclude; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -55,7 +55,7 @@ public class TermsAggregatorFactory extends ValuesSourceAggregatorFactory config, Terms.Order order, IncludeExclude includeExclude, String executionHint, SubAggCollectionMode collectMode, - TermsAggregator.BucketCountThresholds bucketCountThresholds, boolean showTermDocCountError, AggregationContext context, + TermsAggregator.BucketCountThresholds bucketCountThresholds, boolean showTermDocCountError, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); this.order = order; @@ -98,13 +98,13 @@ public class TermsAggregatorFactory extends ValuesSourceAggregatorFactory pipelineAggregators, Map metaData) throws IOException { final IncludeExclude.StringFilter filter = includeExclude == null ? null : includeExclude.convertToStringFilter(format); return new StringTermsAggregator(name, factories, valuesSource, order, format, bucketCountThresholds, filter, - aggregationContext, parent, subAggCollectMode, showTermDocCountError, pipelineAggregators, metaData); + context, parent, subAggCollectMode, showTermDocCountError, pipelineAggregators, metaData); } @Override @@ -246,12 +246,12 @@ public class TermsAggregatorFactory extends ValuesSourceAggregatorFactory pipelineAggregators, Map metaData) throws IOException { final IncludeExclude.OrdinalsFilter filter = includeExclude == null ? null : includeExclude.convertToOrdinalsFilter(format); return new GlobalOrdinalsStringTermsAggregator(name, factories, (ValuesSource.Bytes.WithOrdinals) valuesSource, order, - format, bucketCountThresholds, filter, aggregationContext, parent, subAggCollectMode, showTermDocCountError, + format, bucketCountThresholds, filter, context, parent, subAggCollectMode, showTermDocCountError, pipelineAggregators, metaData); } @@ -266,12 +266,12 @@ public class TermsAggregatorFactory extends ValuesSourceAggregatorFactory pipelineAggregators, Map metaData) throws IOException { final IncludeExclude.OrdinalsFilter filter = includeExclude == null ? null : includeExclude.convertToOrdinalsFilter(format); return new GlobalOrdinalsStringTermsAggregator.WithHash(name, factories, (ValuesSource.Bytes.WithOrdinals) valuesSource, - order, format, bucketCountThresholds, filter, aggregationContext, parent, subAggCollectMode, showTermDocCountError, + order, format, bucketCountThresholds, filter, context, parent, subAggCollectMode, showTermDocCountError, pipelineAggregators, metaData); } @@ -285,7 +285,7 @@ public class TermsAggregatorFactory extends ValuesSourceAggregatorFactory pipelineAggregators, Map metaData) throws IOException { if (includeExclude != null || factories.countAggregators() > 0 @@ -293,10 +293,10 @@ public class TermsAggregatorFactory extends ValuesSourceAggregatorFactory pipelineAggregators, Map metaData) throws IOException; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/MetricsAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/MetricsAggregator.java index 30330e61719..0a8553e0054 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/MetricsAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/MetricsAggregator.java @@ -23,7 +23,7 @@ import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.AggregatorBase; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -31,7 +31,7 @@ import java.util.Map; public abstract class MetricsAggregator extends AggregatorBase { - protected MetricsAggregator(String name, AggregationContext context, Aggregator parent, List pipelineAggregators, + protected MetricsAggregator(String name, SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { super(name, AggregatorFactories.EMPTY, context, parent, pipelineAggregators, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/NumericMetricsAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/NumericMetricsAggregator.java index 9b4fc0b256e..9e49a65cc06 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/NumericMetricsAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/NumericMetricsAggregator.java @@ -20,7 +20,7 @@ package org.elasticsearch.search.aggregations.metrics; import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -28,14 +28,14 @@ import java.util.Map; public abstract class NumericMetricsAggregator extends MetricsAggregator { - private NumericMetricsAggregator(String name, AggregationContext context, Aggregator parent, + private NumericMetricsAggregator(String name, SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { super(name, context, parent, pipelineAggregators, metaData); } public abstract static class SingleValue extends NumericMetricsAggregator { - protected SingleValue(String name, AggregationContext context, Aggregator parent, List pipelineAggregators, + protected SingleValue(String name, SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { super(name, context, parent, pipelineAggregators, metaData); } @@ -45,7 +45,7 @@ public abstract class NumericMetricsAggregator extends MetricsAggregator { public abstract static class MultiValue extends NumericMetricsAggregator { - protected MultiValue(String name, AggregationContext context, Aggregator parent, List pipelineAggregators, + protected MultiValue(String name, SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { super(name, context, parent, pipelineAggregators, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/avg/AvgAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/avg/AvgAggregationBuilder.java index 726e17dce13..9269c2c7a31 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/avg/AvgAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/avg/AvgAggregationBuilder.java @@ -28,7 +28,6 @@ import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; @@ -36,6 +35,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuil import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; @@ -70,7 +70,7 @@ public class AvgAggregationBuilder extends ValuesSourceAggregationBuilder.LeafOn } @Override - protected AvgAggregatorFactory innerBuild(AggregationContext context, ValuesSourceConfig config, + protected AvgAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { return new AvgAggregatorFactory(name, type, config, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/avg/AvgAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/avg/AvgAggregator.java index b33689b9298..eb75bae268f 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/avg/AvgAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/avg/AvgAggregator.java @@ -31,8 +31,8 @@ import org.elasticsearch.search.aggregations.LeafBucketCollector; import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.metrics.NumericMetricsAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -46,7 +46,7 @@ public class AvgAggregator extends NumericMetricsAggregator.SingleValue { DoubleArray sums; DocValueFormat format; - public AvgAggregator(String name, ValuesSource.Numeric valuesSource, DocValueFormat formatter, AggregationContext context, + public AvgAggregator(String name, ValuesSource.Numeric valuesSource, DocValueFormat formatter, SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { super(name, context, parent, pipelineAggregators, metaData); this.valuesSource = valuesSource; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/avg/AvgAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/avg/AvgAggregatorFactory.java index 5d425f2732c..29b52b929fd 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/avg/AvgAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/avg/AvgAggregatorFactory.java @@ -24,11 +24,11 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -36,7 +36,7 @@ import java.util.Map; public class AvgAggregatorFactory extends ValuesSourceAggregatorFactory { - public AvgAggregatorFactory(String name, Type type, ValuesSourceConfig config, AggregationContext context, + public AvgAggregatorFactory(String name, Type type, ValuesSourceConfig config, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/cardinality/CardinalityAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/cardinality/CardinalityAggregationBuilder.java index 79c3bbd0304..bf2b65436e7 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/cardinality/CardinalityAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/cardinality/CardinalityAggregationBuilder.java @@ -29,13 +29,13 @@ import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Objects; @@ -122,7 +122,7 @@ public final class CardinalityAggregationBuilder } @Override - protected CardinalityAggregatorFactory innerBuild(AggregationContext context, ValuesSourceConfig config, + protected CardinalityAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { return new CardinalityAggregatorFactory(name, type, config, precisionThreshold, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/cardinality/CardinalityAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/cardinality/CardinalityAggregator.java index 99922cc6aec..e9ca652f2c7 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/cardinality/CardinalityAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/cardinality/CardinalityAggregator.java @@ -20,6 +20,7 @@ package org.elasticsearch.search.aggregations.metrics.cardinality; import com.carrotsearch.hppc.BitMixer; + import org.apache.lucene.index.LeafReaderContext; import org.apache.lucene.index.RandomAccessOrds; import org.apache.lucene.index.SortedNumericDocValues; @@ -40,8 +41,8 @@ import org.elasticsearch.search.aggregations.InternalAggregation; import org.elasticsearch.search.aggregations.LeafBucketCollector; import org.elasticsearch.search.aggregations.metrics.NumericMetricsAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -62,7 +63,7 @@ public class CardinalityAggregator extends NumericMetricsAggregator.SingleValue private Collector collector; public CardinalityAggregator(String name, ValuesSource valuesSource, int precision, - AggregationContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { + SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { super(name, context, parent, pipelineAggregators, metaData); this.valuesSource = valuesSource; this.precision = precision; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/cardinality/CardinalityAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/cardinality/CardinalityAggregatorFactory.java index dad9ba46e6d..049f4cec9d3 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/cardinality/CardinalityAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/cardinality/CardinalityAggregatorFactory.java @@ -24,10 +24,10 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -38,7 +38,7 @@ public class CardinalityAggregatorFactory extends ValuesSourceAggregatorFactory< private final Long precisionThreshold; public CardinalityAggregatorFactory(String name, Type type, ValuesSourceConfig config, Long precisionThreshold, - AggregationContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, + SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); this.precisionThreshold = precisionThreshold; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geobounds/GeoBoundsAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geobounds/GeoBoundsAggregationBuilder.java index c4202830ba2..c034c822f2a 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geobounds/GeoBoundsAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geobounds/GeoBoundsAggregationBuilder.java @@ -28,13 +28,13 @@ import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Objects; @@ -89,7 +89,7 @@ public class GeoBoundsAggregationBuilder extends ValuesSourceAggregationBuilder< } @Override - protected GeoBoundsAggregatorFactory innerBuild(AggregationContext context, ValuesSourceConfig config, + protected GeoBoundsAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { return new GeoBoundsAggregatorFactory(name, type, config, wrapLongitude, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geobounds/GeoBoundsAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geobounds/GeoBoundsAggregator.java index 57e30fd58bd..2083ea570d3 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geobounds/GeoBoundsAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geobounds/GeoBoundsAggregator.java @@ -32,8 +32,8 @@ import org.elasticsearch.search.aggregations.LeafBucketCollector; import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.metrics.MetricsAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -52,7 +52,7 @@ public final class GeoBoundsAggregator extends MetricsAggregator { DoubleArray negLefts; DoubleArray negRights; - protected GeoBoundsAggregator(String name, AggregationContext aggregationContext, Aggregator parent, + protected GeoBoundsAggregator(String name, SearchContext aggregationContext, Aggregator parent, ValuesSource.GeoPoint valuesSource, boolean wrapLongitude, List pipelineAggregators, Map metaData) throws IOException { super(name, aggregationContext, parent, pipelineAggregators, metaData); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geobounds/GeoBoundsAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geobounds/GeoBoundsAggregatorFactory.java index e7420a9f1f7..745dfa0ebc3 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geobounds/GeoBoundsAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geobounds/GeoBoundsAggregatorFactory.java @@ -24,10 +24,10 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -38,7 +38,7 @@ public class GeoBoundsAggregatorFactory extends ValuesSourceAggregatorFactory config, boolean wrapLongitude, - AggregationContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, + SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); this.wrapLongitude = wrapLongitude; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/GeoCentroidAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/GeoCentroidAggregationBuilder.java index 5f832f0df95..34689cc696d 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/GeoCentroidAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/GeoCentroidAggregationBuilder.java @@ -28,13 +28,13 @@ import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; @@ -70,7 +70,7 @@ public class GeoCentroidAggregationBuilder } @Override - protected GeoCentroidAggregatorFactory innerBuild(AggregationContext context, ValuesSourceConfig config, + protected GeoCentroidAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { return new GeoCentroidAggregatorFactory(name, type, config, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/GeoCentroidAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/GeoCentroidAggregator.java index ec838e7dd41..9d537030fa9 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/GeoCentroidAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/GeoCentroidAggregator.java @@ -32,8 +32,8 @@ import org.elasticsearch.search.aggregations.LeafBucketCollector; import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.metrics.MetricsAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -47,10 +47,10 @@ public final class GeoCentroidAggregator extends MetricsAggregator { LongArray centroids; LongArray counts; - protected GeoCentroidAggregator(String name, AggregationContext aggregationContext, Aggregator parent, + protected GeoCentroidAggregator(String name, SearchContext context, Aggregator parent, ValuesSource.GeoPoint valuesSource, List pipelineAggregators, Map metaData) throws IOException { - super(name, aggregationContext, parent, pipelineAggregators, metaData); + super(name, context, parent, pipelineAggregators, metaData); this.valuesSource = valuesSource; if (valuesSource != null) { final BigArrays bigArrays = context.bigArrays(); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/GeoCentroidAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/GeoCentroidAggregatorFactory.java index 6fa2d28856e..aa548dc0542 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/GeoCentroidAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/geocentroid/GeoCentroidAggregatorFactory.java @@ -24,10 +24,10 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -36,7 +36,7 @@ import java.util.Map; public class GeoCentroidAggregatorFactory extends ValuesSourceAggregatorFactory { public GeoCentroidAggregatorFactory(String name, Type type, ValuesSourceConfig config, - AggregationContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, + SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/max/MaxAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/max/MaxAggregationBuilder.java index 60583a9080d..f198a00e402 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/max/MaxAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/max/MaxAggregationBuilder.java @@ -28,7 +28,6 @@ import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; @@ -36,6 +35,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuil import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; @@ -70,7 +70,7 @@ public class MaxAggregationBuilder extends ValuesSourceAggregationBuilder.LeafOn } @Override - protected MaxAggregatorFactory innerBuild(AggregationContext context, ValuesSourceConfig config, + protected MaxAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { return new MaxAggregatorFactory(name, type, config, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/max/MaxAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/max/MaxAggregator.java index bbd6bf70bc3..cef7f373280 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/max/MaxAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/max/MaxAggregator.java @@ -24,16 +24,16 @@ import org.elasticsearch.common.util.BigArrays; import org.elasticsearch.common.util.DoubleArray; import org.elasticsearch.index.fielddata.NumericDoubleValues; import org.elasticsearch.index.fielddata.SortedNumericDoubleValues; -import org.elasticsearch.search.MultiValueMode; import org.elasticsearch.search.DocValueFormat; +import org.elasticsearch.search.MultiValueMode; import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.InternalAggregation; import org.elasticsearch.search.aggregations.LeafBucketCollector; import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.metrics.NumericMetricsAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -47,7 +47,7 @@ public class MaxAggregator extends NumericMetricsAggregator.SingleValue { DoubleArray maxes; public MaxAggregator(String name, ValuesSource.Numeric valuesSource, DocValueFormat formatter, - AggregationContext context, + SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { super(name, context, parent, pipelineAggregators, metaData); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/max/MaxAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/max/MaxAggregatorFactory.java index 2a9bdd9d8dc..ebc5612554e 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/max/MaxAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/max/MaxAggregatorFactory.java @@ -24,11 +24,11 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -36,7 +36,7 @@ import java.util.Map; public class MaxAggregatorFactory extends ValuesSourceAggregatorFactory { - public MaxAggregatorFactory(String name, Type type, ValuesSourceConfig config, AggregationContext context, + public MaxAggregatorFactory(String name, Type type, ValuesSourceConfig config, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/min/MinAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/min/MinAggregationBuilder.java index f56d4e91507..4c34fe8dd7e 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/min/MinAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/min/MinAggregationBuilder.java @@ -29,7 +29,6 @@ import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.metrics.avg.AvgAggregationBuilder; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; @@ -37,6 +36,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuil import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; @@ -71,7 +71,7 @@ public class MinAggregationBuilder extends ValuesSourceAggregationBuilder.LeafOn } @Override - protected MinAggregatorFactory innerBuild(AggregationContext context, ValuesSourceConfig config, + protected MinAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { return new MinAggregatorFactory(name, type, config, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/min/MinAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/min/MinAggregator.java index ba28efbf97d..31e87b12a62 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/min/MinAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/min/MinAggregator.java @@ -24,16 +24,16 @@ import org.elasticsearch.common.util.BigArrays; import org.elasticsearch.common.util.DoubleArray; import org.elasticsearch.index.fielddata.NumericDoubleValues; import org.elasticsearch.index.fielddata.SortedNumericDoubleValues; -import org.elasticsearch.search.MultiValueMode; import org.elasticsearch.search.DocValueFormat; +import org.elasticsearch.search.MultiValueMode; import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.InternalAggregation; import org.elasticsearch.search.aggregations.LeafBucketCollector; import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.metrics.NumericMetricsAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -47,7 +47,7 @@ public class MinAggregator extends NumericMetricsAggregator.SingleValue { DoubleArray mins; public MinAggregator(String name, ValuesSource.Numeric valuesSource, DocValueFormat formatter, - AggregationContext context, Aggregator parent, List pipelineAggregators, + SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { super(name, context, parent, pipelineAggregators, metaData); this.valuesSource = valuesSource; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/min/MinAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/min/MinAggregatorFactory.java index 1bc01d1e9e3..df914978808 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/min/MinAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/min/MinAggregatorFactory.java @@ -24,11 +24,11 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -36,7 +36,7 @@ import java.util.Map; public class MinAggregatorFactory extends ValuesSourceAggregatorFactory { - public MinAggregatorFactory(String name, Type type, ValuesSourceConfig config, AggregationContext context, + public MinAggregatorFactory(String name, Type type, ValuesSourceConfig config, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/PercentileRanksAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/PercentileRanksAggregationBuilder.java index 7507a1e0d74..08c4d7ec817 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/PercentileRanksAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/PercentileRanksAggregationBuilder.java @@ -31,7 +31,6 @@ import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.metrics.percentiles.hdr.HDRPercentileRanksAggregatorFactory; import org.elasticsearch.search.aggregations.metrics.percentiles.tdigest.TDigestPercentileRanksAggregatorFactory; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; @@ -40,6 +39,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFacto import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Arrays; @@ -222,7 +222,7 @@ public class PercentileRanksAggregationBuilder extends LeafOnly innerBuild(AggregationContext context, ValuesSourceConfig config, + protected ValuesSourceAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { switch (method) { case TDIGEST: diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/PercentilesAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/PercentilesAggregationBuilder.java index 9c7a47d303b..ef2512eab9b 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/PercentilesAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/PercentilesAggregationBuilder.java @@ -31,7 +31,6 @@ import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.metrics.percentiles.hdr.HDRPercentilesAggregatorFactory; import org.elasticsearch.search.aggregations.metrics.percentiles.tdigest.TDigestPercentilesAggregatorFactory; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; @@ -40,6 +39,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFacto import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Arrays; @@ -228,7 +228,7 @@ public class PercentilesAggregationBuilder extends LeafOnly innerBuild(AggregationContext context, ValuesSourceConfig config, + protected ValuesSourceAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { switch (method) { case TDIGEST: diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/hdr/AbstractHDRPercentilesAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/hdr/AbstractHDRPercentilesAggregator.java index 26ac179a561..bf4443c8873 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/hdr/AbstractHDRPercentilesAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/hdr/AbstractHDRPercentilesAggregator.java @@ -32,8 +32,8 @@ import org.elasticsearch.search.aggregations.LeafBucketCollector; import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.metrics.NumericMetricsAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -52,7 +52,7 @@ public abstract class AbstractHDRPercentilesAggregator extends NumericMetricsAgg protected final int numberOfSignificantValueDigits; protected final boolean keyed; - public AbstractHDRPercentilesAggregator(String name, ValuesSource.Numeric valuesSource, AggregationContext context, Aggregator parent, + public AbstractHDRPercentilesAggregator(String name, ValuesSource.Numeric valuesSource, SearchContext context, Aggregator parent, double[] keys, int numberOfSignificantValueDigits, boolean keyed, DocValueFormat formatter, List pipelineAggregators, Map metaData) throws IOException { super(name, context, parent, pipelineAggregators, metaData); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/hdr/HDRPercentileRanksAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/hdr/HDRPercentileRanksAggregator.java index eaebf833596..1360999d866 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/hdr/HDRPercentileRanksAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/hdr/HDRPercentileRanksAggregator.java @@ -23,8 +23,8 @@ import org.elasticsearch.search.DocValueFormat; import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.InternalAggregation; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -32,7 +32,7 @@ import java.util.Map; public class HDRPercentileRanksAggregator extends AbstractHDRPercentilesAggregator { - public HDRPercentileRanksAggregator(String name, Numeric valuesSource, AggregationContext context, Aggregator parent, + public HDRPercentileRanksAggregator(String name, Numeric valuesSource, SearchContext context, Aggregator parent, double[] percents, int numberOfSignificantValueDigits, boolean keyed, DocValueFormat format, List pipelineAggregators, Map metaData) throws IOException { super(name, valuesSource, context, parent, percents, numberOfSignificantValueDigits, keyed, format, pipelineAggregators, diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/hdr/HDRPercentileRanksAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/hdr/HDRPercentileRanksAggregatorFactory.java index 7f17220edad..8de009d773b 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/hdr/HDRPercentileRanksAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/hdr/HDRPercentileRanksAggregatorFactory.java @@ -24,11 +24,11 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -42,7 +42,7 @@ public class HDRPercentileRanksAggregatorFactory private final boolean keyed; public HDRPercentileRanksAggregatorFactory(String name, Type type, ValuesSourceConfig config, double[] values, - int numberOfSignificantValueDigits, boolean keyed, AggregationContext context, AggregatorFactory parent, + int numberOfSignificantValueDigits, boolean keyed, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); this.values = values; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/hdr/HDRPercentilesAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/hdr/HDRPercentilesAggregator.java index f197b533e55..93fd92e4fbf 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/hdr/HDRPercentilesAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/hdr/HDRPercentilesAggregator.java @@ -23,8 +23,8 @@ import org.elasticsearch.search.DocValueFormat; import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.InternalAggregation; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -32,7 +32,7 @@ import java.util.Map; public class HDRPercentilesAggregator extends AbstractHDRPercentilesAggregator { - public HDRPercentilesAggregator(String name, Numeric valuesSource, AggregationContext context, Aggregator parent, double[] percents, + public HDRPercentilesAggregator(String name, Numeric valuesSource, SearchContext context, Aggregator parent, double[] percents, int numberOfSignificantValueDigits, boolean keyed, DocValueFormat formatter, List pipelineAggregators, Map metaData) throws IOException { super(name, valuesSource, context, parent, percents, numberOfSignificantValueDigits, keyed, formatter, diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/hdr/HDRPercentilesAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/hdr/HDRPercentilesAggregatorFactory.java index 0e1bd1e532d..852d9175855 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/hdr/HDRPercentilesAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/hdr/HDRPercentilesAggregatorFactory.java @@ -24,11 +24,11 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -41,7 +41,7 @@ public class HDRPercentilesAggregatorFactory extends ValuesSourceAggregatorFacto private final boolean keyed; public HDRPercentilesAggregatorFactory(String name, Type type, ValuesSourceConfig config, double[] percents, - int numberOfSignificantValueDigits, boolean keyed, AggregationContext context, AggregatorFactory parent, + int numberOfSignificantValueDigits, boolean keyed, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); this.percents = percents; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/tdigest/AbstractTDigestPercentilesAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/tdigest/AbstractTDigestPercentilesAggregator.java index 0676d291a11..2c68d580e14 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/tdigest/AbstractTDigestPercentilesAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/tdigest/AbstractTDigestPercentilesAggregator.java @@ -31,8 +31,8 @@ import org.elasticsearch.search.aggregations.LeafBucketCollector; import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.metrics.NumericMetricsAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -51,7 +51,7 @@ public abstract class AbstractTDigestPercentilesAggregator extends NumericMetric protected final double compression; protected final boolean keyed; - public AbstractTDigestPercentilesAggregator(String name, ValuesSource.Numeric valuesSource, AggregationContext context, Aggregator parent, + public AbstractTDigestPercentilesAggregator(String name, ValuesSource.Numeric valuesSource, SearchContext context, Aggregator parent, double[] keys, double compression, boolean keyed, DocValueFormat formatter, List pipelineAggregators, Map metaData) throws IOException { super(name, context, parent, pipelineAggregators, metaData); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/tdigest/TDigestPercentileRanksAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/tdigest/TDigestPercentileRanksAggregator.java index 34bb4e26d55..0e86eea6364 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/tdigest/TDigestPercentileRanksAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/tdigest/TDigestPercentileRanksAggregator.java @@ -22,8 +22,8 @@ import org.elasticsearch.search.DocValueFormat; import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.InternalAggregation; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -31,7 +31,7 @@ import java.util.Map; public class TDigestPercentileRanksAggregator extends AbstractTDigestPercentilesAggregator { - public TDigestPercentileRanksAggregator(String name, Numeric valuesSource, AggregationContext context, Aggregator parent, double[] percents, + public TDigestPercentileRanksAggregator(String name, Numeric valuesSource, SearchContext context, Aggregator parent, double[] percents, double compression, boolean keyed, DocValueFormat formatter, List pipelineAggregators, Map metaData) throws IOException { diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/tdigest/TDigestPercentileRanksAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/tdigest/TDigestPercentileRanksAggregatorFactory.java index a2605fce239..9894f9ba8af 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/tdigest/TDigestPercentileRanksAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/tdigest/TDigestPercentileRanksAggregatorFactory.java @@ -24,11 +24,11 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -42,7 +42,7 @@ public class TDigestPercentileRanksAggregatorFactory private final boolean keyed; public TDigestPercentileRanksAggregatorFactory(String name, Type type, ValuesSourceConfig config, double[] percents, - double compression, boolean keyed, AggregationContext context, AggregatorFactory parent, + double compression, boolean keyed, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); this.percents = percents; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/tdigest/TDigestPercentilesAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/tdigest/TDigestPercentilesAggregator.java index 40478a20d43..b7c1134e935 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/tdigest/TDigestPercentilesAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/tdigest/TDigestPercentilesAggregator.java @@ -22,8 +22,8 @@ import org.elasticsearch.search.DocValueFormat; import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.InternalAggregation; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -31,7 +31,7 @@ import java.util.Map; public class TDigestPercentilesAggregator extends AbstractTDigestPercentilesAggregator { - public TDigestPercentilesAggregator(String name, Numeric valuesSource, AggregationContext context, + public TDigestPercentilesAggregator(String name, Numeric valuesSource, SearchContext context, Aggregator parent, double[] percents, double compression, boolean keyed, DocValueFormat formatter, List pipelineAggregators, Map metaData) throws IOException { diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/tdigest/TDigestPercentilesAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/tdigest/TDigestPercentilesAggregatorFactory.java index 4513801fbfb..f0a7cc93810 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/tdigest/TDigestPercentilesAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/percentiles/tdigest/TDigestPercentilesAggregatorFactory.java @@ -24,11 +24,11 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -42,7 +42,7 @@ public class TDigestPercentilesAggregatorFactory private final boolean keyed; public TDigestPercentilesAggregatorFactory(String name, Type type, ValuesSourceConfig config, double[] percents, - double compression, boolean keyed, AggregationContext context, AggregatorFactory parent, + double compression, boolean keyed, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); this.percents = percents; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregationBuilder.java index 6e48d844c7d..e778a9cd369 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregationBuilder.java @@ -35,7 +35,8 @@ import org.elasticsearch.search.aggregations.AbstractAggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; + import java.io.IOException; import java.util.Collections; import java.util.HashSet; @@ -185,10 +186,10 @@ public class ScriptedMetricAggregationBuilder extends AbstractAggregationBuilder } @Override - protected ScriptedMetricAggregatorFactory doBuild(AggregationContext context, AggregatorFactory parent, + protected ScriptedMetricAggregatorFactory doBuild(SearchContext context, AggregatorFactory parent, Builder subfactoriesBuilder) throws IOException { - QueryShardContext queryShardContext = context.searchContext().getQueryShardContext(); + QueryShardContext queryShardContext = context.getQueryShardContext(); Function, ExecutableScript> executableInitScript; if (initScript != null) { executableInitScript = queryShardContext.getLazyExecutableScript(initScript, ScriptContext.Standard.AGGS); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregator.java index 57fd49779fc..3bfc057682a 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregator.java @@ -20,12 +20,9 @@ package org.elasticsearch.search.aggregations.metrics.scripted; import org.apache.lucene.index.LeafReaderContext; -import org.elasticsearch.index.query.QueryShardContext; import org.elasticsearch.script.ExecutableScript; import org.elasticsearch.script.LeafSearchScript; import org.elasticsearch.script.Script; -import org.elasticsearch.script.ScriptContext; -import org.elasticsearch.script.ScriptService; import org.elasticsearch.script.SearchScript; import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.InternalAggregation; @@ -33,10 +30,9 @@ import org.elasticsearch.search.aggregations.LeafBucketCollector; import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.metrics.MetricsAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; -import java.util.Collections; import java.util.List; import java.util.Map; @@ -49,7 +45,7 @@ public class ScriptedMetricAggregator extends MetricsAggregator { protected ScriptedMetricAggregator(String name, SearchScript mapScript, ExecutableScript combineScript, Script reduceScript, - Map params, AggregationContext context, Aggregator parent, List pipelineAggregators, Map metaData) + Map params, SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { super(name, context, parent, pipelineAggregators, metaData); this.params = params; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregatorFactory.java index 7cb74b9ecb7..a8d3b7c3e09 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/scripted/ScriptedMetricAggregatorFactory.java @@ -28,7 +28,6 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; @@ -48,7 +47,7 @@ public class ScriptedMetricAggregatorFactory extends AggregatorFactory, SearchScript> mapScript, Function, ExecutableScript> initScript, Function, ExecutableScript> combineScript, - Script reduceScript, Map params, AggregationContext context, AggregatorFactory parent, + Script reduceScript, Map params, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactories, Map metaData) throws IOException { super(name, type, context, parent, subFactories, metaData); this.mapScript = mapScript; @@ -66,7 +65,7 @@ public class ScriptedMetricAggregatorFactory extends AggregatorFactory params = this.params; if (params != null) { - params = deepCopyParams(params, context.searchContext()); + params = deepCopyParams(params, context); } else { params = new HashMap<>(); params.put("_agg", new HashMap()); @@ -76,7 +75,7 @@ public class ScriptedMetricAggregatorFactory extends AggregatorFactory config, + protected StatsAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { return new StatsAggregatorFactory(name, type, config, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/StatsAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/StatsAggregator.java index 59d205b0522..e3657c3851d 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/StatsAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/StatsAggregator.java @@ -31,8 +31,8 @@ import org.elasticsearch.search.aggregations.LeafBucketCollector; import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.metrics.NumericMetricsAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -50,7 +50,7 @@ public class StatsAggregator extends NumericMetricsAggregator.MultiValue { public StatsAggregator(String name, ValuesSource.Numeric valuesSource, DocValueFormat format, - AggregationContext context, + SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { super(name, context, parent, pipelineAggregators, metaData); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/StatsAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/StatsAggregatorFactory.java index a4f78f53d07..996416d2a8e 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/StatsAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/StatsAggregatorFactory.java @@ -24,11 +24,11 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -36,7 +36,7 @@ import java.util.Map; public class StatsAggregatorFactory extends ValuesSourceAggregatorFactory { - public StatsAggregatorFactory(String name, Type type, ValuesSourceConfig config, AggregationContext context, + public StatsAggregatorFactory(String name, Type type, ValuesSourceConfig config, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/extended/ExtendedStatsAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/extended/ExtendedStatsAggregationBuilder.java index dc33a9b8a86..75c011fe715 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/extended/ExtendedStatsAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/extended/ExtendedStatsAggregationBuilder.java @@ -28,7 +28,6 @@ import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; @@ -36,6 +35,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuil import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Objects; @@ -88,7 +88,7 @@ public class ExtendedStatsAggregationBuilder } @Override - protected ExtendedStatsAggregatorFactory innerBuild(AggregationContext context, ValuesSourceConfig config, + protected ExtendedStatsAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { return new ExtendedStatsAggregatorFactory(name, type, config, sigma, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/extended/ExtendedStatsAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/extended/ExtendedStatsAggregator.java index 52b08185ba5..499111d5668 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/extended/ExtendedStatsAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/extended/ExtendedStatsAggregator.java @@ -32,8 +32,8 @@ import org.elasticsearch.search.aggregations.LeafBucketCollector; import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.metrics.NumericMetricsAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -54,7 +54,7 @@ public class ExtendedStatsAggregator extends NumericMetricsAggregator.MultiValue DoubleArray sumOfSqrs; public ExtendedStatsAggregator(String name, ValuesSource.Numeric valuesSource, DocValueFormat formatter, - AggregationContext context, Aggregator parent, double sigma, List pipelineAggregators, + SearchContext context, Aggregator parent, double sigma, List pipelineAggregators, Map metaData) throws IOException { super(name, context, parent, pipelineAggregators, metaData); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/extended/ExtendedStatsAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/extended/ExtendedStatsAggregatorFactory.java index 82b0862482e..6153c108c59 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/extended/ExtendedStatsAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/stats/extended/ExtendedStatsAggregatorFactory.java @@ -24,11 +24,11 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -39,7 +39,7 @@ public class ExtendedStatsAggregatorFactory extends ValuesSourceAggregatorFactor private final double sigma; public ExtendedStatsAggregatorFactory(String name, Type type, ValuesSourceConfig config, double sigma, - AggregationContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, + SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); this.sigma = sigma; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumAggregationBuilder.java index 8ad8fda6338..9645610dc8c 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumAggregationBuilder.java @@ -28,7 +28,6 @@ import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; @@ -36,6 +35,7 @@ import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuil import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceParserHelper; import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; @@ -70,7 +70,7 @@ public class SumAggregationBuilder extends ValuesSourceAggregationBuilder.LeafOn } @Override - protected SumAggregatorFactory innerBuild(AggregationContext context, ValuesSourceConfig config, + protected SumAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { return new SumAggregatorFactory(name, type, config, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumAggregator.java index 4dcaa808213..4514d036f90 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumAggregator.java @@ -30,8 +30,8 @@ import org.elasticsearch.search.aggregations.LeafBucketCollector; import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.metrics.NumericMetricsAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -44,7 +44,7 @@ public class SumAggregator extends NumericMetricsAggregator.SingleValue { DoubleArray sums; - public SumAggregator(String name, ValuesSource.Numeric valuesSource, DocValueFormat formatter, AggregationContext context, + public SumAggregator(String name, ValuesSource.Numeric valuesSource, DocValueFormat formatter, SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { super(name, context, parent, pipelineAggregators, metaData); this.valuesSource = valuesSource; diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumAggregatorFactory.java index 07184849c5e..a7dad9cac7f 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/sum/SumAggregatorFactory.java @@ -24,11 +24,11 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -36,7 +36,7 @@ import java.util.Map; public class SumAggregatorFactory extends ValuesSourceAggregatorFactory { - public SumAggregatorFactory(String name, Type type, ValuesSourceConfig config, AggregationContext context, + public SumAggregatorFactory(String name, Type type, ValuesSourceConfig config, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/tophits/TopHitsAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/tophits/TopHitsAggregationBuilder.java index 1d5ee04d417..d63ca865674 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/tophits/TopHitsAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/tophits/TopHitsAggregationBuilder.java @@ -36,13 +36,13 @@ import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation; import org.elasticsearch.search.aggregations.InternalAggregation.Type; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.builder.SearchSourceBuilder.ScriptField; import org.elasticsearch.search.fetch.StoredFieldsContext; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; import org.elasticsearch.search.fetch.subphase.ScriptFieldsContext; import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder; +import org.elasticsearch.search.internal.SearchContext; import org.elasticsearch.search.sort.ScoreSortBuilder; import org.elasticsearch.search.sort.SortAndFormats; import org.elasticsearch.search.sort.SortBuilder; @@ -530,12 +530,12 @@ public class TopHitsAggregationBuilder extends AbstractAggregationBuilder parent, Builder subfactoriesBuilder) + protected TopHitsAggregatorFactory doBuild(SearchContext context, AggregatorFactory parent, Builder subfactoriesBuilder) throws IOException { List fields = new ArrayList<>(); if (scriptFields != null) { for (ScriptField field : scriptFields) { - SearchScript searchScript = context.searchContext().getQueryShardContext().getSearchScript(field.script(), + SearchScript searchScript = context.getQueryShardContext().getSearchScript(field.script(), ScriptContext.Standard.SEARCH); fields.add(new org.elasticsearch.search.fetch.subphase.ScriptFieldsContext.ScriptField( field.fieldName(), searchScript, field.ignoreFailure())); @@ -546,7 +546,7 @@ public class TopHitsAggregationBuilder extends AbstractAggregationBuilder topDocsCollectors; - public TopHitsAggregator(FetchPhase fetchPhase, SubSearchContext subSearchContext, String name, AggregationContext context, + public TopHitsAggregator(FetchPhase fetchPhase, SubSearchContext subSearchContext, String name, SearchContext context, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { super(name, context, parent, pipelineAggregators, metaData); this.fetchPhase = fetchPhase; @@ -115,7 +115,7 @@ public class TopHitsAggregator extends MetricsAggregator { SortAndFormats sort = subSearchContext.sort(); int topN = subSearchContext.from() + subSearchContext.size(); if (sort == null) { - for (RescoreSearchContext rescoreContext : context.searchContext().rescore()) { + for (RescoreSearchContext rescoreContext : context.rescore()) { topN = Math.max(rescoreContext.window(), topN); } } @@ -142,9 +142,9 @@ public class TopHitsAggregator extends MetricsAggregator { } else { TopDocs topDocs = topDocsCollector.topLevelCollector.topDocs(); if (subSearchContext.sort() == null) { - for (RescoreSearchContext ctx : context().searchContext().rescore()) { + for (RescoreSearchContext ctx : context().rescore()) { try { - topDocs = ctx.rescorer().rescore(topDocs, context.searchContext(), ctx); + topDocs = ctx.rescorer().rescore(topDocs, context, ctx); } catch (IOException e) { throw new ElasticsearchException("Rescore TopHits Failed", e); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/tophits/TopHitsAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/tophits/TopHitsAggregatorFactory.java index 9c9e94bc9fa..511c5104d92 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/tophits/TopHitsAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/tophits/TopHitsAggregatorFactory.java @@ -24,14 +24,15 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.fetch.StoredFieldsContext; import org.elasticsearch.search.fetch.subphase.DocValueFieldsContext; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; import org.elasticsearch.search.fetch.subphase.ScriptFieldsContext; import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder; +import org.elasticsearch.search.internal.SearchContext; import org.elasticsearch.search.internal.SubSearchContext; import org.elasticsearch.search.sort.SortAndFormats; + import java.io.IOException; import java.util.List; import java.util.Map; @@ -54,7 +55,7 @@ public class TopHitsAggregatorFactory extends AggregatorFactory sort, HighlightBuilder highlightBuilder, StoredFieldsContext storedFieldsContext, List docValueFields, List scriptFields, FetchSourceContext fetchSourceContext, - AggregationContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactories, Map metaData) + SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactories, Map metaData) throws IOException { super(name, type, context, parent, subFactories, metaData); this.from = from; @@ -73,8 +74,8 @@ public class TopHitsAggregatorFactory extends AggregatorFactory pipelineAggregators, Map metaData) throws IOException { - SubSearchContext subSearchContext = new SubSearchContext(context.searchContext()); - subSearchContext.parsedQuery(context.searchContext().parsedQuery()); + SubSearchContext subSearchContext = new SubSearchContext(context); + subSearchContext.parsedQuery(context.parsedQuery()); subSearchContext.explain(explain); subSearchContext.version(version); subSearchContext.trackScores(trackScores); @@ -96,9 +97,9 @@ public class TopHitsAggregatorFactory extends AggregatorFactory config, + protected ValueCountAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder) throws IOException { return new ValueCountAggregatorFactory(name, type, config, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/valuecount/ValueCountAggregator.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/valuecount/ValueCountAggregator.java index 4dbfb54e8da..e0ed6d1ade0 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/valuecount/ValueCountAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/valuecount/ValueCountAggregator.java @@ -29,8 +29,8 @@ import org.elasticsearch.search.aggregations.LeafBucketCollector; import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.metrics.NumericMetricsAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -50,7 +50,7 @@ public class ValueCountAggregator extends NumericMetricsAggregator.SingleValue { LongArray counts; public ValueCountAggregator(String name, ValuesSource valuesSource, - AggregationContext aggregationContext, Aggregator parent, List pipelineAggregators, + SearchContext aggregationContext, Aggregator parent, List pipelineAggregators, Map metaData) throws IOException { super(name, aggregationContext, parent, pipelineAggregators, metaData); diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/valuecount/ValueCountAggregatorFactory.java b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/valuecount/ValueCountAggregatorFactory.java index 4569f3421d0..2dc40e1d8ea 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/metrics/valuecount/ValueCountAggregatorFactory.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/metrics/valuecount/ValueCountAggregatorFactory.java @@ -24,10 +24,10 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -35,7 +35,7 @@ import java.util.Map; public class ValueCountAggregatorFactory extends ValuesSourceAggregatorFactory { - public ValueCountAggregatorFactory(String name, Type type, ValuesSourceConfig config, AggregationContext context, + public ValueCountAggregatorFactory(String name, Type type, ValuesSourceConfig config, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, config, context, parent, subFactoriesBuilder, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/support/AggregationContext.java b/core/src/main/java/org/elasticsearch/search/aggregations/support/AggregationContext.java deleted file mode 100644 index 64435b6df5b..00000000000 --- a/core/src/main/java/org/elasticsearch/search/aggregations/support/AggregationContext.java +++ /dev/null @@ -1,189 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.elasticsearch.search.aggregations.support; - -import org.apache.lucene.util.BytesRef; -import org.elasticsearch.common.Nullable; -import org.elasticsearch.common.geo.GeoPoint; -import org.elasticsearch.common.geo.GeoUtils; -import org.elasticsearch.common.util.BigArrays; -import org.elasticsearch.index.fielddata.IndexFieldData; -import org.elasticsearch.index.fielddata.IndexGeoPointFieldData; -import org.elasticsearch.index.fielddata.IndexNumericFieldData; -import org.elasticsearch.index.fielddata.IndexOrdinalsFieldData; -import org.elasticsearch.index.fielddata.plain.ParentChildIndexFieldData; -import org.elasticsearch.search.SearchParseException; -import org.elasticsearch.search.aggregations.AggregationExecutionException; -import org.elasticsearch.search.internal.SearchContext; -import org.joda.time.DateTimeZone; - -import java.io.IOException; - -public class AggregationContext { - - private final SearchContext searchContext; - - public AggregationContext(SearchContext searchContext) { - this.searchContext = searchContext; - } - - public SearchContext searchContext() { - return searchContext; - } - - public BigArrays bigArrays() { - return searchContext.bigArrays(); - } - - /** Get a value source given its configuration. A return value of null indicates that - * no value source could be built. */ - @Nullable - public VS valuesSource(ValuesSourceConfig config, SearchContext context) throws IOException { - if (!config.valid()) { - throw new IllegalStateException( - "value source config is invalid; must have either a field context or a script or marked as unwrapped"); - } - - final VS vs; - if (config.unmapped()) { - if (config.missing() == null) { - // otherwise we will have values because of the missing value - vs = null; - } else if (config.valueSourceType() == ValuesSourceType.NUMERIC) { - vs = (VS) ValuesSource.Numeric.EMPTY; - } else if (config.valueSourceType() == ValuesSourceType.GEOPOINT) { - vs = (VS) ValuesSource.GeoPoint.EMPTY; - } else if (config.valueSourceType() == ValuesSourceType.ANY || config.valueSourceType() == ValuesSourceType.BYTES) { - vs = (VS) ValuesSource.Bytes.WithOrdinals.EMPTY; - } else { - throw new SearchParseException(searchContext, "Can't deal with unmapped ValuesSource type " - + config.valueSourceType(), null); - } - } else { - vs = originalValuesSource(config); - } - - if (config.missing() == null) { - return vs; - } - - if (vs instanceof ValuesSource.Bytes) { - final BytesRef missing = new BytesRef(config.missing().toString()); - if (vs instanceof ValuesSource.Bytes.WithOrdinals) { - return (VS) MissingValues.replaceMissing((ValuesSource.Bytes.WithOrdinals) vs, missing); - } else { - return (VS) MissingValues.replaceMissing((ValuesSource.Bytes) vs, missing); - } - } else if (vs instanceof ValuesSource.Numeric) { - Number missing = null; - if (config.missing() instanceof Number) { - missing = (Number) config.missing(); - } else { - if (config.fieldContext() != null && config.fieldContext().fieldType() != null) { - missing = config.fieldContext().fieldType().docValueFormat(null, DateTimeZone.UTC) - .parseDouble(config.missing().toString(), false, context.getQueryShardContext()::nowInMillis); - } else { - missing = Double.parseDouble(config.missing().toString()); - } - } - return (VS) MissingValues.replaceMissing((ValuesSource.Numeric) vs, missing); - } else if (vs instanceof ValuesSource.GeoPoint) { - // TODO: also support the structured formats of geo points - final GeoPoint missing = GeoUtils.parseGeoPoint(config.missing().toString(), new GeoPoint()); - return (VS) MissingValues.replaceMissing((ValuesSource.GeoPoint) vs, missing); - } else { - // Should not happen - throw new SearchParseException(searchContext, "Can't apply missing values on a " + vs.getClass(), null); - } - } - - /** - * Return the original values source, before we apply `missing`. - */ - private VS originalValuesSource(ValuesSourceConfig config) throws IOException { - if (config.fieldContext() == null) { - if (config.valueSourceType() == ValuesSourceType.NUMERIC) { - return (VS) numericScript(config); - } - if (config.valueSourceType() == ValuesSourceType.BYTES) { - return (VS) bytesScript(config); - } - throw new AggregationExecutionException("value source of type [" + config.valueSourceType().name() - + "] is not supported by scripts"); - } - - if (config.valueSourceType() == ValuesSourceType.NUMERIC) { - return (VS) numericField(config); - } - if (config.valueSourceType() == ValuesSourceType.GEOPOINT) { - return (VS) geoPointField(config); - } - // falling back to bytes values - return (VS) bytesField(config); - } - - private ValuesSource.Numeric numericScript(ValuesSourceConfig config) throws IOException { - return new ValuesSource.Numeric.Script(config.script(), config.scriptValueType()); - } - - private ValuesSource.Numeric numericField(ValuesSourceConfig config) throws IOException { - - if (!(config.fieldContext().indexFieldData() instanceof IndexNumericFieldData)) { - throw new IllegalArgumentException("Expected numeric type on field [" + config.fieldContext().field() + - "], but got [" + config.fieldContext().fieldType().typeName() + "]"); - } - - ValuesSource.Numeric dataSource = new ValuesSource.Numeric.FieldData((IndexNumericFieldData)config.fieldContext().indexFieldData()); - if (config.script() != null) { - dataSource = new ValuesSource.Numeric.WithScript(dataSource, config.script()); - } - return dataSource; - } - - private ValuesSource bytesField(ValuesSourceConfig config) throws IOException { - final IndexFieldData indexFieldData = config.fieldContext().indexFieldData(); - ValuesSource dataSource; - if (indexFieldData instanceof ParentChildIndexFieldData) { - dataSource = new ValuesSource.Bytes.WithOrdinals.ParentChild((ParentChildIndexFieldData) indexFieldData); - } else if (indexFieldData instanceof IndexOrdinalsFieldData) { - dataSource = new ValuesSource.Bytes.WithOrdinals.FieldData((IndexOrdinalsFieldData) indexFieldData); - } else { - dataSource = new ValuesSource.Bytes.FieldData(indexFieldData); - } - if (config.script() != null) { - dataSource = new ValuesSource.WithScript(dataSource, config.script()); - } - return dataSource; - } - - private ValuesSource.Bytes bytesScript(ValuesSourceConfig config) throws IOException { - return new ValuesSource.Bytes.Script(config.script()); - } - - private ValuesSource.GeoPoint geoPointField(ValuesSourceConfig config) throws IOException { - - if (!(config.fieldContext().indexFieldData() instanceof IndexGeoPointFieldData)) { - throw new IllegalArgumentException("Expected geo_point type on field [" + config.fieldContext().field() + - "], but got [" + config.fieldContext().fieldType().typeName() + "]"); - } - - return new ValuesSource.GeoPoint.Fielddata((IndexGeoPointFieldData) config.fieldContext().indexFieldData()); - } - -} diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceAggregationBuilder.java b/core/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceAggregationBuilder.java index 1c06296f38a..40b470e7ae9 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceAggregationBuilder.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceAggregationBuilder.java @@ -40,7 +40,6 @@ import org.elasticsearch.search.internal.SearchContext; import org.joda.time.DateTimeZone; import java.io.IOException; -import java.util.Collections; import java.util.Objects; public abstract class ValuesSourceAggregationBuilder> @@ -291,22 +290,22 @@ public abstract class ValuesSourceAggregationBuilder doBuild(AggregationContext context, AggregatorFactory parent, + protected final ValuesSourceAggregatorFactory doBuild(SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder) throws IOException { ValuesSourceConfig config = resolveConfig(context); ValuesSourceAggregatorFactory factory = innerBuild(context, config, parent, subFactoriesBuilder); return factory; } - protected ValuesSourceConfig resolveConfig(AggregationContext context) { + protected ValuesSourceConfig resolveConfig(SearchContext context) { ValuesSourceConfig config = config(context); return config; } - protected abstract ValuesSourceAggregatorFactory innerBuild(AggregationContext context, ValuesSourceConfig config, + protected abstract ValuesSourceAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder) throws IOException; - public ValuesSourceConfig config(AggregationContext context) { + public ValuesSourceConfig config(SearchContext context) { ValueType valueType = this.valueType != null ? this.valueType : targetValueType; @@ -329,12 +328,12 @@ public abstract class ValuesSourceAggregationBuilder config = new ValuesSourceConfig<>(valuesSourceType); @@ -349,7 +348,7 @@ public abstract class ValuesSourceAggregationBuilder indexFieldData = context.searchContext().fieldData().getForField(fieldType); + IndexFieldData indexFieldData = context.fieldData().getForField(fieldType); ValuesSourceConfig config; if (valuesSourceType == ValuesSourceType.ANY) { @@ -367,7 +366,7 @@ public abstract class ValuesSourceAggregationBuilder config; - public ValuesSourceAggregatorFactory(String name, Type type, ValuesSourceConfig config, AggregationContext context, + public ValuesSourceAggregatorFactory(String name, Type type, ValuesSourceConfig config, SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, context, parent, subFactoriesBuilder, metaData); this.config = config; @@ -48,7 +49,7 @@ public abstract class ValuesSourceAggregatorFactory pipelineAggregators, Map metaData) throws IOException { - VS vs = context.valuesSource(config, context.searchContext()); + VS vs = config.toValuesSource(context); if (vs == null) { return createUnmapped(parent, pipelineAggregators, metaData); } diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java b/core/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java index b16f633f416..fb1064fe85d 100644 --- a/core/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java +++ b/core/src/main/java/org/elasticsearch/search/aggregations/support/ValuesSourceConfig.java @@ -18,10 +18,24 @@ */ package org.elasticsearch.search.aggregations.support; +import org.apache.lucene.util.BytesRef; +import org.elasticsearch.common.Nullable; +import org.elasticsearch.common.geo.GeoPoint; +import org.elasticsearch.common.geo.GeoUtils; +import org.elasticsearch.index.fielddata.IndexFieldData; +import org.elasticsearch.index.fielddata.IndexGeoPointFieldData; +import org.elasticsearch.index.fielddata.IndexNumericFieldData; +import org.elasticsearch.index.fielddata.IndexOrdinalsFieldData; +import org.elasticsearch.index.fielddata.plain.ParentChildIndexFieldData; import org.elasticsearch.script.SearchScript; import org.elasticsearch.search.DocValueFormat; +import org.elasticsearch.search.SearchParseException; +import org.elasticsearch.search.aggregations.AggregationExecutionException; +import org.elasticsearch.search.internal.SearchContext; import org.joda.time.DateTimeZone; +import java.io.IOException; + public class ValuesSourceConfig { private final ValuesSourceType valueSourceType; @@ -107,4 +121,139 @@ public class ValuesSourceConfig { public DocValueFormat format() { return format; } + + /** Get a value source given its configuration. A return value of null indicates that + * no value source could be built. */ + @Nullable + public VS toValuesSource(SearchContext context) throws IOException { + if (!valid()) { + throw new IllegalStateException( + "value source config is invalid; must have either a field context or a script or marked as unwrapped"); + } + + final VS vs; + if (unmapped()) { + if (missing() == null) { + // otherwise we will have values because of the missing value + vs = null; + } else if (valueSourceType() == ValuesSourceType.NUMERIC) { + vs = (VS) ValuesSource.Numeric.EMPTY; + } else if (valueSourceType() == ValuesSourceType.GEOPOINT) { + vs = (VS) ValuesSource.GeoPoint.EMPTY; + } else if (valueSourceType() == ValuesSourceType.ANY || valueSourceType() == ValuesSourceType.BYTES) { + vs = (VS) ValuesSource.Bytes.WithOrdinals.EMPTY; + } else { + throw new SearchParseException(context, "Can't deal with unmapped ValuesSource type " + + valueSourceType(), null); + } + } else { + vs = originalValuesSource(); + } + + if (missing() == null) { + return vs; + } + + if (vs instanceof ValuesSource.Bytes) { + final BytesRef missing = new BytesRef(missing().toString()); + if (vs instanceof ValuesSource.Bytes.WithOrdinals) { + return (VS) MissingValues.replaceMissing((ValuesSource.Bytes.WithOrdinals) vs, missing); + } else { + return (VS) MissingValues.replaceMissing((ValuesSource.Bytes) vs, missing); + } + } else if (vs instanceof ValuesSource.Numeric) { + Number missing = null; + if (missing() instanceof Number) { + missing = (Number) missing(); + } else { + if (fieldContext() != null && fieldContext().fieldType() != null) { + missing = fieldContext().fieldType().docValueFormat(null, DateTimeZone.UTC) + .parseDouble(missing().toString(), false, context.getQueryShardContext()::nowInMillis); + } else { + missing = Double.parseDouble(missing().toString()); + } + } + return (VS) MissingValues.replaceMissing((ValuesSource.Numeric) vs, missing); + } else if (vs instanceof ValuesSource.GeoPoint) { + // TODO: also support the structured formats of geo points + final GeoPoint missing = GeoUtils.parseGeoPoint(missing().toString(), new GeoPoint()); + return (VS) MissingValues.replaceMissing((ValuesSource.GeoPoint) vs, missing); + } else { + // Should not happen + throw new SearchParseException(context, "Can't apply missing values on a " + vs.getClass(), null); + } + } + + /** + * Return the original values source, before we apply `missing`. + */ + private VS originalValuesSource() throws IOException { + if (fieldContext() == null) { + if (valueSourceType() == ValuesSourceType.NUMERIC) { + return (VS) numericScript(); + } + if (valueSourceType() == ValuesSourceType.BYTES) { + return (VS) bytesScript(); + } + throw new AggregationExecutionException("value source of type [" + valueSourceType().name() + + "] is not supported by scripts"); + } + + if (valueSourceType() == ValuesSourceType.NUMERIC) { + return (VS) numericField(); + } + if (valueSourceType() == ValuesSourceType.GEOPOINT) { + return (VS) geoPointField(); + } + // falling back to bytes values + return (VS) bytesField(); + } + + private ValuesSource.Numeric numericScript() throws IOException { + return new ValuesSource.Numeric.Script(script(), scriptValueType()); + } + + private ValuesSource.Numeric numericField() throws IOException { + + if (!(fieldContext().indexFieldData() instanceof IndexNumericFieldData)) { + throw new IllegalArgumentException("Expected numeric type on field [" + fieldContext().field() + + "], but got [" + fieldContext().fieldType().typeName() + "]"); + } + + ValuesSource.Numeric dataSource = new ValuesSource.Numeric.FieldData((IndexNumericFieldData)fieldContext().indexFieldData()); + if (script() != null) { + dataSource = new ValuesSource.Numeric.WithScript(dataSource, script()); + } + return dataSource; + } + + private ValuesSource bytesField() throws IOException { + final IndexFieldData indexFieldData = fieldContext().indexFieldData(); + ValuesSource dataSource; + if (indexFieldData instanceof ParentChildIndexFieldData) { + dataSource = new ValuesSource.Bytes.WithOrdinals.ParentChild((ParentChildIndexFieldData) indexFieldData); + } else if (indexFieldData instanceof IndexOrdinalsFieldData) { + dataSource = new ValuesSource.Bytes.WithOrdinals.FieldData((IndexOrdinalsFieldData) indexFieldData); + } else { + dataSource = new ValuesSource.Bytes.FieldData(indexFieldData); + } + if (script() != null) { + dataSource = new ValuesSource.WithScript(dataSource, script()); + } + return dataSource; + } + + private ValuesSource.Bytes bytesScript() throws IOException { + return new ValuesSource.Bytes.Script(script()); + } + + private ValuesSource.GeoPoint geoPointField() throws IOException { + + if (!(fieldContext().indexFieldData() instanceof IndexGeoPointFieldData)) { + throw new IllegalArgumentException("Expected geo_point type on field [" + fieldContext().field() + + "], but got [" + fieldContext().fieldType().typeName() + "]"); + } + + return new ValuesSource.GeoPoint.Fielddata((IndexGeoPointFieldData) fieldContext().indexFieldData()); + } } diff --git a/core/src/main/java/org/elasticsearch/search/profile/aggregation/ProfilingAggregator.java b/core/src/main/java/org/elasticsearch/search/profile/aggregation/ProfilingAggregator.java index 2883c2903e8..63928334b14 100644 --- a/core/src/main/java/org/elasticsearch/search/profile/aggregation/ProfilingAggregator.java +++ b/core/src/main/java/org/elasticsearch/search/profile/aggregation/ProfilingAggregator.java @@ -23,7 +23,7 @@ import org.apache.lucene.index.LeafReaderContext; import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.InternalAggregation; import org.elasticsearch.search.aggregations.LeafBucketCollector; -import org.elasticsearch.search.aggregations.support.AggregationContext; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; @@ -54,7 +54,7 @@ public class ProfilingAggregator extends Aggregator { } @Override - public AggregationContext context() { + public SearchContext context() { return delegate.context(); } diff --git a/core/src/test/java/org/elasticsearch/search/SearchModuleTests.java b/core/src/test/java/org/elasticsearch/search/SearchModuleTests.java index 849bec3d782..dd052a3699a 100644 --- a/core/src/test/java/org/elasticsearch/search/SearchModuleTests.java +++ b/core/src/test/java/org/elasticsearch/search/SearchModuleTests.java @@ -49,7 +49,6 @@ import org.elasticsearch.search.aggregations.pipeline.derivative.DerivativePipel import org.elasticsearch.search.aggregations.pipeline.derivative.InternalDerivative; import org.elasticsearch.search.aggregations.pipeline.movavg.models.MovAvgModel; import org.elasticsearch.search.aggregations.pipeline.movavg.models.SimpleModel; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValuesSourceAggregatorFactory; @@ -61,6 +60,7 @@ import org.elasticsearch.search.fetch.subphase.highlight.FastVectorHighlighter; import org.elasticsearch.search.fetch.subphase.highlight.Highlighter; import org.elasticsearch.search.fetch.subphase.highlight.PlainHighlighter; import org.elasticsearch.search.fetch.subphase.highlight.PostingsHighlighter; +import org.elasticsearch.search.internal.SearchContext; import org.elasticsearch.search.suggest.CustomSuggester; import org.elasticsearch.search.suggest.Suggester; import org.elasticsearch.search.suggest.completion.CompletionSuggester; @@ -318,7 +318,7 @@ public class SearchModuleTests extends ModuleTestCase { } @Override - protected ValuesSourceAggregatorFactory innerBuild(AggregationContext context, + protected ValuesSourceAggregatorFactory innerBuild(SearchContext context, ValuesSourceConfig config, AggregatorFactory parent, Builder subFactoriesBuilder) throws IOException { return null; } diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/AggregationCollectorTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/AggregationCollectorTests.java index 44f1adccc8b..8b632a3de7d 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/AggregationCollectorTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/AggregationCollectorTests.java @@ -26,7 +26,6 @@ import org.elasticsearch.index.IndexService; import org.elasticsearch.index.query.QueryParseContext; import org.elasticsearch.indices.query.IndicesQueriesRegistry; import org.elasticsearch.search.SearchRequestParsers; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.internal.SearchContext; import org.elasticsearch.test.ESSingleNodeTestCase; @@ -66,9 +65,8 @@ public class AggregationCollectorTests extends ESSingleNodeTestCase { XContentParser aggParser = JsonXContent.jsonXContent.createParser(agg); QueryParseContext parseContext = new QueryParseContext(queriesRegistry, aggParser, ParseFieldMatcher.STRICT); aggParser.nextToken(); - SearchContext searchContext = createSearchContext(index); - AggregationContext aggContext = new AggregationContext(searchContext); - final AggregatorFactories factories = parser.parseAggregators(parseContext).build(aggContext, null); + SearchContext context = createSearchContext(index); + final AggregatorFactories factories = parser.parseAggregators(parseContext).build(context, null); final Aggregator[] aggregators = factories.createTopLevelAggregators(); assertEquals(1, aggregators.length); return aggregators[0].needsScores(); diff --git a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregatorTests.java b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregatorTests.java index d658a36c07d..7be372f328d 100644 --- a/core/src/test/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregatorTests.java +++ b/core/src/test/java/org/elasticsearch/search/aggregations/bucket/nested/NestedAggregatorTests.java @@ -45,7 +45,6 @@ import org.elasticsearch.search.aggregations.Aggregator; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.BucketCollector; import org.elasticsearch.search.aggregations.SearchContextAggregations; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.internal.SearchContext; import org.elasticsearch.test.ESSingleNodeTestCase; @@ -117,14 +116,13 @@ public class NestedAggregatorTests extends ESSingleNodeTestCase { IndexSearcher searcher = new IndexSearcher(directoryReader); indexService.mapperService().merge("test", new CompressedXContent(PutMappingRequest.buildFromSimplifiedDef("test", "nested_field", "type=nested").string()), MapperService.MergeReason.MAPPING_UPDATE, false); - SearchContext searchContext = createSearchContext(indexService); - AggregationContext context = new AggregationContext(searchContext); + SearchContext context = createSearchContext(indexService); AggregatorFactories.Builder builder = AggregatorFactories.builder(); NestedAggregationBuilder factory = new NestedAggregationBuilder("test", "nested_field"); builder.addAggregator(factory); AggregatorFactories factories = builder.build(context, null); - searchContext.aggregations(new SearchContextAggregations(factories)); + context.aggregations(new SearchContextAggregations(factories)); Aggregator[] aggs = factories.createTopLevelAggregators(); BucketCollector collector = BucketCollector.wrap(Arrays.asList(aggs)); collector.preCollection(); diff --git a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsAggregationBuilder.java b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsAggregationBuilder.java index 867bcdbdfa5..95374069b14 100644 --- a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsAggregationBuilder.java +++ b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsAggregationBuilder.java @@ -26,13 +26,13 @@ import org.elasticsearch.search.MultiValueMode; import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.MultiValuesSourceAggregationBuilder; import org.elasticsearch.search.aggregations.support.ValueType; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource.Numeric; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; import org.elasticsearch.search.aggregations.support.ValuesSourceType; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.Map; @@ -70,7 +70,7 @@ public class MatrixStatsAggregationBuilder } @Override - protected MatrixStatsAggregatorFactory innerBuild(AggregationContext context, Map> configs, + protected MatrixStatsAggregatorFactory innerBuild(SearchContext context, Map> configs, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder) throws IOException { return new MatrixStatsAggregatorFactory(name, type, configs, multiValueMode, context, parent, subFactoriesBuilder, metaData); } diff --git a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsAggregator.java b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsAggregator.java index 75f0c37d89f..4665e74daa7 100644 --- a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsAggregator.java +++ b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsAggregator.java @@ -30,9 +30,9 @@ import org.elasticsearch.search.aggregations.LeafBucketCollector; import org.elasticsearch.search.aggregations.LeafBucketCollectorBase; import org.elasticsearch.search.aggregations.metrics.MetricsAggregator; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.MultiValuesSource.NumericMultiValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSource; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -48,7 +48,7 @@ public class MatrixStatsAggregator extends MetricsAggregator { /** array of descriptive stats, per shard, needed to compute the correlation */ ObjectArray stats; - public MatrixStatsAggregator(String name, Map valuesSources, AggregationContext context, + public MatrixStatsAggregator(String name, Map valuesSources, SearchContext context, Aggregator parent, MultiValueMode multiValueMode, List pipelineAggregators, Map metaData) throws IOException { super(name, context, parent, pipelineAggregators, metaData); diff --git a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsAggregatorFactory.java b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsAggregatorFactory.java index 2ad23417956..94b0b37dc36 100644 --- a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsAggregatorFactory.java +++ b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/matrix/stats/MatrixStatsAggregatorFactory.java @@ -24,10 +24,10 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; -import org.elasticsearch.search.aggregations.support.AggregationContext; import org.elasticsearch.search.aggregations.support.MultiValuesSourceAggregatorFactory; import org.elasticsearch.search.aggregations.support.ValuesSource; import org.elasticsearch.search.aggregations.support.ValuesSourceConfig; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.List; @@ -40,7 +40,7 @@ public class MatrixStatsAggregatorFactory public MatrixStatsAggregatorFactory(String name, InternalAggregation.Type type, Map> configs, MultiValueMode multiValueMode, - AggregationContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, + SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, Map metaData) throws IOException { super(name, type, configs, context, parent, subFactoriesBuilder, metaData); this.multiValueMode = multiValueMode; diff --git a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceAggregationBuilder.java b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceAggregationBuilder.java index 8524f7d79b4..fde3d24792c 100644 --- a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceAggregationBuilder.java +++ b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceAggregationBuilder.java @@ -35,6 +35,7 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactories.Builder; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.ArrayList; @@ -219,14 +220,14 @@ public abstract class MultiValuesSourceAggregationBuilder doBuild(AggregationContext context, AggregatorFactory parent, + protected final MultiValuesSourceAggregatorFactory doBuild(SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder) throws IOException { Map> configs = resolveConfig(context); MultiValuesSourceAggregatorFactory factory = innerBuild(context, configs, parent, subFactoriesBuilder); return factory; } - protected Map> resolveConfig(AggregationContext context) { + protected Map> resolveConfig(SearchContext context) { HashMap> configs = new HashMap<>(); for (String field : fields) { ValuesSourceConfig config = config(context, field, null); @@ -235,11 +236,11 @@ public abstract class MultiValuesSourceAggregationBuilder innerBuild(AggregationContext context, + protected abstract MultiValuesSourceAggregatorFactory innerBuild(SearchContext context, Map> configs, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder) throws IOException; - public ValuesSourceConfig config(AggregationContext context, String field, Script script) { + public ValuesSourceConfig config(SearchContext context, String field, Script script) { ValueType valueType = this.valueType != null ? this.valueType : targetValueType; @@ -262,7 +263,7 @@ public abstract class MultiValuesSourceAggregationBuilder config = new ValuesSourceConfig<>(valuesSourceType); @@ -271,7 +272,7 @@ public abstract class MultiValuesSourceAggregationBuilder indexFieldData = context.searchContext().fieldData().getForField(fieldType); + IndexFieldData indexFieldData = context.fieldData().getForField(fieldType); ValuesSourceConfig config; if (valuesSourceType == ValuesSourceType.ANY) { diff --git a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceAggregatorFactory.java b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceAggregatorFactory.java index 956f953da10..dd469e21310 100644 --- a/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceAggregatorFactory.java +++ b/modules/aggs-matrix-stats/src/main/java/org/elasticsearch/search/aggregations/support/MultiValuesSourceAggregatorFactory.java @@ -24,6 +24,7 @@ import org.elasticsearch.search.aggregations.AggregatorFactories; import org.elasticsearch.search.aggregations.AggregatorFactory; import org.elasticsearch.search.aggregations.InternalAggregation.Type; import org.elasticsearch.search.aggregations.pipeline.PipelineAggregator; +import org.elasticsearch.search.internal.SearchContext; import java.io.IOException; import java.util.HashMap; @@ -36,8 +37,8 @@ public abstract class MultiValuesSourceAggregatorFactory> configs; public MultiValuesSourceAggregatorFactory(String name, Type type, Map> configs, - AggregationContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, - Map metaData) throws IOException { + SearchContext context, AggregatorFactory parent, AggregatorFactories.Builder subFactoriesBuilder, + Map metaData) throws IOException { super(name, type, context, parent, subFactoriesBuilder, metaData); this.configs = configs; } @@ -48,7 +49,7 @@ public abstract class MultiValuesSourceAggregatorFactory valuesSources = new HashMap<>(); for (Map.Entry> config : configs.entrySet()) { - VS vs = context.valuesSource(config.getValue(), context.searchContext()); + VS vs = config.getValue().toValuesSource(context); if (vs != null) { valuesSources.put(config.getKey(), vs); }

    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∓jAv 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�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 v%8Yp-fY&3K1) zdwM1#c1HflTzl`c*V>tJ@*GtKC}>28zYmH)XSsj7_@5^j2qFjzQx8*CElmUns9iTk zT_SfzT~8k*2uSEhNC*gM?7wbQ{g;m;{rlri&K8#L|Cb;P{}cnt{|>_T518x!Di-m7 zg2Dc07-M%2QxD63pb`F+)xXH>?+oD~{zeme=eh9uE9v>ajPzfiSvxqJnL03YvABEu z+mQVY{I~tnkQpY;$`6ZThf^-bv+i!E<6`FE;&tEt(87*Yt#KNr>T-ljRm{uAj_tJ9 z7zKp;59VWgEYO~Om6Sp^9)xo#=9JAJ^V%O^i*!eO4)Vs`?wiEkj|#1@H4haK;Y`LH z7j`M@iK4_<4dGDyzN#@E`x(wo3d75L%8Onnd)hhU;f