Development Overview
This is a page about the current development stream.
Developer Setup has instructions on how to build the project and develop software for it.
Mifos Configuration Locations - how to configure the application for your system
Maven Build - info on how the build system works.
Running tests in Maven modules _ Unit Tests _ Integration Tests _ Running Acceptance Tests - info on how the acceptance tests work and how to write them. _ Application Module - info about the main application
Hudson Continuous Integration has info on Cheetah's continuous build server.
User Interface Capitalization Guidelines provides info on how to capitalize UI options.
Overview
Maven is used to manage dependencies, build the software, and run the tests for all modules.
Build and Deploy
To build and deploy the project: _ cd to the root directory of the project _
mvn clean install* This will run all the tests for all the modulesTo build and just run the unit and integration tests for the main part of the application: _ cd to the root directory of the project _ cd mifos/ *
mvn clean installSee Ubuntu Install for detailed instructions.
Running Mifos from Eclipse WTP
Gazelle now can run Mifos inside Eclipse WTP. See Eclipse WTP for info.
Java 1.6
Mifos now requires Java 1.6. You may need to set your ANT_OPTS to
-Xms512m -Xmx2048m -XX:MaxPermSize=128m
Development Notes
XSD files: do not add links to files on the Internet! (http://www.somedomain.com/some/path/to/file.xsd) Doing this will prevent the application from starting if it is not connected to the Internet! Instead: _ download the XSD file _ place it in application/src/main/resources/xsd * use a link of this form:
classpath:xsd/file.xsdAcronyms - When naming classes, methods, and variables, do not use acronyms. Code is easier to understand without them. If you want to use an acronym, discuss with the team beforehand.
Approved acronyms - use camel case when using them. _ Dao - Data Access Object _ Dto - Data Transfer Object
Database development - for now, we are using Spring and Hibernate DDL generation, letting Spring create the database tables. We are not using create database SQL scripts. There are some SQL scripts that create tables for the security information. If you need to add a create-table script, discuss with the team first. Create table SQL scripts go in the root pom.xml's maven-sql-plugin configuration.