Skip to content

Commit 04bb7bb

Browse files
DaveCTurnerjfreden
authored andcommitted
Handle remaining refs to RestApiVersion#V_7 (elastic#114881)
Removes several more references to the now-unused `RestApiVersion#V_7` constant, and decorates all remaining references with an `@UpdateForV9` annotation so that they all have clear owners.
1 parent 302de77 commit 04bb7bb

35 files changed

+76
-157
lines changed

modules/percolator/src/main/java/org/elasticsearch/percolator/PercolateQueryBuilder.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
import org.elasticsearch.common.logging.DeprecationLogger;
4747
import org.elasticsearch.common.xcontent.LoggingDeprecationHandler;
4848
import org.elasticsearch.common.xcontent.XContentHelper;
49-
import org.elasticsearch.core.RestApiVersion;
5049
import org.elasticsearch.index.IndexVersion;
5150
import org.elasticsearch.index.IndexVersions;
5251
import org.elasticsearch.index.fielddata.FieldDataContext;
@@ -84,7 +83,6 @@
8483
import java.util.function.BiConsumer;
8584
import java.util.function.Supplier;
8685

87-
import static org.elasticsearch.core.RestApiVersion.equalTo;
8886
import static org.elasticsearch.search.SearchService.ALLOW_EXPENSIVE_QUERIES;
8987
import static org.elasticsearch.xcontent.ConstructingObjectParser.constructorArg;
9088
import static org.elasticsearch.xcontent.ConstructingObjectParser.optionalConstructorArg;
@@ -368,14 +366,6 @@ protected void doXContent(XContentBuilder builder, Params params) throws IOExcep
368366
DOCUMENTS_FIELD.getPreferredName(),
369367
INDEXED_DOCUMENT_FIELD_ID.getPreferredName()
370368
);
371-
PARSER.declareString(
372-
deprecateAndIgnoreType("percolate_with_type", TYPE_DEPRECATION_MESSAGE),
373-
INDEXED_DOCUMENT_FIELD_TYPE.forRestApiVersion(equalTo(RestApiVersion.V_7))
374-
);
375-
PARSER.declareString(
376-
deprecateAndIgnoreType("percolate_with_document_type", DOCUMENT_TYPE_DEPRECATION_MESSAGE),
377-
DOCUMENT_TYPE_FIELD.forRestApiVersion(equalTo(RestApiVersion.V_7))
378-
);
379369
}
380370

381371
private static BiConsumer<PercolateQueryBuilder, String> deprecateAndIgnoreType(String key, String message) {

server/src/main/java/org/elasticsearch/action/admin/indices/rollover/RolloverRequest.java

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import org.elasticsearch.cluster.metadata.DataStream;
1919
import org.elasticsearch.common.io.stream.StreamInput;
2020
import org.elasticsearch.common.io.stream.StreamOutput;
21-
import org.elasticsearch.core.RestApiVersion;
2221
import org.elasticsearch.index.mapper.MapperService;
2322
import org.elasticsearch.tasks.CancellableTask;
2423
import org.elasticsearch.tasks.Task;
@@ -57,19 +56,6 @@ public class RolloverRequest extends AcknowledgedRequest<RolloverRequest> implem
5756
CreateIndexRequest.SETTINGS,
5857
ObjectParser.ValueType.OBJECT
5958
);
60-
PARSER.declareField((parser, request, context) -> {
61-
// a type is not included, add a dummy _doc type
62-
Map<String, Object> mappings = parser.map();
63-
if (MapperService.isMappingSourceTyped(MapperService.SINGLE_MAPPING_NAME, mappings)) {
64-
throw new IllegalArgumentException(
65-
"The mapping definition cannot be nested under a type "
66-
+ "["
67-
+ MapperService.SINGLE_MAPPING_NAME
68-
+ "] unless include_type_name is set to true."
69-
);
70-
}
71-
request.createIndexRequest.mapping(mappings);
72-
}, CreateIndexRequest.MAPPINGS.forRestApiVersion(RestApiVersion.equalTo(RestApiVersion.V_7)), ObjectParser.ValueType.OBJECT);
7359
PARSER.declareField((parser, request, context) -> {
7460
// a type is not included, add a dummy _doc type
7561
Map<String, Object> mappings = parser.map();
@@ -78,7 +64,7 @@ public class RolloverRequest extends AcknowledgedRequest<RolloverRequest> implem
7864
throw new IllegalArgumentException("The mapping definition cannot be nested under a type");
7965
}
8066
request.createIndexRequest.mapping(mappings);
81-
}, CreateIndexRequest.MAPPINGS.forRestApiVersion(RestApiVersion.onOrAfter(RestApiVersion.V_8)), ObjectParser.ValueType.OBJECT);
67+
}, CreateIndexRequest.MAPPINGS, ObjectParser.ValueType.OBJECT);
8268

