Skip to content

Commit f485e8c

Browse files
author
Christoph Büscher
authored
Share common readFrom/writeTo code in AcknowledgeResponse (#30983)
The majority of Responses inheriting from AcknowledgeResponse implement the readFrom and writeTo serialization method in the same way. Moving this as a default into AcknowledgeResponse and letting the few exceptions that need a slightly different implementation handle this themselves saves a lot of duplication.
1 parent e7965ae commit f485e8c

File tree

40 files changed

+111
-484
lines changed

40 files changed

+111
-484
lines changed

server/src/main/java/org/elasticsearch/action/admin/cluster/repositories/delete/DeleteRepositoryResponse.java

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,9 @@
2020
package org.elasticsearch.action.admin.cluster.repositories.delete;
2121

2222
import org.elasticsearch.action.support.master.AcknowledgedResponse;
23-
import org.elasticsearch.common.io.stream.StreamInput;
24-
import org.elasticsearch.common.io.stream.StreamOutput;
2523
import org.elasticsearch.common.xcontent.ConstructingObjectParser;
26-
import org.elasticsearch.common.xcontent.ToXContentObject;
2724
import org.elasticsearch.common.xcontent.XContentParser;
2825

29-
import java.io.IOException;
30-
3126
/**
3227
* Unregister repository response
3328
*/
@@ -47,18 +42,6 @@ public class DeleteRepositoryResponse extends AcknowledgedResponse {
4742
super(acknowledged);
4843
}
4944

50-
@Override
51-
public void readFrom(StreamInput in) throws IOException {
52-
super.readFrom(in);
53-
readAcknowledged(in);
54-
}
55-
56-
@Override
57-
public void writeTo(StreamOutput out) throws IOException {
58-
super.writeTo(out);
59-
writeAcknowledged(out);
60-
}
61-
6245
public static DeleteRepositoryResponse fromXContent(XContentParser parser) {
6346
return PARSER.apply(parser, null);
6447
}

server/src/main/java/org/elasticsearch/action/admin/cluster/repositories/put/PutRepositoryResponse.java

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,9 @@
2020
package org.elasticsearch.action.admin.cluster.repositories.put;
2121

2222
import org.elasticsearch.action.support.master.AcknowledgedResponse;
23-
import org.elasticsearch.common.io.stream.StreamInput;
24-
import org.elasticsearch.common.io.stream.StreamOutput;
2523
import org.elasticsearch.common.xcontent.ConstructingObjectParser;
2624
import org.elasticsearch.common.xcontent.XContentParser;
2725

28-
import java.io.IOException;
29-
3026
/**
3127
* Register repository response
3228
*/
@@ -46,18 +42,6 @@ public class PutRepositoryResponse extends AcknowledgedResponse {
4642
super(acknowledged);
4743
}
4844

49-
@Override
50-
public void readFrom(StreamInput in) throws IOException {
51-
super.readFrom(in);
52-
readAcknowledged(in);
53-
}
54-
55-
@Override
56-
public void writeTo(StreamOutput out) throws IOException {
57-
super.writeTo(out);
58-
writeAcknowledged(out);
59-
}
60-
6145
public static PutRepositoryResponse fromXContent(XContentParser parser) {
6246
return PARSER.apply(parser, null);
6347
}

server/src/main/java/org/elasticsearch/action/admin/cluster/reroute/ClusterRerouteResponse.java

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -63,22 +63,32 @@ public RoutingExplanations getExplanations() {
6363

6464
@Override
6565
public void readFrom(StreamInput in) throws IOException {
66-
super.readFrom(in);
67-
state = ClusterState.readFrom(in, null);
68-
readAcknowledged(in);
69-
explanations = RoutingExplanations.readFrom(in);
66+
if (in.getVersion().onOrAfter(Version.V_6_4_0)) {
67+
super.readFrom(in);
68+
state = ClusterState.readFrom(in, null);
69+
explanations = RoutingExplanations.readFrom(in);
70+
} else {
71+
state = ClusterState.readFrom(in, null);
72+
acknowledged = in.readBoolean();
73+
explanations = RoutingExplanations.readFrom(in);
74+
}
7075
}
7176

7277
@Override
7378
public void writeTo(StreamOutput out) throws IOException {
74-
super.writeTo(out);
75-
if (out.getVersion().onOrAfter(Version.V_6_3_0)) {
79+
if (out.getVersion().onOrAfter(Version.V_6_4_0)) {
80+
super.writeTo(out);
7681
state.writeTo(out);
82+
RoutingExplanations.writeTo(explanations, out);
7783
} else {
78-
ClusterModule.filterCustomsForPre63Clients(state).writeTo(out);
84+
if (out.getVersion().onOrAfter(Version.V_6_3_0)) {
85+
state.writeTo(out);
86+
} else {
87+
ClusterModule.filterCustomsForPre63Clients(state).writeTo(out);
88+
}
89+
out.writeBoolean(acknowledged);
90+
RoutingExplanations.writeTo(explanations, out);
7991
}
80-
writeAcknowledged(out);
81-
RoutingExplanations.writeTo(explanations, out);
8292
}
8393

8494
@Override

server/src/main/java/org/elasticsearch/action/admin/cluster/settings/ClusterUpdateSettingsResponse.java

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
package org.elasticsearch.action.admin.cluster.settings;
2121

22+
import org.elasticsearch.Version;
2223
import org.elasticsearch.action.support.master.AcknowledgedResponse;
2324
import org.elasticsearch.common.ParseField;
2425
import org.elasticsearch.common.io.stream.StreamInput;
@@ -67,10 +68,15 @@ public class ClusterUpdateSettingsResponse extends AcknowledgedResponse {
6768

6869
@Override
6970
public void readFrom(StreamInput in) throws IOException {
70-
super.readFrom(in);
71-
transientSettings = Settings.readSettingsFromStream(in);
72-
persistentSettings = Settings.readSettingsFromStream(in);
73-
readAcknowledged(in);
71+
if (in.getVersion().onOrAfter(Version.V_6_4_0)) {
72+
super.readFrom(in);
73+
transientSettings = Settings.readSettingsFromStream(in);
74+
persistentSettings = Settings.readSettingsFromStream(in);
75+
} else {
76+
transientSettings = Settings.readSettingsFromStream(in);
77+
persistentSettings = Settings.readSettingsFromStream(in);
78+
acknowledged = in.readBoolean();
79+
}
7480
}
7581

7682
public Settings getTransientSettings() {
@@ -83,10 +89,15 @@ public Settings getPersistentSettings() {
8389

8490
@Override
8591
public void writeTo(StreamOutput out) throws IOException {
86-
super.writeTo(out);
87-
Settings.writeSettingsToStream(transientSettings, out);
88-
Settings.writeSettingsToStream(persistentSettings, out);
89-
writeAcknowledged(out);
92+
if (out.getVersion().onOrAfter(Version.V_6_4_0)) {
93+
super.writeTo(out);
94+
Settings.writeSettingsToStream(transientSettings, out);
95+
Settings.writeSettingsToStream(persistentSettings, out);
96+
} else {
97+
Settings.writeSettingsToStream(transientSettings, out);
98+
Settings.writeSettingsToStream(persistentSettings, out);
99+
out.writeBoolean(acknowledged);
100+
}
90101
}
91102

92103
@Override

server/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/delete/DeleteSnapshotResponse.java

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,6 @@
2020
package org.elasticsearch.action.admin.cluster.snapshots.delete;
2121

2222
import org.elasticsearch.action.support.master.AcknowledgedResponse;
23-
import org.elasticsearch.common.io.stream.StreamInput;
24-
import org.elasticsearch.common.io.stream.StreamOutput;
25-
26-
import java.io.IOException;
2723

2824
/**
2925
* Delete snapshot response
@@ -36,17 +32,4 @@ public class DeleteSnapshotResponse extends AcknowledgedResponse {
3632
DeleteSnapshotResponse(boolean acknowledged) {
3733
super(acknowledged);
3834
}
39-
40-
@Override
41-
public void readFrom(StreamInput in) throws IOException {
42-
super.readFrom(in);
43-
readAcknowledged(in);
44-
}
45-
46-
@Override
47-
public void writeTo(StreamOutput out) throws IOException {
48-
super.writeTo(out);
49-
writeAcknowledged(out);
50-
}
51-
5235
}

server/src/main/java/org/elasticsearch/action/admin/cluster/storedscripts/DeleteStoredScriptResponse.java

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,6 @@
2020
package org.elasticsearch.action.admin.cluster.storedscripts;
2121

2222
import org.elasticsearch.action.support.master.AcknowledgedResponse;
23-
import org.elasticsearch.common.io.stream.StreamInput;
24-
import org.elasticsearch.common.io.stream.StreamOutput;
25-
26-
import java.io.IOException;
2723

2824
public class DeleteStoredScriptResponse extends AcknowledgedResponse {
2925

@@ -33,16 +29,4 @@ public class DeleteStoredScriptResponse extends AcknowledgedResponse {
3329
public DeleteStoredScriptResponse(boolean acknowledged) {
3430
super(acknowledged);
3531
}
36-
37-
@Override
38-
public void readFrom(StreamInput in) throws IOException {
39-
super.readFrom(in);
40-
readAcknowledged(in);
41-
}
42-
43-
@Override
44-
public void writeTo(StreamOutput out) throws IOException {
45-
super.writeTo(out);
46-
writeAcknowledged(out);
47-
}
4832
}

server/src/main/java/org/elasticsearch/action/admin/cluster/storedscripts/PutStoredScriptResponse.java

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,6 @@
2020
package org.elasticsearch.action.admin.cluster.storedscripts;
2121

2222
import org.elasticsearch.action.support.master.AcknowledgedResponse;
23-
import org.elasticsearch.common.io.stream.StreamInput;
24-
import org.elasticsearch.common.io.stream.StreamOutput;
25-
26-
import java.io.IOException;
2723

2824
public class PutStoredScriptResponse extends AcknowledgedResponse {
2925

@@ -34,16 +30,4 @@ public PutStoredScriptResponse(boolean acknowledged) {
3430
super(acknowledged);
3531
}
3632

37-
@Override
38-
public void readFrom(StreamInput in) throws IOException {
39-
super.readFrom(in);
40-
readAcknowledged(in);
41-
}
42-
43-
@Override
44-
public void writeTo(StreamOutput out) throws IOException {
45-
super.writeTo(out);
46-
writeAcknowledged(out);
47-
}
48-
4933
}

server/src/main/java/org/elasticsearch/action/admin/indices/alias/IndicesAliasesResponse.java

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,9 @@
2020
package org.elasticsearch.action.admin.indices.alias;
2121

2222
import org.elasticsearch.action.support.master.AcknowledgedResponse;
23-
import org.elasticsearch.common.io.stream.StreamInput;
24-
import org.elasticsearch.common.io.stream.StreamOutput;
2523
import org.elasticsearch.common.xcontent.ConstructingObjectParser;
2624
import org.elasticsearch.common.xcontent.XContentParser;
2725

28-
import java.io.IOException;
29-
3026
/**
3127
* A response for a add/remove alias action.
3228
*/
@@ -45,18 +41,6 @@ public class IndicesAliasesResponse extends AcknowledgedResponse {
4541
super(acknowledged);
4642
}
4743

48-
@Override
49-
public void readFrom(StreamInput in) throws IOException {
50-
super.readFrom(in);
51-
readAcknowledged(in);
52-
}
53-
54-
@Override
55-
public void writeTo(StreamOutput out) throws IOException {
56-
super.writeTo(out);
57-
writeAcknowledged(out);
58-
}
59-
6044
public static IndicesAliasesResponse fromXContent(XContentParser parser) {
6145
return PARSER.apply(parser, null);
6246
}

server/src/main/java/org/elasticsearch/action/admin/indices/close/CloseIndexResponse.java

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,9 @@
2020
package org.elasticsearch.action.admin.indices.close;
2121

2222
import org.elasticsearch.action.support.master.AcknowledgedResponse;
23-
import org.elasticsearch.common.io.stream.StreamInput;
24-
import org.elasticsearch.common.io.stream.StreamOutput;
2523
import org.elasticsearch.common.xcontent.ConstructingObjectParser;
2624
import org.elasticsearch.common.xcontent.XContentParser;
2725

28-
import java.io.IOException;
29-
3026
/**
3127
* A response for a close index action.
3228
*/
@@ -45,18 +41,6 @@ public class CloseIndexResponse extends AcknowledgedResponse {
4541
super(acknowledged);
4642
}
4743

48-
@Override
49-
public void readFrom(StreamInput in) throws IOException {
50-
super.readFrom(in);
51-
readAcknowledged(in);
52-
}
53-
54-
@Override
55-
public void writeTo(StreamOutput out) throws IOException {
56-
super.writeTo(out);
57-
writeAcknowledged(out);
58-
}
59-
6044
public static CloseIndexResponse fromXContent(XContentParser parser) {
6145
return PARSER.apply(parser, null);
6246
}

server/src/main/java/org/elasticsearch/action/admin/indices/create/CreateIndexResponse.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@ protected CreateIndexResponse(boolean acknowledged, boolean shardsAcknowledged,
6666
@Override
6767
public void readFrom(StreamInput in) throws IOException {
6868
super.readFrom(in);
69-
readAcknowledged(in);
7069
readShardsAcknowledged(in);
7170
if (in.getVersion().onOrAfter(Version.V_5_6_0)) {
7271
index = in.readString();
@@ -76,7 +75,6 @@ public void readFrom(StreamInput in) throws IOException {
7675
@Override
7776
public void writeTo(StreamOutput out) throws IOException {
7877
super.writeTo(out);
79-
writeAcknowledged(out);
8078
writeShardsAcknowledged(out);
8179
if (out.getVersion().onOrAfter(Version.V_5_6_0)) {
8280
out.writeString(index);

server/src/main/java/org/elasticsearch/action/admin/indices/delete/DeleteIndexResponse.java

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,9 @@
2020
package org.elasticsearch.action.admin.indices.delete;
2121

2222
import org.elasticsearch.action.support.master.AcknowledgedResponse;
23-
import org.elasticsearch.common.io.stream.StreamInput;
24-
import org.elasticsearch.common.io.stream.StreamOutput;
2523
import org.elasticsearch.common.xcontent.ConstructingObjectParser;
26-
import org.elasticsearch.common.xcontent.XContentBuilder;
2724
import org.elasticsearch.common.xcontent.XContentParser;
2825

29-
import java.io.IOException;
30-
3126
/**
3227
* A response for a delete index action.
3328
*/
@@ -47,18 +42,6 @@ public class DeleteIndexResponse extends AcknowledgedResponse {
4742
super(acknowledged);
4843
}
4944

50-
@Override
51-
public void readFrom(StreamInput in) throws IOException {
52-
super.readFrom(in);
53-
readAcknowledged(in);
54-
}
55-
56-
@Override
57-
public void writeTo(StreamOutput out) throws IOException {
58-
super.writeTo(out);
59-
writeAcknowledged(out);
60-
}
61-
6245
public static DeleteIndexResponse fromXContent(XContentParser parser) {
6346
return PARSER.apply(parser, null);
6447
}

server/src/main/java/org/elasticsearch/action/admin/indices/mapping/put/PutMappingResponse.java

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,9 @@
2020
package org.elasticsearch.action.admin.indices.mapping.put;
2121

2222
import org.elasticsearch.action.support.master.AcknowledgedResponse;
23-
import org.elasticsearch.common.io.stream.StreamInput;
24-
import org.elasticsearch.common.io.stream.StreamOutput;
2523
import org.elasticsearch.common.xcontent.ConstructingObjectParser;
2624
import org.elasticsearch.common.xcontent.XContentParser;
2725

28-
import java.io.IOException;
29-
3026
/**
3127
* The response of put mapping operation.
3228
*/
@@ -47,18 +43,6 @@ protected PutMappingResponse(boolean acknowledged) {
4743
super(acknowledged);
4844
}
4945

50-
@Override
51-
public void readFrom(StreamInput in) throws IOException {
52-
super.readFrom(in);
53-
readAcknowledged(in);
54-
}
55-
56-
@Override
57-
public void writeTo(StreamOutput out) throws IOException {
58-
super.writeTo(out);
59-
writeAcknowledged(out);
60-
}
61-
6246
public static PutMappingResponse fromXContent(XContentParser parser) {
6347
return PARSER.apply(parser, null);
6448
}

0 commit comments

Comments
 (0)