Action Steps

In Action Progress,
it was explained how JEF can run a large number of asynchronous jobs. ActionProgress can
be used to phase a plugin flow in multiple iterations at execution time. With each
iteration of the ActionProgress, the execution developer can define what to do in the
JEF plugin execution.

However, there might be a formal requirement to break down the plugin task. For example,
you might want a plugin to:

Load and parse a file.

Using the result of the parsing, execute another asynchronous task.

When the asynchronous tasks are complete, update Ooyala Flex.

Finally, perform some file writing.

Action steps ease the development of the above steps in independent classes. JEF will orchestrate calling these steps. The steps can be defined linearly, or could be a graph of options based on the logic of the plugin and current status.

Action steps can also be used to reuse part of plugins, or orchestrate
different flows depending on plugin logic or retry status.

Please see the flex-jefexampleexecutor-service for a plugin example.

ActionStep

Define your implementation of ActionStep with an enum that contains each of the steps you’d like to register in the plugin:

ActionProgressStepData

A new ActionProgressStepData class (extending ActionProgressData) will define the
ActionStep defined for this plugin and provide support to track the step where the
plugin is running at every call to execute().