From 8750132943d5736cd7b621eecda413213f4983a6 Mon Sep 17 00:00:00 2001 From: mloufra Date: Thu, 20 Oct 2022 23:16:47 +0000 Subject: [PATCH 1/2] fix compiler error for test file Signed-off-by: mloufra --- CHANGELOG.md | 1 + .../RegisterTransportActionsRequest.java | 24 ++++++++++++++----- .../RegisterTransportActionsRequestTests.java | 5 ++-- ...ExtensionTransportActionsHandlerTests.java | 8 +++---- 4 files changed, 25 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a2d48bddcd86..fddc9b5616994 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -176,6 +176,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) - Return consumed params and content from extensions ([#4705](https://github.com/opensearch-project/OpenSearch/pull/4705)) - Modified EnvironmentSettingsRequest to pass entire Settings object ([#4731](https://github.com/opensearch-project/OpenSearch/pull/4731)) - Added contentParser method to ExtensionRestRequest ([#4760](https://github.com/opensearch-project/OpenSearch/pull/4760)) + - Enforce type safety for RegisterTransportActionsRequest([#4796](https://github.com/opensearch-project/OpenSearch/pull/4796)) ## [2.x] diff --git a/server/src/main/java/org/opensearch/extensions/RegisterTransportActionsRequest.java b/server/src/main/java/org/opensearch/extensions/RegisterTransportActionsRequest.java index e0eac7dd7b13e..96b6da057d01a 100644 --- a/server/src/main/java/org/opensearch/extensions/RegisterTransportActionsRequest.java +++ b/server/src/main/java/org/opensearch/extensions/RegisterTransportActionsRequest.java @@ -8,6 +8,9 @@ package org.opensearch.extensions; +import org.opensearch.action.ActionRequest; +import org.opensearch.action.ActionResponse; +import org.opensearch.action.support.TransportAction; import org.opensearch.common.io.stream.StreamInput; import org.opensearch.common.io.stream.StreamOutput; import org.opensearch.transport.TransportRequest; @@ -16,6 +19,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Objects; +import java.util.Map.Entry; /** * Request to register extension Transport actions @@ -24,9 +28,12 @@ */ public class RegisterTransportActionsRequest extends TransportRequest { private String uniqueId; - private Map transportActions; + private Map>> transportActions; - public RegisterTransportActionsRequest(String uniqueId, Map transportActions) { + public RegisterTransportActionsRequest( + String uniqueId, + Map>> transportActions + ) { this.uniqueId = uniqueId; this.transportActions = new HashMap<>(transportActions); } @@ -34,12 +41,14 @@ public RegisterTransportActionsRequest(String uniqueId, Map trans public RegisterTransportActionsRequest(StreamInput in) throws IOException { super(in); this.uniqueId = in.readString(); - Map actions = new HashMap<>(); + Map>> actions = new HashMap<>(); int actionCount = in.readVInt(); for (int i = 0; i < actionCount; i++) { try { String actionName = in.readString(); - Class transportAction = Class.forName(in.readString()); + @SuppressWarnings("unchecked") + Class> transportAction = (Class< + ? extends TransportAction>) Class.forName(in.readString()); actions.put(actionName, transportAction); } catch (ClassNotFoundException e) { throw new IllegalArgumentException("Could not read transport action"); @@ -52,7 +61,9 @@ public String getUniqueId() { return uniqueId; } - public Map getTransportActions() { + /// comments + + public Map>> getTransportActions() { return transportActions; } @@ -61,7 +72,8 @@ public void writeTo(StreamOutput out) throws IOException { super.writeTo(out); out.writeString(uniqueId); out.writeVInt(this.transportActions.size()); - for (Map.Entry action : transportActions.entrySet()) { + for (Entry>> action : transportActions + .entrySet()) { out.writeString(action.getKey()); out.writeString(action.getValue().getName()); } diff --git a/server/src/test/java/org/opensearch/extensions/RegisterTransportActionsRequestTests.java b/server/src/test/java/org/opensearch/extensions/RegisterTransportActionsRequestTests.java index 52899d4d08871..184e1cbed6007 100644 --- a/server/src/test/java/org/opensearch/extensions/RegisterTransportActionsRequestTests.java +++ b/server/src/test/java/org/opensearch/extensions/RegisterTransportActionsRequestTests.java @@ -9,6 +9,7 @@ package org.opensearch.extensions; import org.junit.Before; +import org.opensearch.action.admin.indices.create.AutoCreateAction.TransportAction; import org.opensearch.common.collect.Map; import org.opensearch.common.io.stream.BytesStreamOutput; import org.opensearch.common.io.stream.StreamInput; @@ -21,7 +22,7 @@ public class RegisterTransportActionsRequestTests extends OpenSearchTestCase { @Before public void setup() { - this.originalRequest = new RegisterTransportActionsRequest("extension-uniqueId", Map.of("testAction", Map.class)); + this.originalRequest = new RegisterTransportActionsRequest("extension-uniqueId", Map.of("testAction", TransportAction.class)); } public void testRegisterTransportActionsRequest() throws IOException { @@ -39,7 +40,7 @@ public void testRegisterTransportActionsRequest() throws IOException { public void testToString() { assertEquals( originalRequest.toString(), - "TransportActionsRequest{uniqueId=extension-uniqueId, actions={testAction=class org.opensearch.common.collect.Map}}" + "TransportActionsRequest{uniqueId=extension-uniqueId, actions={testAction=class org.opensearch.action.admin.indices.create.AutoCreateAction.TransportAction}}" ); } } diff --git a/server/src/test/java/org/opensearch/extensions/action/ExtensionTransportActionsHandlerTests.java b/server/src/test/java/org/opensearch/extensions/action/ExtensionTransportActionsHandlerTests.java index 9bd1fca3f1e0c..8aed7992b5a53 100644 --- a/server/src/test/java/org/opensearch/extensions/action/ExtensionTransportActionsHandlerTests.java +++ b/server/src/test/java/org/opensearch/extensions/action/ExtensionTransportActionsHandlerTests.java @@ -11,6 +11,7 @@ import org.junit.After; import org.junit.Before; import org.opensearch.Version; +import org.opensearch.action.admin.indices.create.AutoCreateAction.TransportAction; import org.opensearch.client.node.NodeClient; import org.opensearch.cluster.node.DiscoveryNode; import org.opensearch.common.io.stream.NamedWriteableRegistry; @@ -129,10 +130,7 @@ public void testRegisterAction() { public void testRegisterTransportActionsRequest() { String action = "test-action"; - RegisterTransportActionsRequest request = new RegisterTransportActionsRequest( - "uniqueid1", - Map.of(action, ExtensionTransportActionsHandlerTests.class) - ); + RegisterTransportActionsRequest request = new RegisterTransportActionsRequest("uniqueid1", Map.of(action, TransportAction.class)); ExtensionBooleanResponse response = (ExtensionBooleanResponse) extensionTransportActionsHandler .handleRegisterTransportActionsRequest(request); assertTrue(response.getStatus()); @@ -165,7 +163,7 @@ public void testSendTransportRequestToExtension() throws InterruptedException { // Register Action RegisterTransportActionsRequest registerRequest = new RegisterTransportActionsRequest( "uniqueid1", - Map.of(action, ExtensionTransportActionsHandlerTests.class) + Map.of(action, TransportAction.class) ); ExtensionBooleanResponse response = (ExtensionBooleanResponse) extensionTransportActionsHandler .handleRegisterTransportActionsRequest(registerRequest); From f74f20fb66bf3c18cf46ef36a9b8c679020fa59b Mon Sep 17 00:00:00 2001 From: mloufra Date: Fri, 21 Oct 2022 17:30:28 +0000 Subject: [PATCH 2/2] fix test class RegisterTransportActionsRequestTests Signed-off-by: mloufra --- .../extensions/RegisterTransportActionsRequestTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/test/java/org/opensearch/extensions/RegisterTransportActionsRequestTests.java b/server/src/test/java/org/opensearch/extensions/RegisterTransportActionsRequestTests.java index 184e1cbed6007..eb59c80ac6461 100644 --- a/server/src/test/java/org/opensearch/extensions/RegisterTransportActionsRequestTests.java +++ b/server/src/test/java/org/opensearch/extensions/RegisterTransportActionsRequestTests.java @@ -40,7 +40,7 @@ public void testRegisterTransportActionsRequest() throws IOException { public void testToString() { assertEquals( originalRequest.toString(), - "TransportActionsRequest{uniqueId=extension-uniqueId, actions={testAction=class org.opensearch.action.admin.indices.create.AutoCreateAction.TransportAction}}" + "TransportActionsRequest{uniqueId=extension-uniqueId, actions={testAction=class org.opensearch.action.admin.indices.create.AutoCreateAction$TransportAction}}" ); } }