FINERACT-822 Integrating Error Prone

This commit is contained in:
percyashu
2020-05-28 20:40:35 +02:00
committed by Michael Vorburger ⛑️
parent 896571d479
commit e10a78b2bd
9 changed files with 113 additions and 12 deletions
+87
View File
@@ -47,6 +47,7 @@ buildscript {
classpath "gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin:4.2.0"
classpath "gradle.plugin.com.github.andygoossens:gradle-modernizer-plugin:1.3.0"
classpath "gradle.plugin.com.gorylenko.gradle-git-properties:gradle-git-properties:2.2.2"
classpath "net.ltgt.gradle:gradle-errorprone-plugin:1.1.1"
}
}
@@ -67,6 +68,7 @@ apply plugin: 'checkstyle'
apply plugin: 'com.github.andygoossens.gradle-modernizer-plugin'
apply plugin: 'jacoco'
apply plugin: "com.gorylenko.gradle-git-properties"
apply plugin: "net.ltgt.errorprone"
// apply plugin: 'pmd'
dependencyManagement {
@@ -278,6 +280,88 @@ configurations {
tasks.withType(JavaCompile) {
options.compilerArgs += ["-Xlint:unchecked","-Xlint:cast","-Werror"] // TODO FINERACT-959 (gradually) enable -Xlint:all (see "javac -help -X")
options.deprecation = true
options.errorprone {
disableWarningsInGeneratedCode = true
//Todo Remove necessary checks from this list
disable("UnusedVariable",
"VariableNameSameAsType",
"InconsistentCapitalization",
"UnnecessaryParentheses",
"ClassCanBeStatic",
"MissingCasesInEnumSwitch",
"CompareToZero",
"OperatorPrecedence",
"MixedMutabilityReturnType",
"SameNameButDifferent",
"EqualsGetClass",
"ReferenceEquality",
"StringSplitter",
"MissingOverride",
"BigDecimalEquals",
"ImmutableEnumChecker",
"EqualsUnsafeCast",
"AssertEqualsArgumentOrderChecker",
"BoxedPrimitiveEquality",
"BadImport",
"UnusedMethod",
"ModifiedButNotUsed",
"ArgumentSelectionDefectChecker",
"JodaPlusMinusLong",
"TypeParameterUnusedInFormals",
"DoubleBraceInitialization",
"UnusedNestedClass",
"UndefinedEquals",
"JdkObsolete",
"OperatorPrecedence",
"NarrowingCompoundAssignment"
)
//TODO gradually enable these checks
error( "DefaultCharset",
// "ReturnMissingNullable",
// "InconsistentOverloads",
// "MethodCanBeStatic",
// "Var",
// "ConstantField",
// "EmptySetMultibindingContributions",
// "MixedArrayDimensions",
// "MultipleTopLevelClasses",
// "MultiVariableDeclaration",
// "PackageLocation",
// "PrivateConstructorForNoninstantiableModule",
// "RemoveUnusedImports",
// "UnnecessaryStaticImport",
// "UseBinds",
// "WildcardImport",
// "FutureReturnValueIgnored",
// "IntLongMath",
// "FloatCast",
// "ClassNewInstance",
// "ConstructorInvokesOverridable",
// "ThreeLetterTimeZoneID",
// "UnsafeFinalization",
// "MutableMethodReturnType",
// "SynchronizeOnNonFinalField",
// "WaitNotInLoop",
// "SwitchDefault",
// "ReachabilityFenceUsage",
// "BoxedPrimitiveConstructor",
// "InjectOnConstructorOfAbstractClass",
//// "StringSplitter",
// "UnnecessaryDefaultInEnumSwitch",
// "StreamResourceLeak",
//// "InconsistentCapitalization",
// "TruthIncompatibleType",
// "ByteBufferBackingArray",
// "OrphanedFormatString",
// "CatchAndPrintStackTrace",
// "VarTypeName",
// "ObjectToString",
// "AssertThrowsMultipleStatements",
// "FieldCanBeFinal"
)
}
options.compilerArgs +=["-Xmaxwarns",1500,"-Xmaxerrs",1500]
}
apply from: 'dependencies.gradle'
@@ -398,6 +482,9 @@ dependencies {
tomcat "org.apache.tomcat:tomcat:9.0.34@zip"
}
dependencies {
errorprone "com.google.errorprone:error_prone_core:2.3.4"
}
cargo {
containerId "tomcat9x"
@@ -31,6 +31,7 @@ import org.apache.fineract.integrationtests.common.Utils;
import org.apache.fineract.integrationtests.common.organisation.StaffHelper;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
public class StaffTest {
@@ -91,6 +92,8 @@ public class StaffTest {
StaffHelper.createStaffWithJson(requestSpec, responseSpecForValidationError, new Gson().toJson(map));
}
@Test
@Ignore //TODO FINERACT-1005
public void testStaffCreateMaxNameLength() {
final HashMap<String, Object> map = new HashMap<>();
@@ -102,6 +105,7 @@ public class StaffTest {
StaffHelper.createStaffWithJson(requestSpec, responseSpec, new Gson().toJson(map));
}
@Test
public void testStaffCreateExternalIdValidationError() {
final HashMap<String, Object> map = new HashMap<>();
@@ -183,6 +187,8 @@ public class StaffTest {
Assert.assertEquals(mobileNo, changes.get("mobileNo"));
}
@Test
@Ignore // TODO FINERACT- 1005
public void testStaffUpdateLongExternalIdError() {
final HashMap<String, Object> map = new HashMap<>();
map.put("externalId", Utils.randomStringGenerator("EXT", 98));
@@ -190,6 +196,8 @@ public class StaffTest {
StaffHelper.updateStaff(requestSpec, responseSpecForValidationError, 1, map);
}
@Test
@Ignore // TODO FINERACT- 1005
public void testStaffUpdateWrongActiveState() {
final HashMap<String, Object> map = new HashMap<>();
map.put("isActive", "xyz");
@@ -19,6 +19,7 @@
package org.apache.fineract.integrationtests.common;
import com.google.gson.Gson;
import java.util.Arrays;
public class OfficeDomain {
@@ -127,7 +128,7 @@ public class OfficeDomain {
hash += this.externalId.hashCode();
}
if (this.openingDate != null) {
hash += this.openingDate.hashCode();
hash += Arrays.hashCode(this.openingDate);
}
if (this.hierarchy != null) {
hash += this.hierarchy.hashCode();
@@ -151,11 +152,11 @@ public class OfficeDomain {
if (this.id == od.getId() && this.name.equals(od.getName())
&& this.nameDecorated.equals(od.getName())
&& this.externalId.equals(od.getExternalId())
&& this.openingDate.equals(od.getOpeningDate())
&& Arrays.equals(this.openingDate, od.getOpeningDate())
&& this.hierarchy.equals(od.getHierarchy())) {
return true;
}
return false;
}
}
}
@@ -284,13 +284,14 @@ public class VariableInstallmentsDecliningBalanceHelper {
}
return toReturn;
}
public static String formatDate(ArrayList list) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, (int) list.get(0));
cal.set(Calendar.MONTH, (int) list.get(1) - 1);
cal.set(Calendar.DAY_OF_MONTH, (int) list.get(2));
Date date = cal.getTime();
DateFormat requiredFormat = new SimpleDateFormat("dd MMMM YYYY");
DateFormat requiredFormat = new SimpleDateFormat("dd MMMM yyyy");
return requiredFormat.format(date);
}
@@ -209,7 +209,7 @@ public class VariableInstallmentsFlatHelper {
cal.set(Calendar.MONTH, (int) list.get(1) - 1);
cal.set(Calendar.DAY_OF_MONTH, (int) list.get(2));
Date date = cal.getTime();
DateFormat requiredFormat = new SimpleDateFormat("dd MMMM YYYY");
DateFormat requiredFormat = new SimpleDateFormat("dd MMMM yyyy");
return requiredFormat.format(date);
}
@@ -88,9 +88,13 @@ public class MathUtil {
/** @return calculates minimum of the two values considering null values
* @param notNull if true then null parameter is omitted, otherwise returns null */
public static Long min(Long first, Long second, boolean notNull) {
return first == null
? (notNull ? second : null)
: second == null ? (notNull ? first : null) : Math.min(first, second);
if (first == null){
return notNull ? second : null;
}
if (second == null) {
return notNull ? first : null;
}
return Math.min(first, second);
}
/** @return calculates minimum of the values considering null values
@@ -42,7 +42,7 @@ public class FloatingRateDTO {
public BigDecimal fetchBaseRate(LocalDate date) {
BigDecimal rate = null;
for (FloatingRatePeriodData periodData : this.baseLendingRatePeriods) {
final LocalDate periodFromDate = new LocalDate(periodData.getFromDate());
final LocalDate periodFromDate = periodData.getFromDate();
if (periodFromDate.isBefore(date) || periodFromDate.isEqual(date)) {
rate = periodData.getInterestRate();
break;
@@ -62,7 +62,7 @@ public class FloatingRatePeriodData implements
}
public LocalDate getFromDateAsLocalDate() {
return new LocalDate(this.fromDate);
return this.fromDate;
}
public BigDecimal getInterestRate() {
@@ -1657,7 +1657,7 @@ public class SavingsAccountWritePlatformServiceJpaRepositoryImpl implements Savi
for (SavingsAccountTransaction transaction : savingsAccount.getTransactions()) {
if ((transaction.getTransactionLocalDate().isEqual(transferDate)
&& transaction.getTransactionLocalDate().isAfter(new LocalDate(transferDate)))
&& transaction.getTransactionLocalDate().isAfter(transferDate))
|| transaction.getTransactionLocalDate().isAfter(transferDate)) {
throw new GeneralPlatformDomainRuleException(TransferApiConstants.transferClientSavingsException,
TransferApiConstants.transferClientSavingsException, new LocalDate(transaction.createdDate()),
@@ -1667,4 +1667,4 @@ public class SavingsAccountWritePlatformServiceJpaRepositoryImpl implements Savi
}
}
}
}