From af2d974b69cb60c9e2e80e41db0c19157752c985 Mon Sep 17 00:00:00 2001 From: Thisara-Welmilla Date: Fri, 24 Jan 2025 10:34:43 +0530 Subject: [PATCH] Addressed comments. --- ...ActionInvocationResponseClassProvider.java | 2 +- ...ActionInvocationResponseClassProvider.java | 7 +-- .../ActionInvocationResponseClassFactory.java | 12 +++-- .../ActionExecutionServiceComponent.java | 12 ++--- .../ActionInvocationSuccessResponse.java | 2 +- .../execution/model/DefaultResponseData.java | 26 ++++++++++ .../action/execution/model/ResponseData.java | 35 -------------- .../model/ResponseDataDeserializer.java | 47 +++++++++++++++++++ .../action/execution/util/APIClient.java | 5 +- .../impl/ActionExecutorServiceImplTest.java | 2 +- ...tionSuccessResponseContextFactoryTest.java | 13 ++--- .../action/execution/util/APIClientTest.java | 27 +++++++++++ ...ActionInvocationResponseClassProvider.java | 2 +- 13 files changed, 129 insertions(+), 63 deletions(-) create mode 100644 components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/model/DefaultResponseData.java create mode 100644 components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/model/ResponseDataDeserializer.java diff --git a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/ActionInvocationResponseClassProvider.java b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/ActionInvocationResponseClassProvider.java index 420454d0ffb9..5be0ae5b4b7e 100644 --- a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/ActionInvocationResponseClassProvider.java +++ b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/ActionInvocationResponseClassProvider.java @@ -39,5 +39,5 @@ public interface ActionInvocationResponseClassProvider { * * @return The extended ResponseData class. */ - Class getSuccessResponseContextClass(); + Class getSuccessResponseDataClass(); } diff --git a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/DefaultActionInvocationResponseClassProvider.java b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/DefaultActionInvocationResponseClassProvider.java index 195e165fd06f..60bc20438d13 100644 --- a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/DefaultActionInvocationResponseClassProvider.java +++ b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/DefaultActionInvocationResponseClassProvider.java @@ -19,6 +19,7 @@ package org.wso2.carbon.identity.action.execution; import org.wso2.carbon.identity.action.execution.model.ActionType; +import org.wso2.carbon.identity.action.execution.model.DefaultResponseData; import org.wso2.carbon.identity.action.execution.model.ResponseData; /** @@ -36,7 +37,7 @@ public static DefaultActionInvocationResponseClassProvider getInstance() { @Override public ActionType getSupportedActionType() { - return null; + throw new UnsupportedOperationException("This method should not called for default implementation."); } /** @@ -45,8 +46,8 @@ public ActionType getSupportedActionType() { * @return The default ResponseData class. */ @Override - public Class getSuccessResponseContextClass() { + public Class getSuccessResponseDataClass() { - return ResponseData.DefaultResponseData.class; + return DefaultResponseData.class; } } diff --git a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/impl/ActionInvocationResponseClassFactory.java b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/impl/ActionInvocationResponseClassFactory.java index 79b20e666165..6270a0b96d24 100644 --- a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/impl/ActionInvocationResponseClassFactory.java +++ b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/impl/ActionInvocationResponseClassFactory.java @@ -27,7 +27,8 @@ import java.util.Map; /** - * This class defines the classes for action invocation responses for different action types. + * This class defines the classes for extended implementations of action invocation responses for + * different action types. * The ActionInvocationResponseClassFactory is the component that is responsible for providing the classes * defined by the downstream component based on the action type. */ @@ -58,17 +59,18 @@ public static void unregisterActionInvocationResponseClassProvider( } /** - * Get the extended ResponseData class for invocation success response based on the action type. + * Get the extended ResponseData class for extended implementations of action invocation responses based on the + * action type. * * @param actionType Action type. * @return The extended ResponseData class. */ - public static Class getInvocationSuccessResponseContextClass(ActionType actionType) { + public static Class getInvocationSuccessResponseDataClass(ActionType actionType) { ActionInvocationResponseClassProvider classProvider = classProviders.get(actionType); if (classProvider != null) { - return classProvider.getSuccessResponseContextClass(); + return classProvider.getSuccessResponseDataClass(); } - return DefaultActionInvocationResponseClassProvider.getInstance().getSuccessResponseContextClass(); + return DefaultActionInvocationResponseClassProvider.getInstance().getSuccessResponseDataClass(); } } diff --git a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/internal/ActionExecutionServiceComponent.java b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/internal/ActionExecutionServiceComponent.java index a7185e9fede6..7850005d6f42 100644 --- a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/internal/ActionExecutionServiceComponent.java +++ b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/internal/ActionExecutionServiceComponent.java @@ -174,20 +174,16 @@ protected void unsetRuleEvaluationService(RuleEvaluationService ruleEvaluationSe ) protected void setInvocationSuccessResponseContextClass(ActionInvocationResponseClassProvider classProvider) { - if (LOG.isDebugEnabled()) { - LOG.debug("Registering ActionInvocationResponseClassProvider: " + - classProvider.getClass().getName() + " in the ActionExecutionServiceComponent."); - } + LOG.debug("Registering ActionInvocationResponseClassProvider: " + classProvider.getClass().getName() + + " in the ActionExecutionServiceComponent."); ActionInvocationResponseClassFactory.registerActionInvocationResponseClassProvider( classProvider); } protected void unsetInvocationSuccessResponseContextClass(ActionInvocationResponseClassProvider classProvider) { - if (LOG.isDebugEnabled()) { - LOG.debug("Unregistering ActionInvocationResponseClassProvider: " + - classProvider.getClass().getName() + " in the ActionExecutionServiceComponent."); - } + LOG.debug("Unregistering ActionInvocationResponseClassProvider: " + classProvider.getClass().getName() + + " in the ActionExecutionServiceComponent."); ActionInvocationResponseClassFactory.unregisterActionInvocationResponseClassProvider(classProvider); } } diff --git a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/model/ActionInvocationSuccessResponse.java b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/model/ActionInvocationSuccessResponse.java index dd048a578eda..c23d8ce616aa 100644 --- a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/model/ActionInvocationSuccessResponse.java +++ b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/model/ActionInvocationSuccessResponse.java @@ -83,7 +83,7 @@ public Builder operations(@JsonProperty("operations") List return this; } - @JsonDeserialize(using = ResponseData.ResponseDataDeserializer.class) + @JsonDeserialize(using = ResponseDataDeserializer.class) @JsonProperty("data") public Builder context(@JsonProperty("data") ResponseData data) { diff --git a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/model/DefaultResponseData.java b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/model/DefaultResponseData.java new file mode 100644 index 000000000000..6ef7ffb9d502 --- /dev/null +++ b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/model/DefaultResponseData.java @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). + * + * WSO2 LLC. licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.wso2.carbon.identity.action.execution.model; + +/** + * Default ResponseData implementation, which can be used when there are no extended ResponseData class for + * the action type. + */ +public class DefaultResponseData implements ResponseData { +} diff --git a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/model/ResponseData.java b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/model/ResponseData.java index 885b930de944..bbd2b21e7787 100644 --- a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/model/ResponseData.java +++ b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/model/ResponseData.java @@ -18,45 +18,10 @@ package org.wso2.carbon.identity.action.execution.model; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.wso2.carbon.identity.action.execution.impl.ActionInvocationResponseClassFactory; - -import java.io.IOException; - /** * This interface defines the ResponseData for action invocation success response. * The ResponseData is the class that is responsible for defining structure of the additional data coming from the * success invocation response received from the action execution. */ public interface ResponseData { - - /** - * Default ResponseData implementation, which can be used when there are no extended ResponseData class for - * the action type. - */ - class DefaultResponseData implements ResponseData { - } - - /** - * Dynamic deserializer for the ResponseData class. - */ - class ResponseDataDeserializer extends JsonDeserializer { - - public static final String ACTION_TYPE_ATTR_NAME = "actionType"; - - @Override - public ResponseData deserialize(JsonParser p, DeserializationContext ctxt) - throws IOException { - - ActionType actionType = (ActionType) ctxt.getAttribute(ACTION_TYPE_ATTR_NAME); - JsonNode node = p.getCodec().readTree(p); - ObjectMapper mapper = (ObjectMapper) p.getCodec(); - return mapper.treeToValue(node, - ActionInvocationResponseClassFactory.getInvocationSuccessResponseContextClass(actionType)); - } - } } diff --git a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/model/ResponseDataDeserializer.java b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/model/ResponseDataDeserializer.java new file mode 100644 index 000000000000..0fcda80261c6 --- /dev/null +++ b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/model/ResponseDataDeserializer.java @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2025, WSO2 LLC. (http://www.wso2.com). + * + * WSO2 LLC. licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.wso2.carbon.identity.action.execution.model; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.wso2.carbon.identity.action.execution.impl.ActionInvocationResponseClassFactory; + +import java.io.IOException; + +/** + * Dynamic deserializer for the ResponseData class. + */ +public class ResponseDataDeserializer extends JsonDeserializer { + + public static final String ACTION_TYPE_ATTR_NAME = "actionType"; + + @Override + public ResponseData deserialize(JsonParser p, DeserializationContext ctxt) + throws IOException { + + ActionType actionType = (ActionType) ctxt.getAttribute(ACTION_TYPE_ATTR_NAME); + JsonNode node = p.getCodec().readTree(p); + ObjectMapper mapper = (ObjectMapper) p.getCodec(); + return mapper.treeToValue(node, + ActionInvocationResponseClassFactory.getInvocationSuccessResponseDataClass(actionType)); + } +} diff --git a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/util/APIClient.java b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/util/APIClient.java index 55edc3c76d26..815a834892fe 100644 --- a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/util/APIClient.java +++ b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/main/java/org/wso2/carbon/identity/action/execution/util/APIClient.java @@ -44,6 +44,7 @@ import org.wso2.carbon.identity.action.execution.model.ActionInvocationSuccessResponse; import org.wso2.carbon.identity.action.execution.model.ActionType; import org.wso2.carbon.identity.action.execution.model.ResponseData; +import org.wso2.carbon.identity.action.execution.model.ResponseDataDeserializer; import java.io.IOException; import java.net.SocketTimeoutException; @@ -257,9 +258,9 @@ private ActionInvocationResponse.APIResponse deserializeSuccessOrFailureResponse if (actionStatus.equals(ActionExecutionStatus.Status.SUCCESS.name())) { // Configure dynamic deserializer for the extended ResponseData class based on the action type. SimpleModule module = new SimpleModule(); - module.addDeserializer(ResponseData.class, new ResponseData.ResponseDataDeserializer()); + module.addDeserializer(ResponseData.class, new ResponseDataDeserializer()); objectMapper.setConfig(objectMapper.getDeserializationConfig() - .withAttribute(ResponseData.ResponseDataDeserializer.ACTION_TYPE_ATTR_NAME, actionType)); + .withAttribute(ResponseDataDeserializer.ACTION_TYPE_ATTR_NAME, actionType)); objectMapper.registerModule(module); return objectMapper.readValue(jsonResponse, ActionInvocationSuccessResponse.class); } else if (actionStatus.equals(ActionExecutionStatus.Status.INCOMPLETE.name())) { diff --git a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/test/java/org/wso2/carbon/identity/action/execution/impl/ActionExecutorServiceImplTest.java b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/test/java/org/wso2/carbon/identity/action/execution/impl/ActionExecutorServiceImplTest.java index 6477bbc2fdf4..140a3912c5e2 100644 --- a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/test/java/org/wso2/carbon/identity/action/execution/impl/ActionExecutorServiceImplTest.java +++ b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/test/java/org/wso2/carbon/identity/action/execution/impl/ActionExecutorServiceImplTest.java @@ -496,7 +496,7 @@ public void testActionExecuteSuccessWhenRuleConfiguredInActionIsSatisfied() thro mock(ActionExecutionRequest.class)); ActionInvocationResponse actionInvocationResponse = createSuccessActionInvocationResponse(); - when(apiClient.callAPI(any(), any(), any())).thenReturn(actionInvocationResponse); + when(apiClient.callAPI(any(), any(), any(), any())).thenReturn(actionInvocationResponse); ActionExecutionStatus expectedStatus = new SuccessStatus.Builder().build(); when(actionExecutionResponseProcessor.getSupportedActionType()).thenReturn(actionType); diff --git a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/test/java/org/wso2/carbon/identity/action/execution/impl/InvocationSuccessResponseContextFactoryTest.java b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/test/java/org/wso2/carbon/identity/action/execution/impl/InvocationSuccessResponseContextFactoryTest.java index 3c7c44cb5e73..436fd3119c2d 100644 --- a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/test/java/org/wso2/carbon/identity/action/execution/impl/InvocationSuccessResponseContextFactoryTest.java +++ b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/test/java/org/wso2/carbon/identity/action/execution/impl/InvocationSuccessResponseContextFactoryTest.java @@ -20,6 +20,7 @@ import org.testng.annotations.Test; import org.wso2.carbon.identity.action.execution.model.ActionType; +import org.wso2.carbon.identity.action.execution.model.DefaultResponseData; import org.wso2.carbon.identity.action.execution.model.ResponseData; import org.wso2.carbon.identity.action.execution.util.TestActionInvocationResponseClassProvider; import org.wso2.carbon.identity.action.execution.util.UserData; @@ -34,7 +35,7 @@ public void testRegisterInvocationSuccessResponseContextClass() { ActionInvocationResponseClassFactory.registerActionInvocationResponseClassProvider( new TestActionInvocationResponseClassProvider()); Class registeredResult = ActionInvocationResponseClassFactory - .getInvocationSuccessResponseContextClass(ActionType.AUTHENTICATION); + .getInvocationSuccessResponseDataClass(ActionType.AUTHENTICATION); assertEquals(registeredResult, UserData.class); } @@ -42,15 +43,15 @@ public void testRegisterInvocationSuccessResponseContextClass() { public void testGetInvocationSuccessResponseContextClassWithDefault() { Class extendedClass = ActionInvocationResponseClassFactory - .getInvocationSuccessResponseContextClass(ActionType.PRE_ISSUE_ACCESS_TOKEN); - assertEquals(extendedClass, ResponseData.DefaultResponseData.class); + .getInvocationSuccessResponseDataClass(ActionType.PRE_ISSUE_ACCESS_TOKEN); + assertEquals(extendedClass, DefaultResponseData.class); } @Test(dependsOnMethods = {"testRegisterInvocationSuccessResponseContextClass"}) public void testGetInvocationSuccessResponseContextClass() { Class extendedClass = ActionInvocationResponseClassFactory - .getInvocationSuccessResponseContextClass(ActionType.AUTHENTICATION); + .getInvocationSuccessResponseDataClass(ActionType.AUTHENTICATION); assertEquals(extendedClass, UserData.class); } @@ -60,7 +61,7 @@ public void testUnregisterInvocationSuccessResponseContextClass() { ActionInvocationResponseClassFactory.unregisterActionInvocationResponseClassProvider( new TestActionInvocationResponseClassProvider()); Class unregisteredResult = ActionInvocationResponseClassFactory - .getInvocationSuccessResponseContextClass(ActionType.AUTHENTICATION); - assertEquals(unregisteredResult, ResponseData.DefaultResponseData.class); + .getInvocationSuccessResponseDataClass(ActionType.AUTHENTICATION); + assertEquals(unregisteredResult, DefaultResponseData.class); } } diff --git a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/test/java/org/wso2/carbon/identity/action/execution/util/APIClientTest.java b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/test/java/org/wso2/carbon/identity/action/execution/util/APIClientTest.java index d65f9b47eb15..ca8bfbf212b8 100644 --- a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/test/java/org/wso2/carbon/identity/action/execution/util/APIClientTest.java +++ b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/test/java/org/wso2/carbon/identity/action/execution/util/APIClientTest.java @@ -37,6 +37,7 @@ import org.testng.annotations.BeforeMethod; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; +import org.wso2.carbon.identity.action.execution.impl.ActionInvocationResponseClassFactory; import org.wso2.carbon.identity.action.execution.model.ActionInvocationErrorResponse; import org.wso2.carbon.identity.action.execution.model.ActionInvocationFailureResponse; import org.wso2.carbon.identity.action.execution.model.ActionInvocationIncompleteResponse; @@ -470,6 +471,32 @@ public void testCallAPIRetryOnTimeoutAndReceiveSuccessResponse() throws Exceptio verify(httpClient, times(2)).execute(any(HttpPost.class)); } + @Test + public void testCallAPIRetryOnTimeoutAndReceiveSuccessResponseWithExtendedResponseData() throws Exception { + + when(httpClient.execute(any(HttpPost.class))).thenThrow(new ConnectTimeoutException("Timeout")) + .thenReturn(httpResponse); + when(httpResponse.getStatusLine()).thenReturn(statusLine); + when(statusLine.getStatusCode()).thenReturn(200); + + ActionInvocationResponseClassFactory.registerActionInvocationResponseClassProvider( + new TestActionInvocationResponseClassProvider()); + + String successResponse = + "{\"actionStatus\":\"SUCCESS\", \"data\": {\"id\":\"test-123-id\"}}"; + InputStreamEntity entity = new InputStreamEntity(new ByteArrayInputStream(successResponse.getBytes( + StandardCharsets.UTF_8))); + entity.setContentType(ContentType.APPLICATION_JSON.getMimeType()); + when(httpResponse.getEntity()).thenReturn(entity); + + ActionInvocationResponse response = apiClient.callAPI(ActionType.AUTHENTICATION, + "http://example.com", null, "{}"); + + assertNotNull(response); + assertTrue(response.isSuccess()); + verify(httpClient, times(2)).execute(any(HttpPost.class)); + } + @Test public void testCallAPIRetryOnTimeoutAndReachMaxRetryAttempts() throws Exception { diff --git a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/test/java/org/wso2/carbon/identity/action/execution/util/TestActionInvocationResponseClassProvider.java b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/test/java/org/wso2/carbon/identity/action/execution/util/TestActionInvocationResponseClassProvider.java index 6550551eeee5..a9c28fded36f 100644 --- a/components/action-mgt/org.wso2.carbon.identity.action.execution/src/test/java/org/wso2/carbon/identity/action/execution/util/TestActionInvocationResponseClassProvider.java +++ b/components/action-mgt/org.wso2.carbon.identity.action.execution/src/test/java/org/wso2/carbon/identity/action/execution/util/TestActionInvocationResponseClassProvider.java @@ -31,7 +31,7 @@ public ActionType getSupportedActionType() { } @Override - public Class getSuccessResponseContextClass() { + public Class getSuccessResponseDataClass() { return UserData.class; }