API changes
New interface will be added for the custom actions
/** * Defines a custom action in the Workflow. */ public interface CustomAction extends ProgramLifecycle<CustomActionContext> { /** * Configure a custom Workflow action. */ void configure(CustomActionConfigurer configurer); /** * @throws Exception */ void run() throws Exception; }
Custom actions will now receive the CustomActionContext.
/** * Context used by action running in the Workflow. */ public interface CustomActionContext extends RuntimeContext, Transactional, PluginContext, WorkflowInfoProvider { /** * Return the specification of the custom Action. */ CustomActionSpecification getSpecification(); /** * Return the logical start time of the Workflow */ long getLogicalStartTime(); /** * Return the state of the custom action. */ ProgramState getState(); }
AbstractCustomAction can implement the CustomAction interface.Â
public abstract class AbstractCustomAction implements CustomAction { private CustomActionContext context; Â @Override public void initialize(CustomActionContext context) throws Exception { this.context = context; } Â protected final CustomActionContext getContext() { return context; } }
 WorkflowConfigurer will allow adding the CustomAction asÂ
// Adds a CustomAction to the Workflow. void addAction(CustomAction customAction);
We will deprecate following classes:Â
Deprecated Class New Class Description WorkflowAction CustomAction Represents the action that is running as a part of the Workflow. AbstractWorkflowAction AbstractCustomAction Default implementation for the custom actions in the Workflow. WorkflowActionConfigurer CustomActionConfigurer Configurer for the actions in the Workflow. WorkflowActionSpecification CustomActionSpecification Specifications for the custom action
Â