Java 6
Need
Currently, Mifos developers working on the legacy codebase are recommended to only compile Mifos with Sun's Java, specifically, the J2SDK 5.0 version 1.5.x. Java 6 has many performance improvements and bugfixes, and Mifos may benefit from moving to Java 6 as a development platform. This is a place to capture technical notes on this proposed change. Cheetah is currently developed on Java 6, so it may be easier to integrate development of the legacy codebase if it can also be compiled with Java 6.
`Running` Mifos with Java 6 is known to work.
Suggestions
- Java 6 bytecode can run in earlier versions of the JVM
- Because the java.sql.* API changed in JDBC 4.0, MockDatabaseMetaData must implement
getFunctionColumns()
(issue 2019). Issue 2019 is now fixed. Note that the change to MockDatabaseMetaData is not backwards-compatible, we believe that Java 6 or later will be required to compile (and run) Mifos. - This change will not be part of the version 1 2 release
- issue 2148
- related discussion
- similar issue with Mayfly and Java 6 JDBC compatibility
- PostgreSQL handles this by building JDBC drivers for several versions of Java
Due Diligence
Issue 2019 is resolved fixed, so we're moving forward with Java 6.
Please share your results of building and deploying the legacy codebase with Java 6.
- Update your trunk working copy to the latest revision
- Switch working copy to branches/issue_2148
- Upgrade JDK to Java 6 >= 1.6.0_07
- Run unit tests (using
ant run_test
target) - Deploy WAR, try out Mifos Web UI by creating a loan instance (for example)
- Record your findings in the table below
csv-table:: Due Diligence Tests:header: Date, Your Name, MySQL Version, App Server, OS, Machine Architecture, All Unit Tests Passed?, Test Deployment Succeeded?02-NOV-2008, Adam Monsen, 5.0.51a, Tomcat 6.0.14, Ubuntu 8.04.1, Intel x86, Yes, Yes