Apache Fineract has a very large code base and currently lacks a code analyser to discover bugs which are otherwise hard to find manually. It also currently makes use of Date and Joda time API which has been integrated into Java 8 as java.time and the former depreciated. Coverage is another feature which will be a great addition to Fineract 1.x.
In the course of this project Error Prone was introduced and its important checks enforce to strenghten Fineract 1.x and migration from joda time to java time was carried out.
- Integrate Error Prone and enforce relevant checks : COMPLETED MERGED
- Completely migrate to Java time from Joda : COMPLETED UNMERGED
- Measuring Coverage : UNCOMPLETED
- Issue on tracker - FINERACT-822
- Initial integration with checks already compliant by Fineract 1.x - apache/fineract#830
- Enforce CompareToZero check - apache/fineract#951
- Enforce ArgumentSelectionDefectChecker - apache/fineract#961
- Enforce VariableNameSameAsType check - apache/fineract#972
- Update Error prone version - apache/fineract#975
- Enforce UnnecessaryParentheses check - apache/fineract#979
- Enforce MultiVariableDeclaration check - apache/fineract#981
- Enforce AssertEqualsArgumentOrderChecker check - apache/fineract#982
- Enforce compliant check - apache/fineract#983
- Enforce OperatorPrecedence check - apache/fineract#987
- Enforce ReferenceEquality check - apache/fineract#988
- Enforce MissingCasesInEnumSwitch check - apache/fineract#989
- Enforce JodaPlusMinusLong check - apache/fineract#1003
- Enforce JdkObsolete check - apache/fineract#1004
- Enforce EqualsGetClass check - apache/fineract#1005
- Enforce DoubleBraceInitialization check - apache/fineract#1014
- Enforce ImmutableEnumChecker check - apache/fineract#1018
- Enforce UnnecessaryDefaultInEnumSwitch check - apache/fineract#1022
- Enforce MissingOverride check - apache/fineract#1023
- Enforce InconsistentCapitalization check - apache/fineract#1036
- Enforce BigDecimalEquals check - apache/fineract#1046
- Enforce MixedMutabilityReturnType check - apache/fineract#1048
- Enforce EqualsUnsafeCast check - apache/fineract#1052
- Enforce BadImport check - apache/fineract#1053
- Enforce StringSplitter check - apache/fineract#1075
- Enforce SameNameButDifferent check - apache/fineract#1083
- Enforce ClassCanBeStatic check - apache/fineract#1085
- Enforce UndefinedEquals check - apache/fineract#1099
- Enforce bulk checks and edit check list - apache/fineract#1109, apache/fineract#1119, apache/fineract#1131 ,apache/fineract#1102
- Issue on tracker FINERACT-826
- Migration for Java Time - apache/fineract#1179
- Replace ZoneId.systemDefault() with tenant's timezone -https://github.com/percyashu/fineract/commit/cce43d6198d8c4eb5fe50f29234aa6b7098618ff
- Offline instrumentation with Jacoco for measuring coverage - https://github.com/percyashu/fineract/commit/ad4c97c6f1166e9ec74628986affc205c0c1f413
- apache/fineract#924
- apache/fineract#908
- apache/fineract#1146
- apache/fineract#1015
- apache/fineract#1006
Work to be done after GSoC.
Address work on classes used for test to ensure coverage is measured.
Date Api is obsolete and must replaced completely by Java Time.