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
AbstractExecutionContext does much the same for ExecutionContext but less is provided. The ExecutionContext methods
start still have to be implemented, as well as two abstract methods in AbstractExecutionContext:
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.