8369
PARSER.declareField(
8470
(parser, request, context) -> request.createIndexRequest.aliases(parser.map()),

server/src/main/java/org/elasticsearch/action/bulk/BulkRequestParser.java

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import org.elasticsearch.core.UpdateForV9;
2323
import org.elasticsearch.index.VersionType;
2424
import org.elasticsearch.index.seqno.SequenceNumbers;
25-
import org.elasticsearch.rest.action.document.RestBulkAction;
2625
import org.elasticsearch.search.fetch.subphase.FetchSourceContext;
2726
import org.elasticsearch.xcontent.ParseField;
2827
import org.elasticsearch.xcontent.XContent;
@@ -271,18 +270,11 @@ public int incrementalParse(
271270
}
272271
index = stringDeduplicator.computeIfAbsent(parser.text(), Function.identity());
273272
} else if (TYPE.match(currentFieldName, parser.getDeprecationHandler())) {
274-
if (parser.getRestApiVersion().matches(RestApiVersion.equalTo(RestApiVersion.V_7))) {
275-
// for bigger bulks, deprecation throttling might not be enough
276-
if (deprecateOrErrorOnType && typesDeprecationLogged == false) {
277-
deprecationLogger.compatibleCritical("bulk_with_types", RestBulkAction.TYPES_DEPRECATION_MESSAGE);
278-
typesDeprecationLogged = true;
279-
}
280-
} else if (parser.getRestApiVersion().matches(RestApiVersion.onOrAfter(RestApiVersion.V_8))
281-
&& deprecateOrErrorOnType) {
282-
throw new IllegalArgumentException(
283-
"Action/metadata line [" + line + "] contains an unknown parameter [" + currentFieldName + "]"
284-
);
285-
}
273+
if (deprecateOrErrorOnType) {
274+
throw new IllegalArgumentException(
275+
"Action/metadata line [" + line + "] contains an unknown parameter [" + currentFieldName + "]"
276+
);
277+
}
286278
type = stringDeduplicator.computeIfAbsent(parser.text(), Function.identity());
287279
} else if (ID.match(currentFieldName, parser.getDeprecationHandler())) {
288280
id = parser.text();

server/src/main/java/org/elasticsearch/cluster/metadata/IndexTemplateMetadata.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,6 @@
3535
import java.util.Objects;
3636
import java.util.Set;
3737

38-
import static org.elasticsearch.core.RestApiVersion.V_8;
39-
import static org.elasticsearch.core.RestApiVersion.onOrAfter;
40-
4138
public class IndexTemplateMetadata implements SimpleDiffable<IndexTemplateMetadata> {
4239

4340
private final String name;
@@ -379,9 +376,7 @@ private static void toInnerXContent(
379376
indexTemplateMetadata.settings().toXContent(builder, params);
380377
builder.endObject();
381378

382-
if (builder.getRestApiVersion().matches(onOrAfter(V_8))) {
383-
includeTypeName &= (params.paramAsBoolean("reduce_mappings", false) == false);
384-
}
379+
includeTypeName &= (params.paramAsBoolean("reduce_mappings", false) == false);
385380

386381
CompressedXContent m = indexTemplateMetadata.mappings();
387382
if (m != null) {

server/src/main/java/org/elasticsearch/index/query/CommonTermsQueryBuilder.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.elasticsearch.common.io.stream.StreamOutput;
1717
import org.elasticsearch.common.logging.DeprecationLogger;
1818
import org.elasticsearch.core.RestApiVersion;
19+
import org.elasticsearch.core.UpdateForV9;
1920
import org.elasticsearch.xcontent.ParseField;
2021
import org.elasticsearch.xcontent.XContentBuilder;
2122
import org.elasticsearch.xcontent.XContentParser;
@@ -27,6 +28,7 @@ public class CommonTermsQueryBuilder extends AbstractQueryBuilder<CommonTermsQue
2728
public static final String COMMON_TERMS_QUERY_DEPRECATION_MSG = "Common Terms Query usage is not supported. "
2829
+ "Use [match] query which can efficiently skip blocks of documents if the total number of hits is not tracked.";
2930

31+
@UpdateForV9(owner = UpdateForV9.Owner.SEARCH_RELEVANCE) // v7 REST API no longer exists: eliminate ref to RestApiVersion.V_7
3032
public static ParseField NAME_V7 = new ParseField("common").withAllDeprecated(COMMON_TERMS_QUERY_DEPRECATION_MSG)
3133
.forRestApiVersion(RestApiVersion.equalTo(RestApiVersion.V_7));
3234

server/src/main/java/org/elasticsearch/index/query/GeoBoundingBoxQueryBuilder.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import org.elasticsearch.common.io.stream.StreamInput;
2525
import org.elasticsearch.common.io.stream.StreamOutput;
2626
import org.elasticsearch.common.logging.DeprecationLogger;
27-
import org.elasticsearch.core.RestApiVersion;
2827
import org.elasticsearch.geometry.Rectangle;
2928
import org.elasticsearch.geometry.utils.Geohash;
3029
import org.elasticsearch.index.mapper.GeoShapeQueryable;
@@ -55,7 +54,6 @@ public class GeoBoundingBoxQueryBuilder extends AbstractQueryBuilder<GeoBounding
5554
*/
5655
public static final boolean DEFAULT_IGNORE_UNMAPPED = false;
5756

58-
private static final ParseField TYPE_FIELD = new ParseField("type").forRestApiVersion(RestApiVersion.equalTo(RestApiVersion.V_7));
5957
private static final ParseField VALIDATION_METHOD_FIELD = new ParseField("validation_method");
6058
private static final ParseField IGNORE_UNMAPPED_FIELD = new ParseField("ignore_unmapped");
6159

server/src/main/java/org/elasticsearch/index/query/MatchQueryBuilder.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import org.elasticsearch.common.lucene.search.Queries;
2121
import org.elasticsearch.common.unit.Fuzziness;
2222
import org.elasticsearch.common.xcontent.LoggingDeprecationHandler;
23-
import org.elasticsearch.core.RestApiVersion;
2423
import org.elasticsearch.index.analysis.NamedAnalyzer;
2524
import org.elasticsearch.index.mapper.MappedFieldType;
2625
import org.elasticsearch.index.query.support.QueryParsers;
@@ -37,11 +36,7 @@
3736
* result of the analysis.
3837
*/
3938
public class MatchQueryBuilder extends AbstractQueryBuilder<MatchQueryBuilder> {
40-
private static final String CUTOFF_FREQUENCY_DEPRECATION_MSG = "cutoff_freqency is not supported. "
41-
+ "The [match] query can skip block of documents efficiently if the total number of hits is not tracked";
42-
public static final ParseField CUTOFF_FREQUENCY_FIELD = new ParseField("cutoff_frequency").withAllDeprecated(
43-
CUTOFF_FREQUENCY_DEPRECATION_MSG
44-
).forRestApiVersion(RestApiVersion.equalTo(RestApiVersion.V_7));
39+
4540
public static final ParseField ZERO_TERMS_QUERY_FIELD = new ParseField("zero_terms_query");
4641
public static final ParseField LENIENT_FIELD = new ParseField("lenient");
4742
public static final ParseField FUZZY_TRANSPOSITIONS_FIELD = new ParseField("fuzzy_transpositions");

server/src/main/java/org/elasticsearch/index/query/MultiMatchQueryBuilder.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import org.elasticsearch.common.io.stream.Writeable;
2222
import org.elasticsearch.common.unit.Fuzziness;
2323
import org.elasticsearch.common.xcontent.LoggingDeprecationHandler;
24-
import org.elasticsearch.core.RestApiVersion;
2524
import org.elasticsearch.index.query.support.QueryParsers;
2625
import org.elasticsearch.index.search.MatchQueryParser;
2726
import org.elasticsearch.index.search.MultiMatchQueryParser;
@@ -45,11 +44,7 @@
4544
public final class MultiMatchQueryBuilder extends AbstractQueryBuilder<MultiMatchQueryBuilder> {
4645

4746
public static final String NAME = "multi_match";
48-
private static final String CUTOFF_FREQUENCY_DEPRECATION_MSG = "cutoff_freqency is not supported."
49-
+ " The [multi_match] query can skip block of documents efficiently if the total number of hits is not tracked";
50-
private static final ParseField CUTOFF_FREQUENCY_FIELD = new ParseField("cutoff_frequency").withAllDeprecated(
51-
CUTOFF_FREQUENCY_DEPRECATION_MSG
52-
).forRestApiVersion(RestApiVersion.equalTo(RestApiVersion.V_7));
47+
5348
public static final MultiMatchQueryBuilder.Type DEFAULT_TYPE = MultiMatchQueryBuilder.Type.BEST_FIELDS;
5449
public static final Operator DEFAULT_OPERATOR = Operator.OR;
5550
public static final int DEFAULT_PHRASE_SLOP = MatchQueryParser.DEFAULT_PHRASE_SLOP;

server/src/main/java/org/elasticsearch/index/query/TypeQueryV7Builder.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import org.elasticsearch.common.io.stream.StreamOutput;
1919
import org.elasticsearch.common.logging.DeprecationLogger;
2020
import org.elasticsearch.core.RestApiVersion;
21+
import org.elasticsearch.core.UpdateForV9;
2122
import org.elasticsearch.index.mapper.MapperService;
2223
import org.elasticsearch.xcontent.ObjectParser;
2324
import org.elasticsearch.xcontent.ParseField;
@@ -26,6 +27,7 @@
2627

2728
import java.io.IOException;
2829

30+
@UpdateForV9(owner = UpdateForV9.Owner.SEARCH_RELEVANCE) // v7 REST API no longer exists: eliminate ref to RestApiVersion.V_7
2931
public class TypeQueryV7Builder extends AbstractQueryBuilder<TypeQueryV7Builder> {
3032
private static final DeprecationLogger deprecationLogger = DeprecationLogger.getLogger(TypeQueryV7Builder.class);
3133
public static final String TYPES_DEPRECATION_MESSAGE = "[types removal] Type queries are deprecated, "

server/src/main/java/org/elasticsearch/index/reindex/ReindexRequest.java

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@
2020
import org.elasticsearch.common.lucene.uid.Versions;
2121
import org.elasticsearch.common.settings.SecureString;
2222
import org.elasticsearch.common.xcontent.XContentHelper;
23-
import org.elasticsearch.core.RestApiVersion;
2423
import org.elasticsearch.core.TimeValue;
24+
import org.elasticsearch.core.UpdateForV9;
2525
import org.elasticsearch.features.NodeFeature;
2626
import org.elasticsearch.index.VersionType;
2727
import org.elasticsearch.index.query.QueryBuilder;
@@ -354,20 +354,10 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws
354354
ObjectParser.ValueType.OBJECT
355355
);
356356

357-
PARSER.declareInt(
358-
ReindexRequest::setMaxDocsValidateIdentical,
359-
new ParseField("max_docs", "size").forRestApiVersion(RestApiVersion.equalTo(RestApiVersion.V_7))
360-
);
357+
PARSER.declareInt(ReindexRequest::setMaxDocsValidateIdentical, new ParseField("max_docs"));
361358

362-
PARSER.declareInt(
363-
ReindexRequest::setMaxDocsValidateIdentical,
364-
new ParseField("max_docs").forRestApiVersion(RestApiVersion.onOrAfter(RestApiVersion.V_8))
365-
);
366359
// avoid silently accepting an ignored size.
367-
PARSER.declareInt(
368-
(r, s) -> failOnSizeSpecified(),
369-
new ParseField("size").forRestApiVersion(RestApiVersion.onOrAfter(RestApiVersion.V_8))
370-
);
360+
PARSER.declareInt((r, s) -> failOnSizeSpecified(), new ParseField("size"));
371361

372362
PARSER.declareField((p, v, c) -> v.setScript(Script.parse(p)), new ParseField("script"), ObjectParser.ValueType.OBJECT);
373363
PARSER.declareString(ReindexRequest::setConflicts, new ParseField("conflicts"));
@@ -509,6 +499,8 @@ static void setMaxDocsValidateIdentical(AbstractBulkByScrollRequest<?> request,
509499
}
510500
}
511501

502+
@UpdateForV9(owner = UpdateForV9.Owner.DISTRIBUTED_INDEXING)
503+
// do we still need this ref to [max_docs] or can we remove the field entirely so it's rejected with the default message?
512504
private static void failOnSizeSpecified() {
513505
throw new IllegalArgumentException("invalid parameter [size], use [max_docs] instead");
514506
}

0 commit comments

Comments
 (0)