How to extend

There are two obvious extension points: AbstractTask and AbstractExecutionContext.

AbstractTask is an implementation of Task that manages much of the housekeeping and provides a few services. Like PrintTask, a minimal extension of AbstractTask must implement getLogger, doProcess and doValidate.

AbstractExecutionContext does much the same for ExecutionContext but less is provided. The ExecutionContext methods finished, isFinished, log, progress, start still have to be implemented, as well as two abstract methods in AbstractExecutionContext: generateRunIdentifier and getLogger.

The other obvious extension of functionality is the addition of support for other databases. This touches a number of classes: ConnectionFactory, DBHelper, SQLTask and descendents; as well as requiring a new ExecutionContext and a database-specific implementation of the database objects and procedures.