diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/action/RecordsManagementActionConditionEvaluatorAbstractBase.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/action/RecordsManagementActionConditionEvaluatorAbstractBase.java index fa0b77f315..c7cb23fa1c 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/action/RecordsManagementActionConditionEvaluatorAbstractBase.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/action/RecordsManagementActionConditionEvaluatorAbstractBase.java @@ -189,7 +189,7 @@ public abstract class RecordsManagementActionConditionEvaluatorAbstractBase exte ((RecordsManagementActionConditionDefinitionImpl)actionConditionDefinition).setDescriptionKey(getDescriptionKey()); ((RecordsManagementActionConditionDefinitionImpl)actionConditionDefinition).setAdhocPropertiesAllowed(getAdhocPropertiesAllowed()); ((RecordsManagementActionConditionDefinitionImpl)actionConditionDefinition).setConditionEvaluator(name); - ((RecordsManagementActionConditionDefinitionImpl)actionConditionDefinition).setParameterDefinitions(getParameterDefintions()); + ((RecordsManagementActionConditionDefinitionImpl)actionConditionDefinition).setLocalizedParameterDefinitions(getLocalizedParameterDefinitions()); } return this.actionConditionDefinition; } diff --git a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/DelegateAction.java b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/DelegateAction.java index 9d09dea337..1531957ad7 100644 --- a/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/DelegateAction.java +++ b/rm-community/rm-community-repo/source/java/org/alfresco/module/org_alfresco_module_rm/action/impl/DelegateAction.java @@ -94,4 +94,11 @@ public class DelegateAction extends RMActionExecuterAbstractBase { return delegateActionExecuter.getActionDefinition().getParameterDefinitions(); } + + @Override + protected void addParameterDefinitions(List paramList) + { + super.addParameterDefinitions(paramList); + paramList.addAll(delegateActionExecuter.getActionDefinition().getParameterDefinitions()); + } } diff --git a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/legacy/service/ExtendedActionServiceTest.java b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/legacy/service/ExtendedActionServiceTest.java index baa4cade7d..9d344ab755 100644 --- a/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/legacy/service/ExtendedActionServiceTest.java +++ b/rm-community/rm-community-repo/test/java/org/alfresco/module/org_alfresco_module_rm/test/legacy/service/ExtendedActionServiceTest.java @@ -33,6 +33,7 @@ import org.alfresco.module.org_alfresco_module_rm.test.util.BaseRMTestCase; import org.alfresco.module.org_alfresco_module_rm.test.util.TestActionPropertySubs; import org.alfresco.service.cmr.action.Action; import org.alfresco.service.cmr.action.ActionDefinition; +import org.alfresco.service.cmr.action.ParameterDefinition; /** * Extended action service test. @@ -178,4 +179,54 @@ public class ExtendedActionServiceTest extends BaseRMTestCase } }); } + + /** + * RM-3000 + * Tests if the actions extending DelegateAction inherit the parameter definitions from their delegate action + */ + public void testDelegateActions() + { + /* + * set-property-value is the delegate action for setPropertyValue. + */ + assertTrue(inheritsAllParameterDefinitions("setPropertyValue", "set-property-value")); + + /* + * rmscript is the delegate action for executeScript. + */ + assertTrue(inheritsAllParameterDefinitions("executeScript", "rmscript")); + + /* + * mail is the delegate action for sendEmail. + */ + assertTrue(inheritsAllParameterDefinitions("sendEmail", "mail")); + } + + /** + * Checks if the action definition rmAction inherits all the parameter definitions from delegateAction. + * @param rmAction The name of the action definition extending DelegateAction. + * @param delegateAction The name of the delegate action. + * @return true if rmAction inherits all the parameter definitions from delegateAction. false otherwise. + */ + private boolean inheritsAllParameterDefinitions(String rmAction, String delegateAction) + { + /* + * Get the parameter definition list for rmAction + */ + ActionDefinition rmActionDefinition = actionService.getActionDefinition(rmAction); + assertNotNull(rmActionDefinition); + List rmParameterDefinitions = rmActionDefinition.getParameterDefinitions(); + + /* + * Get the parameter definition list for the delegate action + */ + ActionDefinition delegateActionDefinition = actionService.getActionDefinition(delegateAction); + assertNotNull(delegateActionDefinition); + List delegateParameterDefinitions = delegateActionDefinition.getParameterDefinitions(); + + /* + * Check if rmActionDefinition contains all the elements in rmActionDefinition + */ + return rmParameterDefinitions.containsAll(delegateParameterDefinitions); + } }