Cheetah Release Infrastructure
The current plan is to make use of much of the technology stack provided by the Spring Framework in order to help achieve the goals of loose coupling, modularity and building on established open source libraries. However, since Spring itself is nicely modularized, we can pick and choose what we want to use from the Spring Framework and if there are better choices in certain areas, opt to build on top of other libraries. Below is a list of infrastructure areas and the current choices under consideration:
Software Component Assembly
Spring dependency injection
Security
Spring Security
Presentation Layer Framework
Spring MVC + Spring WebFlow
Web page authoring
Freemarker
Transaction management
Spring annotation based transactions
Persistence Layer
JPA (as implemented by Hibernate)
Batch Jobs
Spring Batch + Quartz
Web Services
Spring-WS
Apache CXF
Application platforms
With the release of Cheetah, Mifos begins to take on the characteristics of an enterprise application. As such, it may outgrow the relatively simple current runtime environment – Tomcat. For example, if the application is built as a collection of collaborating modules or services, and each module is organized in a layered-architecture style, then the application should be deployed and executed on a platform that transparently connects the modules.