preProcess(context);
/*
* Determine provider
*/
Provider provider = getScheduler(context).schedule(context);
/*
* Load data necessary data
*/
buildChains(getDataChains(context)).start(context);
/*
* Init
*/
provider.initialize(context);
/*
* Pre-Execution
*/
buildChains(getPreExecutionSteps(context)).start(context);
/*
* Execute
*/
provider.execute(context);
/*
* Post-Execution
*/
buildChains(getPostExecuteSteps(context)).start(context);
/*
* Destroy
*/
provider.dispose(context);
/*
* Pre-Process
*/
postProcess(context);