Skip to content

Commit fdc1500

Browse files
Dry up AcknowledgedResponse Handling (#63335) (#64130)
1. `AcknowledgedResponse` should really be two singletons to make things clearer and save some objects and code size. 2. We were duplicating reading this type over and over in a bunch of transport master node actions so I dried that up
1 parent b98d1c6 commit fdc1500

File tree

149 files changed

+351
-722
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

149 files changed

+351
-722
lines changed

client/rest-high-level/src/test/java/org/elasticsearch/client/core/AcknowledgedResponseTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public class AcknowledgedResponseTests extends AbstractResponseTestCase<org.elas
3232

3333
@Override
3434
protected org.elasticsearch.action.support.master.AcknowledgedResponse createServerTestInstance(XContentType xContentType) {
35-
return new org.elasticsearch.action.support.master.AcknowledgedResponse(randomBoolean());
35+
return org.elasticsearch.action.support.master.AcknowledgedResponse.of(randomBoolean());
3636
}
3737

3838
@Override

client/rest-high-level/src/test/java/org/elasticsearch/client/indices/CloseIndexResponseTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ protected void assertInstances(final org.elasticsearch.action.admin.indices.clos
172172
public final void testBwcFromXContent() throws IOException {
173173
{
174174
final boolean acknowledged = randomBoolean();
175-
final AcknowledgedResponse expected = new AcknowledgedResponse(acknowledged);
175+
final AcknowledgedResponse expected = AcknowledgedResponse.of(acknowledged);
176176

177177
final XContentType xContentType = randomFrom(XContentType.values());
178178
final BytesReference bytes = toShuffledXContent(expected, xContentType, getParams(), randomBoolean());

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public class DeleteRepositoryAction extends ActionType<AcknowledgedResponse> {
3131
public static final String NAME = "cluster:admin/repository/delete";
3232

3333
private DeleteRepositoryAction() {
34-
super(NAME, AcknowledgedResponse::new);
34+
super(NAME, AcknowledgedResponse::readFrom);
3535
}
3636

3737
}

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

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,24 +22,21 @@
2222
import org.elasticsearch.action.ActionListener;
2323
import org.elasticsearch.action.support.ActionFilters;
2424
import org.elasticsearch.action.support.master.AcknowledgedResponse;
25-
import org.elasticsearch.action.support.master.TransportMasterNodeAction;
25+
import org.elasticsearch.action.support.master.AcknowledgedTransportMasterNodeAction;
2626
import org.elasticsearch.cluster.ClusterState;
2727
import org.elasticsearch.cluster.block.ClusterBlockException;
2828
import org.elasticsearch.cluster.block.ClusterBlockLevel;
2929
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
3030
import org.elasticsearch.cluster.service.ClusterService;
3131
import org.elasticsearch.common.inject.Inject;
32-
import org.elasticsearch.common.io.stream.StreamInput;
3332
import org.elasticsearch.repositories.RepositoriesService;
3433
import org.elasticsearch.threadpool.ThreadPool;
3534
import org.elasticsearch.transport.TransportService;
3635

37-
import java.io.IOException;
38-
3936
/**
4037
* Transport action for unregister repository operation
4138
*/
42-
public class TransportDeleteRepositoryAction extends TransportMasterNodeAction<DeleteRepositoryRequest, AcknowledgedResponse> {
39+
public class TransportDeleteRepositoryAction extends AcknowledgedTransportMasterNodeAction<DeleteRepositoryRequest> {
4340

4441
private final RepositoriesService repositoriesService;
4542

@@ -57,11 +54,6 @@ protected String executor() {
5754
return ThreadPool.Names.SAME;
5855
}
5956

60-
@Override
61-
protected AcknowledgedResponse read(StreamInput in) throws IOException {
62-
return new AcknowledgedResponse(in);
63-
}
64-
6557
@Override
6658
protected ClusterBlockException checkBlock(DeleteRepositoryRequest request, ClusterState state) {
6759
return state.blocks().globalBlockedException(ClusterBlockLevel.METADATA_WRITE);
@@ -73,6 +65,6 @@ protected void masterOperation(final DeleteRepositoryRequest request, ClusterSta
7365
repositoriesService.unregisterRepository(
7466
request, ActionListener.delegateFailure(listener,
7567
(delegatedListener, unregisterRepositoryResponse) ->
76-
delegatedListener.onResponse(new AcknowledgedResponse(unregisterRepositoryResponse.isAcknowledged()))));
68+
delegatedListener.onResponse(AcknowledgedResponse.of(unregisterRepositoryResponse.isAcknowledged()))));
7769
}
7870
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public class PutRepositoryAction extends ActionType<AcknowledgedResponse> {
3131
public static final String NAME = "cluster:admin/repository/put";
3232

3333
private PutRepositoryAction() {
34-
super(NAME, AcknowledgedResponse::new);
34+
super(NAME, AcknowledgedResponse::readFrom);
3535
}
3636

3737
}

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

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,24 +22,21 @@
2222
import org.elasticsearch.action.ActionListener;
2323
import org.elasticsearch.action.support.ActionFilters;
2424
import org.elasticsearch.action.support.master.AcknowledgedResponse;
25-
import org.elasticsearch.action.support.master.TransportMasterNodeAction;
25+
import org.elasticsearch.action.support.master.AcknowledgedTransportMasterNodeAction;
2626
import org.elasticsearch.cluster.ClusterState;
2727
import org.elasticsearch.cluster.block.ClusterBlockException;
2828
import org.elasticsearch.cluster.block.ClusterBlockLevel;
2929
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
3030
import org.elasticsearch.cluster.service.ClusterService;
3131
import org.elasticsearch.common.inject.Inject;
32-
import org.elasticsearch.common.io.stream.StreamInput;
3332
import org.elasticsearch.repositories.RepositoriesService;
3433
import org.elasticsearch.threadpool.ThreadPool;
3534
import org.elasticsearch.transport.TransportService;
3635

37-
import java.io.IOException;
38-
3936
/**
4037
* Transport action for register repository operation
4138
*/
42-
public class TransportPutRepositoryAction extends TransportMasterNodeAction<PutRepositoryRequest, AcknowledgedResponse> {
39+
public class TransportPutRepositoryAction extends AcknowledgedTransportMasterNodeAction<PutRepositoryRequest> {
4340

4441
private final RepositoriesService repositoriesService;
4542

@@ -57,11 +54,6 @@ protected String executor() {
5754
return ThreadPool.Names.SAME;
5855
}
5956

60-
@Override
61-
protected AcknowledgedResponse read(StreamInput in) throws IOException {
62-
return new AcknowledgedResponse(in);
63-
}
64-
6557
@Override
6658
protected ClusterBlockException checkBlock(PutRepositoryRequest request, ClusterState state) {
6759
return state.blocks().globalBlockedException(ClusterBlockLevel.METADATA_WRITE);
@@ -71,6 +63,6 @@ protected ClusterBlockException checkBlock(PutRepositoryRequest request, Cluster
7163
protected void masterOperation(final PutRepositoryRequest request, ClusterState state,
7264
final ActionListener<AcknowledgedResponse> listener) {
7365
repositoriesService.registerRepository(request, ActionListener.delegateFailure(listener,
74-
(delegatedListener, response) -> delegatedListener.onResponse(new AcknowledgedResponse(response.isAcknowledged()))));
66+
(delegatedListener, response) -> delegatedListener.onResponse(AcknowledgedResponse.of(response.isAcknowledged()))));
7567
}
7668
}

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

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

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

22-
import org.elasticsearch.Version;
2322
import org.elasticsearch.action.support.master.AcknowledgedResponse;
24-
import org.elasticsearch.cluster.ClusterModule;
2523
import org.elasticsearch.cluster.ClusterState;
2624
import org.elasticsearch.cluster.routing.allocation.RoutingExplanations;
2725
import org.elasticsearch.common.io.stream.StreamInput;
@@ -41,15 +39,9 @@ public class ClusterRerouteResponse extends AcknowledgedResponse implements ToXC
4139
private final RoutingExplanations explanations;
4240

4341
ClusterRerouteResponse(StreamInput in) throws IOException {
44-
super(in, in.getVersion().onOrAfter(Version.V_6_4_0));
45-
if (in.getVersion().onOrAfter(Version.V_6_4_0)) {
46-
state = ClusterState.readFrom(in, null);
47-
explanations = RoutingExplanations.readFrom(in);
48-
} else {
49-
state = ClusterState.readFrom(in, null);
50-
acknowledged = in.readBoolean();
51-
explanations = RoutingExplanations.readFrom(in);
52-
}
42+
super(in);
43+
state = ClusterState.readFrom(in, null);
44+
explanations = RoutingExplanations.readFrom(in);
5345
}
5446

5547
ClusterRerouteResponse(boolean acknowledged, ClusterState state, RoutingExplanations explanations) {
@@ -71,19 +63,9 @@ public RoutingExplanations getExplanations() {
7163

7264
@Override
7365
public void writeTo(StreamOutput out) throws IOException {
74-
if (out.getVersion().onOrAfter(Version.V_6_4_0)) {
75-
super.writeTo(out);
76-
state.writeTo(out);
77-
RoutingExplanations.writeTo(explanations, out);
78-
} else {
79-
if (out.getVersion().onOrAfter(Version.V_6_3_0)) {
80-
state.writeTo(out);
81-
} else {
82-
ClusterModule.filterCustomsForPre63Clients(state).writeTo(out);
83-
}
84-
out.writeBoolean(acknowledged);
85-
RoutingExplanations.writeTo(explanations, out);
86-
}
66+
super.writeTo(out);
67+
state.writeTo(out);
68+
RoutingExplanations.writeTo(explanations, out);
8769
}
8870

8971
@Override

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

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

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

22-
import org.elasticsearch.Version;
2322
import org.elasticsearch.action.support.master.AcknowledgedResponse;
2423
import org.elasticsearch.common.ParseField;
2524
import org.elasticsearch.common.io.stream.StreamInput;
@@ -56,15 +55,9 @@ public class ClusterUpdateSettingsResponse extends AcknowledgedResponse {
5655
final Settings persistentSettings;
5756

5857
ClusterUpdateSettingsResponse(StreamInput in) throws IOException {
59-
super(in, in.getVersion().onOrAfter(Version.V_6_4_0));
60-
if (in.getVersion().onOrAfter(Version.V_6_4_0)) {
61-
transientSettings = Settings.readSettingsFromStream(in);
62-
persistentSettings = Settings.readSettingsFromStream(in);
63-
} else {
64-
transientSettings = Settings.readSettingsFromStream(in);
65-
persistentSettings = Settings.readSettingsFromStream(in);
66-
acknowledged = in.readBoolean();
67-
}
58+
super(in);
59+
transientSettings = Settings.readSettingsFromStream(in);
60+
persistentSettings = Settings.readSettingsFromStream(in);
6861
}
6962

7063
ClusterUpdateSettingsResponse(boolean acknowledged, Settings transientSettings, Settings persistentSettings) {
@@ -83,15 +76,9 @@ public Settings getPersistentSettings() {
8376

8477
@Override
8578
public void writeTo(StreamOutput out) throws IOException {
86-
if (out.getVersion().onOrAfter(Version.V_6_4_0)) {
87-
super.writeTo(out);
88-
Settings.writeSettingsToStream(transientSettings, out);
89-
Settings.writeSettingsToStream(persistentSettings, out);
90-
} else {
91-
Settings.writeSettingsToStream(transientSettings, out);
92-
Settings.writeSettingsToStream(persistentSettings, out);
93-
out.writeBoolean(acknowledged);
94-
}
79+
super.writeTo(out);
80+
Settings.writeSettingsToStream(transientSettings, out);
81+
Settings.writeSettingsToStream(persistentSettings, out);
9582
}
9683

9784
@Override

server/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/clone/CloneSnapshotAction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,6 @@ public final class CloneSnapshotAction extends ActionType<AcknowledgedResponse>
2828
public static final String NAME = "cluster:admin/snapshot/clone";
2929

3030
private CloneSnapshotAction() {
31-
super(NAME, AcknowledgedResponse::new);
31+
super(NAME, AcknowledgedResponse::readFrom);
3232
}
33-
}
33+
}

server/src/main/java/org/elasticsearch/action/admin/cluster/snapshots/clone/TransportCloneSnapshotAction.java

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,24 +22,21 @@
2222
import org.elasticsearch.action.ActionListener;
2323
import org.elasticsearch.action.support.ActionFilters;
2424
import org.elasticsearch.action.support.master.AcknowledgedResponse;
25-
import org.elasticsearch.action.support.master.TransportMasterNodeAction;
25+
import org.elasticsearch.action.support.master.AcknowledgedTransportMasterNodeAction;
2626
import org.elasticsearch.cluster.ClusterState;
2727
import org.elasticsearch.cluster.block.ClusterBlockException;
2828
import org.elasticsearch.cluster.block.ClusterBlockLevel;
2929
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
3030
import org.elasticsearch.cluster.service.ClusterService;
3131
import org.elasticsearch.common.inject.Inject;
32-
import org.elasticsearch.common.io.stream.StreamInput;
3332
import org.elasticsearch.snapshots.SnapshotsService;
3433
import org.elasticsearch.threadpool.ThreadPool;
3534
import org.elasticsearch.transport.TransportService;
3635

37-
import java.io.IOException;
38-
3936
/**
4037
* Transport action for the clone snapshot operation.
4138
*/
42-
public final class TransportCloneSnapshotAction extends TransportMasterNodeAction<CloneSnapshotRequest, AcknowledgedResponse> {
39+
public final class TransportCloneSnapshotAction extends AcknowledgedTransportMasterNodeAction<CloneSnapshotRequest> {
4340

4441
private final SnapshotsService snapshotsService;
4542

@@ -57,14 +54,9 @@ protected String executor() {
5754
return ThreadPool.Names.SAME;
5855
}
5956

60-
@Override
61-
protected AcknowledgedResponse read(StreamInput in) throws IOException {
62-
return new AcknowledgedResponse(in);
63-
}
64-
6557
@Override
6658
protected void masterOperation(CloneSnapshotRequest request, ClusterState state, ActionListener<AcknowledgedResponse> listener) {
67-
snapshotsService.cloneSnapshot(request, ActionListener.map(listener, v -> new AcknowledgedResponse(true)));
59+
snapshotsService.cloneSnapshot(request, ActionListener.map(listener, v -> AcknowledgedResponse.TRUE));
6860
}
6961

7062
@Override

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public class DeleteSnapshotAction extends ActionType<AcknowledgedResponse> {
3131
public static final String NAME = "cluster:admin/snapshot/delete";
3232

3333
private DeleteSnapshotAction() {
34-
super(NAME, AcknowledgedResponse::new);
34+
super(NAME, AcknowledgedResponse::readFrom);
3535
}
3636

3737
}

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

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,24 +22,21 @@
2222
import org.elasticsearch.action.ActionListener;
2323
import org.elasticsearch.action.support.ActionFilters;
2424
import org.elasticsearch.action.support.master.AcknowledgedResponse;
25-
import org.elasticsearch.action.support.master.TransportMasterNodeAction;
25+
import org.elasticsearch.action.support.master.AcknowledgedTransportMasterNodeAction;
2626
import org.elasticsearch.cluster.ClusterState;
2727
import org.elasticsearch.cluster.block.ClusterBlockException;
2828
import org.elasticsearch.cluster.block.ClusterBlockLevel;
2929
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
3030
import org.elasticsearch.cluster.service.ClusterService;
3131
import org.elasticsearch.common.inject.Inject;
32-
import org.elasticsearch.common.io.stream.StreamInput;
3332
import org.elasticsearch.snapshots.SnapshotsService;
3433
import org.elasticsearch.threadpool.ThreadPool;
3534
import org.elasticsearch.transport.TransportService;
3635

37-
import java.io.IOException;
38-
3936
/**
4037
* Transport action for delete snapshot operation
4138
*/
42-
public class TransportDeleteSnapshotAction extends TransportMasterNodeAction<DeleteSnapshotRequest, AcknowledgedResponse> {
39+
public class TransportDeleteSnapshotAction extends AcknowledgedTransportMasterNodeAction<DeleteSnapshotRequest> {
4340
private final SnapshotsService snapshotsService;
4441

4542
@Inject
@@ -56,11 +53,6 @@ protected String executor() {
5653
return ThreadPool.Names.SAME;
5754
}
5855

59-
@Override
60-
protected AcknowledgedResponse read(StreamInput in) throws IOException {
61-
return new AcknowledgedResponse(in);
62-
}
63-
6456
@Override
6557
protected ClusterBlockException checkBlock(DeleteSnapshotRequest request, ClusterState state) {
6658
// Cluster is not affected but we look up repositories in metadata
@@ -70,6 +62,6 @@ protected ClusterBlockException checkBlock(DeleteSnapshotRequest request, Cluste
7062
@Override
7163
protected void masterOperation(final DeleteSnapshotRequest request, ClusterState state,
7264
final ActionListener<AcknowledgedResponse> listener) {
73-
snapshotsService.deleteSnapshots(request, ActionListener.map(listener, v -> new AcknowledgedResponse(true)));
65+
snapshotsService.deleteSnapshots(request, ActionListener.map(listener, v -> AcknowledgedResponse.TRUE));
7466
}
7567
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public class DeleteStoredScriptAction extends ActionType<AcknowledgedResponse> {
2828
public static final String NAME = "cluster:admin/script/delete";
2929

3030
private DeleteStoredScriptAction() {
31-
super(NAME, AcknowledgedResponse::new);
31+
super(NAME, AcknowledgedResponse::readFrom);
3232
}
3333

3434
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public class PutStoredScriptAction extends ActionType<AcknowledgedResponse> {
2929
public static final String NAME = "cluster:admin/script/put";
3030

3131
private PutStoredScriptAction() {
32-
super(NAME, AcknowledgedResponse::new);
32+
super(NAME, AcknowledgedResponse::readFrom);
3333
}
3434

3535
}

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

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,18 @@
2222
import org.elasticsearch.action.ActionListener;
2323
import org.elasticsearch.action.support.ActionFilters;
2424
import org.elasticsearch.action.support.master.AcknowledgedResponse;
25-
import org.elasticsearch.action.support.master.TransportMasterNodeAction;
25+
import org.elasticsearch.action.support.master.AcknowledgedTransportMasterNodeAction;
2626
import org.elasticsearch.cluster.ClusterState;
2727
import org.elasticsearch.cluster.block.ClusterBlockException;
2828
import org.elasticsearch.cluster.block.ClusterBlockLevel;
2929
import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
3030
import org.elasticsearch.cluster.service.ClusterService;
3131
import org.elasticsearch.common.inject.Inject;
32-
import org.elasticsearch.common.io.stream.StreamInput;
3332
import org.elasticsearch.script.ScriptService;
3433
import org.elasticsearch.threadpool.ThreadPool;
3534
import org.elasticsearch.transport.TransportService;
3635

37-
import java.io.IOException;
38-
39-
public class TransportDeleteStoredScriptAction extends TransportMasterNodeAction<DeleteStoredScriptRequest, AcknowledgedResponse> {
36+
public class TransportDeleteStoredScriptAction extends AcknowledgedTransportMasterNodeAction<DeleteStoredScriptRequest> {
4037

4138
private final ScriptService scriptService;
4239

@@ -54,10 +51,6 @@ protected String executor() {
5451
return ThreadPool.Names.SAME;
5552
}
5653

57-
@Override
58-
protected AcknowledgedResponse read(StreamInput in) throws IOException {
59-
return new AcknowledgedResponse(in);
60-
}
6154

6255
@Override
6356
protected void masterOperation(DeleteStoredScriptRequest request, ClusterState state,

0 commit comments

Comments
 (0)