Previously, TransportSingleShardAction required constructing a new empty response object. This response object's Streamable readFrom was used. As part of the migration to Writeable, the interface here was updated to leverage Writeable.Reader. relates to #34389.
This commit is contained in:
parent
99a50ac3b7
commit
5640197632
|
@ -103,7 +103,7 @@ public class PainlessExecuteAction extends Action<PainlessExecuteAction.Response
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Response newResponse() {
|
public Response newResponse() {
|
||||||
return new Response();
|
throw new UnsupportedOperationException("usage of Streamable is to be replaced by Writeable");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Request extends SingleShardRequest<Request> implements ToXContentObject {
|
public static class Request extends SingleShardRequest<Request> implements ToXContentObject {
|
||||||
|
@ -388,20 +388,22 @@ public class PainlessExecuteAction extends Action<PainlessExecuteAction.Response
|
||||||
|
|
||||||
private Object result;
|
private Object result;
|
||||||
|
|
||||||
Response() {}
|
|
||||||
|
|
||||||
Response(Object result) {
|
Response(Object result) {
|
||||||
this.result = result;
|
this.result = result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Response(StreamInput in) throws IOException {
|
||||||
|
super(in);
|
||||||
|
result = in.readGenericValue();
|
||||||
|
}
|
||||||
|
|
||||||
public Object getResult() {
|
public Object getResult() {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void readFrom(StreamInput in) throws IOException {
|
public void readFrom(StreamInput in) throws IOException {
|
||||||
super.readFrom(in);
|
throw new UnsupportedOperationException("usage of Streamable is to be replaced by Writeable");
|
||||||
result = in.readGenericValue();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -476,8 +478,8 @@ public class PainlessExecuteAction extends Action<PainlessExecuteAction.Response
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Response newResponse() {
|
protected Writeable.Reader<Response> getResponseReader() {
|
||||||
return new Response();
|
return Response::new;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -18,17 +18,57 @@
|
||||||
*/
|
*/
|
||||||
package org.elasticsearch.painless.action;
|
package org.elasticsearch.painless.action;
|
||||||
|
|
||||||
import org.elasticsearch.test.AbstractStreamableTestCase;
|
import org.elasticsearch.common.io.stream.Writeable;
|
||||||
|
import org.elasticsearch.common.xcontent.XContentParser;
|
||||||
|
import org.elasticsearch.test.AbstractSerializingTestCase;
|
||||||
|
|
||||||
public class PainlessExecuteResponseTests extends AbstractStreamableTestCase<PainlessExecuteAction.Response> {
|
import java.io.IOException;
|
||||||
|
|
||||||
|
public class PainlessExecuteResponseTests extends AbstractSerializingTestCase<PainlessExecuteAction.Response> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected PainlessExecuteAction.Response createBlankInstance() {
|
protected Writeable.Reader<PainlessExecuteAction.Response> instanceReader() {
|
||||||
return new PainlessExecuteAction.Response();
|
return PainlessExecuteAction.Response::new;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected PainlessExecuteAction.Response createTestInstance() {
|
protected PainlessExecuteAction.Response createTestInstance() {
|
||||||
return new PainlessExecuteAction.Response(randomAlphaOfLength(10));
|
Object result;
|
||||||
|
switch (randomIntBetween(0, 2)) {
|
||||||
|
case 0:
|
||||||
|
result = randomAlphaOfLength(10);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
result = randomBoolean();
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
result = randomDoubleBetween(-10, 10, true);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new IllegalStateException("invalid branch");
|
||||||
|
}
|
||||||
|
return new PainlessExecuteAction.Response(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected PainlessExecuteAction.Response doParseInstance(XContentParser parser) throws IOException {
|
||||||
|
parser.nextToken(); // START-OBJECT
|
||||||
|
parser.nextToken(); // FIELD-NAME
|
||||||
|
XContentParser.Token token = parser.nextToken(); // result value
|
||||||
|
Object result;
|
||||||
|
switch (token) {
|
||||||
|
case VALUE_STRING:
|
||||||
|
result = parser.text();
|
||||||
|
break;
|
||||||
|
case VALUE_BOOLEAN:
|
||||||
|
result = parser.booleanValue();
|
||||||
|
break;
|
||||||
|
case VALUE_NUMBER:
|
||||||
|
result = parser.doubleValue();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new IOException("invalid response");
|
||||||
|
}
|
||||||
|
return new PainlessExecuteAction.Response(result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -71,7 +71,7 @@ public class AnalyzeResponse extends ActionResponse implements Iterable<AnalyzeR
|
||||||
return Objects.hash(term, startOffset, endOffset, position, positionLength, attributes, type);
|
return Objects.hash(term, startOffset, endOffset, position, positionLength, attributes, type);
|
||||||
}
|
}
|
||||||
|
|
||||||
public AnalyzeToken(String term, int position, int startOffset, int endOffset, int positionLength,
|
AnalyzeToken(String term, int position, int startOffset, int endOffset, int positionLength,
|
||||||
String type, Map<String, Object> attributes) {
|
String type, Map<String, Object> attributes) {
|
||||||
this.term = term;
|
this.term = term;
|
||||||
this.position = position;
|
this.position = position;
|
||||||
|
@ -82,7 +82,7 @@ public class AnalyzeResponse extends ActionResponse implements Iterable<AnalyzeR
|
||||||
this.attributes = attributes;
|
this.attributes = attributes;
|
||||||
}
|
}
|
||||||
|
|
||||||
public AnalyzeToken(StreamInput in) throws IOException {
|
AnalyzeToken(StreamInput in) throws IOException {
|
||||||
term = in.readString();
|
term = in.readString();
|
||||||
startOffset = in.readInt();
|
startOffset = in.readInt();
|
||||||
endOffset = in.readInt();
|
endOffset = in.readInt();
|
||||||
|
@ -203,7 +203,6 @@ public class AnalyzeResponse extends ActionResponse implements Iterable<AnalyzeR
|
||||||
}
|
}
|
||||||
|
|
||||||
private final DetailAnalyzeResponse detail;
|
private final DetailAnalyzeResponse detail;
|
||||||
|
|
||||||
private final List<AnalyzeToken> tokens;
|
private final List<AnalyzeToken> tokens;
|
||||||
|
|
||||||
public AnalyzeResponse(List<AnalyzeToken> tokens, DetailAnalyzeResponse detail) {
|
public AnalyzeResponse(List<AnalyzeToken> tokens, DetailAnalyzeResponse detail) {
|
||||||
|
|
|
@ -96,11 +96,6 @@ public class TransportAnalyzeAction extends TransportSingleShardAction<AnalyzeRe
|
||||||
this.environment = environment;
|
this.environment = environment;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected AnalyzeResponse newResponse() {
|
|
||||||
throw new UnsupportedOperationException("usage of Streamable is to be replaced by Writeable");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Writeable.Reader<AnalyzeResponse> getResponseReader() {
|
protected Writeable.Reader<AnalyzeResponse> getResponseReader() {
|
||||||
return AnalyzeResponse::new;
|
return AnalyzeResponse::new;
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
package org.elasticsearch.action.admin.indices.mapping.get;
|
package org.elasticsearch.action.admin.indices.mapping.get;
|
||||||
|
|
||||||
import org.elasticsearch.action.Action;
|
import org.elasticsearch.action.Action;
|
||||||
|
import org.elasticsearch.common.io.stream.Writeable;
|
||||||
|
|
||||||
public class GetFieldMappingsAction extends Action<GetFieldMappingsResponse> {
|
public class GetFieldMappingsAction extends Action<GetFieldMappingsResponse> {
|
||||||
|
|
||||||
|
@ -32,6 +33,11 @@ public class GetFieldMappingsAction extends Action<GetFieldMappingsResponse> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GetFieldMappingsResponse newResponse() {
|
public GetFieldMappingsResponse newResponse() {
|
||||||
return new GetFieldMappingsResponse();
|
throw new UnsupportedOperationException("usage of Streamable is to be replaced by Writeable");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Writeable.Reader<GetFieldMappingsResponse> getResponseReader() {
|
||||||
|
return GetFieldMappingsResponse::new;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,9 +92,33 @@ public class GetFieldMappingsResponse extends ActionResponse implements ToXConte
|
||||||
this.mappings = mappings;
|
this.mappings = mappings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
GetFieldMappingsResponse() {
|
GetFieldMappingsResponse() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GetFieldMappingsResponse(StreamInput in) throws IOException {
|
||||||
|
super(in);
|
||||||
|
int size = in.readVInt();
|
||||||
|
Map<String, Map<String, Map<String, FieldMappingMetaData>>> indexMapBuilder = new HashMap<>(size);
|
||||||
|
for (int i = 0; i < size; i++) {
|
||||||
|
String index = in.readString();
|
||||||
|
int typesSize = in.readVInt();
|
||||||
|
Map<String, Map<String, FieldMappingMetaData>> typeMapBuilder = new HashMap<>(typesSize);
|
||||||
|
for (int j = 0; j < typesSize; j++) {
|
||||||
|
String type = in.readString();
|
||||||
|
int fieldSize = in.readVInt();
|
||||||
|
Map<String, FieldMappingMetaData> fieldMapBuilder = new HashMap<>(fieldSize);
|
||||||
|
for (int k = 0; k < fieldSize; k++) {
|
||||||
|
fieldMapBuilder.put(in.readString(), new FieldMappingMetaData(in.readString(), in.readBytesReference()));
|
||||||
|
}
|
||||||
|
typeMapBuilder.put(type, unmodifiableMap(fieldMapBuilder));
|
||||||
|
}
|
||||||
|
indexMapBuilder.put(index, unmodifiableMap(typeMapBuilder));
|
||||||
|
}
|
||||||
|
mappings = unmodifiableMap(indexMapBuilder);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/** returns the retrieved field mapping. The return map keys are index, type, field (as specified in the request). */
|
/** returns the retrieved field mapping. The return map keys are index, type, field (as specified in the request). */
|
||||||
public Map<String, Map<String, Map<String, FieldMappingMetaData>>> mappings() {
|
public Map<String, Map<String, Map<String, FieldMappingMetaData>>> mappings() {
|
||||||
return mappings;
|
return mappings;
|
||||||
|
@ -269,25 +293,7 @@ public class GetFieldMappingsResponse extends ActionResponse implements ToXConte
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void readFrom(StreamInput in) throws IOException {
|
public void readFrom(StreamInput in) throws IOException {
|
||||||
super.readFrom(in);
|
throw new UnsupportedOperationException("usage of Streamable is to be replaced by Writeable");
|
||||||
int size = in.readVInt();
|
|
||||||
Map<String, Map<String, Map<String, FieldMappingMetaData>>> indexMapBuilder = new HashMap<>(size);
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
String index = in.readString();
|
|
||||||
int typesSize = in.readVInt();
|
|
||||||
Map<String, Map<String, FieldMappingMetaData>> typeMapBuilder = new HashMap<>(typesSize);
|
|
||||||
for (int j = 0; j < typesSize; j++) {
|
|
||||||
String type = in.readString();
|
|
||||||
int fieldSize = in.readVInt();
|
|
||||||
Map<String, FieldMappingMetaData> fieldMapBuilder = new HashMap<>(fieldSize);
|
|
||||||
for (int k = 0; k < fieldSize; k++) {
|
|
||||||
fieldMapBuilder.put(in.readString(), new FieldMappingMetaData(in.readString(), in.readBytesReference()));
|
|
||||||
}
|
|
||||||
typeMapBuilder.put(type, unmodifiableMap(fieldMapBuilder));
|
|
||||||
}
|
|
||||||
indexMapBuilder.put(index, unmodifiableMap(typeMapBuilder));
|
|
||||||
}
|
|
||||||
mappings = unmodifiableMap(indexMapBuilder);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -32,6 +32,7 @@ import org.elasticsearch.cluster.routing.ShardsIterator;
|
||||||
import org.elasticsearch.cluster.service.ClusterService;
|
import org.elasticsearch.cluster.service.ClusterService;
|
||||||
import org.elasticsearch.common.bytes.BytesReference;
|
import org.elasticsearch.common.bytes.BytesReference;
|
||||||
import org.elasticsearch.common.inject.Inject;
|
import org.elasticsearch.common.inject.Inject;
|
||||||
|
import org.elasticsearch.common.io.stream.Writeable;
|
||||||
import org.elasticsearch.common.regex.Regex;
|
import org.elasticsearch.common.regex.Regex;
|
||||||
import org.elasticsearch.common.xcontent.ToXContent;
|
import org.elasticsearch.common.xcontent.ToXContent;
|
||||||
import org.elasticsearch.common.xcontent.XContentHelper;
|
import org.elasticsearch.common.xcontent.XContentHelper;
|
||||||
|
@ -123,8 +124,8 @@ public class TransportGetFieldMappingsIndexAction
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected GetFieldMappingsResponse newResponse() {
|
protected Writeable.Reader<GetFieldMappingsResponse> getResponseReader() {
|
||||||
return new GetFieldMappingsResponse();
|
return GetFieldMappingsResponse::new;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
package org.elasticsearch.action.explain;
|
package org.elasticsearch.action.explain;
|
||||||
|
|
||||||
import org.elasticsearch.action.Action;
|
import org.elasticsearch.action.Action;
|
||||||
|
import org.elasticsearch.common.io.stream.Writeable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Entry point for the explain feature.
|
* Entry point for the explain feature.
|
||||||
|
@ -35,6 +36,11 @@ public class ExplainAction extends Action<ExplainResponse> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ExplainResponse newResponse() {
|
public ExplainResponse newResponse() {
|
||||||
return new ExplainResponse();
|
throw new UnsupportedOperationException("usage of Streamable is to be replaced by Writeable");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Writeable.Reader<ExplainResponse> getResponseReader() {
|
||||||
|
return ExplainResponse::new;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,6 +60,7 @@ public class ExplainResponse extends ActionResponse implements StatusToXContentO
|
||||||
private Explanation explanation;
|
private Explanation explanation;
|
||||||
private GetResult getResult;
|
private GetResult getResult;
|
||||||
|
|
||||||
|
// TODO(talevy): remove dependency on empty constructor from ExplainResponseTests
|
||||||
ExplainResponse() {
|
ExplainResponse() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,6 +81,20 @@ public class ExplainResponse extends ActionResponse implements StatusToXContentO
|
||||||
this.getResult = getResult;
|
this.getResult = getResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ExplainResponse(StreamInput in) throws IOException {
|
||||||
|
super(in);
|
||||||
|
index = in.readString();
|
||||||
|
type = in.readString();
|
||||||
|
id = in.readString();
|
||||||
|
exists = in.readBoolean();
|
||||||
|
if (in.readBoolean()) {
|
||||||
|
explanation = readExplanation(in);
|
||||||
|
}
|
||||||
|
if (in.readBoolean()) {
|
||||||
|
getResult = GetResult.readGetResult(in);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public String getIndex() {
|
public String getIndex() {
|
||||||
return index;
|
return index;
|
||||||
}
|
}
|
||||||
|
@ -123,17 +138,7 @@ public class ExplainResponse extends ActionResponse implements StatusToXContentO
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void readFrom(StreamInput in) throws IOException {
|
public void readFrom(StreamInput in) throws IOException {
|
||||||
super.readFrom(in);
|
throw new UnsupportedOperationException("usage of Streamable is to be replaced by Writeable");
|
||||||
index = in.readString();
|
|
||||||
type = in.readString();
|
|
||||||
id = in.readString();
|
|
||||||
exists = in.readBoolean();
|
|
||||||
if (in.readBoolean()) {
|
|
||||||
explanation = readExplanation(in);
|
|
||||||
}
|
|
||||||
if (in.readBoolean()) {
|
|
||||||
getResult = GetResult.readGetResult(in);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -32,6 +32,7 @@ import org.elasticsearch.cluster.routing.ShardIterator;
|
||||||
import org.elasticsearch.cluster.service.ClusterService;
|
import org.elasticsearch.cluster.service.ClusterService;
|
||||||
import org.elasticsearch.common.Strings;
|
import org.elasticsearch.common.Strings;
|
||||||
import org.elasticsearch.common.inject.Inject;
|
import org.elasticsearch.common.inject.Inject;
|
||||||
|
import org.elasticsearch.common.io.stream.Writeable;
|
||||||
import org.elasticsearch.common.lease.Releasables;
|
import org.elasticsearch.common.lease.Releasables;
|
||||||
import org.elasticsearch.index.IndexService;
|
import org.elasticsearch.index.IndexService;
|
||||||
import org.elasticsearch.index.engine.Engine;
|
import org.elasticsearch.index.engine.Engine;
|
||||||
|
@ -152,8 +153,8 @@ public class TransportExplainAction extends TransportSingleShardAction<ExplainRe
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ExplainResponse newResponse() {
|
protected Writeable.Reader<ExplainResponse> getResponseReader() {
|
||||||
return new ExplainResponse();
|
return ExplainResponse::new;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
|
||||||
import org.elasticsearch.cluster.routing.ShardsIterator;
|
import org.elasticsearch.cluster.routing.ShardsIterator;
|
||||||
import org.elasticsearch.cluster.service.ClusterService;
|
import org.elasticsearch.cluster.service.ClusterService;
|
||||||
import org.elasticsearch.common.inject.Inject;
|
import org.elasticsearch.common.inject.Inject;
|
||||||
|
import org.elasticsearch.common.io.stream.Writeable;
|
||||||
import org.elasticsearch.index.mapper.MappedFieldType;
|
import org.elasticsearch.index.mapper.MappedFieldType;
|
||||||
import org.elasticsearch.index.mapper.MapperService;
|
import org.elasticsearch.index.mapper.MapperService;
|
||||||
import org.elasticsearch.index.mapper.ObjectMapper;
|
import org.elasticsearch.index.mapper.ObjectMapper;
|
||||||
|
@ -114,8 +115,8 @@ public class TransportFieldCapabilitiesIndexAction extends TransportSingleShardA
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected FieldCapabilitiesIndexResponse newResponse() {
|
protected Writeable.Reader<FieldCapabilitiesIndexResponse> getResponseReader() {
|
||||||
return new FieldCapabilitiesIndexResponse();
|
return FieldCapabilitiesIndexResponse::new;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
package org.elasticsearch.action.get;
|
package org.elasticsearch.action.get;
|
||||||
|
|
||||||
import org.elasticsearch.action.Action;
|
import org.elasticsearch.action.Action;
|
||||||
|
import org.elasticsearch.common.io.stream.Writeable;
|
||||||
|
|
||||||
public class GetAction extends Action<GetResponse> {
|
public class GetAction extends Action<GetResponse> {
|
||||||
|
|
||||||
|
@ -32,6 +33,11 @@ public class GetAction extends Action<GetResponse> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GetResponse newResponse() {
|
public GetResponse newResponse() {
|
||||||
return new GetResponse();
|
throw new UnsupportedOperationException("usage of Streamable is to be replaced by Writeable");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Writeable.Reader<GetResponse> getResponseReader() {
|
||||||
|
return GetResponse::new;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,7 +48,9 @@ public class GetResponse extends ActionResponse implements Iterable<DocumentFiel
|
||||||
|
|
||||||
GetResult getResult;
|
GetResult getResult;
|
||||||
|
|
||||||
GetResponse() {
|
GetResponse(StreamInput in) throws IOException {
|
||||||
|
super(in);
|
||||||
|
getResult = GetResult.readGetResult(in);
|
||||||
}
|
}
|
||||||
|
|
||||||
public GetResponse(GetResult getResult) {
|
public GetResponse(GetResult getResult) {
|
||||||
|
@ -203,8 +205,7 @@ public class GetResponse extends ActionResponse implements Iterable<DocumentFiel
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void readFrom(StreamInput in) throws IOException {
|
public void readFrom(StreamInput in) throws IOException {
|
||||||
super.readFrom(in);
|
throw new UnsupportedOperationException("usage of Streamable is to be replaced by Writeable");
|
||||||
getResult = GetResult.readGetResult(in);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -104,8 +104,7 @@ public class MultiGetItemResponse implements Streamable {
|
||||||
if (in.readBoolean()) {
|
if (in.readBoolean()) {
|
||||||
failure = MultiGetResponse.Failure.readFailure(in);
|
failure = MultiGetResponse.Failure.readFailure(in);
|
||||||
} else {
|
} else {
|
||||||
response = new GetResponse();
|
response = new GetResponse(in);
|
||||||
response.readFrom(in);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,9 +30,9 @@ import java.util.List;
|
||||||
|
|
||||||
public class MultiGetShardResponse extends ActionResponse {
|
public class MultiGetShardResponse extends ActionResponse {
|
||||||
|
|
||||||
IntArrayList locations;
|
final IntArrayList locations;
|
||||||
List<GetResponse> responses;
|
final List<GetResponse> responses;
|
||||||
List<MultiGetResponse.Failure> failures;
|
final List<MultiGetResponse.Failure> failures;
|
||||||
|
|
||||||
MultiGetShardResponse() {
|
MultiGetShardResponse() {
|
||||||
locations = new IntArrayList();
|
locations = new IntArrayList();
|
||||||
|
@ -40,6 +40,27 @@ public class MultiGetShardResponse extends ActionResponse {
|
||||||
failures = new ArrayList<>();
|
failures = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MultiGetShardResponse(StreamInput in) throws IOException {
|
||||||
|
super(in);
|
||||||
|
int size = in.readVInt();
|
||||||
|
locations = new IntArrayList(size);
|
||||||
|
responses = new ArrayList<>(size);
|
||||||
|
failures = new ArrayList<>(size);
|
||||||
|
for (int i = 0; i < size; i++) {
|
||||||
|
locations.add(in.readVInt());
|
||||||
|
if (in.readBoolean()) {
|
||||||
|
responses.add(new GetResponse(in));
|
||||||
|
} else {
|
||||||
|
responses.add(null);
|
||||||
|
}
|
||||||
|
if (in.readBoolean()) {
|
||||||
|
failures.add(MultiGetResponse.Failure.readFailure(in));
|
||||||
|
} else {
|
||||||
|
failures.add(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void add(int location, GetResponse response) {
|
public void add(int location, GetResponse response) {
|
||||||
locations.add(location);
|
locations.add(location);
|
||||||
responses.add(response);
|
responses.add(response);
|
||||||
|
@ -54,26 +75,7 @@ public class MultiGetShardResponse extends ActionResponse {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void readFrom(StreamInput in) throws IOException {
|
public void readFrom(StreamInput in) throws IOException {
|
||||||
super.readFrom(in);
|
throw new UnsupportedOperationException("usage of Streamable is to be replaced by Writeable");
|
||||||
int size = in.readVInt();
|
|
||||||
locations = new IntArrayList(size);
|
|
||||||
responses = new ArrayList<>(size);
|
|
||||||
failures = new ArrayList<>(size);
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
locations.add(in.readVInt());
|
|
||||||
if (in.readBoolean()) {
|
|
||||||
GetResponse response = new GetResponse();
|
|
||||||
response.readFrom(in);
|
|
||||||
responses.add(response);
|
|
||||||
} else {
|
|
||||||
responses.add(null);
|
|
||||||
}
|
|
||||||
if (in.readBoolean()) {
|
|
||||||
failures.add(MultiGetResponse.Failure.readFailure(in));
|
|
||||||
} else {
|
|
||||||
failures.add(null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
|
||||||
import org.elasticsearch.cluster.routing.ShardIterator;
|
import org.elasticsearch.cluster.routing.ShardIterator;
|
||||||
import org.elasticsearch.cluster.service.ClusterService;
|
import org.elasticsearch.cluster.service.ClusterService;
|
||||||
import org.elasticsearch.common.inject.Inject;
|
import org.elasticsearch.common.inject.Inject;
|
||||||
|
import org.elasticsearch.common.io.stream.Writeable;
|
||||||
import org.elasticsearch.index.IndexService;
|
import org.elasticsearch.index.IndexService;
|
||||||
import org.elasticsearch.index.get.GetResult;
|
import org.elasticsearch.index.get.GetResult;
|
||||||
import org.elasticsearch.index.shard.IndexShard;
|
import org.elasticsearch.index.shard.IndexShard;
|
||||||
|
@ -108,8 +109,8 @@ public class TransportGetAction extends TransportSingleShardAction<GetRequest, G
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected GetResponse newResponse() {
|
protected Writeable.Reader<GetResponse> getResponseReader() {
|
||||||
return new GetResponse();
|
return GetResponse::new;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
|
||||||
import org.elasticsearch.cluster.routing.ShardIterator;
|
import org.elasticsearch.cluster.routing.ShardIterator;
|
||||||
import org.elasticsearch.cluster.service.ClusterService;
|
import org.elasticsearch.cluster.service.ClusterService;
|
||||||
import org.elasticsearch.common.inject.Inject;
|
import org.elasticsearch.common.inject.Inject;
|
||||||
|
import org.elasticsearch.common.io.stream.Writeable;
|
||||||
import org.elasticsearch.index.IndexService;
|
import org.elasticsearch.index.IndexService;
|
||||||
import org.elasticsearch.index.get.GetResult;
|
import org.elasticsearch.index.get.GetResult;
|
||||||
import org.elasticsearch.index.shard.IndexShard;
|
import org.elasticsearch.index.shard.IndexShard;
|
||||||
|
@ -57,8 +58,8 @@ public class TransportShardMultiGetAction extends TransportSingleShardAction<Mul
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected MultiGetShardResponse newResponse() {
|
protected Writeable.Reader<MultiGetShardResponse> getResponseReader() {
|
||||||
return new MultiGetShardResponse();
|
return MultiGetShardResponse::new;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -120,16 +120,7 @@ public abstract class TransportSingleShardAction<Request extends SingleShardRequ
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Deprecated
|
protected abstract Writeable.Reader<Response> getResponseReader();
|
||||||
protected abstract Response newResponse();
|
|
||||||
|
|
||||||
protected Writeable.Reader<Response> getResponseReader() {
|
|
||||||
return in -> {
|
|
||||||
Response response = newResponse();
|
|
||||||
response.readFrom(in);
|
|
||||||
return response;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
protected abstract boolean resolveIndex(Request request);
|
protected abstract boolean resolveIndex(Request request);
|
||||||
|
|
||||||
|
|
|
@ -105,8 +105,7 @@ public class MultiTermVectorsItemResponse implements Streamable {
|
||||||
if (in.readBoolean()) {
|
if (in.readBoolean()) {
|
||||||
failure = MultiTermVectorsResponse.Failure.readFailure(in);
|
failure = MultiTermVectorsResponse.Failure.readFailure(in);
|
||||||
} else {
|
} else {
|
||||||
response = new TermVectorsResponse();
|
response = new TermVectorsResponse(in);
|
||||||
response.readFrom(in);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,9 +30,9 @@ import java.util.List;
|
||||||
|
|
||||||
public class MultiTermVectorsShardResponse extends ActionResponse {
|
public class MultiTermVectorsShardResponse extends ActionResponse {
|
||||||
|
|
||||||
IntArrayList locations;
|
final IntArrayList locations;
|
||||||
List<TermVectorsResponse> responses;
|
final List<TermVectorsResponse> responses;
|
||||||
List<MultiTermVectorsResponse.Failure> failures;
|
final List<MultiTermVectorsResponse.Failure> failures;
|
||||||
|
|
||||||
MultiTermVectorsShardResponse() {
|
MultiTermVectorsShardResponse() {
|
||||||
locations = new IntArrayList();
|
locations = new IntArrayList();
|
||||||
|
@ -40,6 +40,27 @@ public class MultiTermVectorsShardResponse extends ActionResponse {
|
||||||
failures = new ArrayList<>();
|
failures = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MultiTermVectorsShardResponse(StreamInput in) throws IOException {
|
||||||
|
super(in);
|
||||||
|
int size = in.readVInt();
|
||||||
|
locations = new IntArrayList(size);
|
||||||
|
responses = new ArrayList<>(size);
|
||||||
|
failures = new ArrayList<>(size);
|
||||||
|
for (int i = 0; i < size; i++) {
|
||||||
|
locations.add(in.readVInt());
|
||||||
|
if (in.readBoolean()) {
|
||||||
|
responses.add(new TermVectorsResponse(in));
|
||||||
|
} else {
|
||||||
|
responses.add(null);
|
||||||
|
}
|
||||||
|
if (in.readBoolean()) {
|
||||||
|
failures.add(MultiTermVectorsResponse.Failure.readFailure(in));
|
||||||
|
} else {
|
||||||
|
failures.add(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void add(int location, TermVectorsResponse response) {
|
public void add(int location, TermVectorsResponse response) {
|
||||||
locations.add(location);
|
locations.add(location);
|
||||||
responses.add(response);
|
responses.add(response);
|
||||||
|
@ -54,26 +75,7 @@ public class MultiTermVectorsShardResponse extends ActionResponse {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void readFrom(StreamInput in) throws IOException {
|
public void readFrom(StreamInput in) throws IOException {
|
||||||
super.readFrom(in);
|
throw new UnsupportedOperationException("usage of Streamable is to be replaced by Writeable");
|
||||||
int size = in.readVInt();
|
|
||||||
locations = new IntArrayList(size);
|
|
||||||
responses = new ArrayList<>(size);
|
|
||||||
failures = new ArrayList<>(size);
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
locations.add(in.readVInt());
|
|
||||||
if (in.readBoolean()) {
|
|
||||||
TermVectorsResponse response = new TermVectorsResponse();
|
|
||||||
response.readFrom(in);
|
|
||||||
responses.add(response);
|
|
||||||
} else {
|
|
||||||
responses.add(null);
|
|
||||||
}
|
|
||||||
if (in.readBoolean()) {
|
|
||||||
failures.add(MultiTermVectorsResponse.Failure.readFailure(in));
|
|
||||||
} else {
|
|
||||||
failures.add(null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
package org.elasticsearch.action.termvectors;
|
package org.elasticsearch.action.termvectors;
|
||||||
|
|
||||||
import org.elasticsearch.action.Action;
|
import org.elasticsearch.action.Action;
|
||||||
|
import org.elasticsearch.common.io.stream.Writeable;
|
||||||
|
|
||||||
public class TermVectorsAction extends Action<TermVectorsResponse> {
|
public class TermVectorsAction extends Action<TermVectorsResponse> {
|
||||||
|
|
||||||
|
@ -32,6 +33,11 @@ public class TermVectorsAction extends Action<TermVectorsResponse> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TermVectorsResponse newResponse() {
|
public TermVectorsResponse newResponse() {
|
||||||
return new TermVectorsResponse();
|
throw new UnsupportedOperationException("usage of Streamable is to be replaced by Writeable");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Writeable.Reader<TermVectorsResponse> getResponseReader() {
|
||||||
|
return TermVectorsResponse::new;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -103,6 +103,20 @@ public class TermVectorsResponse extends ActionResponse implements ToXContentObj
|
||||||
TermVectorsResponse() {
|
TermVectorsResponse() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TermVectorsResponse(StreamInput in) throws IOException {
|
||||||
|
index = in.readString();
|
||||||
|
type = in.readString();
|
||||||
|
id = in.readString();
|
||||||
|
docVersion = in.readVLong();
|
||||||
|
exists = in.readBoolean();
|
||||||
|
artificial = in.readBoolean();
|
||||||
|
tookInMillis = in.readVLong();
|
||||||
|
if (in.readBoolean()) {
|
||||||
|
headerRef = in.readBytesReference();
|
||||||
|
termVectors = in.readBytesReference();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeTo(StreamOutput out) throws IOException {
|
public void writeTo(StreamOutput out) throws IOException {
|
||||||
out.writeString(index);
|
out.writeString(index);
|
||||||
|
@ -127,17 +141,7 @@ public class TermVectorsResponse extends ActionResponse implements ToXContentObj
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void readFrom(StreamInput in) throws IOException {
|
public void readFrom(StreamInput in) throws IOException {
|
||||||
index = in.readString();
|
throw new UnsupportedOperationException("usage of Streamable is to be replaced by Writeable");
|
||||||
type = in.readString();
|
|
||||||
id = in.readString();
|
|
||||||
docVersion = in.readVLong();
|
|
||||||
exists = in.readBoolean();
|
|
||||||
artificial = in.readBoolean();
|
|
||||||
tookInMillis = in.readVLong();
|
|
||||||
if (in.readBoolean()) {
|
|
||||||
headerRef = in.readBytesReference();
|
|
||||||
termVectors = in.readBytesReference();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Fields getFields() throws IOException {
|
public Fields getFields() throws IOException {
|
||||||
|
|
|
@ -28,6 +28,7 @@ import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
|
||||||
import org.elasticsearch.cluster.routing.ShardIterator;
|
import org.elasticsearch.cluster.routing.ShardIterator;
|
||||||
import org.elasticsearch.cluster.service.ClusterService;
|
import org.elasticsearch.cluster.service.ClusterService;
|
||||||
import org.elasticsearch.common.inject.Inject;
|
import org.elasticsearch.common.inject.Inject;
|
||||||
|
import org.elasticsearch.common.io.stream.Writeable;
|
||||||
import org.elasticsearch.index.IndexService;
|
import org.elasticsearch.index.IndexService;
|
||||||
import org.elasticsearch.index.shard.IndexShard;
|
import org.elasticsearch.index.shard.IndexShard;
|
||||||
import org.elasticsearch.index.shard.ShardId;
|
import org.elasticsearch.index.shard.ShardId;
|
||||||
|
@ -58,8 +59,8 @@ public class TransportShardMultiTermsVectorAction extends
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected MultiTermVectorsShardResponse newResponse() {
|
protected Writeable.Reader<MultiTermVectorsShardResponse> getResponseReader() {
|
||||||
return new MultiTermVectorsShardResponse();
|
return MultiTermVectorsShardResponse::new;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -29,6 +29,7 @@ import org.elasticsearch.cluster.routing.GroupShardsIterator;
|
||||||
import org.elasticsearch.cluster.routing.ShardIterator;
|
import org.elasticsearch.cluster.routing.ShardIterator;
|
||||||
import org.elasticsearch.cluster.service.ClusterService;
|
import org.elasticsearch.cluster.service.ClusterService;
|
||||||
import org.elasticsearch.common.inject.Inject;
|
import org.elasticsearch.common.inject.Inject;
|
||||||
|
import org.elasticsearch.common.io.stream.Writeable;
|
||||||
import org.elasticsearch.index.IndexService;
|
import org.elasticsearch.index.IndexService;
|
||||||
import org.elasticsearch.index.shard.IndexShard;
|
import org.elasticsearch.index.shard.IndexShard;
|
||||||
import org.elasticsearch.index.shard.ShardId;
|
import org.elasticsearch.index.shard.ShardId;
|
||||||
|
@ -110,8 +111,8 @@ public class TransportTermVectorsAction extends TransportSingleShardAction<TermV
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected TermVectorsResponse newResponse() {
|
protected Writeable.Reader<TermVectorsResponse> getResponseReader() {
|
||||||
return new TermVectorsResponse();
|
return TermVectorsResponse::new;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -35,6 +35,7 @@ import org.elasticsearch.cluster.service.ClusterService;
|
||||||
import org.elasticsearch.common.inject.Inject;
|
import org.elasticsearch.common.inject.Inject;
|
||||||
import org.elasticsearch.common.io.stream.StreamInput;
|
import org.elasticsearch.common.io.stream.StreamInput;
|
||||||
import org.elasticsearch.common.io.stream.StreamOutput;
|
import org.elasticsearch.common.io.stream.StreamOutput;
|
||||||
|
import org.elasticsearch.common.io.stream.Writeable;
|
||||||
import org.elasticsearch.common.lease.Releasable;
|
import org.elasticsearch.common.lease.Releasable;
|
||||||
import org.elasticsearch.index.IndexService;
|
import org.elasticsearch.index.IndexService;
|
||||||
import org.elasticsearch.index.shard.IndexShard;
|
import org.elasticsearch.index.shard.IndexShard;
|
||||||
|
@ -119,8 +120,8 @@ public class RetentionLeaseActions {
|
||||||
abstract void doRetentionLeaseAction(IndexShard indexShard, T request, ActionListener<Response> listener);
|
abstract void doRetentionLeaseAction(IndexShard indexShard, T request, ActionListener<Response> listener);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Response newResponse() {
|
protected Writeable.Reader<Response> getResponseReader() {
|
||||||
return new Response();
|
return Response::new;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -169,6 +170,10 @@ public class RetentionLeaseActions {
|
||||||
ActionListener.map(listener, r -> new Response()));
|
ActionListener.map(listener, r -> new Response()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Writeable.Reader<Response> getResponseReader() {
|
||||||
|
return Response::new;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -392,6 +397,12 @@ public class RetentionLeaseActions {
|
||||||
|
|
||||||
public static class Response extends ActionResponse {
|
public static class Response extends ActionResponse {
|
||||||
|
|
||||||
|
public Response() {
|
||||||
|
}
|
||||||
|
|
||||||
|
Response(StreamInput in) throws IOException {
|
||||||
|
super(in);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,11 +23,12 @@ import org.elasticsearch.action.admin.indices.mapping.get.GetFieldMappingsRespon
|
||||||
import org.elasticsearch.common.bytes.BytesArray;
|
import org.elasticsearch.common.bytes.BytesArray;
|
||||||
import org.elasticsearch.common.io.stream.BytesStreamOutput;
|
import org.elasticsearch.common.io.stream.BytesStreamOutput;
|
||||||
import org.elasticsearch.common.io.stream.StreamInput;
|
import org.elasticsearch.common.io.stream.StreamInput;
|
||||||
|
import org.elasticsearch.common.io.stream.Writeable;
|
||||||
import org.elasticsearch.common.xcontent.LoggingDeprecationHandler;
|
import org.elasticsearch.common.xcontent.LoggingDeprecationHandler;
|
||||||
import org.elasticsearch.common.xcontent.ToXContent;
|
import org.elasticsearch.common.xcontent.ToXContent;
|
||||||
import org.elasticsearch.common.xcontent.XContentParser;
|
import org.elasticsearch.common.xcontent.XContentParser;
|
||||||
import org.elasticsearch.common.xcontent.XContentType;
|
import org.elasticsearch.common.xcontent.XContentType;
|
||||||
import org.elasticsearch.test.AbstractStreamableXContentTestCase;
|
import org.elasticsearch.test.AbstractSerializingTestCase;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
@ -38,7 +39,7 @@ import java.util.function.Predicate;
|
||||||
import static org.elasticsearch.rest.BaseRestHandler.INCLUDE_TYPE_NAME_PARAMETER;
|
import static org.elasticsearch.rest.BaseRestHandler.INCLUDE_TYPE_NAME_PARAMETER;
|
||||||
import static org.hamcrest.CoreMatchers.equalTo;
|
import static org.hamcrest.CoreMatchers.equalTo;
|
||||||
|
|
||||||
public class GetFieldMappingsResponseTests extends AbstractStreamableXContentTestCase<GetFieldMappingsResponse> {
|
public class GetFieldMappingsResponseTests extends AbstractSerializingTestCase<GetFieldMappingsResponse> {
|
||||||
|
|
||||||
public void testManualSerialization() throws IOException {
|
public void testManualSerialization() throws IOException {
|
||||||
Map<String, Map<String, Map<String, FieldMappingMetaData>>> mappings = new HashMap<>();
|
Map<String, Map<String, Map<String, FieldMappingMetaData>>> mappings = new HashMap<>();
|
||||||
|
@ -48,9 +49,8 @@ public class GetFieldMappingsResponseTests extends AbstractStreamableXContentTes
|
||||||
|
|
||||||
try (BytesStreamOutput out = new BytesStreamOutput()) {
|
try (BytesStreamOutput out = new BytesStreamOutput()) {
|
||||||
response.writeTo(out);
|
response.writeTo(out);
|
||||||
GetFieldMappingsResponse serialized = new GetFieldMappingsResponse();
|
|
||||||
try (StreamInput in = StreamInput.wrap(out.bytes().toBytesRef().bytes)) {
|
try (StreamInput in = StreamInput.wrap(out.bytes().toBytesRef().bytes)) {
|
||||||
serialized.readFrom(in);
|
GetFieldMappingsResponse serialized = new GetFieldMappingsResponse(in);
|
||||||
FieldMappingMetaData metaData = serialized.fieldMappings("index", "type", "field");
|
FieldMappingMetaData metaData = serialized.fieldMappings("index", "type", "field");
|
||||||
assertNotNull(metaData);
|
assertNotNull(metaData);
|
||||||
assertEquals(new BytesArray("{}"), metaData.getSource());
|
assertEquals(new BytesArray("{}"), metaData.getSource());
|
||||||
|
@ -106,13 +106,13 @@ public class GetFieldMappingsResponseTests extends AbstractStreamableXContentTes
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected GetFieldMappingsResponse createBlankInstance() {
|
protected GetFieldMappingsResponse createTestInstance() {
|
||||||
return new GetFieldMappingsResponse();
|
return new GetFieldMappingsResponse(randomMapping());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected GetFieldMappingsResponse createTestInstance() {
|
protected Writeable.Reader<GetFieldMappingsResponse> instanceReader() {
|
||||||
return new GetFieldMappingsResponse(randomMapping());
|
return GetFieldMappingsResponse::new;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -23,13 +23,14 @@ import org.apache.lucene.search.Explanation;
|
||||||
import org.elasticsearch.common.bytes.BytesArray;
|
import org.elasticsearch.common.bytes.BytesArray;
|
||||||
import org.elasticsearch.common.bytes.BytesReference;
|
import org.elasticsearch.common.bytes.BytesReference;
|
||||||
import org.elasticsearch.common.document.DocumentField;
|
import org.elasticsearch.common.document.DocumentField;
|
||||||
|
import org.elasticsearch.common.io.stream.Writeable;
|
||||||
import org.elasticsearch.common.xcontent.ToXContent;
|
import org.elasticsearch.common.xcontent.ToXContent;
|
||||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||||
import org.elasticsearch.common.xcontent.XContentFactory;
|
import org.elasticsearch.common.xcontent.XContentFactory;
|
||||||
import org.elasticsearch.common.xcontent.XContentParser;
|
import org.elasticsearch.common.xcontent.XContentParser;
|
||||||
import org.elasticsearch.common.xcontent.XContentType;
|
import org.elasticsearch.common.xcontent.XContentType;
|
||||||
import org.elasticsearch.index.get.GetResult;
|
import org.elasticsearch.index.get.GetResult;
|
||||||
import org.elasticsearch.test.AbstractStreamableXContentTestCase;
|
import org.elasticsearch.test.AbstractSerializingTestCase;
|
||||||
import org.elasticsearch.test.RandomObjects;
|
import org.elasticsearch.test.RandomObjects;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -42,15 +43,16 @@ import static java.util.Collections.singletonList;
|
||||||
import static java.util.Collections.singletonMap;
|
import static java.util.Collections.singletonMap;
|
||||||
import static org.hamcrest.Matchers.equalTo;
|
import static org.hamcrest.Matchers.equalTo;
|
||||||
|
|
||||||
public class ExplainResponseTests extends AbstractStreamableXContentTestCase<ExplainResponse> {
|
public class ExplainResponseTests extends AbstractSerializingTestCase<ExplainResponse> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ExplainResponse doParseInstance(XContentParser parser) throws IOException {
|
protected ExplainResponse doParseInstance(XContentParser parser) throws IOException {
|
||||||
return ExplainResponse.fromXContent(parser, randomBoolean());
|
return ExplainResponse.fromXContent(parser, randomBoolean());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ExplainResponse createBlankInstance() {
|
protected Writeable.Reader<ExplainResponse> instanceReader() {
|
||||||
return new ExplainResponse();
|
return ExplainResponse::new;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -77,8 +77,7 @@ public class TermVectorsUnitTests extends ESTestCase {
|
||||||
// read
|
// read
|
||||||
ByteArrayInputStream esInBuffer = new ByteArrayInputStream(outBuffer.toByteArray());
|
ByteArrayInputStream esInBuffer = new ByteArrayInputStream(outBuffer.toByteArray());
|
||||||
InputStreamStreamInput esBuffer = new InputStreamStreamInput(esInBuffer);
|
InputStreamStreamInput esBuffer = new InputStreamStreamInput(esInBuffer);
|
||||||
TermVectorsResponse inResponse = new TermVectorsResponse("a", "b", "c");
|
TermVectorsResponse inResponse = new TermVectorsResponse(esBuffer);
|
||||||
inResponse.readFrom(esBuffer);
|
|
||||||
|
|
||||||
// see if correct
|
// see if correct
|
||||||
checkIfStandardTermVector(inResponse);
|
checkIfStandardTermVector(inResponse);
|
||||||
|
@ -93,8 +92,7 @@ public class TermVectorsUnitTests extends ESTestCase {
|
||||||
// read
|
// read
|
||||||
esInBuffer = new ByteArrayInputStream(outBuffer.toByteArray());
|
esInBuffer = new ByteArrayInputStream(outBuffer.toByteArray());
|
||||||
esBuffer = new InputStreamStreamInput(esInBuffer);
|
esBuffer = new InputStreamStreamInput(esInBuffer);
|
||||||
inResponse = new TermVectorsResponse("a", "b", "c");
|
inResponse = new TermVectorsResponse(esBuffer);
|
||||||
inResponse.readFrom(esBuffer);
|
|
||||||
assertTrue(inResponse.isExists());
|
assertTrue(inResponse.isExists());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,7 @@ import org.elasticsearch.cluster.service.ClusterService;
|
||||||
import org.elasticsearch.common.inject.Inject;
|
import org.elasticsearch.common.inject.Inject;
|
||||||
import org.elasticsearch.common.io.stream.StreamInput;
|
import org.elasticsearch.common.io.stream.StreamInput;
|
||||||
import org.elasticsearch.common.io.stream.StreamOutput;
|
import org.elasticsearch.common.io.stream.StreamOutput;
|
||||||
|
import org.elasticsearch.common.io.stream.Writeable;
|
||||||
import org.elasticsearch.common.unit.ByteSizeValue;
|
import org.elasticsearch.common.unit.ByteSizeValue;
|
||||||
import org.elasticsearch.common.unit.TimeValue;
|
import org.elasticsearch.common.unit.TimeValue;
|
||||||
import org.elasticsearch.index.IndexNotFoundException;
|
import org.elasticsearch.index.IndexNotFoundException;
|
||||||
|
@ -61,7 +62,12 @@ public class ShardChangesAction extends Action<ShardChangesAction.Response> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Response newResponse() {
|
public Response newResponse() {
|
||||||
return new Response();
|
throw new UnsupportedOperationException("usage of Streamable is to be replaced by Writeable");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Writeable.Reader<Response> getResponseReader() {
|
||||||
|
return Response::new;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class Request extends SingleShardRequest<Request> {
|
public static class Request extends SingleShardRequest<Request> {
|
||||||
|
@ -246,6 +252,17 @@ public class ShardChangesAction extends Action<ShardChangesAction.Response> {
|
||||||
Response() {
|
Response() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Response(StreamInput in) throws IOException {
|
||||||
|
super(in);
|
||||||
|
mappingVersion = in.readVLong();
|
||||||
|
settingsVersion = in.readVLong();
|
||||||
|
globalCheckpoint = in.readZLong();
|
||||||
|
maxSeqNo = in.readZLong();
|
||||||
|
maxSeqNoOfUpdatesOrDeletes = in.readZLong();
|
||||||
|
operations = in.readArray(Translog.Operation::readOperation, Translog.Operation[]::new);
|
||||||
|
tookInMillis = in.readVLong();
|
||||||
|
}
|
||||||
|
|
||||||
Response(
|
Response(
|
||||||
final long mappingVersion,
|
final long mappingVersion,
|
||||||
final long settingsVersion,
|
final long settingsVersion,
|
||||||
|
@ -265,15 +282,8 @@ public class ShardChangesAction extends Action<ShardChangesAction.Response> {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void readFrom(final StreamInput in) throws IOException {
|
public void readFrom(final StreamInput in) {
|
||||||
super.readFrom(in);
|
throw new UnsupportedOperationException("usage of Streamable is to be replaced by Writeable");
|
||||||
mappingVersion = in.readVLong();
|
|
||||||
settingsVersion = in.readVLong();
|
|
||||||
globalCheckpoint = in.readZLong();
|
|
||||||
maxSeqNo = in.readZLong();
|
|
||||||
maxSeqNoOfUpdatesOrDeletes = in.readZLong();
|
|
||||||
operations = in.readArray(Translog.Operation::readOperation, Translog.Operation[]::new);
|
|
||||||
tookInMillis = in.readVLong();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -459,8 +469,8 @@ public class ShardChangesAction extends Action<ShardChangesAction.Response> {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Response newResponse() {
|
protected Writeable.Reader<Response> getResponseReader() {
|
||||||
return new Response();
|
return Response::new;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,8 +77,8 @@ public class PutCcrRestoreSessionAction extends Action<PutCcrRestoreSessionActio
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected PutCcrRestoreSessionResponse newResponse() {
|
protected Writeable.Reader<PutCcrRestoreSessionResponse> getResponseReader() {
|
||||||
return new PutCcrRestoreSessionResponse();
|
return PutCcrRestoreSessionResponse::new;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -5,10 +5,11 @@
|
||||||
*/
|
*/
|
||||||
package org.elasticsearch.xpack.ccr.action;
|
package org.elasticsearch.xpack.ccr.action;
|
||||||
|
|
||||||
|
import org.elasticsearch.common.io.stream.Writeable;
|
||||||
import org.elasticsearch.index.translog.Translog;
|
import org.elasticsearch.index.translog.Translog;
|
||||||
import org.elasticsearch.test.AbstractStreamableTestCase;
|
import org.elasticsearch.test.AbstractWireSerializingTestCase;
|
||||||
|
|
||||||
public class ShardChangesResponseTests extends AbstractStreamableTestCase<ShardChangesAction.Response> {
|
public class ShardChangesResponseTests extends AbstractWireSerializingTestCase<ShardChangesAction.Response> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ShardChangesAction.Response createTestInstance() {
|
protected ShardChangesAction.Response createTestInstance() {
|
||||||
|
@ -34,8 +35,7 @@ public class ShardChangesResponseTests extends AbstractStreamableTestCase<ShardC
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ShardChangesAction.Response createBlankInstance() {
|
protected Writeable.Reader<ShardChangesAction.Response> instanceReader() {
|
||||||
return new ShardChangesAction.Response();
|
return ShardChangesAction.Response::new;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue