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 a655184f89e7c..6ba8394e1e598 100644 --- a/modules/percolator/src/main/java/org/elasticsearch/percolator/PercolateQueryBuilder.java +++ b/modules/percolator/src/main/java/org/elasticsearch/percolator/PercolateQueryBuilder.java @@ -274,7 +274,7 @@ public PercolateQueryBuilder(String field, String documentType, String indexedDo } if (documents.isEmpty() == false) { if (in.getVersion().onOrAfter(Version.V_5_3_0)) { - documentXContentType = XContentType.readFrom(in); + documentXContentType = in.readEnum(XContentType.class); } else { documentXContentType = XContentFactory.xContentType(documents.iterator().next()); } @@ -331,7 +331,7 @@ protected void doWriteTo(StreamOutput out) throws IOException { out.writeOptionalBytesReference(doc); } if (documents.isEmpty() == false && out.getVersion().onOrAfter(Version.V_5_3_0)) { - documentXContentType.writeTo(out); + out.writeEnum(documentXContentType); } } diff --git a/server/src/main/java/org/elasticsearch/action/admin/cluster/storedscripts/PutStoredScriptRequest.java b/server/src/main/java/org/elasticsearch/action/admin/cluster/storedscripts/PutStoredScriptRequest.java index e3392df885075..5ab5c49d0c791 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/cluster/storedscripts/PutStoredScriptRequest.java +++ b/server/src/main/java/org/elasticsearch/action/admin/cluster/storedscripts/PutStoredScriptRequest.java @@ -123,7 +123,7 @@ public void readFrom(StreamInput in) throws IOException { id = in.readOptionalString(); content = in.readBytesReference(); if (in.getVersion().onOrAfter(Version.V_5_3_0)) { - xContentType = XContentType.readFrom(in); + xContentType = in.readEnum(XContentType.class); } else { xContentType = XContentFactory.xContentType(content); } @@ -145,7 +145,7 @@ public void writeTo(StreamOutput out) throws IOException { out.writeOptionalString(id); out.writeBytesReference(content); if (out.getVersion().onOrAfter(Version.V_5_3_0)) { - xContentType.writeTo(out); + out.writeEnum(xContentType); } if (out.getVersion().onOrAfter(Version.V_6_0_0_alpha2)) { out.writeOptionalString(context); diff --git a/server/src/main/java/org/elasticsearch/action/index/IndexRequest.java b/server/src/main/java/org/elasticsearch/action/index/IndexRequest.java index 46d51ee0b40e4..f2ddca1955878 100644 --- a/server/src/main/java/org/elasticsearch/action/index/IndexRequest.java +++ b/server/src/main/java/org/elasticsearch/action/index/IndexRequest.java @@ -542,7 +542,11 @@ public void readFrom(StreamInput in) throws IOException { pipeline = in.readOptionalString(); isRetry = in.readBoolean(); autoGeneratedTimestamp = in.readLong(); - contentType = in.readOptionalWriteable(XContentType::readFrom); + if (in.readBoolean()) { + contentType = in.readEnum(XContentType.class); + } else { + contentType = null; + } } @Override @@ -566,7 +570,12 @@ public void writeTo(StreamOutput out) throws IOException { out.writeOptionalString(pipeline); out.writeBoolean(isRetry); out.writeLong(autoGeneratedTimestamp); - out.writeOptionalWriteable(contentType); + if (contentType != null) { + out.writeBoolean(true); + out.writeEnum(contentType); + } else { + out.writeBoolean(false); + } } @Override diff --git a/server/src/main/java/org/elasticsearch/action/ingest/PutPipelineRequest.java b/server/src/main/java/org/elasticsearch/action/ingest/PutPipelineRequest.java index 394349ca01691..10b19ed8cfa17 100644 --- a/server/src/main/java/org/elasticsearch/action/ingest/PutPipelineRequest.java +++ b/server/src/main/java/org/elasticsearch/action/ingest/PutPipelineRequest.java @@ -81,7 +81,7 @@ public void readFrom(StreamInput in) throws IOException { id = in.readString(); source = in.readBytesReference(); if (in.getVersion().onOrAfter(Version.V_5_3_0)) { - xContentType = XContentType.readFrom(in); + xContentType = in.readEnum(XContentType.class); } else { xContentType = XContentFactory.xContentType(source); } @@ -93,7 +93,7 @@ public void writeTo(StreamOutput out) throws IOException { out.writeString(id); out.writeBytesReference(source); if (out.getVersion().onOrAfter(Version.V_5_3_0)) { - xContentType.writeTo(out); + out.writeEnum(xContentType); } } } diff --git a/server/src/main/java/org/elasticsearch/action/ingest/SimulatePipelineRequest.java b/server/src/main/java/org/elasticsearch/action/ingest/SimulatePipelineRequest.java index 170f0bc8518cf..428df00a68e9c 100644 --- a/server/src/main/java/org/elasticsearch/action/ingest/SimulatePipelineRequest.java +++ b/server/src/main/java/org/elasticsearch/action/ingest/SimulatePipelineRequest.java @@ -76,7 +76,7 @@ public SimulatePipelineRequest(BytesReference source, XContentType xContentType) verbose = in.readBoolean(); source = in.readBytesReference(); if (in.getVersion().onOrAfter(Version.V_5_3_0)) { - xContentType = XContentType.readFrom(in); + xContentType = in.readEnum(XContentType.class); } else { xContentType = XContentFactory.xContentType(source); } @@ -123,7 +123,7 @@ public void writeTo(StreamOutput out) throws IOException { out.writeBoolean(verbose); out.writeBytesReference(source); if (out.getVersion().onOrAfter(Version.V_5_3_0)) { - xContentType.writeTo(out); + out.writeEnum(xContentType); } } diff --git a/server/src/main/java/org/elasticsearch/action/termvectors/TermVectorsRequest.java b/server/src/main/java/org/elasticsearch/action/termvectors/TermVectorsRequest.java index 9a26e63f1afd4..3aa7b832f1f4e 100644 --- a/server/src/main/java/org/elasticsearch/action/termvectors/TermVectorsRequest.java +++ b/server/src/main/java/org/elasticsearch/action/termvectors/TermVectorsRequest.java @@ -516,7 +516,7 @@ public void readFrom(StreamInput in) throws IOException { if (in.readBoolean()) { doc = in.readBytesReference(); if (in.getVersion().onOrAfter(Version.V_5_3_0)) { - xContentType = XContentType.readFrom(in); + xContentType = in.readEnum(XContentType.class); } else { xContentType = XContentFactory.xContentType(doc); } @@ -561,7 +561,7 @@ public void writeTo(StreamOutput out) throws IOException { if (doc != null) { out.writeBytesReference(doc); if (out.getVersion().onOrAfter(Version.V_5_3_0)) { - xContentType.writeTo(out); + out.writeEnum(xContentType); } } out.writeOptionalString(routing); diff --git a/server/src/main/java/org/elasticsearch/common/xcontent/XContentParser.java b/server/src/main/java/org/elasticsearch/common/xcontent/XContentParser.java index 61272e46b2873..a9037b74ce9ed 100644 --- a/server/src/main/java/org/elasticsearch/common/xcontent/XContentParser.java +++ b/server/src/main/java/org/elasticsearch/common/xcontent/XContentParser.java @@ -19,8 +19,7 @@ package org.elasticsearch.common.xcontent; -import org.elasticsearch.common.lease.Releasable; - +import java.io.Closeable; import java.io.IOException; import java.nio.CharBuffer; import java.util.List; @@ -37,7 +36,7 @@ * NamedXContentRegistry.EMPTY, ParserField."{\"key\" : \"value\"}"); * */ -public interface XContentParser extends Releasable { +public interface XContentParser extends Closeable { enum Token { START_OBJECT { diff --git a/server/src/main/java/org/elasticsearch/common/xcontent/XContentType.java b/server/src/main/java/org/elasticsearch/common/xcontent/XContentType.java index 40caa6e911087..7196fdbf984e7 100644 --- a/server/src/main/java/org/elasticsearch/common/xcontent/XContentType.java +++ b/server/src/main/java/org/elasticsearch/common/xcontent/XContentType.java @@ -19,22 +19,18 @@ package org.elasticsearch.common.xcontent; -import org.elasticsearch.common.io.stream.StreamInput; -import org.elasticsearch.common.io.stream.StreamOutput; -import org.elasticsearch.common.io.stream.Writeable; import org.elasticsearch.common.xcontent.cbor.CborXContent; import org.elasticsearch.common.xcontent.json.JsonXContent; import org.elasticsearch.common.xcontent.smile.SmileXContent; import org.elasticsearch.common.xcontent.yaml.YamlXContent; -import java.io.IOException; import java.util.Locale; import java.util.Objects; /** * The content type of {@link org.elasticsearch.common.xcontent.XContent}. */ -public enum XContentType implements Writeable { +public enum XContentType { /** * A JSON based content type. @@ -183,18 +179,4 @@ public String mediaType() { public abstract String mediaTypeWithoutParameters(); - public static XContentType readFrom(StreamInput in) throws IOException { - int index = in.readVInt(); - for (XContentType contentType : values()) { - if (index == contentType.index) { - return contentType; - } - } - throw new IllegalStateException("Unknown XContentType with index [" + index + "]"); - } - - @Override - public void writeTo(StreamOutput out) throws IOException { - out.writeVInt(index); - } } diff --git a/server/src/main/java/org/elasticsearch/index/query/MoreLikeThisQueryBuilder.java b/server/src/main/java/org/elasticsearch/index/query/MoreLikeThisQueryBuilder.java index a94c2dae283a5..d0aa588aeb997 100644 --- a/server/src/main/java/org/elasticsearch/index/query/MoreLikeThisQueryBuilder.java +++ b/server/src/main/java/org/elasticsearch/index/query/MoreLikeThisQueryBuilder.java @@ -221,7 +221,7 @@ public Item(@Nullable String index, @Nullable String type, XContentBuilder doc) if (in.readBoolean()) { doc = (BytesReference) in.readGenericValue(); if (in.getVersion().onOrAfter(Version.V_5_3_0)) { - xContentType = XContentType.readFrom(in); + xContentType = in.readEnum(XContentType.class); } else { xContentType = XContentFactory.xContentType(doc); } @@ -243,7 +243,7 @@ public void writeTo(StreamOutput out) throws IOException { if (doc != null) { out.writeGenericValue(doc); if (out.getVersion().onOrAfter(Version.V_5_3_0)) { - xContentType.writeTo(out); + out.writeEnum(xContentType); } } else { out.writeString(id); diff --git a/server/src/main/java/org/elasticsearch/ingest/PipelineConfiguration.java b/server/src/main/java/org/elasticsearch/ingest/PipelineConfiguration.java index 62e0fae04b30d..3d96493746805 100644 --- a/server/src/main/java/org/elasticsearch/ingest/PipelineConfiguration.java +++ b/server/src/main/java/org/elasticsearch/ingest/PipelineConfiguration.java @@ -120,7 +120,7 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws public static PipelineConfiguration readFrom(StreamInput in) throws IOException { if (in.getVersion().onOrAfter(Version.V_5_3_0)) { - return new PipelineConfiguration(in.readString(), in.readBytesReference(), XContentType.readFrom(in)); + return new PipelineConfiguration(in.readString(), in.readBytesReference(), in.readEnum(XContentType.class)); } else { final String id = in.readString(); final BytesReference config = in.readBytesReference(); @@ -137,7 +137,7 @@ public void writeTo(StreamOutput out) throws IOException { out.writeString(id); out.writeBytesReference(config); if (out.getVersion().onOrAfter(Version.V_5_3_0)) { - xContentType.writeTo(out); + out.writeEnum(xContentType); } } diff --git a/server/src/main/java/org/elasticsearch/script/Script.java b/server/src/main/java/org/elasticsearch/script/Script.java index 53b496ba138d7..7361bd2fc2a71 100644 --- a/server/src/main/java/org/elasticsearch/script/Script.java +++ b/server/src/main/java/org/elasticsearch/script/Script.java @@ -507,7 +507,7 @@ public Script(StreamInput in) throws IOException { if (in.readBoolean()) { this.options = new HashMap<>(); - XContentType contentType = XContentType.readFrom(in); + XContentType contentType = in.readEnum(XContentType.class); this.options.put(CONTENT_TYPE_OPTION, contentType.mediaType()); } else if (type == ScriptType.INLINE) { options = new HashMap<>(); @@ -571,7 +571,7 @@ public void writeTo(StreamOutput out) throws IOException { if (options != null && options.containsKey(CONTENT_TYPE_OPTION)) { XContentType contentType = XContentType.fromMediaTypeOrFormat(options.get(CONTENT_TYPE_OPTION)); out.writeBoolean(true); - contentType.writeTo(out); + out.writeEnum(contentType); } else { out.writeBoolean(false); }