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.

    Some choices for application platforms that may satisfy the goals of Mifos are:

    ** SpringSource Application Platform