Skip to content

Commit d633130

Browse files
authored
Convert FieldCapabilitiesResponse to a ToXContentObject. (#30182)
1 parent dd66659 commit d633130

File tree

3 files changed

+7
-19
lines changed

3 files changed

+7
-19
lines changed

server/src/main/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesResponse.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import org.elasticsearch.common.io.stream.StreamInput;
2727
import org.elasticsearch.common.io.stream.StreamOutput;
2828
import org.elasticsearch.common.xcontent.ConstructingObjectParser;
29-
import org.elasticsearch.common.xcontent.ToXContentFragment;
29+
import org.elasticsearch.common.xcontent.ToXContentObject;
3030
import org.elasticsearch.common.xcontent.XContentBuilder;
3131
import org.elasticsearch.common.xcontent.XContentParser;
3232
import org.elasticsearch.common.xcontent.XContentParserUtils;
@@ -41,7 +41,7 @@
4141
/**
4242
* Response for {@link FieldCapabilitiesRequest} requests.
4343
*/
44-
public class FieldCapabilitiesResponse extends ActionResponse implements ToXContentFragment {
44+
public class FieldCapabilitiesResponse extends ActionResponse implements ToXContentObject {
4545
private static final ParseField FIELDS_FIELD = new ParseField("fields");
4646

4747
private Map<String, Map<String, FieldCapabilities>> responseMap;
@@ -123,8 +123,9 @@ private static void writeField(StreamOutput out,
123123

124124
@Override
125125
public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
126-
builder.field(FIELDS_FIELD.getPreferredName(), responseMap);
127-
return builder;
126+
return builder.startObject()
127+
.field(FIELDS_FIELD.getPreferredName(), responseMap)
128+
.endObject();
128129
}
129130

130131
public static FieldCapabilitiesResponse fromXContent(XContentParser parser) throws IOException {

server/src/main/java/org/elasticsearch/rest/action/RestFieldCapabilitiesAction.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -81,17 +81,6 @@ public RestChannelConsumer prepareRequest(final RestRequest request,
8181
fieldRequest.indicesOptions(
8282
IndicesOptions.fromRequest(request, fieldRequest.indicesOptions())
8383
);
84-
return channel -> client.fieldCaps(fieldRequest,
85-
new RestBuilderListener<FieldCapabilitiesResponse>(channel) {
86-
@Override
87-
public RestResponse buildResponse(FieldCapabilitiesResponse response,
88-
XContentBuilder builder) throws Exception {
89-
RestStatus status = OK;
90-
builder.startObject();
91-
response.toXContent(builder, request);
92-
builder.endObject();
93-
return new BytesRestResponse(status, builder);
94-
}
95-
});
84+
return channel -> client.fieldCaps(fieldRequest, new RestToXContentListener<>(channel));
9685
}
9786
}

server/src/test/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesResponseTests.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,10 +110,8 @@ protected Predicate<String> getRandomFieldsExcludeFilter() {
110110
public void testToXContent() throws IOException {
111111
FieldCapabilitiesResponse response = createSimpleResponse();
112112

113-
XContentBuilder builder = XContentFactory.contentBuilder(XContentType.JSON)
114-
.startObject();
113+
XContentBuilder builder = XContentFactory.contentBuilder(XContentType.JSON);
115114
response.toXContent(builder, ToXContent.EMPTY_PARAMS);
116-
builder.endObject();
117115

118116
String generatedResponse = BytesReference.bytes(builder).utf8ToString();
119117
assertEquals((

0 commit comments

Comments
 (0)