Initial Thoughts

Mifos currently uses its own implementation of batch job functionality. Leveraging existing libraries that provide the current functionality (and more) would be a good option since it will allow us to eliminate code from Mifos (less to maintain, debug) and use more standard, well documented and full featured alternatives. The Quartz library would be a good candidate and it has nice integration with the Spring framework.

Using a standard library like Quartz with Spring would also allow us to do some convenient JMX instrumentation which in conjunction with a JMX console (such as mc4j) would allow a Mifos administrator to monitor Mifos batch jobs and even manually kick them off when necessary.

Also, using Spring will make adding a feature to permit running jobs in parallel easier to implement.

Suggestions

Lessons learned from issue 2098...

See also: Batch Job Best Practices