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 modules - To 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 install
- See 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.xsd
- Acronyms - 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.