fineract-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From vorbur...@apache.org
Subject [fineract] branch develop updated: FINERACT-942 Remove bad logging pattern(Use of system.out) and added checkstyle
Date Sat, 16 May 2020 16:13:52 GMT
This is an automated email from the ASF dual-hosted git repository.

vorburger pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/fineract.git


The following commit(s) were added to refs/heads/develop by this push:
     new 20e8a02  FINERACT-942 Remove bad logging pattern(Use of system.out) and added checkstyle
20e8a02 is described below

commit 20e8a022940c054f05b07a72b0a8de54f5efe139
Author: thesmallstar <manthan.surkar@gmail.com>
AuthorDate: Fri May 15 03:00:58 2020 +0530

    FINERACT-942 Remove bad logging pattern(Use of system.out) and added checkstyle
---
 fineract-provider/config/checkstyle/checkstyle.xml |   12 +-
 .../AccountNumberPreferencesTest.java              |   47 +-
 .../integrationtests/AccountTransferTest.java      |    9 +-
 .../AccountingScenarioIntegrationTest.java         |  118 +-
 .../BatchRequestsIntegrationTest.java              |    5 +-
 .../integrationtests/CenterIntegrationTest.java    |   10 +-
 .../ClientLoanIntegrationTest.java                 | 2214 +++++++++++---------
 .../ClientSavingsIntegrationTest.java              |   46 +-
 .../integrationtests/ClientStatusChecker.java      |   28 +-
 .../ConcurrencyIntegrationTest.java                |   21 +-
 .../DisbursalAndRepaymentScheduleTest.java         |  667 +++---
 .../ExternalServicesConfigurationTest.java         |    8 +-
 .../integrationtests/FixedDepositTest.java         |   90 +-
 ...xibleSavingsInterestPostingIntegrationTest.java |    6 +-
 .../fineract/integrationtests/GroupTest.java       |   10 +-
 .../integrationtests/HookIntegrationTest.java      |   12 +-
 .../LoanApplicationApprovalTest.java               |   29 +-
 .../LoanApplicationUndoLastTrancheTest.java        |   26 +-
 .../LoanDisbursalDateValidationTest.java           |   18 +-
 .../LoanDisbursementDetailsIntegrationTest.java    |   55 +-
 .../LoanRepaymentRescheduleAtDisbursementTest.java |   14 +-
 .../LoanRescheduleRequestTest.java                 |   27 +-
 .../LoanReschedulingWithinCenterTest.java          |   16 +-
 ...ithWaiveInterestAndWriteOffIntegrationTest.java |   20 +-
 .../integrationtests/NotificationApiTest.java      |    6 +-
 .../PasswordPreferencesIntegrationTest.java        |    6 +-
 .../integrationtests/RecurringDepositTest.java     |   92 +-
 .../fineract/integrationtests/RolesTest.java       |   28 +-
 .../integrationtests/SchedulerJobsTest.java        |   14 +-
 .../integrationtests/SchedulerJobsTestResults.java | 1532 +++++++-------
 .../SkipRepaymentOnMonthFirstTest.java             |   24 +-
 .../integrationtests/UserAdministrationTest.java   |    9 +-
 .../integrationtests/XBRLIntegrationTest.java      |    6 +-
 .../integrationtests/common/BatchHelper.java       |    6 +-
 .../integrationtests/common/CalendarHelper.java    |   26 +-
 .../integrationtests/common/CenterDomain.java      |    6 +-
 .../integrationtests/common/CenterHelper.java      |   46 +-
 .../integrationtests/common/ClientHelper.java      |  320 +--
 .../integrationtests/common/CurrenciesHelper.java  |   12 +-
 .../ExternalServicesConfigurationHelper.java       |   24 +-
 .../common/GlobalConfigurationHelper.java          |   27 +-
 .../integrationtests/common/HolidayHelper.java     |   10 +-
 .../integrationtests/common/HookHelper.java        |   18 +-
 .../integrationtests/common/ImageHelper.java       |   14 +-
 .../common/NotificationHelper.java                 |    6 +-
 .../integrationtests/common/OfficeHelper.java      |    8 +-
 .../common/PasswordPreferencesHelper.java          |   27 +-
 .../integrationtests/common/PaymentTypeHelper.java |   56 +-
 .../common/ProvisioningIntegrationTest.java        |   10 +-
 .../common/SchedulerJobHelper.java                 |   34 +-
 .../common/StandingInstructionsHelper.java         |   12 +-
 .../integrationtests/common/SurveyHelper.java      |   10 +-
 .../common/TaxComponentHelper.java                 |    8 +-
 .../integrationtests/common/TaxGroupHelper.java    |    6 +-
 .../fineract/integrationtests/common/Utils.java    |  122 +-
 .../integrationtests/common/WorkingDaysHelper.java |   13 +-
 .../common/charges/ChargesHelper.java              |  166 +-
 .../fixeddeposit/FixedDepositAccountHelper.java    |  162 +-
 .../FixedDepositAccountStatusChecker.java          |   63 +-
 .../fixeddeposit/FixedDepositProductHelper.java    |   14 +-
 .../common/loans/LoanTransactionHelper.java        |  312 +--
 .../common/organisation/CampaignsHelper.java       |   84 +-
 .../common/organisation/CurrencyHelper.java        |   29 +-
 .../organisation/EntityDatatableChecksHelper.java  |    6 +-
 .../EntityDatatableChecksIntegrationTest.java      |   12 +-
 .../common/organisation/StaffHelper.java           |   10 +-
 .../RecurringDepositAccountHelper.java             |  219 +-
 .../RecurringDepositAccountStatusChecker.java      |   40 +-
 .../RecurringDepositProductHelper.java             |   14 +-
 .../common/savings/AccountTransferHelper.java      |   39 +-
 .../common/savings/SavingsStatusChecker.java       |   98 +-
 .../common/shares/ShareAccountHelper.java          |    7 +-
 .../shares/ShareAccountIntegrationTests.java       |   16 +-
 .../common/shares/ShareProductHelper.java          |    7 +-
 .../system/AccountNumberPreferencesHelper.java     |   22 +-
 .../common/system/DatatableHelper.java             |    8 +-
 .../loanaccount/guarantor/GuarantorTest.java       |   36 +-
 .../guarantor/GuarantorTestBuilder.java            |    6 +-
 ...VariableInstallmentsDecliningBalanceHelper.java |   14 +-
 .../VariableInstallmentsFlatHelper.java            |    8 +-
 .../VariableInstallmentsIntegrationTest.java       |    9 +-
 .../core/boot/ApplicationExitUtil.java             |    7 +-
 .../core/exception/MultiException.java             |    8 +-
 .../java/org/apache/fineract/common/Utils.java     |    7 +-
 .../mix/report/service/XBRLBuilderTest.java        |   18 +-
 .../org/apache/fineract/notification/Listener.java |    6 +-
 .../apache/fineract/notification/SenderTest.java   |    6 +-
 87 files changed, 4135 insertions(+), 3364 deletions(-)

diff --git a/fineract-provider/config/checkstyle/checkstyle.xml b/fineract-provider/config/checkstyle/checkstyle.xml
index b628aa9..7663dc1 100644
--- a/fineract-provider/config/checkstyle/checkstyle.xml
+++ b/fineract-provider/config/checkstyle/checkstyle.xml
@@ -47,7 +47,13 @@
         <property name="fileExtensions" value="java"/>
     </module>
   -->
+   
     <module name="TreeWalker">
+    <module name="RegexpSinglelineJava">
+            <property name="format" value="System\.(out)|(err)\.print(ln)?\("/>
+            <property name="message" value="Line contains console output."/>
+            <property name="ignoreComments" value="false" />
+        </module>
         <module name="EqualsHashCode"/>
 
         <module name="RedundantImport"/>
@@ -84,12 +90,6 @@
             <property name="forbiddenImportsExcludesRegexp" value="" />
             <message key="forbid.certain.imports" value="Use ''java.nio.charset.StandardCharsets'' instead of ''{0}''" />
         </module>
-
-        <module name="RegexpSinglelineJava">
-            <property name="format" value="System\.(out)|(err)\.print(ln)?\("/>
-            <property name="message" value="Line contains console output."/>
-            <property name="ignoreComments" value="false" />
-        </module>
         <module name="RegexpSinglelineJava">
             <property name="format" value="\.printStackTrace?\("/>
             <property name="message" value="Line contains printStacktrace()."/>
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountNumberPreferencesTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountNumberPreferencesTest.java
index bd9609b..4e28a56 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountNumberPreferencesTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountNumberPreferencesTest.java
@@ -43,9 +43,12 @@ import org.apache.fineract.integrationtests.common.system.CodeHelper;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class AccountNumberPreferencesTest {
 
+    private final static Logger LOG = LoggerFactory.getLogger(AccountNumberPreferencesTest.class);
     private RequestSpecification requestSpec;
     private ResponseSpecification responseSpec;
     private ResponseSpecification responseValidationError;
@@ -149,10 +152,10 @@ public class AccountNumberPreferencesTest {
             Integer id = (Integer) preferenceId.get("id");
             HashMap<String, Object> delResponse = this.accountNumberPreferencesHelper.deleteAccountNumberPreference(id, this.responseSpec,
                     "");
-            System.out.println("Successfully deleted account number preference (ID: " + delResponse.get("resourceId") + ")");
+            LOG.info("Successfully deleted account number preference (ID: {} )",delResponse.get("resourceId"));
         }
         /* Deletion of invalid account preference ID should fail */
-        System.out.println("---------------------------------DELETING ACCOUNT NUMBER PREFERENCE WITH INVALID ID------------------------------------------");
+        LOG.info("---------------------------------DELETING ACCOUNT NUMBER PREFERENCE WITH INVALID ID------------------------------------------");
 
         HashMap<String, Object> deletionError = this.accountNumberPreferencesHelper.deleteAccountNumberPreference(10,
                 this.responseNotFoundError, "");
@@ -179,23 +182,23 @@ public class AccountNumberPreferencesTest {
     private void createAccountNumberPreference() {
         this.clientAccountNumberPreferenceId = (Integer) this.accountNumberPreferencesHelper.createClientAccountNumberPreference(
                 this.responseSpec, "resourceId");
-        System.out.println("Successfully created account number preferences for Client (ID: " + this.clientAccountNumberPreferenceId);
+        LOG.info("Successfully created account number preferences for Client (ID: {})",this.clientAccountNumberPreferenceId);
 
         this.loanAccountNumberPreferenceId = (Integer) this.accountNumberPreferencesHelper.createLoanAccountNumberPreference(
                 this.responseSpec, "resourceId");
-        System.out.println("Successfully created account number preferences for Loan (ID: " + this.loanAccountNumberPreferenceId);
+        LOG.info("Successfully created account number preferences for Loan (ID: {} )", this.loanAccountNumberPreferenceId);
 
         this.savingsAccountNumberPreferenceId = (Integer) this.accountNumberPreferencesHelper.createSavingsAccountNumberPreference(
                 this.responseSpec, "resourceId");
-        System.out.println("Successfully created account number preferences for Savings (ID: " + this.savingsAccountNumberPreferenceId);
+        LOG.info("Successfully created account number preferences for Savings (ID: {})" , this.savingsAccountNumberPreferenceId);
 
         this.groupsAccountNumberPreferenceId = (Integer) this.accountNumberPreferencesHelper.createGroupsAccountNumberPreference(
                 this.responseSpec, "resourceId");
-        System.out.println("Successfully created account number preferences for Groups (ID: " + this.groupsAccountNumberPreferenceId);
+        LOG.info("Successfully created account number preferences for Groups (ID: {})" , this.groupsAccountNumberPreferenceId);
 
         this.centerAccountNumberPreferenceId = (Integer) this.accountNumberPreferencesHelper.createCenterAccountNumberPreference(
                 this.responseSpec, "resourceId");
-        System.out.println("Successfully created account number preferences for Center (ID: " + this.centerAccountNumberPreferenceId);
+        LOG.info("Successfully created account number preferences for Center (ID: {})" ,this.centerAccountNumberPreferenceId);
 
         this.accountNumberPreferencesHelper.verifyCreationOfAccountNumberPreferences(this.clientAccountNumberPreferenceId,
                 this.loanAccountNumberPreferenceId, this.savingsAccountNumberPreferenceId, this.groupsAccountNumberPreferenceId,
@@ -208,7 +211,7 @@ public class AccountNumberPreferencesTest {
 
     private void createAccountNumberPreferenceDuplicateData(final String accountType, final String prefixType) {
         /* Creating account Preference with duplicate data should fail */
-        System.out.println("---------------------------------CREATING ACCOUNT NUMBER PREFERENCE WITH DUPLICATE DATA------------------------------------------");
+        LOG.info("---------------------------------CREATING ACCOUNT NUMBER PREFERENCE WITH DUPLICATE DATA------------------------------------------");
 
         HashMap<String, Object> creationError = this.accountNumberPreferencesHelper.createAccountNumberPreferenceWithInvalidData(
                 this.responseForbiddenError, accountType, prefixType, "");
@@ -221,7 +224,7 @@ public class AccountNumberPreferencesTest {
     private void createAccountNumberPreferenceInvalidData(final String accountType, final String prefixType) {
 
         /* Creating account Preference with invalid data should fail */
-        System.out.println("---------------------------------CREATING ACCOUNT NUMBER PREFERENCE WITH INVALID DATA------------------------------------------");
+        LOG.info("---------------------------------CREATING ACCOUNT NUMBER PREFERENCE WITH INVALID DATA------------------------------------------");
 
         HashMap<String, Object> creationError = this.accountNumberPreferencesHelper.createAccountNumberPreferenceWithInvalidData(
                 this.responseValidationError, accountType, prefixType, "");
@@ -241,14 +244,14 @@ public class AccountNumberPreferencesTest {
         HashMap<String, Object> accountNumberPreferences = this.accountNumberPreferencesHelper.updateAccountNumberPreference(
                 this.clientAccountNumberPreferenceId, "101", this.responseSpec, "");
 
-        System.out.println("--------------------------UPDATION SUCCESSFUL FOR ACCOUNT NUMBER PREFERENCE ID "
-                + accountNumberPreferences.get("resourceId"));
+        LOG.info("--------------------------UPDATION SUCCESSFUL FOR ACCOUNT NUMBER PREFERENCE ID {}"
+                , accountNumberPreferences.get("resourceId"));
 
         this.accountNumberPreferencesHelper.verifyUpdationOfAccountNumberPreferences((Integer) accountNumberPreferences.get("resourceId"),
                 this.responseSpec, this.requestSpec);
 
         /* Update invalid account preference id should fail */
-        System.out.println("---------------------------------UPDATING ACCOUNT NUMBER PREFERENCE WITH INVALID DATA------------------------------------------");
+        LOG.info("---------------------------------UPDATING ACCOUNT NUMBER PREFERENCE WITH INVALID DATA------------------------------------------");
 
         /* Invalid Account Type */
         HashMap<String, Object> updationError = this.accountNumberPreferencesHelper.updateAccountNumberPreference(9999, "101",
@@ -380,20 +383,20 @@ public class AccountNumberPreferencesTest {
     private void createLoanProduct() {
         this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
 
-        System.out.println("---------------------------------CREATING LOAN PRODUCT------------------------------------------");
+        LOG.info("---------------------------------CREATING LOAN PRODUCT------------------------------------------");
 
         final String loanProductJSON = new LoanProductTestBuilder().withPrincipal(loanPrincipalAmount)
                 .withNumberOfRepayments(numberOfRepayments).withinterestRatePerPeriod(interestRatePerPeriod)
                 .withInterestRateFrequencyTypeAsYear().build(null);
 
         this.loanProductId = this.loanTransactionHelper.getLoanProductId(loanProductJSON);
-        System.out.println("Successfully created loan product  (ID: " + this.loanProductId + ")");
+        LOG.info("Successfully created loan product  (ID: {} )" , this.loanProductId);
     }
 
     private void createAndValidateLoanEntity(Boolean isAccountPreferenceSetUp) {
         this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
 
-        System.out.println("---------------------------------NEW LOAN APPLICATION------------------------------------------");
+        LOG.info("---------------------------------NEW LOAN APPLICATION------------------------------------------");
 
         final String loanApplicationJSON = new LoanApplicationTestBuilder().withPrincipal(loanPrincipalAmount)
                 .withLoanTermFrequency(numberOfRepayments).withLoanTermFrequencyAsMonths().withNumberOfRepayments(numberOfRepayments)
@@ -402,7 +405,7 @@ public class AccountNumberPreferencesTest {
                 .withSubmittedOnDate(dateString).withExpectedDisbursementDate(dateString).withPrincipalGrace("2").withInterestGrace("2")
                 .build(this.clientId.toString(), this.loanProductId.toString(), null);
 
-        System.out.println("Loan Application :" + loanApplicationJSON);
+        LOG.info("Loan Application :{}" , loanApplicationJSON);
 
         this.loanId = this.loanTransactionHelper.getLoanId(loanApplicationJSON);
         String loanAccountNo = (String) this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec, this.loanId,
@@ -419,17 +422,17 @@ public class AccountNumberPreferencesTest {
                         this.loanProductId, "shortName");
                 this.validateAccountNumberLengthAndStartsWithPrefix(loanAccountNo, loanShortName);
             }
-            System.out.println("SUCCESSFULLY CREATED LOAN APPLICATION BASED ON ACCOUNT PREFERENCES (ID: " + this.loanId + ")");
+            LOG.info("SUCCESSFULLY CREATED LOAN APPLICATION BASED ON ACCOUNT PREFERENCES (ID: {} )",this.loanId );
         } else {
             this.validateAccountNumberLengthAndStartsWithPrefix(loanAccountNo, null);
-            System.out.println("SUCCESSFULLY CREATED LOAN APPLICATION (ID: " + loanId + ")");
+            LOG.info("SUCCESSFULLY CREATED LOAN APPLICATION (ID: {} )",loanId);
         }
     }
 
     private void createSavingsProduct() {
         this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
 
-        System.out.println("------------------------------CREATING NEW SAVINGS PRODUCT ---------------------------------------");
+        LOG.info("------------------------------CREATING NEW SAVINGS PRODUCT ---------------------------------------");
 
         SavingsProductHelper savingsProductHelper = new SavingsProductHelper();
 
@@ -446,7 +449,7 @@ public class AccountNumberPreferencesTest {
                 .withMinRequiredBalance(minRequiredBalance).withEnforceMinRequiredBalance(enforceMinRequiredBalance)
                 .withMinimumOpenningBalance(this.MINIMUM_OPENING_BALANCE).build();
         this.savingsProductId = SavingsProductHelper.createSavingsProduct(savingsProductJSON, this.requestSpec, this.responseSpec);
-        System.out.println("Sucessfully created savings product (ID: " + this.savingsProductId + ")");
+        LOG.info("Sucessfully created savings product (ID: {} )",this.savingsProductId);
 
     }
 
@@ -472,10 +475,10 @@ public class AccountNumberPreferencesTest {
                 String loanShortName = (String) this.savingsAccountHelper.getSavingsAccountDetail(this.savingsId, "shortName");
                 this.validateAccountNumberLengthAndStartsWithPrefix(savingsAccountNo, loanShortName);
             }
-            System.out.println("SUCCESSFULLY CREATED SAVINGS APPLICATION BASED ON ACCOUNT PREFERENCES (ID: " + this.loanId + ")");
+            LOG.info("SUCCESSFULLY CREATED SAVINGS APPLICATION BASED ON ACCOUNT PREFERENCES (ID:  {} )",this.loanId);
         } else {
             this.validateAccountNumberLengthAndStartsWithPrefix(savingsAccountNo, null);
-            System.out.println("SUCCESSFULLY CREATED SAVINGS APPLICATION (ID: " + this.savingsId + ")");
+            LOG.info("SUCCESSFULLY CREATED SAVINGS APPLICATION (ID:{} )",this.savingsId);
         }
     }
 }
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountTransferTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountTransferTest.java
index 5b76785..e274a38 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountTransferTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountTransferTest.java
@@ -49,6 +49,8 @@ import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * JUnit Test Cases for Account Transfer for.
@@ -56,6 +58,7 @@ import org.junit.Test;
 @SuppressWarnings({ "rawtypes", "unused" })
 public class AccountTransferTest {
 
+    private final static Logger LOG = LoggerFactory.getLogger(AccountTransferTest.class);
     public static final String MINIMUM_OPENING_BALANCE = "30000.0";
     public static final String ACCOUNT_TYPE_INDIVIDUAL = "INDIVIDUAL";
     public static final String ACCOUNT_TRANSFER_AMOUNT = "15000.0";
@@ -443,7 +446,7 @@ public class AccountTransferTest {
 
     private Integer createSavingsProduct(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
             final String minOpenningBalance, final Account... accounts) {
-        System.out.println("------------------------------CREATING NEW SAVINGS PRODUCT ---------------------------------------");
+        LOG.info("------------------------------CREATING NEW SAVINGS PRODUCT ---------------------------------------");
         SavingsProductHelper savingsProductHelper = new SavingsProductHelper();
         final String savingsProductJSON = savingsProductHelper //
                 .withInterestCompoundingPeriodTypeAsDaily() //
@@ -454,7 +457,7 @@ public class AccountTransferTest {
     }
 
     private Integer createLoanProduct(final Account... accounts) {
-        System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
+        LOG.info("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
         final String loanProductJSON = new LoanProductTestBuilder() //
                 .withPrincipal("8,000.00") //
                 .withNumberOfRepayments("4") //
@@ -470,7 +473,7 @@ public class AccountTransferTest {
     }
 
     private Integer applyForLoanApplication(final Integer clientID, final Integer loanProductID) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
+        LOG.info("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
         final String loanApplicationJSON = new LoanApplicationTestBuilder() //
                 .withPrincipal("8,000.00") //
                 .withLoanTermFrequency("4") //
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountingScenarioIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountingScenarioIntegrationTest.java
index 31d89ab..3f56e87 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountingScenarioIntegrationTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/AccountingScenarioIntegrationTest.java
@@ -64,10 +64,12 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({ "unused", "rawtypes", "unchecked", "static-access" })
 public class AccountingScenarioIntegrationTest {
-
+    private final static Logger LOG = LoggerFactory.getLogger(AccountingScenarioIntegrationTest.class);
     private static RequestSpecification requestSpec;
     private static ResponseSpecification responseSpec;
 
@@ -146,19 +148,19 @@ public class AccountingScenarioIntegrationTest {
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
         // CHECK ACCOUNT ENTRIES
-        System.out.println("Entries ......");
+        LOG.info("Entries ......");
         final float PRINCIPAL_VALUE_FOR_EACH_PERIOD = 2000.0f;
         final float TOTAL_INTEREST = 1000.0f;
         final JournalEntry[] assetAccountInitialEntry = { new JournalEntry(TOTAL_INTEREST, JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(this.LP_PRINCIPAL, JournalEntry.TransactionType.CREDIT),
                 new JournalEntry(this.LP_PRINCIPAL, JournalEntry.TransactionType.DEBIT), };
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, this.EXPECTED_DISBURSAL_DATE, assetAccountInitialEntry);
-        System.out.println("CHECKING INCOME: ******************************************");
+        LOG.info("CHECKING INCOME: ******************************************");
         final JournalEntry incomeJournalEntry = new JournalEntry(TOTAL_INTEREST, JournalEntry.TransactionType.CREDIT);
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, this.EXPECTED_DISBURSAL_DATE, incomeJournalEntry);
 
         // MAKE 1
-        System.out.println("Repayment 1 ......");
+        LOG.info("Repayment 1 ......");
         this.loanTransactionHelper.makeRepayment(this.REPAYMENT_DATE[1], this.REPAYMENT_AMOUNT[1], loanID);
         final float FIRST_INTEREST = 200.0f;
         final float FIRST_PRINCIPAL = 2000.0f;
@@ -167,10 +169,10 @@ public class AccountingScenarioIntegrationTest {
         final JournalEntry[] assetAccountFirstEntry = { new JournalEntry(this.REPAYMENT_AMOUNT[1], JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(FIRST_INTEREST + FIRST_PRINCIPAL, JournalEntry.TransactionType.CREDIT) };
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, this.REPAYMENT_DATE[1], assetAccountFirstEntry);
-        System.out.println("Repayment 1 Done......");
+        LOG.info("Repayment 1 Done......");
 
         // REPAYMENT 2
-        System.out.println("Repayment 2 ......");
+        LOG.info("Repayment 2 ......");
         this.loanTransactionHelper.makeRepayment(this.REPAYMENT_DATE[2], this.REPAYMENT_AMOUNT[2], loanID);
         final float SECOND_AND_THIRD_INTEREST = 400.0f;
         final float SECOND_PRINCIPAL = this.REPAYMENT_AMOUNT[2] - SECOND_AND_THIRD_INTEREST;
@@ -179,10 +181,10 @@ public class AccountingScenarioIntegrationTest {
         final JournalEntry[] assetAccountSecondEntry = { new JournalEntry(this.REPAYMENT_AMOUNT[2], JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(SECOND_AND_THIRD_INTEREST + SECOND_PRINCIPAL, JournalEntry.TransactionType.CREDIT) };
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, this.REPAYMENT_DATE[2], assetAccountSecondEntry);
-        System.out.println("Repayment 2 Done ......");
+        LOG.info("Repayment 2 Done ......");
 
         // WAIVE INTEREST
-        System.out.println("Waive Interest  ......");
+        LOG.info("Waive Interest  ......");
         this.loanTransactionHelper.waiveInterest(this.REPAYMENT_DATE[4], this.AMOUNT_TO_BE_WAIVE.toString(), loanID);
 
         final JournalEntry waivedEntry = new JournalEntry(this.AMOUNT_TO_BE_WAIVE, JournalEntry.TransactionType.CREDIT);
@@ -190,41 +192,41 @@ public class AccountingScenarioIntegrationTest {
 
         final JournalEntry expenseJournalEntry = new JournalEntry(this.AMOUNT_TO_BE_WAIVE, JournalEntry.TransactionType.DEBIT);
         this.journalEntryHelper.checkJournalEntryForExpenseAccount(expenseAccount, this.REPAYMENT_DATE[4], expenseJournalEntry);
-        System.out.println("Waive Interest Done......");
+        LOG.info("Waive Interest Done......");
 
         // REPAYMENT 3
-        System.out.println("Repayment 3 ......");
+        LOG.info("Repayment 3 ......");
         this.loanTransactionHelper.makeRepayment(this.REPAYMENT_DATE[3], this.REPAYMENT_AMOUNT[3], loanID);
         expected_value = expected_value - PRINCIPAL_VALUE_FOR_EACH_PERIOD;
         final JournalEntry[] assetAccountThirdEntry = { new JournalEntry(this.REPAYMENT_AMOUNT[3], JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(this.REPAYMENT_AMOUNT[3], JournalEntry.TransactionType.CREDIT) };
         this.loanTransactionHelper.verifyRepaymentScheduleEntryFor(3, expected_value, loanID);
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, this.REPAYMENT_DATE[3], assetAccountThirdEntry);
-        System.out.println("Repayment 3 Done ......");
+        LOG.info("Repayment 3 Done ......");
 
         // REPAYMENT 4
-        System.out.println("Repayment 4 ......");
+        LOG.info("Repayment 4 ......");
         this.loanTransactionHelper.makeRepayment(this.REPAYMENT_DATE[4], this.REPAYMENT_AMOUNT[4], loanID);
         expected_value = expected_value - PRINCIPAL_VALUE_FOR_EACH_PERIOD;
         this.loanTransactionHelper.verifyRepaymentScheduleEntryFor(4, expected_value, loanID);
         final JournalEntry[] assetAccountFourthEntry = { new JournalEntry(this.REPAYMENT_AMOUNT[4], JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(this.REPAYMENT_AMOUNT[4], JournalEntry.TransactionType.CREDIT) };
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, this.REPAYMENT_DATE[4], assetAccountFourthEntry);
-        System.out.println("Repayment 4 Done  ......");
+        LOG.info("Repayment 4 Done  ......");
 
         // Repayment 5
-        System.out.println("Repayment 5 ......");
+        LOG.info("Repayment 5 ......");
         final JournalEntry[] assetAccountFifthEntry = { new JournalEntry(this.REPAYMENT_AMOUNT[5], JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(this.REPAYMENT_AMOUNT[5], JournalEntry.TransactionType.CREDIT) };
         expected_value = expected_value - PRINCIPAL_VALUE_FOR_EACH_PERIOD;
         this.loanTransactionHelper.makeRepayment(this.REPAYMENT_DATE[5], this.REPAYMENT_AMOUNT[5], loanID);
         this.loanTransactionHelper.verifyRepaymentScheduleEntryFor(5, expected_value, loanID);
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, this.REPAYMENT_DATE[5], assetAccountFifthEntry);
-        System.out.println("Repayment 5 Done  ......");
+        LOG.info("Repayment 5 Done  ......");
     }
 
     private Integer createLoanProductWithUpfrontAccrualAccountingEnabled(final Account... accounts) {
-        System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
+        LOG.info("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
         final String loanProductJSON = new LoanProductTestBuilder().withPrincipal(this.LP_PRINCIPAL.toString()).withRepaymentTypeAsMonth()
                 .withRepaymentAfterEvery(this.LP_REPAYMENT_PERIOD).withNumberOfRepayments(this.LP_REPAYMENTS).withRepaymentTypeAsMonth()
                 .withinterestRatePerPeriod(this.LP_INTEREST_RATE).withInterestRateFrequencyTypeAsMonths()
@@ -234,7 +236,7 @@ public class AccountingScenarioIntegrationTest {
     }
 
     private Integer applyForLoanApplication(final Integer clientID, final Integer loanProductID) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
+        LOG.info("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
         final String loanApplicationJSON = new LoanApplicationTestBuilder().withPrincipal(this.LP_PRINCIPAL.toString())
                 .withLoanTermFrequency(this.LOAN_TERM_FREQUENCY).withLoanTermFrequencyAsMonths().withNumberOfRepayments(this.LP_REPAYMENTS)
                 .withRepaymentEveryAfter(this.LP_REPAYMENT_PERIOD).withRepaymentFrequencyTypeAsMonths()
@@ -283,7 +285,7 @@ public class AccountingScenarioIntegrationTest {
         HashMap summary = this.savingsAccountHelper.getSavingsSummary(savingsID);
         assertEquals("Verifying Balance after Deposit", balance, summary.get("accountBalance"));
 
-        System.out.println("----------------------Verifying Journal Entry after the Transaction Deposit----------------------------");
+        LOG.info("----------------------Verifying Journal Entry after the Transaction Deposit----------------------------");
         final JournalEntry[] assetAccountFirstTransactionEntry = { new JournalEntry(this.SP_DEPOSIT_AMOUNT,
                 JournalEntry.TransactionType.DEBIT) };
         final JournalEntry[] liabililityAccountFirstTransactionEntry = { new JournalEntry(this.SP_DEPOSIT_AMOUNT,
@@ -299,7 +301,7 @@ public class AccountingScenarioIntegrationTest {
         summary = this.savingsAccountHelper.getSavingsSummary(savingsID);
         assertEquals("Verifying Balance after Withdrawal", balance, summary.get("accountBalance"));
 
-        System.out.println("-------------------Verifying Journal Entry after the Transaction Withdrawal----------------------");
+        LOG.info("-------------------Verifying Journal Entry after the Transaction Withdrawal----------------------");
         final JournalEntry[] assetAccountSecondTransactionEntry = { new JournalEntry(this.SP_WITHDRAWAL_AMOUNT,
                 JournalEntry.TransactionType.CREDIT) };
         final JournalEntry[] liabililityAccountSecondTransactionEntry = { new JournalEntry(this.SP_WITHDRAWAL_AMOUNT,
@@ -506,7 +508,7 @@ public class AccountingScenarioIntegrationTest {
     }
 
     public static Integer createSavingsProduct(final String minOpenningBalance, final Account... accounts) {
-        System.out.println("------------------------------CREATING NEW SAVINGS PRODUCT ---------------------------------------");
+        LOG.info("------------------------------CREATING NEW SAVINGS PRODUCT ---------------------------------------");
         final String savingsProductJSON = new SavingsProductHelper().withInterestCompoundingPeriodTypeAsDaily() //
                 .withInterestPostingPeriodTypeAsQuarterly() //
                 .withInterestCalculationPeriodTypeAsDailyBalance() //
@@ -515,7 +517,7 @@ public class AccountingScenarioIntegrationTest {
     }
 
     private Integer createFixedDepositProduct(final String validFrom, final String validTo, Account... accounts) {
-        System.out.println("------------------------------CREATING NEW FIXED DEPOSIT PRODUCT ---------------------------------------");
+        LOG.info("------------------------------CREATING NEW FIXED DEPOSIT PRODUCT ---------------------------------------");
         FixedDepositProductHelper fixedDepositProductHelper = new FixedDepositProductHelper(this.requestSpec, this.responseSpec);
         final String fixedDepositProductJSON = fixedDepositProductHelper //
                 .withPeriodRangeChart()//
@@ -525,7 +527,7 @@ public class AccountingScenarioIntegrationTest {
 
     private Integer applyForFixedDepositApplication(final String clientID, final String productID, final String validFrom,
             final String validTo, final String submittedOnDate, final String penalInterestType) {
-        System.out.println("--------------------------------APPLYING FOR FIXED DEPOSIT ACCOUNT --------------------------------");
+        LOG.info("--------------------------------APPLYING FOR FIXED DEPOSIT ACCOUNT --------------------------------");
         final String fixedDepositApplicationJSON = new FixedDepositAccountHelper(this.requestSpec, this.responseSpec) //
                 .withSubmittedOnDate(submittedOnDate).build(clientID, productID, penalInterestType);
         return this.fixedDepositAccountHelper
@@ -533,7 +535,7 @@ public class AccountingScenarioIntegrationTest {
     }
 
     private Integer createRecurringDepositProduct(final String validFrom, final String validTo, Account... accounts) {
-        System.out.println("------------------------------CREATING NEW RECURRING DEPOSIT PRODUCT ---------------------------------------");
+        LOG.info("------------------------------CREATING NEW RECURRING DEPOSIT PRODUCT ---------------------------------------");
         RecurringDepositProductHelper recurringDepositProductHelper = new RecurringDepositProductHelper(this.requestSpec, this.responseSpec);
         final String recurringDepositProductJSON = recurringDepositProductHelper //
                 .withPeriodRangeChart()//
@@ -543,7 +545,7 @@ public class AccountingScenarioIntegrationTest {
 
     private Integer applyForRecurringDepositApplication(final String clientID, final String productID, final String validFrom,
             final String validTo, final String submittedOnDate, final String penalInterestType, final String expectedFirstDepositOnDate) {
-        System.out.println("--------------------------------APPLYING FOR RECURRING DEPOSIT ACCOUNT --------------------------------");
+        LOG.info("--------------------------------APPLYING FOR RECURRING DEPOSIT ACCOUNT --------------------------------");
         final String recurringDepositApplicationJSON = new RecurringDepositAccountHelper(this.requestSpec, this.responseSpec)
                 //
                 .withSubmittedOnDate(submittedOnDate).withExpectedFirstDepositOnDate(expectedFirstDepositOnDate)
@@ -577,7 +579,7 @@ public class AccountingScenarioIntegrationTest {
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
         // CHECK ACCOUNT ENTRIES
-        System.out.println("Entries ......");
+        LOG.info("Entries ......");
         final float PRINCIPAL_VALUE_FOR_EACH_PERIOD = 2000.0f;
         final float TOTAL_INTEREST = 1000.0f;
         final JournalEntry[] assetAccountInitialEntry = { new JournalEntry(this.LP_PRINCIPAL, JournalEntry.TransactionType.CREDIT),
@@ -592,7 +594,7 @@ public class AccountingScenarioIntegrationTest {
         }
 
         // MAKE 1
-        System.out.println("Repayment 1 ......");
+        LOG.info("Repayment 1 ......");
         final float FIRST_INTEREST = 200.0f;
         final float FIRST_PRINCIPAL = 2000.0f;
         final float FEE_PORTION = 0.0f;
@@ -605,10 +607,10 @@ public class AccountingScenarioIntegrationTest {
         final JournalEntry[] assetAccountFirstEntry = { new JournalEntry(this.REPAYMENT_AMOUNT[1], JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(FIRST_INTEREST + FIRST_PRINCIPAL, JournalEntry.TransactionType.CREDIT) };
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, this.REPAYMENT_DATE[1], assetAccountFirstEntry);
-        System.out.println("Repayment 1 Done......");
+        LOG.info("Repayment 1 Done......");
 
         // REPAYMENT 2
-        System.out.println("Repayment 2 ......");
+        LOG.info("Repayment 2 ......");
         this.loanTransactionHelper.makeRepayment(this.REPAYMENT_DATE[2], this.REPAYMENT_AMOUNT[2], loanID);
         final float SECOND_AND_THIRD_INTEREST = 400.0f;
         final float SECOND_PRINCIPAL = this.REPAYMENT_AMOUNT[2] - SECOND_AND_THIRD_INTEREST;
@@ -621,10 +623,10 @@ public class AccountingScenarioIntegrationTest {
         final JournalEntry[] assetAccountSecondEntry = { new JournalEntry(this.REPAYMENT_AMOUNT[2], JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(SECOND_AND_THIRD_INTEREST + SECOND_PRINCIPAL, JournalEntry.TransactionType.CREDIT) };
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, this.REPAYMENT_DATE[2], assetAccountSecondEntry);
-        System.out.println("Repayment 2 Done ......");
+        LOG.info("Repayment 2 Done ......");
 
         // WAIVE INTEREST
-        System.out.println("Waive Interest  ......");
+        LOG.info("Waive Interest  ......");
         this.loanTransactionHelper.checkAccrualTransactionForRepayment(getDateAsLocalDate(this.REPAYMENT_DATE[4]), FIRST_INTEREST,
                 FEE_PORTION, PENALTY_PORTION, loanID);
         this.loanTransactionHelper.checkAccrualTransactionForRepayment(getDateAsLocalDate(this.REPAYMENT_DATE[5]), FIRST_INTEREST,
@@ -636,37 +638,37 @@ public class AccountingScenarioIntegrationTest {
 
         final JournalEntry expenseJournalEntry = new JournalEntry(this.AMOUNT_TO_BE_WAIVE, JournalEntry.TransactionType.DEBIT);
         this.journalEntryHelper.checkJournalEntryForExpenseAccount(expenseAccount, this.REPAYMENT_DATE[4], expenseJournalEntry);
-        System.out.println("Waive Interest Done......");
+        LOG.info("Waive Interest Done......");
 
         // REPAYMENT 3
-        System.out.println("Repayment 3 ......");
+        LOG.info("Repayment 3 ......");
         this.loanTransactionHelper.makeRepayment(this.REPAYMENT_DATE[3], this.REPAYMENT_AMOUNT[3], loanID);
         expected_value = expected_value - PRINCIPAL_VALUE_FOR_EACH_PERIOD;
         final JournalEntry[] assetAccountThirdEntry = { new JournalEntry(this.REPAYMENT_AMOUNT[3], JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(this.REPAYMENT_AMOUNT[3], JournalEntry.TransactionType.CREDIT) };
         this.loanTransactionHelper.verifyRepaymentScheduleEntryFor(3, expected_value, loanID);
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, this.REPAYMENT_DATE[3], assetAccountThirdEntry);
-        System.out.println("Repayment 3 Done ......");
+        LOG.info("Repayment 3 Done ......");
 
         // REPAYMENT 4
-        System.out.println("Repayment 4 ......");
+        LOG.info("Repayment 4 ......");
         this.loanTransactionHelper.makeRepayment(this.REPAYMENT_DATE[4], this.REPAYMENT_AMOUNT[4], loanID);
         expected_value = expected_value - PRINCIPAL_VALUE_FOR_EACH_PERIOD;
         this.loanTransactionHelper.verifyRepaymentScheduleEntryFor(4, expected_value, loanID);
         final JournalEntry[] assetAccountFourthEntry = { new JournalEntry(this.REPAYMENT_AMOUNT[4], JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(this.REPAYMENT_AMOUNT[4], JournalEntry.TransactionType.CREDIT) };
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, this.REPAYMENT_DATE[4], assetAccountFourthEntry);
-        System.out.println("Repayment 4 Done  ......");
+        LOG.info("Repayment 4 Done  ......");
 
         // Repayment 5
-        System.out.println("Repayment 5 ......");
+        LOG.info("Repayment 5 ......");
         final JournalEntry[] assetAccountFifthEntry = { new JournalEntry(this.REPAYMENT_AMOUNT[5], JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(this.REPAYMENT_AMOUNT[5], JournalEntry.TransactionType.CREDIT) };
         expected_value = expected_value - PRINCIPAL_VALUE_FOR_EACH_PERIOD;
         this.loanTransactionHelper.makeRepayment(this.REPAYMENT_DATE[5], this.REPAYMENT_AMOUNT[5], loanID);
         this.loanTransactionHelper.verifyRepaymentScheduleEntryFor(5, expected_value, loanID);
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, this.REPAYMENT_DATE[5], assetAccountFifthEntry);
-        System.out.println("Repayment 5 Done  ......");
+        LOG.info("Repayment 5 Done  ......");
     }
 
     @Test
@@ -694,7 +696,7 @@ public class AccountingScenarioIntegrationTest {
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
         // CHECK ACCOUNT ENTRIES
-        System.out.println("Entries ......");
+        LOG.info("Entries ......");
         final float PRINCIPAL_VALUE_FOR_EACH_PERIOD = 2000.0f;
         final float TOTAL_INTEREST = 1000.0f;
         final JournalEntry[] assetAccountInitialEntry = { new JournalEntry(this.LP_PRINCIPAL, JournalEntry.TransactionType.CREDIT),
@@ -709,7 +711,7 @@ public class AccountingScenarioIntegrationTest {
         }
 
         // MAKE 1
-        System.out.println("Repayment 1 ......");
+        LOG.info("Repayment 1 ......");
         final float FIRST_INTEREST = 200.0f;
         final float FIRST_PRINCIPAL = 2000.0f;
         final float FEE_PORTION = 0.0f;
@@ -724,7 +726,7 @@ public class AccountingScenarioIntegrationTest {
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, this.REPAYMENT_DATE[1], assetAccountEntry);
         this.journalEntryHelper.checkJournalEntryForLiabilityAccount(overpaymentAccount, this.REPAYMENT_DATE[1], new JournalEntry(4000f,
                 JournalEntry.TransactionType.CREDIT));
-        System.out.println("Repayment  Done......");
+        LOG.info("Repayment  Done......");
 
     }
 
@@ -783,7 +785,7 @@ public class AccountingScenarioIntegrationTest {
                 String.valueOf(flat), dateFormat.format(todayDate.getTime()), String.valueOf(FEE_PORTION)));
 
         // CHECK ACCOUNT ENTRIES
-        System.out.println("Entries ......");
+        LOG.info("Entries ......");
         final float PRINCIPAL_VALUE_FOR_EACH_PERIOD = 2000.0f;
         final float TOTAL_INTEREST = 1000.0f;
         final JournalEntry[] assetAccountInitialEntry = { new JournalEntry(this.LP_PRINCIPAL, JournalEntry.TransactionType.CREDIT),
@@ -902,7 +904,7 @@ public class AccountingScenarioIntegrationTest {
                         dateFormat.format(todayDate.getTime()), String.valueOf(NEXT_FEE_PORTION)));
 
         // CHECK ACCOUNT ENTRIES
-        System.out.println("Entries ......");
+        LOG.info("Entries ......");
         final float PRINCIPAL_VALUE_FOR_EACH_PERIOD = 2000.0f;
         final float TOTAL_INTEREST = 1000.0f;
         final JournalEntry[] assetAccountInitialEntry = { new JournalEntry(this.LP_PRINCIPAL, JournalEntry.TransactionType.CREDIT),
@@ -946,7 +948,7 @@ public class AccountingScenarioIntegrationTest {
     }
 
     private Integer createLoanProductWithPeriodicAccrualAccountingEnabled(final Account... accounts) {
-        System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
+        LOG.info("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
         final String loanProductJSON = new LoanProductTestBuilder().withPrincipal(this.LP_PRINCIPAL.toString()).withRepaymentTypeAsMonth()
                 .withRepaymentAfterEvery(this.LP_REPAYMENT_PERIOD).withNumberOfRepayments(this.LP_REPAYMENTS).withRepaymentTypeAsMonth()
                 .withinterestRatePerPeriod(this.LP_INTEREST_RATE).withInterestRateFrequencyTypeAsMonths()
@@ -979,7 +981,7 @@ public class AccountingScenarioIntegrationTest {
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
         // CHECK ACCOUNT ENTRIES
-        System.out.println("Entries ......");
+        LOG.info("Entries ......");
         final float PRINCIPAL_VALUE_FOR_EACH_PERIOD = 2000.0f;
         final float TOTAL_INTEREST = 1000.0f;
         final JournalEntry[] assetAccountInitialEntry = { new JournalEntry(this.LP_PRINCIPAL, JournalEntry.TransactionType.CREDIT),
@@ -987,7 +989,7 @@ public class AccountingScenarioIntegrationTest {
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, this.EXPECTED_DISBURSAL_DATE, assetAccountInitialEntry);
 
         // MAKE 1
-        System.out.println("Repayment 1 ......");
+        LOG.info("Repayment 1 ......");
         this.loanTransactionHelper.makeRepayment(this.REPAYMENT_DATE[1], this.REPAYMENT_AMOUNT[1], loanID);
         final float FIRST_INTEREST = 200.0f;
         final float FIRST_PRINCIPAL = 2000.0f;
@@ -996,13 +998,13 @@ public class AccountingScenarioIntegrationTest {
         final JournalEntry[] assetAccountFirstEntry = { new JournalEntry(this.REPAYMENT_AMOUNT[1], JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(FIRST_PRINCIPAL, JournalEntry.TransactionType.CREDIT) };
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, this.REPAYMENT_DATE[1], assetAccountFirstEntry);
-        System.out.println("CHECKING INCOME: ******************************************");
+        LOG.info("CHECKING INCOME: ******************************************");
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, this.REPAYMENT_DATE[1], new JournalEntry(FIRST_INTEREST,
                 JournalEntry.TransactionType.CREDIT));
-        System.out.println("Repayment 1 Done......");
+        LOG.info("Repayment 1 Done......");
 
         // REPAYMENT 2
-        System.out.println("Repayment 2 ......");
+        LOG.info("Repayment 2 ......");
         this.loanTransactionHelper.makeRepayment(this.REPAYMENT_DATE[2], this.REPAYMENT_AMOUNT[2], loanID);
         final float SECOND_AND_THIRD_INTEREST = 400.0f;
         final float SECOND_PRINCIPAL = this.REPAYMENT_AMOUNT[2] - SECOND_AND_THIRD_INTEREST;
@@ -1011,13 +1013,13 @@ public class AccountingScenarioIntegrationTest {
         final JournalEntry[] assetAccountSecondEntry = { new JournalEntry(this.REPAYMENT_AMOUNT[2], JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(SECOND_PRINCIPAL, JournalEntry.TransactionType.CREDIT), };
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, this.REPAYMENT_DATE[2], assetAccountSecondEntry);
-        System.out.println("CHECKING INCOME: ******************************************");
+        LOG.info("CHECKING INCOME: ******************************************");
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, this.REPAYMENT_DATE[2], new JournalEntry(
                 SECOND_AND_THIRD_INTEREST, JournalEntry.TransactionType.CREDIT));
-        System.out.println("Repayment 2 Done ......");
+        LOG.info("Repayment 2 Done ......");
 
         // WAIVE INTEREST
-        System.out.println("Waive Interest  ......");
+        LOG.info("Waive Interest  ......");
         Integer transactionId = this.loanTransactionHelper.waiveInterestAndReturnTransactionId(this.REPAYMENT_DATE[4],
                 this.AMOUNT_TO_BE_WAIVE.toString(), loanID);
         // waive of fees and interest are not considered in cash based
@@ -1025,38 +1027,38 @@ public class AccountingScenarioIntegrationTest {
         this.journalEntryHelper.ensureNoAccountingTransactionsWithTransactionId("L" + transactionId);
 
         // REPAYMENT 3
-        System.out.println("Repayment 3 ......");
+        LOG.info("Repayment 3 ......");
         this.loanTransactionHelper.makeRepayment(this.REPAYMENT_DATE[3], this.REPAYMENT_AMOUNT[3], loanID);
         expected_value = expected_value - PRINCIPAL_VALUE_FOR_EACH_PERIOD;
         final JournalEntry[] assetAccountThirdEntry = { new JournalEntry(this.REPAYMENT_AMOUNT[3], JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(this.REPAYMENT_AMOUNT[3], JournalEntry.TransactionType.CREDIT) };
         this.loanTransactionHelper.verifyRepaymentScheduleEntryFor(3, expected_value, loanID);
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, this.REPAYMENT_DATE[3], assetAccountThirdEntry);
-        System.out.println("Repayment 3 Done ......");
+        LOG.info("Repayment 3 Done ......");
 
         // REPAYMENT 4
-        System.out.println("Repayment 4 ......");
+        LOG.info("Repayment 4 ......");
         this.loanTransactionHelper.makeRepayment(this.REPAYMENT_DATE[4], this.REPAYMENT_AMOUNT[4], loanID);
         expected_value = expected_value - PRINCIPAL_VALUE_FOR_EACH_PERIOD;
         this.loanTransactionHelper.verifyRepaymentScheduleEntryFor(4, expected_value, loanID);
         final JournalEntry[] assetAccountFourthEntry = { new JournalEntry(this.REPAYMENT_AMOUNT[4], JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(this.REPAYMENT_AMOUNT[4], JournalEntry.TransactionType.CREDIT) };
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, this.REPAYMENT_DATE[4], assetAccountFourthEntry);
-        System.out.println("Repayment 4 Done  ......");
+        LOG.info("Repayment 4 Done  ......");
 
         // Repayment 5
-        System.out.println("Repayment 5 ......");
+        LOG.info("Repayment 5 ......");
         final JournalEntry[] assetAccountFifthEntry = { new JournalEntry(this.REPAYMENT_AMOUNT[5], JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(this.REPAYMENT_AMOUNT[5], JournalEntry.TransactionType.CREDIT) };
         expected_value = expected_value - PRINCIPAL_VALUE_FOR_EACH_PERIOD;
         this.loanTransactionHelper.makeRepayment(this.REPAYMENT_DATE[5], this.REPAYMENT_AMOUNT[5], loanID);
         this.loanTransactionHelper.verifyRepaymentScheduleEntryFor(5, expected_value, loanID);
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, this.REPAYMENT_DATE[5], assetAccountFifthEntry);
-        System.out.println("Repayment 5 Done  ......");
+        LOG.info("Repayment 5 Done  ......");
     }
 
     private Integer createLoanProductWithCashBasedAccountingEnabled(final Account... accounts) {
-        System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
+        LOG.info("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
         final String loanProductJSON = new LoanProductTestBuilder().withPrincipal(this.LP_PRINCIPAL.toString()).withRepaymentTypeAsMonth()
                 .withRepaymentAfterEvery(this.LP_REPAYMENT_PERIOD).withNumberOfRepayments(this.LP_REPAYMENTS).withRepaymentTypeAsMonth()
                 .withinterestRatePerPeriod(this.LP_INTEREST_RATE).withInterestRateFrequencyTypeAsMonths()
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/BatchRequestsIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/BatchRequestsIntegrationTest.java
index 09c4cf1..d812a5b 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/BatchRequestsIntegrationTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/BatchRequestsIntegrationTest.java
@@ -36,6 +36,8 @@ import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Test class for testing the integration of Batch API with custom batch
@@ -46,6 +48,7 @@ import org.junit.Test;
  */
 public class BatchRequestsIntegrationTest {
 
+    private final static Logger LOG = LoggerFactory.getLogger(BatchRequestsIntegrationTest.class);
     private ResponseSpecification responseSpec;
     private RequestSpecification requestSpec;
 
@@ -88,7 +91,7 @@ public class BatchRequestsIntegrationTest {
         for (Integer i = 0; i < clientsCount; i++) {
             clientIDs[i] = ClientHelper.createClient(this.requestSpec, this.responseSpec);
             groupID = GroupHelper.associateClient(this.requestSpec, this.responseSpec, groupID.toString(), clientIDs[i].toString());
-            System.out.println("client " + clientIDs[i] + " has been added to the group " + groupID);
+            LOG.info("client {} has been added to the group {}",clientIDs[i] , groupID);
         }
 
         // Generate a random count of number of new loan products to be created
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/CenterIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/CenterIntegrationTest.java
index bae657e..a1c9143 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/CenterIntegrationTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/CenterIntegrationTest.java
@@ -38,9 +38,11 @@ import org.apache.fineract.integrationtests.common.organisation.StaffHelper;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class CenterIntegrationTest {
-
+    private final static Logger LOG = LoggerFactory.getLogger(CenterIntegrationTest.class);
     private RequestSpecification requestSpec;
     private ResponseSpecification responseSpec;
 
@@ -198,7 +200,7 @@ public class CenterIntegrationTest {
     public void testStaffAssignmentDuringCenterCreation() {
 
         final Integer staffId = StaffHelper.createStaff(this.requestSpec, this.responseSpec);
-        System.out.println("--------------creating first staff with id-------------" + staffId);
+        LOG.info("--------------creating first staff with id------------- {}" , staffId);
         Assert.assertNotNull(staffId);
 
         final int centerWithStaffId = CenterHelper.createCenterWithStaffId(this.requestSpec, this.responseSpec, staffId);
@@ -212,7 +214,7 @@ public class CenterIntegrationTest {
     @Test
     public void testAssignStaffToCenter() {
         final Integer staffId = StaffHelper.createStaff(this.requestSpec, this.responseSpec);
-        System.out.println("--------------creating first staff with id-------------" + staffId);
+        LOG.info("--------------creating first staff with id------------- {}" , staffId);
         Assert.assertNotNull(staffId);
 
         final Integer groupID = CenterHelper.createCenter(this.requestSpec, this.responseSpec);
@@ -233,7 +235,7 @@ public class CenterIntegrationTest {
     @Test
     public void testUnassignStaffToCenter() {
         final Integer staffId = StaffHelper.createStaff(this.requestSpec, this.responseSpec);
-        System.out.println("--------------creating first staff with id-------------" + staffId);
+        LOG.info("--------------creating first staff with id------------- {}" , staffId);
         Assert.assertNotNull(staffId);
 
         final Integer groupID = CenterHelper.createCenter(this.requestSpec, this.responseSpec);
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientLoanIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientLoanIntegrationTest.java
index ea9620a..c4a01ea 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientLoanIntegrationTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientLoanIntegrationTest.java
@@ -59,6 +59,9 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 
 /**
  * Client Loan Integration Test for checking Loan Application Repayments
@@ -67,7 +70,7 @@ import org.junit.Test;
  */
 @SuppressWarnings({ "rawtypes", "unchecked" })
 public class ClientLoanIntegrationTest {
-
+    private final static Logger LOG = LoggerFactory.getLogger(ClientLoanIntegrationTest.class);
     public static final String MINIMUM_OPENING_BALANCE = "1000.0";
     public static final String ACCOUNT_TYPE_INDIVIDUAL = "INDIVIDUAL";
 
@@ -90,7 +93,8 @@ public class ClientLoanIntegrationTest {
     public void setup() {
         Utils.initializeRESTAssured();
         this.requestSpec = new RequestSpecBuilder().setContentType(ContentType.JSON).build();
-        this.requestSpec.header("Authorization", "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey());
+        this.requestSpec.header("Authorization",
+                "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey());
         this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
         this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
         this.accountHelper = new AccountHelper(this.requestSpec, this.responseSpec);
@@ -104,8 +108,8 @@ public class ClientLoanIntegrationTest {
         ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, clientID);
         final Integer loanProductID = createLoanProduct(false, NONE);
         final Integer loanID = applyForLoanApplication(clientID, loanProductID, null, null, "12,000.00");
-        final ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec,
-                loanID);
+        final ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         verifyLoanRepaymentSchedule(loanSchedule);
     }
 
@@ -118,13 +122,14 @@ public class ClientLoanIntegrationTest {
         final Integer loanProductID = createLoanProduct(false, NONE);
 
         List<HashMap> charges = new ArrayList<>();
-        Integer flatDisbursement = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper.getLoanDisbursementJSON());
+        Integer flatDisbursement = ChargesHelper.createCharges(requestSpec, responseSpec,
+                ChargesHelper.getLoanDisbursementJSON());
 
         Integer amountPercentage = ChargesHelper.createCharges(requestSpec, responseSpec,
                 ChargesHelper.getLoanDisbursementJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1"));
         addCharges(charges, amountPercentage, "1", null);
-        Integer amountPlusInterestPercentage = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanDisbursementJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1"));
+        Integer amountPlusInterestPercentage = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper
+                .getLoanDisbursementJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1"));
         addCharges(charges, amountPlusInterestPercentage, "1", null);
         Integer interestPercentage = ChargesHelper.createCharges(requestSpec, responseSpec,
                 ChargesHelper.getLoanDisbursementJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_INTEREST, "1"));
@@ -136,7 +141,8 @@ public class ClientLoanIntegrationTest {
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         HashMap disbursementDetail = loanSchedule.get(0);
 
         List<HashMap> loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -156,13 +162,17 @@ public class ClientLoanIntegrationTest {
         validateCharge(flatDisbursement, loanCharges, "100.0", "100.0", "0.0", "0.0");
         validateNumberForEqual("352.12", String.valueOf(disbursementDetail.get("feeChargesDue")));
 
-        this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(amountPercentage, loanCharges).get("id"),
+        this.loanTransactionHelper.updateChargesForLoan(loanID,
+                (Integer) getloanCharge(amountPercentage, loanCharges).get("id"),
+                LoanTransactionHelper.getUpdateChargesForLoanAsJSON("2"));
+        this.loanTransactionHelper.updateChargesForLoan(loanID,
+                (Integer) getloanCharge(interestPercentage, loanCharges).get("id"),
                 LoanTransactionHelper.getUpdateChargesForLoanAsJSON("2"));
-        this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(interestPercentage, loanCharges).get("id"),
+        this.loanTransactionHelper.updateChargesForLoan(loanID,
+                (Integer) getloanCharge(amountPlusInterestPercentage, loanCharges).get("id"),
                 LoanTransactionHelper.getUpdateChargesForLoanAsJSON("2"));
-        this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(amountPlusInterestPercentage, loanCharges)
-                .get("id"), LoanTransactionHelper.getUpdateChargesForLoanAsJSON("2"));
-        this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(flatDisbursement, loanCharges).get("id"),
+        this.loanTransactionHelper.updateChargesForLoan(loanID,
+                (Integer) getloanCharge(flatDisbursement, loanCharges).get("id"),
                 LoanTransactionHelper.getUpdateChargesForLoanAsJSON("150"));
 
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -186,8 +196,8 @@ public class ClientLoanIntegrationTest {
         validateCharge(flatDisbursement, loanCharges, "150.0", "150.0", "0.0", "0.0");
         validateNumberForEqual("570.2", String.valueOf(disbursementDetail.get("feeChargesDue")));
 
-        this.loanTransactionHelper.updateLoan(loanID,
-                updateLoanJson(clientID, loanProductID, copyChargesForUpdate(loanCharges, flatDisbursement, "1"), null));
+        this.loanTransactionHelper.updateLoan(loanID, updateLoanJson(clientID, loanProductID,
+                copyChargesForUpdate(loanCharges, flatDisbursement, "1"), null));
 
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
@@ -207,7 +217,8 @@ public class ClientLoanIntegrationTest {
         validateCharge(flatDisbursement, loanCharges, "100.0", "100.0", "0.0", "0.0");
         validateNumberForEqual("100.0", String.valueOf(disbursementDetail.get("feeChargesDue")));
 
-        this.loanTransactionHelper.deleteChargesForLoan(loanID, (Integer) getloanCharge(flatDisbursement, loanCharges).get("id"));
+        this.loanTransactionHelper.deleteChargesForLoan(loanID,
+                (Integer) getloanCharge(flatDisbursement, loanCharges).get("id"));
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         disbursementDetail = loanSchedule.get(0);
@@ -228,8 +239,8 @@ public class ClientLoanIntegrationTest {
         Integer amountPercentage = ChargesHelper.createCharges(requestSpec, responseSpec,
                 ChargesHelper.getLoanDisbursementJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1"));
         addCharges(charges, amountPercentage, "1", null);
-        Integer amountPlusInterestPercentage = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanDisbursementJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1"));
+        Integer amountPlusInterestPercentage = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper
+                .getLoanDisbursementJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1"));
         addCharges(charges, amountPlusInterestPercentage, "1", null);
         Integer interestPercentage = ChargesHelper.createCharges(requestSpec, responseSpec,
                 ChargesHelper.getLoanDisbursementJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_INTEREST, "1"));
@@ -241,7 +252,8 @@ public class ClientLoanIntegrationTest {
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         HashMap disbursementDetail = loanSchedule.get(0);
 
         List<HashMap> loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -251,14 +263,14 @@ public class ClientLoanIntegrationTest {
         validateCharge(amountPlusInterestPercentage, loanCharges, "1.0", "126.06", "0.0", "0.0");
         validateNumberForEqual("252.12", String.valueOf(disbursementDetail.get("feeChargesDue")));
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
         // DISBURSE
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan("20 September 2011", loanID, "10000");
-        System.out.println("DISBURSE " + loanStatusHashMap);
+        LOG.info("DISBURSE {}", loanStatusHashMap.toString());
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -284,17 +296,18 @@ public class ClientLoanIntegrationTest {
         Integer flat = ChargesHelper.createCharges(requestSpec, responseSpec,
                 ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, "100", false));
         Integer flatAccTransfer = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanSpecifiedDueDateWithAccountTransferJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, "100", false));
+                ChargesHelper.getLoanSpecifiedDueDateWithAccountTransferJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT,
+                        "100", false));
 
-        Integer amountPercentage = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", false));
+        Integer amountPercentage = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper
+                .getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", false));
         addCharges(charges, amountPercentage, "1", "29 September 2011");
-        Integer amountPlusInterestPercentage = ChargesHelper
-                .createCharges(requestSpec, responseSpec, ChargesHelper.getLoanSpecifiedDueDateJSON(
+        Integer amountPlusInterestPercentage = ChargesHelper.createCharges(requestSpec, responseSpec,
+                ChargesHelper.getLoanSpecifiedDueDateJSON(
                         ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1", false));
         addCharges(charges, amountPlusInterestPercentage, "1", "29 September 2011");
-        Integer interestPercentage = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_INTEREST, "1", false));
+        Integer interestPercentage = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper
+                .getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_INTEREST, "1", false));
         addCharges(charges, interestPercentage, "1", "29 September 2011");
 
         final Integer loanID = applyForLoanApplication(clientID, loanProductID, charges, null, "12,000.00");
@@ -303,7 +316,8 @@ public class ClientLoanIntegrationTest {
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         HashMap firstInstallment = loanSchedule.get(1);
 
         List<HashMap> loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -314,8 +328,8 @@ public class ClientLoanIntegrationTest {
 
         validateNumberForEqual("252.12", String.valueOf(firstInstallment.get("feeChargesDue")));
 
-        this.loanTransactionHelper.addChargesForLoan(loanID,
-                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(String.valueOf(flat), "29 September 2011", "100"));
+        this.loanTransactionHelper.addChargesForLoan(loanID, LoanTransactionHelper
+                .getSpecifiedDueDateChargesForLoanAsJSON(String.valueOf(flat), "29 September 2011", "100"));
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         firstInstallment = loanSchedule.get(1);
@@ -323,12 +337,15 @@ public class ClientLoanIntegrationTest {
         validateCharge(flat, loanCharges, "100.0", "100.0", "0.0", "0.0");
         validateNumberForEqual("352.12", String.valueOf(firstInstallment.get("feeChargesDue")));
 
-        this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(amountPercentage, loanCharges).get("id"),
+        this.loanTransactionHelper.updateChargesForLoan(loanID,
+                (Integer) getloanCharge(amountPercentage, loanCharges).get("id"),
                 LoanTransactionHelper.getUpdateChargesForLoanAsJSON("2"));
-        this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(interestPercentage, loanCharges).get("id"),
+        this.loanTransactionHelper.updateChargesForLoan(loanID,
+                (Integer) getloanCharge(interestPercentage, loanCharges).get("id"),
+                LoanTransactionHelper.getUpdateChargesForLoanAsJSON("2"));
+        this.loanTransactionHelper.updateChargesForLoan(loanID,
+                (Integer) getloanCharge(amountPlusInterestPercentage, loanCharges).get("id"),
                 LoanTransactionHelper.getUpdateChargesForLoanAsJSON("2"));
-        this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(amountPlusInterestPercentage, loanCharges)
-                .get("id"), LoanTransactionHelper.getUpdateChargesForLoanAsJSON("2"));
         this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(flat, loanCharges).get("id"),
                 LoanTransactionHelper.getUpdateChargesForLoanAsJSON("150"));
 
@@ -343,8 +360,8 @@ public class ClientLoanIntegrationTest {
 
         final Integer savingsId = SavingsAccountHelper.openSavingsAccount(this.requestSpec, this.responseSpec, clientID,
                 MINIMUM_OPENING_BALANCE);
-        this.loanTransactionHelper.updateLoan(loanID,
-                updateLoanJson(clientID, loanProductID, copyChargesForUpdate(loanCharges, null, null), String.valueOf(savingsId)));
+        this.loanTransactionHelper.updateLoan(loanID, updateLoanJson(clientID, loanProductID,
+                copyChargesForUpdate(loanCharges, null, null), String.valueOf(savingsId)));
 
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
@@ -383,13 +400,13 @@ public class ClientLoanIntegrationTest {
         Assert.assertEquals(0, loanCharges.size());
         validateNumberForEqual("0", String.valueOf(firstInstallment.get("feeChargesDue")));
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        this.loanTransactionHelper.addChargesForLoan(loanID,
-                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(String.valueOf(flatAccTransfer), "29 September 2011", "100"));
+        this.loanTransactionHelper.addChargesForLoan(loanID, LoanTransactionHelper
+                .getSpecifiedDueDateChargesForLoanAsJSON(String.valueOf(flatAccTransfer), "29 September 2011", "100"));
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         firstInstallment = loanSchedule.get(1);
@@ -398,11 +415,11 @@ public class ClientLoanIntegrationTest {
 
         // DISBURSE
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan("20 September 2011", loanID);
-        System.out.println("DISBURSE " + loanStatusHashMap);
+        LOG.info("DISBURSE {}", loanStatusHashMap.toString());
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
-        this.loanTransactionHelper.addChargesForLoan(loanID,
-                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(String.valueOf(amountPercentage), "29 September 2011", "1"));
+        this.loanTransactionHelper.addChargesForLoan(loanID, LoanTransactionHelper
+                .getSpecifiedDueDateChargesForLoanAsJSON(String.valueOf(amountPercentage), "29 September 2011", "1"));
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         firstInstallment = loanSchedule.get(1);
@@ -410,7 +427,8 @@ public class ClientLoanIntegrationTest {
         validateCharge(flatAccTransfer, loanCharges, "100.0", "100.0", "0.0", "0.0");
         validateNumberForEqual("200.0", String.valueOf(firstInstallment.get("feeChargesDue")));
 
-        this.loanTransactionHelper.waiveChargesForLoan(loanID, (Integer) getloanCharge(amountPercentage, loanCharges).get("id"), "");
+        this.loanTransactionHelper.waiveChargesForLoan(loanID,
+                (Integer) getloanCharge(amountPercentage, loanCharges).get("id"), "");
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         firstInstallment = loanSchedule.get(1);
@@ -420,7 +438,8 @@ public class ClientLoanIntegrationTest {
         validateNumberForEqual("100.0", String.valueOf(firstInstallment.get("feeChargesOutstanding")));
         validateNumberForEqual("100.0", String.valueOf(firstInstallment.get("feeChargesWaived")));
 
-        this.loanTransactionHelper.payChargesForLoan(loanID, (Integer) getloanCharge(flatAccTransfer, loanCharges).get("id"),
+        this.loanTransactionHelper.payChargesForLoan(loanID,
+                (Integer) getloanCharge(flatAccTransfer, loanCharges).get("id"),
                 LoanTransactionHelper.getPayChargeJSON(SavingsAccountHelper.TRANSACTION_DATE, null));
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
@@ -443,17 +462,18 @@ public class ClientLoanIntegrationTest {
         List<HashMap> charges = new ArrayList<>();
         Integer flat = ChargesHelper.createCharges(requestSpec, responseSpec,
                 ChargesHelper.getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, "50", false));
-        Integer flatAccTransfer = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanInstallmentWithAccountTransferJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, "50", false));
+        Integer flatAccTransfer = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper
+                .getLoanInstallmentWithAccountTransferJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, "50", false));
 
-        Integer amountPercentage = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", false));
+        Integer amountPercentage = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper
+                .getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", false));
         addCharges(charges, amountPercentage, "1", "29 September 2011");
         Integer amountPlusInterestPercentage = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1", false));
+                ChargesHelper.getLoanInstallmentJSON(
+                        ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1", false));
         addCharges(charges, amountPlusInterestPercentage, "1", "29 September 2011");
-        Integer interestPercentage = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_INTEREST, "1", false));
+        Integer interestPercentage = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper
+                .getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_INTEREST, "1", false));
         addCharges(charges, interestPercentage, "1", "29 September 2011");
 
         final Integer loanID = applyForLoanApplication(clientID, loanProductID, charges, null, "12,000.00");
@@ -462,7 +482,8 @@ public class ClientLoanIntegrationTest {
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         loanSchedule.remove(0);
         List<HashMap> loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
 
@@ -475,16 +496,19 @@ public class ClientLoanIntegrationTest {
             Float principalFee = principalDue / 100;
             Float interestFee = interestDue / 100;
             Float totalInstallmentFee = (principalFee * 2) + (interestFee * 2);
-            validateNumberForEqualExcludePrecission(String.valueOf(totalInstallmentFee), String.valueOf(installment.get("feeChargesDue")));
+            validateNumberForEqualExcludePrecission(String.valueOf(totalInstallmentFee),
+                    String.valueOf(installment.get("feeChargesDue")));
             totalPerOfAmout = totalPerOfAmout + principalFee;
             totalPerOfAmoutPlusInt = totalPerOfAmoutPlusInt + principalFee + interestFee;
             totalPerOfint = totalPerOfint + interestFee;
         }
 
-        validateChargeExcludePrecission(amountPercentage, loanCharges, "1.0", String.valueOf(totalPerOfAmout), "0.0", "0.0");
-        validateChargeExcludePrecission(interestPercentage, loanCharges, "1.0", String.valueOf(totalPerOfint), "0.0", "0.0");
-        validateChargeExcludePrecission(amountPlusInterestPercentage, loanCharges, "1.0", String.valueOf(totalPerOfAmoutPlusInt), "0.0",
+        validateChargeExcludePrecission(amountPercentage, loanCharges, "1.0", String.valueOf(totalPerOfAmout), "0.0",
                 "0.0");
+        validateChargeExcludePrecission(interestPercentage, loanCharges, "1.0", String.valueOf(totalPerOfint), "0.0",
+                "0.0");
+        validateChargeExcludePrecission(amountPlusInterestPercentage, loanCharges, "1.0",
+                String.valueOf(totalPerOfAmoutPlusInt), "0.0", "0.0");
 
         this.loanTransactionHelper.addChargesForLoan(loanID,
                 LoanTransactionHelper.getInstallmentChargesForLoanAsJSON(String.valueOf(flat), "50"));
@@ -500,24 +524,30 @@ public class ClientLoanIntegrationTest {
             Float principalFee = principalDue / 100;
             Float interestFee = interestDue / 100;
             Float totalInstallmentFee = (principalFee * 2) + (interestFee * 2) + 50;
-            validateNumberForEqualExcludePrecission(String.valueOf(totalInstallmentFee), String.valueOf(installment.get("feeChargesDue")));
+            validateNumberForEqualExcludePrecission(String.valueOf(totalInstallmentFee),
+                    String.valueOf(installment.get("feeChargesDue")));
             totalPerOfAmout = totalPerOfAmout + principalFee;
             totalPerOfAmoutPlusInt = totalPerOfAmoutPlusInt + principalFee + interestFee;
             totalPerOfint = totalPerOfint + interestFee;
         }
 
-        validateChargeExcludePrecission(amountPercentage, loanCharges, "1.0", String.valueOf(totalPerOfAmout), "0.0", "0.0");
-        validateChargeExcludePrecission(interestPercentage, loanCharges, "1.0", String.valueOf(totalPerOfint), "0.0", "0.0");
-        validateChargeExcludePrecission(amountPlusInterestPercentage, loanCharges, "1.0", String.valueOf(totalPerOfAmoutPlusInt), "0.0",
+        validateChargeExcludePrecission(amountPercentage, loanCharges, "1.0", String.valueOf(totalPerOfAmout), "0.0",
+                "0.0");
+        validateChargeExcludePrecission(interestPercentage, loanCharges, "1.0", String.valueOf(totalPerOfint), "0.0",
                 "0.0");
+        validateChargeExcludePrecission(amountPlusInterestPercentage, loanCharges, "1.0",
+                String.valueOf(totalPerOfAmoutPlusInt), "0.0", "0.0");
         validateChargeExcludePrecission(flat, loanCharges, "50.0", "200", "0.0", "0.0");
 
-        this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(amountPercentage, loanCharges).get("id"),
+        this.loanTransactionHelper.updateChargesForLoan(loanID,
+                (Integer) getloanCharge(amountPercentage, loanCharges).get("id"),
                 LoanTransactionHelper.getUpdateChargesForLoanAsJSON("2"));
-        this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(interestPercentage, loanCharges).get("id"),
+        this.loanTransactionHelper.updateChargesForLoan(loanID,
+                (Integer) getloanCharge(interestPercentage, loanCharges).get("id"),
+                LoanTransactionHelper.getUpdateChargesForLoanAsJSON("2"));
+        this.loanTransactionHelper.updateChargesForLoan(loanID,
+                (Integer) getloanCharge(amountPlusInterestPercentage, loanCharges).get("id"),
                 LoanTransactionHelper.getUpdateChargesForLoanAsJSON("2"));
-        this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(amountPlusInterestPercentage, loanCharges)
-                .get("id"), LoanTransactionHelper.getUpdateChargesForLoanAsJSON("2"));
         this.loanTransactionHelper.updateChargesForLoan(loanID, (Integer) getloanCharge(flat, loanCharges).get("id"),
                 LoanTransactionHelper.getUpdateChargesForLoanAsJSON("100"));
 
@@ -533,22 +563,25 @@ public class ClientLoanIntegrationTest {
             Float principalFee = principalDue * 2 / 100;
             Float interestFee = interestDue * 2 / 100;
             Float totalInstallmentFee = (principalFee * 2) + (interestFee * 2) + 100;
-            validateNumberForEqualExcludePrecission(String.valueOf(totalInstallmentFee), String.valueOf(installment.get("feeChargesDue")));
+            validateNumberForEqualExcludePrecission(String.valueOf(totalInstallmentFee),
+                    String.valueOf(installment.get("feeChargesDue")));
             totalPerOfAmout = totalPerOfAmout + principalFee;
             totalPerOfAmoutPlusInt = totalPerOfAmoutPlusInt + principalFee + interestFee;
             totalPerOfint = totalPerOfint + interestFee;
         }
 
-        validateChargeExcludePrecission(amountPercentage, loanCharges, "2.0", String.valueOf(totalPerOfAmout), "0.0", "0.0");
-        validateChargeExcludePrecission(interestPercentage, loanCharges, "2.0", String.valueOf(totalPerOfint), "0.0", "0.0");
-        validateChargeExcludePrecission(amountPlusInterestPercentage, loanCharges, "2.0", String.valueOf(totalPerOfAmoutPlusInt), "0.0",
+        validateChargeExcludePrecission(amountPercentage, loanCharges, "2.0", String.valueOf(totalPerOfAmout), "0.0",
+                "0.0");
+        validateChargeExcludePrecission(interestPercentage, loanCharges, "2.0", String.valueOf(totalPerOfint), "0.0",
                 "0.0");
+        validateChargeExcludePrecission(amountPlusInterestPercentage, loanCharges, "2.0",
+                String.valueOf(totalPerOfAmoutPlusInt), "0.0", "0.0");
         validateChargeExcludePrecission(flat, loanCharges, "100.0", "400", "0.0", "0.0");
 
         final Integer savingsId = SavingsAccountHelper.openSavingsAccount(this.requestSpec, this.responseSpec, clientID,
                 MINIMUM_OPENING_BALANCE);
-        this.loanTransactionHelper.updateLoan(loanID,
-                updateLoanJson(clientID, loanProductID, copyChargesForUpdate(loanCharges, null, null), String.valueOf(savingsId)));
+        this.loanTransactionHelper.updateLoan(loanID, updateLoanJson(clientID, loanProductID,
+                copyChargesForUpdate(loanCharges, null, null), String.valueOf(savingsId)));
 
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
@@ -562,16 +595,19 @@ public class ClientLoanIntegrationTest {
             Float principalFee = principalDue * 2 / 100;
             Float interestFee = interestDue * 2 / 100;
             Float totalInstallmentFee = (principalFee * 2) + (interestFee * 2) + 100;
-            validateNumberForEqualExcludePrecission(String.valueOf(totalInstallmentFee), String.valueOf(installment.get("feeChargesDue")));
+            validateNumberForEqualExcludePrecission(String.valueOf(totalInstallmentFee),
+                    String.valueOf(installment.get("feeChargesDue")));
             totalPerOfAmout = totalPerOfAmout + principalFee;
             totalPerOfAmoutPlusInt = totalPerOfAmoutPlusInt + principalFee + interestFee;
             totalPerOfint = totalPerOfint + interestFee;
         }
 
-        validateChargeExcludePrecission(amountPercentage, loanCharges, "2.0", String.valueOf(totalPerOfAmout), "0.0", "0.0");
-        validateChargeExcludePrecission(interestPercentage, loanCharges, "2.0", String.valueOf(totalPerOfint), "0.0", "0.0");
-        validateChargeExcludePrecission(amountPlusInterestPercentage, loanCharges, "2.0", String.valueOf(totalPerOfAmoutPlusInt), "0.0",
+        validateChargeExcludePrecission(amountPercentage, loanCharges, "2.0", String.valueOf(totalPerOfAmout), "0.0",
                 "0.0");
+        validateChargeExcludePrecission(interestPercentage, loanCharges, "2.0", String.valueOf(totalPerOfint), "0.0",
+                "0.0");
+        validateChargeExcludePrecission(amountPlusInterestPercentage, loanCharges, "2.0",
+                String.valueOf(totalPerOfAmoutPlusInt), "0.0", "0.0");
         validateChargeExcludePrecission(flat, loanCharges, "100.0", "400", "0.0", "0.0");
 
         this.loanTransactionHelper.updateLoan(loanID,
@@ -589,16 +625,19 @@ public class ClientLoanIntegrationTest {
             Float principalFee = principalDue / 100;
             Float interestFee = interestDue / 100;
             Float totalInstallmentFee = (principalFee * 2) + (interestFee * 2);
-            validateNumberForEqualExcludePrecission(String.valueOf(totalInstallmentFee), String.valueOf(installment.get("feeChargesDue")));
+            validateNumberForEqualExcludePrecission(String.valueOf(totalInstallmentFee),
+                    String.valueOf(installment.get("feeChargesDue")));
             totalPerOfAmout = totalPerOfAmout + principalFee;
             totalPerOfAmoutPlusInt = totalPerOfAmoutPlusInt + principalFee + interestFee;
             totalPerOfint = totalPerOfint + interestFee;
         }
 
-        validateChargeExcludePrecission(amountPercentage, loanCharges, "1.0", String.valueOf(totalPerOfAmout), "0.0", "0.0");
-        validateChargeExcludePrecission(interestPercentage, loanCharges, "1.0", String.valueOf(totalPerOfint), "0.0", "0.0");
-        validateChargeExcludePrecission(amountPlusInterestPercentage, loanCharges, "1.0", String.valueOf(totalPerOfAmoutPlusInt), "0.0",
+        validateChargeExcludePrecission(amountPercentage, loanCharges, "1.0", String.valueOf(totalPerOfAmout), "0.0",
+                "0.0");
+        validateChargeExcludePrecission(interestPercentage, loanCharges, "1.0", String.valueOf(totalPerOfint), "0.0",
                 "0.0");
+        validateChargeExcludePrecission(amountPlusInterestPercentage, loanCharges, "1.0",
+                String.valueOf(totalPerOfAmoutPlusInt), "0.0", "0.0");
 
         charges.clear();
         addCharges(charges, flat, "50", "29 September 2011");
@@ -620,7 +659,7 @@ public class ClientLoanIntegrationTest {
             validateNumberForEqualExcludePrecission("0", String.valueOf(installment.get("feeChargesDue")));
         }
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
@@ -637,7 +676,7 @@ public class ClientLoanIntegrationTest {
 
         // DISBURSE
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan("20 September 2011", loanID);
-        System.out.println("DISBURSE " + loanStatusHashMap);
+        LOG.info("DISBURSE {}", loanStatusHashMap.toString());
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
         this.loanTransactionHelper.addChargesForLoan(loanID,
@@ -661,10 +700,12 @@ public class ClientLoanIntegrationTest {
         for (HashMap installment : loanSchedule) {
             validateNumberForEqualExcludePrecission("150", String.valueOf(installment.get("feeChargesDue")));
             if (waivePeriodnum == installment.get("period")) {
-                validateNumberForEqualExcludePrecission("100.0", String.valueOf(installment.get("feeChargesOutstanding")));
+                validateNumberForEqualExcludePrecission("100.0",
+                        String.valueOf(installment.get("feeChargesOutstanding")));
                 validateNumberForEqualExcludePrecission("50.0", String.valueOf(installment.get("feeChargesWaived")));
             } else {
-                validateNumberForEqualExcludePrecission("150.0", String.valueOf(installment.get("feeChargesOutstanding")));
+                validateNumberForEqualExcludePrecission("150.0",
+                        String.valueOf(installment.get("feeChargesOutstanding")));
                 validateNumberForEqualExcludePrecission("0.0", String.valueOf(installment.get("feeChargesWaived")));
 
             }
@@ -673,21 +714,25 @@ public class ClientLoanIntegrationTest {
         validateChargeExcludePrecission(flat, loanCharges, "50.0", "150", "0.0", "50.0");
 
         Integer payPeriodnum = 2;
-        this.loanTransactionHelper.payChargesForLoan(loanID, (Integer) getloanCharge(flatAccTransfer, loanCharges).get("id"),
-                LoanTransactionHelper.getPayChargeJSON(SavingsAccountHelper.TRANSACTION_DATE, String.valueOf(payPeriodnum)));
+        this.loanTransactionHelper.payChargesForLoan(loanID,
+                (Integer) getloanCharge(flatAccTransfer, loanCharges).get("id"), LoanTransactionHelper
+                        .getPayChargeJSON(SavingsAccountHelper.TRANSACTION_DATE, String.valueOf(payPeriodnum)));
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         loanSchedule.remove(0);
         for (HashMap installment : loanSchedule) {
             validateNumberForEqualExcludePrecission("150", String.valueOf(installment.get("feeChargesDue")));
             if (payPeriodnum == installment.get("period")) {
-                validateNumberForEqualExcludePrecission("50.0", String.valueOf(installment.get("feeChargesOutstanding")));
+                validateNumberForEqualExcludePrecission("50.0",
+                        String.valueOf(installment.get("feeChargesOutstanding")));
                 validateNumberForEqualExcludePrecission("100.0", String.valueOf(installment.get("feeChargesPaid")));
             } else if (waivePeriodnum == installment.get("period")) {
-                validateNumberForEqualExcludePrecission("100.0", String.valueOf(installment.get("feeChargesOutstanding")));
+                validateNumberForEqualExcludePrecission("100.0",
+                        String.valueOf(installment.get("feeChargesOutstanding")));
                 validateNumberForEqualExcludePrecission("50.0", String.valueOf(installment.get("feeChargesWaived")));
             } else {
-                validateNumberForEqualExcludePrecission("150.0", String.valueOf(installment.get("feeChargesOutstanding")));
+                validateNumberForEqualExcludePrecission("150.0",
+                        String.valueOf(installment.get("feeChargesOutstanding")));
                 validateNumberForEqualExcludePrecission("0.0", String.valueOf(installment.get("feeChargesPaid")));
 
             }
@@ -709,13 +754,14 @@ public class ClientLoanIntegrationTest {
         final Integer savingsId = SavingsAccountHelper.openSavingsAccount(this.requestSpec, this.responseSpec, clientID,
                 MINIMUM_OPENING_BALANCE);
 
-        final Integer loanID = applyForLoanApplication(clientID, loanProductID, null, savingsId.toString(), "12,000.00");
+        final Integer loanID = applyForLoanApplication(clientID, loanProductID, null, savingsId.toString(),
+                "12,000.00");
         Assert.assertNotNull(loanID);
 
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
@@ -725,8 +771,9 @@ public class ClientLoanIntegrationTest {
         assertEquals("Verifying opening Balance", balance, summary.get("accountBalance"));
 
         // DISBURSE
-        loanStatusHashMap = this.loanTransactionHelper.disburseLoanToSavings(SavingsAccountHelper.TRANSACTION_DATE, loanID);
-        System.out.println("DISBURSE " + loanStatusHashMap);
+        loanStatusHashMap = this.loanTransactionHelper.disburseLoanToSavings(SavingsAccountHelper.TRANSACTION_DATE,
+                loanID);
+        LOG.info("DISBURSE {}", loanStatusHashMap.toString());
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
         summary = savingsAccountHelper.getSavingsSummary(savingsId);
@@ -754,25 +801,26 @@ public class ClientLoanIntegrationTest {
         tranches.add(createTrancheDetail("1 March 2014", "25000"));
         tranches.add(createTrancheDetail("23 April 2014", "20000"));
 
-        final Integer loanID = applyForLoanApplicationWithTranches(clientID, loanProductID, null, null, "45,000.00", tranches);
+        final Integer loanID = applyForLoanApplicationWithTranches(clientID, loanProductID, null, null, "45,000.00",
+                tranches);
         Assert.assertNotNull(loanID);
 
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan("1 March 2014", loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
         // DISBURSE first Tranche
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan("1 March 2014", loanID);
-        System.out.println("DISBURSE " + loanStatusHashMap);
+        LOG.info("DISBURSE {}", loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
         // DISBURSE Second Tranche
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan("23 April 2014", loanID);
-        System.out.println("DISBURSE " + loanStatusHashMap);
+        LOG.info("DISBURSE {}", loanStatusHashMap.toString());
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
         loanStatusHashMap = this.loanTransactionHelper.undoDisbursal(loanID);
@@ -797,14 +845,14 @@ public class ClientLoanIntegrationTest {
         tranches.add(createTrancheDetail("1 March 2014", "25000"));
         tranches.add(createTrancheDetail("23 April 2014", "20000"));
 
-        final Integer loanID = applyForLoanApplicationWithTranches(clientID, loanProductID, null, savingsId.toString(), "45,000.00",
-                tranches);
+        final Integer loanID = applyForLoanApplicationWithTranches(clientID, loanProductID, null, savingsId.toString(),
+                "45,000.00", tranches);
         Assert.assertNotNull(loanID);
 
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan("1 March 2014", loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
@@ -815,7 +863,7 @@ public class ClientLoanIntegrationTest {
 
         // DISBURSE first Tranche
         loanStatusHashMap = this.loanTransactionHelper.disburseLoanToSavings("1 March 2014", loanID);
-        System.out.println("DISBURSE " + loanStatusHashMap);
+        LOG.info("DISBURSE {}", loanStatusHashMap.toString());
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
         summary = savingsAccountHelper.getSavingsSummary(savingsId);
@@ -824,7 +872,7 @@ public class ClientLoanIntegrationTest {
 
         // DISBURSE Second Tranche
         loanStatusHashMap = this.loanTransactionHelper.disburseLoanToSavings("23 April 2014", loanID);
-        System.out.println("DISBURSE " + loanStatusHashMap);
+        LOG.info("DISBURSE {}", loanStatusHashMap.toString());
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
         summary = savingsAccountHelper.getSavingsSummary(savingsId);
@@ -841,27 +889,31 @@ public class ClientLoanIntegrationTest {
 
     }
 
-    private void validateCharge(Integer amountPercentage, final List<HashMap> loanCharges, final String amount, final String outstanding,
-            String amountPaid, String amountWaived) {
+    private void validateCharge(Integer amountPercentage, final List<HashMap> loanCharges, final String amount,
+            final String outstanding, String amountPaid, String amountWaived) {
         HashMap chargeDetail = getloanCharge(amountPercentage, loanCharges);
-        Assert.assertTrue(Float.valueOf(amount).compareTo(Float.valueOf(String.valueOf(chargeDetail.get("amountOrPercentage")))) == 0);
-        Assert.assertTrue(Float.valueOf(outstanding).compareTo(Float.valueOf(String.valueOf(chargeDetail.get("amountOutstanding")))) == 0);
-        Assert.assertTrue(Float.valueOf(amountPaid).compareTo(Float.valueOf(String.valueOf(chargeDetail.get("amountPaid")))) == 0);
-        Assert.assertTrue(Float.valueOf(amountWaived).compareTo(Float.valueOf(String.valueOf(chargeDetail.get("amountWaived")))) == 0);
+        Assert.assertTrue(Float.valueOf(amount)
+                .compareTo(Float.valueOf(String.valueOf(chargeDetail.get("amountOrPercentage")))) == 0);
+        Assert.assertTrue(Float.valueOf(outstanding)
+                .compareTo(Float.valueOf(String.valueOf(chargeDetail.get("amountOutstanding")))) == 0);
+        Assert.assertTrue(Float.valueOf(amountPaid)
+                .compareTo(Float.valueOf(String.valueOf(chargeDetail.get("amountPaid")))) == 0);
+        Assert.assertTrue(Float.valueOf(amountWaived)
+                .compareTo(Float.valueOf(String.valueOf(chargeDetail.get("amountWaived")))) == 0);
     }
 
-    private void validateChargeExcludePrecission(Integer amountPercentage, final List<HashMap> loanCharges, final String amount,
-            final String outstanding, String amountPaid, String amountWaived) {
+    private void validateChargeExcludePrecission(Integer amountPercentage, final List<HashMap> loanCharges,
+            final String amount, final String outstanding, String amountPaid, String amountWaived) {
         DecimalFormat twoDForm = new DecimalFormat("#");
         HashMap chargeDetail = getloanCharge(amountPercentage, loanCharges);
-        Assert.assertTrue(Float.valueOf(twoDForm.format(Float.valueOf(amount))).compareTo(Float.valueOf(twoDForm.format(Float.valueOf(String
-                .valueOf(chargeDetail.get("amountOrPercentage")))))) == 0);
-        Assert.assertTrue(Float.valueOf(twoDForm.format(Float.valueOf(outstanding))).compareTo(Float.valueOf(twoDForm.format(Float.valueOf(String
-                .valueOf(chargeDetail.get("amountOutstanding")))))) == 0);
-        Assert.assertTrue(Float.valueOf(twoDForm.format(Float.valueOf(amountPaid))).compareTo(Float.valueOf(twoDForm.format(Float.valueOf(String
-                .valueOf(chargeDetail.get("amountPaid")))))) == 0);
-        Assert.assertTrue(Float.valueOf(twoDForm.format(Float.valueOf(amountWaived))).compareTo(Float.valueOf(twoDForm.format(Float.valueOf(String
-                .valueOf(chargeDetail.get("amountWaived")))))) == 0);
+        Assert.assertTrue(Float.valueOf(twoDForm.format(Float.valueOf(amount))).compareTo(Float
+                .valueOf(twoDForm.format(Float.valueOf(String.valueOf(chargeDetail.get("amountOrPercentage")))))) == 0);
+        Assert.assertTrue(Float.valueOf(twoDForm.format(Float.valueOf(outstanding))).compareTo(Float
+                .valueOf(twoDForm.format(Float.valueOf(String.valueOf(chargeDetail.get("amountOutstanding")))))) == 0);
+        Assert.assertTrue(Float.valueOf(twoDForm.format(Float.valueOf(amountPaid))).compareTo(
+                Float.valueOf(twoDForm.format(Float.valueOf(String.valueOf(chargeDetail.get("amountPaid")))))) == 0);
+        Assert.assertTrue(Float.valueOf(twoDForm.format(Float.valueOf(amountWaived))).compareTo(
+                Float.valueOf(twoDForm.format(Float.valueOf(String.valueOf(chargeDetail.get("amountWaived")))))) == 0);
     }
 
     public void validateNumberForEqual(String val, String val2) {
@@ -869,16 +921,19 @@ public class ClientLoanIntegrationTest {
     }
 
     public void validateNumberForEqualWithMsg(String msg, String val, String val2) {
-        Assert.assertTrue(msg + "expected " + val + " but was " + val2, Float.valueOf(val).compareTo(Float.valueOf(val2)) == 0);
+        Assert.assertTrue(msg + "expected " + val + " but was " + val2,
+                Float.valueOf(val).compareTo(Float.valueOf(val2)) == 0);
     }
 
     public void validateNumberForEqualExcludePrecission(String val, String val2) {
         DecimalFormat twoDForm = new DecimalFormat("#");
-        Assert.assertTrue(Float.valueOf(twoDForm.format(Float.valueOf(val))).compareTo(Float.valueOf(twoDForm.format(Float.valueOf(val2)))) == 0);
+        Assert.assertTrue(Float.valueOf(twoDForm.format(Float.valueOf(val)))
+                .compareTo(Float.valueOf(twoDForm.format(Float.valueOf(val2)))) == 0);
     }
 
-    private Integer createLoanProduct(final boolean multiDisburseLoan, final String accountingRule, final Account... accounts) {
-        System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
+    private Integer createLoanProduct(final boolean multiDisburseLoan, final String accountingRule,
+            final Account... accounts) {
+        LOG.info("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
         LoanProductTestBuilder builder = new LoanProductTestBuilder() //
                 .withPrincipal("12,000.00") //
                 .withNumberOfRepayments("4") //
@@ -897,8 +952,9 @@ public class ClientLoanIntegrationTest {
         return this.loanTransactionHelper.getLoanProductId(loanProductJSON);
     }
 
-    private Integer createLoanProduct(final String inMultiplesOf, final String digitsAfterDecimal, final String repaymentStrategy) {
-        System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
+    private Integer createLoanProduct(final String inMultiplesOf, final String digitsAfterDecimal,
+            final String repaymentStrategy) {
+        LOG.info("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
         final String loanProductJSON = new LoanProductTestBuilder() //
                 .withPrincipal("10000000.00") //
                 .withNumberOfRepayments("24") //
@@ -913,9 +969,9 @@ public class ClientLoanIntegrationTest {
         return this.loanTransactionHelper.getLoanProductId(loanProductJSON);
     }
 
-    private Integer createLoanProduct(final String inMultiplesOf, final String digitsAfterDecimal, final String repaymentStrategy,
-            final String accountingRule, final Account... accounts) {
-        System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
+    private Integer createLoanProduct(final String inMultiplesOf, final String digitsAfterDecimal,
+            final String repaymentStrategy, final String accountingRule, final Account... accounts) {
+        LOG.info("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
         final String loanProductJSON = new LoanProductTestBuilder() //
                 .withPrincipal("10000000.00") //
                 .withNumberOfRepayments("24") //
@@ -926,12 +982,14 @@ public class ClientLoanIntegrationTest {
                 .withRepaymentStrategy(repaymentStrategy) //
                 .withAmortizationTypeAsEqualPrincipalPayment() //
                 .withInterestTypeAsDecliningBalance() //
-                .currencyDetails(digitsAfterDecimal, inMultiplesOf).withAccounting(accountingRule, accounts).build(null);
+                .currencyDetails(digitsAfterDecimal, inMultiplesOf).withAccounting(accountingRule, accounts)
+                .build(null);
         return this.loanTransactionHelper.getLoanProductId(loanProductJSON);
     }
 
-    private Integer applyForLoanApplication(final Integer clientID, final Integer loanProductID, String graceOnPrincipalPayment) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
+    private Integer applyForLoanApplication(final Integer clientID, final Integer loanProductID,
+            String graceOnPrincipalPayment) {
+        LOG.info("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
         final String loanApplicationJSON = new LoanApplicationTestBuilder() //
                 .withPrincipal("10000000.00") //
                 .withLoanTermFrequency("24") //
@@ -951,7 +1009,7 @@ public class ClientLoanIntegrationTest {
 
     private Integer applyForLoanApplication(final Integer clientID, final Integer loanProductID, List<HashMap> charges,
             final String savingsId, String principal) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
+        LOG.info("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
         final String loanApplicationJSON = new LoanApplicationTestBuilder() //
                 .withPrincipal(principal) //
                 .withLoanTermFrequency("4") //
@@ -969,9 +1027,9 @@ public class ClientLoanIntegrationTest {
         return this.loanTransactionHelper.getLoanId(loanApplicationJSON);
     }
 
-    private Integer applyForLoanApplicationWithTranches(final Integer clientID, final Integer loanProductID, List<HashMap> charges,
-            final String savingsId, String principal, List<HashMap> tranches) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
+    private Integer applyForLoanApplicationWithTranches(final Integer clientID, final Integer loanProductID,
+            List<HashMap> charges, final String savingsId, String principal, List<HashMap> tranches) {
+        LOG.info("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
         final String loanApplicationJSON = new LoanApplicationTestBuilder() //
                 .withPrincipal(principal) //
                 .withLoanTermFrequency("4") //
@@ -991,8 +1049,9 @@ public class ClientLoanIntegrationTest {
         return this.loanTransactionHelper.getLoanId(loanApplicationJSON);
     }
 
-    private String updateLoanJson(final Integer clientID, final Integer loanProductID, List<HashMap> charges, String savingsId) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
+    private String updateLoanJson(final Integer clientID, final Integer loanProductID, List<HashMap> charges,
+            String savingsId) {
+        LOG.info("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
         final String loanApplicationJSON = new LoanApplicationTestBuilder() //
                 .withPrincipal("10,000.00") //
                 .withLoanTermFrequency("4") //
@@ -1010,9 +1069,9 @@ public class ClientLoanIntegrationTest {
         return loanApplicationJSON;
     }
 
-    private Integer applyForLoanApplicationWithPaymentStrategy(final Integer clientID, final Integer loanProductID, List<HashMap> charges,
-            final String savingsId, String principal, final String repaymentStrategy) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
+    private Integer applyForLoanApplicationWithPaymentStrategy(final Integer clientID, final Integer loanProductID,
+            List<HashMap> charges, final String savingsId, String principal, final String repaymentStrategy) {
+        LOG.info("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
         final String loanApplicationJSON = new LoanApplicationTestBuilder() //
                 .withPrincipal(principal) //
                 .withLoanTermFrequency("4") //
@@ -1031,9 +1090,10 @@ public class ClientLoanIntegrationTest {
         return this.loanTransactionHelper.getLoanId(loanApplicationJSON);
     }
 
-    private Integer applyForLoanApplicationWithPaymentStrategyAndPastMonth(final Integer clientID, final Integer loanProductID,
-            List<HashMap> charges, final String savingsId, String principal, final String repaymentStrategy, final int month) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
+    private Integer applyForLoanApplicationWithPaymentStrategyAndPastMonth(final Integer clientID,
+            final Integer loanProductID, List<HashMap> charges, final String savingsId, String principal,
+            final String repaymentStrategy, final int month) {
+        LOG.info("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
 
         Calendar fourMonthsfromNowCalendar = Calendar.getInstance(Utils.getTimeZoneOfTenant());
         fourMonthsfromNowCalendar.add(Calendar.MONTH, month);
@@ -1059,122 +1119,180 @@ public class ClientLoanIntegrationTest {
     }
 
     private void verifyLoanRepaymentSchedule(final ArrayList<HashMap> loanSchedule) {
-        System.out.println("--------------------VERIFYING THE PRINCIPAL DUES,INTEREST DUE AND DUE DATE--------------------------");
-
-        assertEquals("Checking for Due Date for 1st Month", new ArrayList<>(Arrays.asList(2011, 10, 20)), loanSchedule.get(1)
-                .get("dueDate"));
-        assertEquals("Checking for Principal Due for 1st Month", Float.valueOf("2911.49"), loanSchedule.get(1).get("principalOriginalDue"));
-        assertEquals("Checking for Interest Due for 1st Month", Float.valueOf("240.00"), loanSchedule.get(1).get("interestOriginalDue"));
-
-        assertEquals("Checking for Due Date for 2nd Month", new ArrayList<>(Arrays.asList(2011, 11, 20)), loanSchedule.get(2)
-                .get("dueDate"));
-        assertEquals("Checking for Principal Due for 2nd Month", Float.valueOf("2969.72"), loanSchedule.get(2).get("principalDue"));
-        assertEquals("Checking for Interest Due for 2nd Month", Float.valueOf("181.77"), loanSchedule.get(2).get("interestOriginalDue"));
-
-        assertEquals("Checking for Due Date for 3rd Month", new ArrayList<>(Arrays.asList(2011, 12, 20)), loanSchedule.get(3)
-                .get("dueDate"));
-        assertEquals("Checking for Principal Due for 3rd Month", Float.valueOf("3029.11"), loanSchedule.get(3).get("principalDue"));
-        assertEquals("Checking for Interest Due for 3rd Month", Float.valueOf("122.38"), loanSchedule.get(3).get("interestOriginalDue"));
-
-        assertEquals("Checking for Due Date for 4th Month", new ArrayList<>(Arrays.asList(2012, 1, 20)), loanSchedule.get(4).get("dueDate"));
-        assertEquals("Checking for Principal Due for 4th Month", Float.valueOf("3089.68"), loanSchedule.get(4).get("principalDue"));
-        assertEquals("Checking for Interest Due for 4th Month", Float.valueOf("61.79"), loanSchedule.get(4).get("interestOriginalDue"));
+        LOG.info(
+                "--------------------VERIFYING THE PRINCIPAL DUES,INTEREST DUE AND DUE DATE--------------------------");
+
+        assertEquals("Checking for Due Date for 1st Month", new ArrayList<>(Arrays.asList(2011, 10, 20)),
+                loanSchedule.get(1).get("dueDate"));
+        assertEquals("Checking for Principal Due for 1st Month", Float.valueOf("2911.49"),
+                loanSchedule.get(1).get("principalOriginalDue"));
+        assertEquals("Checking for Interest Due for 1st Month", Float.valueOf("240.00"),
+                loanSchedule.get(1).get("interestOriginalDue"));
+
+        assertEquals("Checking for Due Date for 2nd Month", new ArrayList<>(Arrays.asList(2011, 11, 20)),
+                loanSchedule.get(2).get("dueDate"));
+        assertEquals("Checking for Principal Due for 2nd Month", Float.valueOf("2969.72"),
+                loanSchedule.get(2).get("principalDue"));
+        assertEquals("Checking for Interest Due for 2nd Month", Float.valueOf("181.77"),
+                loanSchedule.get(2).get("interestOriginalDue"));
+
+        assertEquals("Checking for Due Date for 3rd Month", new ArrayList<>(Arrays.asList(2011, 12, 20)),
+                loanSchedule.get(3).get("dueDate"));
+        assertEquals("Checking for Principal Due for 3rd Month", Float.valueOf("3029.11"),
+                loanSchedule.get(3).get("principalDue"));
+        assertEquals("Checking for Interest Due for 3rd Month", Float.valueOf("122.38"),
+                loanSchedule.get(3).get("interestOriginalDue"));
+
+        assertEquals("Checking for Due Date for 4th Month", new ArrayList<>(Arrays.asList(2012, 1, 20)),
+                loanSchedule.get(4).get("dueDate"));
+        assertEquals("Checking for Principal Due for 4th Month", Float.valueOf("3089.68"),
+                loanSchedule.get(4).get("principalDue"));
+        assertEquals("Checking for Interest Due for 4th Month", Float.valueOf("61.79"),
+                loanSchedule.get(4).get("interestOriginalDue"));
     }
 
     private void verifyLoanRepaymentScheduleForEqualPrincipal(final ArrayList<HashMap> loanSchedule) {
-        System.out.println("--------------------VERIFYING THE PRINCIPAL DUES,INTEREST DUE AND DUE DATE--------------------------");
-
-        assertEquals("Checking for Due Date for 1st Month", new ArrayList<>(Arrays.asList(2014, 7, 2)), loanSchedule.get(1).get("dueDate"));
-        assertEquals("Checking for Principal Due for 1st Month", Float.valueOf("416700"), loanSchedule.get(1).get("principalOriginalDue"));
-        assertEquals("Checking for Interest Due for 1st Month", Float.valueOf("200000"), loanSchedule.get(1).get("interestOriginalDue"));
-
-        assertEquals("Checking for Due Date for 2nd Month", new ArrayList<>(Arrays.asList(2014, 8, 2)), loanSchedule.get(2).get("dueDate"));
-        assertEquals("Checking for Principal Due for 2nd Month", Float.valueOf("416700"), loanSchedule.get(2).get("principalDue"));
-        assertEquals("Checking for Interest Due for 2nd Month", Float.valueOf("191700"), loanSchedule.get(2).get("interestOriginalDue"));
-
-        assertEquals("Checking for Due Date for 3rd Month", new ArrayList<>(Arrays.asList(2014, 9, 2)), loanSchedule.get(3).get("dueDate"));
-        assertEquals("Checking for Principal Due for 3rd Month", Float.valueOf("416700"), loanSchedule.get(3).get("principalDue"));
-        assertEquals("Checking for Interest Due for 3rd Month", Float.valueOf("183300"), loanSchedule.get(3).get("interestOriginalDue"));
-
-        assertEquals("Checking for Due Date for 4th Month", new ArrayList<>(Arrays.asList(2014, 10, 2)), loanSchedule.get(4).get("dueDate"));
-        assertEquals("Checking for Principal Due for 4th Month", Float.valueOf("416700"), loanSchedule.get(4).get("principalDue"));
-        assertEquals("Checking for Interest Due for 4th Month", Float.valueOf("175000"), loanSchedule.get(4).get("interestOriginalDue"));
-
-        assertEquals("Checking for Due Date for 5th Month", new ArrayList<>(Arrays.asList(2014, 11, 2)), loanSchedule.get(5).get("dueDate"));
-        assertEquals("Checking for Principal Due for 5th Month", Float.valueOf("416700"), loanSchedule.get(5).get("principalDue"));
-        assertEquals("Checking for Interest Due for 5th Month", Float.valueOf("166700"), loanSchedule.get(5).get("interestOriginalDue"));
-
-        assertEquals("Checking for Due Date for 6th Month", new ArrayList<>(Arrays.asList(2014, 12, 2)), loanSchedule.get(6).get("dueDate"));
-        assertEquals("Checking for Principal Due for 6th Month", Float.valueOf("416700"), loanSchedule.get(6).get("principalDue"));
-        assertEquals("Checking for Interest Due for 6th Month", Float.valueOf("158300"), loanSchedule.get(6).get("interestOriginalDue"));
-
-        assertEquals("Checking for Due Date for 10th Month", new ArrayList<>(Arrays.asList(2015, 4, 2)), loanSchedule.get(10)
-                .get("dueDate"));
-        assertEquals("Checking for Principal Due for 10th Month", Float.valueOf("416700"), loanSchedule.get(10).get("principalDue"));
-        assertEquals("Checking for Interest Due for 10th Month", Float.valueOf("125000"), loanSchedule.get(10).get("interestOriginalDue"));
-
-        assertEquals("Checking for Due Date for 20th Month", new ArrayList<>(Arrays.asList(2016, 2, 2)), loanSchedule.get(20)
-                .get("dueDate"));
-        assertEquals("Checking for Principal Due for 20th Month", Float.valueOf("416700"), loanSchedule.get(20).get("principalDue"));
-        assertEquals("Checking for Interest Due for 20th Month", Float.valueOf("41700"), loanSchedule.get(20).get("interestOriginalDue"));
-
-        assertEquals("Checking for Due Date for 24th Month", new ArrayList<>(Arrays.asList(2016, 6, 2)), loanSchedule.get(24)
-                .get("dueDate"));
-        assertEquals("Checking for Principal Due for 24th Month", Float.valueOf("415900"), loanSchedule.get(24).get("principalDue"));
-        assertEquals("Checking for Interest Due for 24th Month", Float.valueOf("8300"), loanSchedule.get(24).get("interestOriginalDue"));
+        LOG.info(
+                "--------------------VERIFYING THE PRINCIPAL DUES,INTEREST DUE AND DUE DATE--------------------------");
+
+        assertEquals("Checking for Due Date for 1st Month", new ArrayList<>(Arrays.asList(2014, 7, 2)),
+                loanSchedule.get(1).get("dueDate"));
+        assertEquals("Checking for Principal Due for 1st Month", Float.valueOf("416700"),
+                loanSchedule.get(1).get("principalOriginalDue"));
+        assertEquals("Checking for Interest Due for 1st Month", Float.valueOf("200000"),
+                loanSchedule.get(1).get("interestOriginalDue"));
+
+        assertEquals("Checking for Due Date for 2nd Month", new ArrayList<>(Arrays.asList(2014, 8, 2)),
+                loanSchedule.get(2).get("dueDate"));
+        assertEquals("Checking for Principal Due for 2nd Month", Float.valueOf("416700"),
+                loanSchedule.get(2).get("principalDue"));
+        assertEquals("Checking for Interest Due for 2nd Month", Float.valueOf("191700"),
+                loanSchedule.get(2).get("interestOriginalDue"));
+
+        assertEquals("Checking for Due Date for 3rd Month", new ArrayList<>(Arrays.asList(2014, 9, 2)),
+                loanSchedule.get(3).get("dueDate"));
+        assertEquals("Checking for Principal Due for 3rd Month", Float.valueOf("416700"),
+                loanSchedule.get(3).get("principalDue"));
+        assertEquals("Checking for Interest Due for 3rd Month", Float.valueOf("183300"),
+                loanSchedule.get(3).get("interestOriginalDue"));
+
+        assertEquals("Checking for Due Date for 4th Month", new ArrayList<>(Arrays.asList(2014, 10, 2)),
+                loanSchedule.get(4).get("dueDate"));
+        assertEquals("Checking for Principal Due for 4th Month", Float.valueOf("416700"),
+                loanSchedule.get(4).get("principalDue"));
+        assertEquals("Checking for Interest Due for 4th Month", Float.valueOf("175000"),
+                loanSchedule.get(4).get("interestOriginalDue"));
+
+        assertEquals("Checking for Due Date for 5th Month", new ArrayList<>(Arrays.asList(2014, 11, 2)),
+                loanSchedule.get(5).get("dueDate"));
+        assertEquals("Checking for Principal Due for 5th Month", Float.valueOf("416700"),
+                loanSchedule.get(5).get("principalDue"));
+        assertEquals("Checking for Interest Due for 5th Month", Float.valueOf("166700"),
+                loanSchedule.get(5).get("interestOriginalDue"));
+
+        assertEquals("Checking for Due Date for 6th Month", new ArrayList<>(Arrays.asList(2014, 12, 2)),
+                loanSchedule.get(6).get("dueDate"));
+        assertEquals("Checking for Principal Due for 6th Month", Float.valueOf("416700"),
+                loanSchedule.get(6).get("principalDue"));
+        assertEquals("Checking for Interest Due for 6th Month", Float.valueOf("158300"),
+                loanSchedule.get(6).get("interestOriginalDue"));
+
+        assertEquals("Checking for Due Date for 10th Month", new ArrayList<>(Arrays.asList(2015, 4, 2)),
+                loanSchedule.get(10).get("dueDate"));
+        assertEquals("Checking for Principal Due for 10th Month", Float.valueOf("416700"),
+                loanSchedule.get(10).get("principalDue"));
+        assertEquals("Checking for Interest Due for 10th Month", Float.valueOf("125000"),
+                loanSchedule.get(10).get("interestOriginalDue"));
+
+        assertEquals("Checking for Due Date for 20th Month", new ArrayList<>(Arrays.asList(2016, 2, 2)),
+                loanSchedule.get(20).get("dueDate"));
+        assertEquals("Checking for Principal Due for 20th Month", Float.valueOf("416700"),
+                loanSchedule.get(20).get("principalDue"));
+        assertEquals("Checking for Interest Due for 20th Month", Float.valueOf("41700"),
+                loanSchedule.get(20).get("interestOriginalDue"));
+
+        assertEquals("Checking for Due Date for 24th Month", new ArrayList<>(Arrays.asList(2016, 6, 2)),
+                loanSchedule.get(24).get("dueDate"));
+        assertEquals("Checking for Principal Due for 24th Month", Float.valueOf("415900"),
+                loanSchedule.get(24).get("principalDue"));
+        assertEquals("Checking for Interest Due for 24th Month", Float.valueOf("8300"),
+                loanSchedule.get(24).get("interestOriginalDue"));
 
     }
 
     private void verifyLoanRepaymentScheduleForEqualPrincipalWithGrace(final ArrayList<HashMap> loanSchedule) {
-        System.out.println("--------------------VERIFYING THE PRINCIPAL DUES,INTEREST DUE AND DUE DATE--------------------------");
+        LOG.info(
+                "--------------------VERIFYING THE PRINCIPAL DUES,INTEREST DUE AND DUE DATE--------------------------");
 
-        assertEquals("Checking for Due Date for 1st Month", new ArrayList<>(Arrays.asList(2014, 7, 2)), loanSchedule.get(1).get("dueDate"));
+        assertEquals("Checking for Due Date for 1st Month", new ArrayList<>(Arrays.asList(2014, 7, 2)),
+                loanSchedule.get(1).get("dueDate"));
         validateNumberForEqualWithMsg("Checking for Principal Due for 1st Month", "0.0",
                 String.valueOf(loanSchedule.get(1).get("principalOriginalDue")));
-        assertEquals("Checking for Interest Due for 1st Month", Float.valueOf("200000"), loanSchedule.get(1).get("interestOriginalDue"));
+        assertEquals("Checking for Interest Due for 1st Month", Float.valueOf("200000"),
+                loanSchedule.get(1).get("interestOriginalDue"));
 
-        assertEquals("Checking for Due Date for 2nd Month", new ArrayList<>(Arrays.asList(2014, 8, 2)), loanSchedule.get(2).get("dueDate"));
+        assertEquals("Checking for Due Date for 2nd Month", new ArrayList<>(Arrays.asList(2014, 8, 2)),
+                loanSchedule.get(2).get("dueDate"));
         validateNumberForEqualWithMsg("Checking for Principal Due for 2nd Month", "0.0",
                 String.valueOf(loanSchedule.get(2).get("principalOriginalDue")));
-        assertEquals("Checking for Interest Due for 2nd Month", Float.valueOf("200000"), loanSchedule.get(2).get("interestOriginalDue"));
+        assertEquals("Checking for Interest Due for 2nd Month", Float.valueOf("200000"),
+                loanSchedule.get(2).get("interestOriginalDue"));
 
-        assertEquals("Checking for Due Date for 3rd Month", new ArrayList<>(Arrays.asList(2014, 9, 2)), loanSchedule.get(3).get("dueDate"));
+        assertEquals("Checking for Due Date for 3rd Month", new ArrayList<>(Arrays.asList(2014, 9, 2)),
+                loanSchedule.get(3).get("dueDate"));
         validateNumberForEqualWithMsg("Checking for Principal Due for 3rd Month", "0.0",
                 String.valueOf(loanSchedule.get(3).get("principalDue")));
-        assertEquals("Checking for Interest Due for 3rd Month", Float.valueOf("200000"), loanSchedule.get(3).get("interestOriginalDue"));
+        assertEquals("Checking for Interest Due for 3rd Month", Float.valueOf("200000"),
+                loanSchedule.get(3).get("interestOriginalDue"));
 
-        assertEquals("Checking for Due Date for 4th Month", new ArrayList<>(Arrays.asList(2014, 10, 2)), loanSchedule.get(4).get("dueDate"));
+        assertEquals("Checking for Due Date for 4th Month", new ArrayList<>(Arrays.asList(2014, 10, 2)),
+                loanSchedule.get(4).get("dueDate"));
         validateNumberForEqualWithMsg("Checking for Principal Due for 4th Month", "0",
                 String.valueOf(loanSchedule.get(4).get("principalDue")));
-        assertEquals("Checking for Interest Due for 4th Month", Float.valueOf("200000"), loanSchedule.get(4).get("interestOriginalDue"));
+        assertEquals("Checking for Interest Due for 4th Month", Float.valueOf("200000"),
+                loanSchedule.get(4).get("interestOriginalDue"));
 
-        assertEquals("Checking for Due Date for 5th Month", new ArrayList<>(Arrays.asList(2014, 11, 2)), loanSchedule.get(5).get("dueDate"));
+        assertEquals("Checking for Due Date for 5th Month", new ArrayList<>(Arrays.asList(2014, 11, 2)),
+                loanSchedule.get(5).get("dueDate"));
         validateNumberForEqualWithMsg("Checking for Principal Due for 5th Month", "0",
                 String.valueOf(loanSchedule.get(5).get("principalDue")));
-        assertEquals("Checking for Interest Due for 5th Month", Float.valueOf("200000"), loanSchedule.get(5).get("interestOriginalDue"));
-
-        assertEquals("Checking for Due Date for 6th Month", new ArrayList<>(Arrays.asList(2014, 12, 2)), loanSchedule.get(6).get("dueDate"));
-        assertEquals("Checking for Principal Due for 6th Month", Float.valueOf("526300"), loanSchedule.get(6).get("principalDue"));
-        assertEquals("Checking for Interest Due for 6th Month", Float.valueOf("200000"), loanSchedule.get(6).get("interestOriginalDue"));
-
-        assertEquals("Checking for Due Date for 7th Month", new ArrayList<>(Arrays.asList(2015, 1, 2)), loanSchedule.get(7).get("dueDate"));
-        assertEquals("Checking for Principal Due for 7th Month", Float.valueOf("526300"), loanSchedule.get(7).get("principalDue"));
-        assertEquals("Checking for Interest Due for 7th Month", Float.valueOf("189500"), loanSchedule.get(7).get("interestOriginalDue"));
-
-        assertEquals("Checking for Due Date for 10th Month", new ArrayList<>(Arrays.asList(2015, 4, 2)), loanSchedule.get(10)
-                .get("dueDate"));
-        assertEquals("Checking for Principal Due for 10th Month", Float.valueOf("526300"), loanSchedule.get(10).get("principalDue"));
-        assertEquals("Checking for Interest Due for 10th Month", Float.valueOf("157900"), loanSchedule.get(10).get("interestOriginalDue"));
-
-        assertEquals("Checking for Due Date for 20th Month", new ArrayList<>(Arrays.asList(2016, 2, 2)), loanSchedule.get(20)
-                .get("dueDate"));
-        assertEquals("Checking for Principal Due for 20th Month", Float.valueOf("526300"), loanSchedule.get(20).get("principalDue"));
-        assertEquals("Checking for Interest Due for 20th Month", Float.valueOf("52600"), loanSchedule.get(20).get("interestOriginalDue"));
-
-        assertEquals("Checking for Due Date for 24th Month", new ArrayList<>(Arrays.asList(2016, 6, 2)), loanSchedule.get(24)
-                .get("dueDate"));
-        assertEquals("Checking for Principal Due for 24th Month", Float.valueOf("526600"), loanSchedule.get(24).get("principalDue"));
-        assertEquals("Checking for Interest Due for 24th Month", Float.valueOf("10500"), loanSchedule.get(24).get("interestOriginalDue"));
+        assertEquals("Checking for Interest Due for 5th Month", Float.valueOf("200000"),
+                loanSchedule.get(5).get("interestOriginalDue"));
+
+        assertEquals("Checking for Due Date for 6th Month", new ArrayList<>(Arrays.asList(2014, 12, 2)),
+                loanSchedule.get(6).get("dueDate"));
+        assertEquals("Checking for Principal Due for 6th Month", Float.valueOf("526300"),
+                loanSchedule.get(6).get("principalDue"));
+        assertEquals("Checking for Interest Due for 6th Month", Float.valueOf("200000"),
+                loanSchedule.get(6).get("interestOriginalDue"));
+
+        assertEquals("Checking for Due Date for 7th Month", new ArrayList<>(Arrays.asList(2015, 1, 2)),
+                loanSchedule.get(7).get("dueDate"));
+        assertEquals("Checking for Principal Due for 7th Month", Float.valueOf("526300"),
+                loanSchedule.get(7).get("principalDue"));
+        assertEquals("Checking for Interest Due for 7th Month", Float.valueOf("189500"),
+                loanSchedule.get(7).get("interestOriginalDue"));
+
+        assertEquals("Checking for Due Date for 10th Month", new ArrayList<>(Arrays.asList(2015, 4, 2)),
+                loanSchedule.get(10).get("dueDate"));
+        assertEquals("Checking for Principal Due for 10th Month", Float.valueOf("526300"),
+                loanSchedule.get(10).get("principalDue"));
+        assertEquals("Checking for Interest Due for 10th Month", Float.valueOf("157900"),
+                loanSchedule.get(10).get("interestOriginalDue"));
+
+        assertEquals("Checking for Due Date for 20th Month", new ArrayList<>(Arrays.asList(2016, 2, 2)),
+                loanSchedule.get(20).get("dueDate"));
+        assertEquals("Checking for Principal Due for 20th Month", Float.valueOf("526300"),
+                loanSchedule.get(20).get("principalDue"));
+        assertEquals("Checking for Interest Due for 20th Month", Float.valueOf("52600"),
+                loanSchedule.get(20).get("interestOriginalDue"));
+
+        assertEquals("Checking for Due Date for 24th Month", new ArrayList<>(Arrays.asList(2016, 6, 2)),
+                loanSchedule.get(24).get("dueDate"));
+        assertEquals("Checking for Principal Due for 24th Month", Float.valueOf("526600"),
+                loanSchedule.get(24).get("principalDue"));
+        assertEquals("Checking for Interest Due for 24th Month", Float.valueOf("10500"),
+                loanSchedule.get(24).get("interestOriginalDue"));
 
     }
 
@@ -1236,8 +1354,8 @@ public class ClientLoanIntegrationTest {
     }
 
     /***
-     * Test case for checking CashBasedAccounting functionality adding charges
-     * with calculation type flat
+     * Test case for checking CashBasedAccounting functionality adding charges with
+     * calculation type flat
      */
     @Test
     public void loanWithFlatCahargesAndCashBasedAccountingEnabled() {
@@ -1248,7 +1366,8 @@ public class ClientLoanIntegrationTest {
 
         // Add charges with payment mode regular
         List<HashMap> charges = new ArrayList<>();
-        Integer flatDisbursement = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper.getLoanDisbursementJSON());
+        Integer flatDisbursement = ChargesHelper.createCharges(requestSpec, responseSpec,
+                ChargesHelper.getLoanDisbursementJSON());
         addCharges(charges, flatDisbursement, "100", null);
         Integer flatSpecifiedDueDate = ChargesHelper.createCharges(requestSpec, responseSpec,
                 ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, "100", false));
@@ -1262,13 +1381,15 @@ public class ClientLoanIntegrationTest {
         final Account expenseAccount = this.accountHelper.createExpenseAccount();
         final Account overpaymentAccount = this.accountHelper.createLiabilityAccount();
 
-        final Integer loanProductID = createLoanProduct(false, CASH_BASED, assetAccount, incomeAccount, expenseAccount, overpaymentAccount);
+        final Integer loanProductID = createLoanProduct(false, CASH_BASED, assetAccount, incomeAccount, expenseAccount,
+                overpaymentAccount);
         final Integer loanID = applyForLoanApplication(clientID, loanProductID, charges, null, "12,000.00");
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         verifyLoanRepaymentSchedule(loanSchedule);
 
         List<HashMap> loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -1288,26 +1409,28 @@ public class ClientLoanIntegrationTest {
         HashMap secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("50.00", String.valueOf(secondInstallment.get("feeChargesDue")));
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
-        final JournalEntry[] assetAccountInitialEntry = { new JournalEntry(Float.valueOf("100.00"), JournalEntry.TransactionType.DEBIT),
+        final JournalEntry[] assetAccountInitialEntry = {
+                new JournalEntry(Float.valueOf("100.00"), JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.CREDIT),
                 new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.DEBIT) };
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 September 2011", assetAccountInitialEntry);
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 September 2011",
+                assetAccountInitialEntry);
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 September 2011",
                 new JournalEntry(Float.valueOf("100.00"), JournalEntry.TransactionType.CREDIT));
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         validateCharge(flatDisbursement, loanCharges, "100", "0.00", "100.0", "0.0");
 
-        System.out.println("-------------Make repayment 1-----------");
+        LOG.info("-------------Make repayment 1-----------");
         this.loanTransactionHelper.makeRepayment("20 October 2011", Float.valueOf("3301.49"), loanID);
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -1315,39 +1438,41 @@ public class ClientLoanIntegrationTest {
         validateCharge(flatSpecifiedDueDate, loanCharges, "100", "0.00", "100.0", "0.0");
         validateCharge(flatInstallmentFee, loanCharges, "50", "150.00", "50.0", "0.0");
 
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011", new JournalEntry(
-                Float.valueOf("3301.49"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("2911.49"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011",
+                new JournalEntry(Float.valueOf("3301.49"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("2911.49"), JournalEntry.TransactionType.CREDIT));
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 October 2011",
-                new JournalEntry(Float.valueOf("150.00"), JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("240.00"),
-                        JournalEntry.TransactionType.CREDIT));
-        this.loanTransactionHelper.addChargesForLoan(loanID, LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
-                String.valueOf(flatSpecifiedDueDate), "29 October 2011", "100"));
+                new JournalEntry(Float.valueOf("150.00"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("240.00"), JournalEntry.TransactionType.CREDIT));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
+                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(String.valueOf(flatSpecifiedDueDate),
+                        "29 October 2011", "100"));
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
 
         secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("150.00", String.valueOf(secondInstallment.get("feeChargesDue")));
-        this.loanTransactionHelper.waiveChargesForLoan(loanID, (Integer) getloanCharge(flatInstallmentFee, loanCharges).get("id"),
+        this.loanTransactionHelper.waiveChargesForLoan(loanID,
+                (Integer) getloanCharge(flatInstallmentFee, loanCharges).get("id"),
                 LoanTransactionHelper.getWaiveChargeJSON(String.valueOf(2)));
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         validateCharge(flatInstallmentFee, loanCharges, "50", "100.00", "50.0", "50.0");
 
-        System.out.println("----------Make repayment 2------------");
+        LOG.info("----------Make repayment 2------------");
         this.loanTransactionHelper.makeRepayment("20 November 2011", Float.valueOf("3251.49"), loanID);
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
-                new JournalEntry(Float.valueOf("3251.49"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("2969.72"),
-                        JournalEntry.TransactionType.CREDIT));
+                new JournalEntry(Float.valueOf("3251.49"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("2969.72"), JournalEntry.TransactionType.CREDIT));
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 November 2011",
-                new JournalEntry(Float.valueOf("100.00"), JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("181.77"),
-                        JournalEntry.TransactionType.CREDIT));
+                new JournalEntry(Float.valueOf("100.00"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("181.77"), JournalEntry.TransactionType.CREDIT));
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("0", String.valueOf(secondInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("--------------Waive interest---------------");
+        LOG.info("--------------Waive interest---------------");
         this.loanTransactionHelper.waiveInterest("20 December 2011", String.valueOf(61.79), loanID);
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
@@ -1356,8 +1481,9 @@ public class ClientLoanIntegrationTest {
 
         Integer flatPenaltySpecifiedDueDate = ChargesHelper.createCharges(requestSpec, responseSpec,
                 ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, "100", true));
-        this.loanTransactionHelper.addChargesForLoan(loanID, LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
-                String.valueOf(flatPenaltySpecifiedDueDate), "29 September 2011", "100"));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
+                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
+                        String.valueOf(flatPenaltySpecifiedDueDate), "29 September 2011", "100"));
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         validateCharge(flatPenaltySpecifiedDueDate, loanCharges, "100", "0.00", "100.0", "0.0");
@@ -1367,33 +1493,35 @@ public class ClientLoanIntegrationTest {
         secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("100", String.valueOf(secondInstallment.get("totalOutstandingForPeriod")));
 
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011", new JournalEntry(
-                Float.valueOf("3301.49"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("2811.49"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011",
+                new JournalEntry(Float.valueOf("3301.49"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("2811.49"), JournalEntry.TransactionType.CREDIT));
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 October 2011",
-                new JournalEntry(Float.valueOf("100.00"), JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("150.00"),
-                        JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("240"), JournalEntry.TransactionType.CREDIT));
+                new JournalEntry(Float.valueOf("100.00"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("150.00"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("240"), JournalEntry.TransactionType.CREDIT));
 
-        System.out.println("----------Make repayment 3 advance------------");
+        LOG.info("----------Make repayment 3 advance------------");
         this.loanTransactionHelper.makeRepayment("20 November 2011", Float.valueOf("3301.49"), loanID);
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
-                new JournalEntry(Float.valueOf("3301.49"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3129.11"),
-                        JournalEntry.TransactionType.CREDIT));
+                new JournalEntry(Float.valueOf("3301.49"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3129.11"), JournalEntry.TransactionType.CREDIT));
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 November 2011",
-                new JournalEntry(Float.valueOf("50.00"), JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("122.38"),
-                        JournalEntry.TransactionType.CREDIT));
-        this.loanTransactionHelper.addChargesForLoan(loanID, LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
-                String.valueOf(flatPenaltySpecifiedDueDate), "10 January 2012", "100"));
+                new JournalEntry(Float.valueOf("50.00"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("122.38"), JournalEntry.TransactionType.CREDIT));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
+                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
+                        String.valueOf(flatPenaltySpecifiedDueDate), "10 January 2012", "100"));
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         HashMap fourthInstallment = loanSchedule.get(4);
         validateNumberForEqual("100", String.valueOf(fourthInstallment.get("penaltyChargesOutstanding")));
         validateNumberForEqual("3239.68", String.valueOf(fourthInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("----------Pay applied penalty ------------");
+        LOG.info("----------Pay applied penalty ------------");
         this.loanTransactionHelper.makeRepayment("20 January 2012", Float.valueOf("100"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012", new JournalEntry(Float.valueOf("100"),
-                JournalEntry.TransactionType.DEBIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012",
+                new JournalEntry(Float.valueOf("100"), JournalEntry.TransactionType.DEBIT));
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 January 2012",
                 new JournalEntry(Float.valueOf("100.00"), JournalEntry.TransactionType.CREDIT));
         loanSchedule.clear();
@@ -1402,18 +1530,18 @@ public class ClientLoanIntegrationTest {
         validateNumberForEqual("0", String.valueOf(fourthInstallment.get("penaltyChargesOutstanding")));
         validateNumberForEqual("3139.68", String.valueOf(fourthInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("----------Make repayment 4 ------------");
+        LOG.info("----------Make repayment 4 ------------");
         this.loanTransactionHelper.makeRepayment("20 January 2012", Float.valueOf("3139.68"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012", new JournalEntry(
-                Float.valueOf("3139.68"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3089.68"),
-                JournalEntry.TransactionType.CREDIT));
-        this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 January 2012", new JournalEntry(
-                Float.valueOf("50.00"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012",
+                new JournalEntry(Float.valueOf("3139.68"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3089.68"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 January 2012",
+                new JournalEntry(Float.valueOf("50.00"), JournalEntry.TransactionType.CREDIT));
     }
 
     /***
-     * Test case for checking CashBasedAccounting functionality adding charges
-     * with calculation type percentage of amount
+     * Test case for checking CashBasedAccounting functionality adding charges with
+     * calculation type percentage of amount
      */
     @Test
     public void loanWithCahargesOfTypeAmountPercentageAndCashBasedAccountingEnabled() {
@@ -1428,12 +1556,12 @@ public class ClientLoanIntegrationTest {
                 ChargesHelper.getLoanDisbursementJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1"));
         addCharges(charges, percentageDisbursementCharge, "1", null);
 
-        Integer percentageSpecifiedDueDateCharge = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", false));
+        Integer percentageSpecifiedDueDateCharge = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper
+                .getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", false));
         addCharges(charges, percentageSpecifiedDueDateCharge, "1", "29 September 2011");
 
-        Integer percentageInstallmentFee = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", false));
+        Integer percentageInstallmentFee = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper
+                .getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", false));
         addCharges(charges, percentageInstallmentFee, "1", "29 September 2011");
 
         final Account assetAccount = this.accountHelper.createAssetAccount();
@@ -1441,13 +1569,15 @@ public class ClientLoanIntegrationTest {
         final Account expenseAccount = this.accountHelper.createExpenseAccount();
         final Account overpaymentAccount = this.accountHelper.createLiabilityAccount();
 
-        final Integer loanProductID = createLoanProduct(false, CASH_BASED, assetAccount, incomeAccount, expenseAccount, overpaymentAccount);
+        final Integer loanProductID = createLoanProduct(false, CASH_BASED, assetAccount, incomeAccount, expenseAccount,
+                overpaymentAccount);
         final Integer loanID = applyForLoanApplication(clientID, loanProductID, charges, null, "12,000.00");
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         verifyLoanRepaymentSchedule(loanSchedule);
 
         List<HashMap> loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -1467,26 +1597,28 @@ public class ClientLoanIntegrationTest {
         HashMap secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("29.70", String.valueOf(secondInstallment.get("feeChargesDue")));
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
-        final JournalEntry[] assetAccountInitialEntry = { new JournalEntry(Float.valueOf("120.00"), JournalEntry.TransactionType.DEBIT),
+        final JournalEntry[] assetAccountInitialEntry = {
+                new JournalEntry(Float.valueOf("120.00"), JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.CREDIT),
                 new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.DEBIT) };
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 September 2011", assetAccountInitialEntry);
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 September 2011",
+                assetAccountInitialEntry);
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 September 2011",
                 new JournalEntry(Float.valueOf("120.00"), JournalEntry.TransactionType.CREDIT));
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         validateCharge(percentageDisbursementCharge, loanCharges, "1", "0.0", "120.00", "0.0");
 
-        System.out.println("-------------Make repayment 1-----------");
+        LOG.info("-------------Make repayment 1-----------");
         this.loanTransactionHelper.makeRepayment("20 October 2011", Float.valueOf("3300.60"), loanID);
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -1494,49 +1626,52 @@ public class ClientLoanIntegrationTest {
         validateCharge(percentageSpecifiedDueDateCharge, loanCharges, "1", "0.00", "120.0", "0.0");
         validateCharge(percentageInstallmentFee, loanCharges, "1", "90.89", "29.11", "0.0");
 
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011", new JournalEntry(
-                Float.valueOf("3300.60"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("2911.49"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011",
+                new JournalEntry(Float.valueOf("3300.60"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("2911.49"), JournalEntry.TransactionType.CREDIT));
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 October 2011",
-                new JournalEntry(Float.valueOf("149.11"), JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("240.00"),
-                        JournalEntry.TransactionType.CREDIT));
-        this.loanTransactionHelper.addChargesForLoan(loanID, LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
-                String.valueOf(percentageSpecifiedDueDateCharge), "29 October 2011", "1"));
+                new JournalEntry(Float.valueOf("149.11"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("240.00"), JournalEntry.TransactionType.CREDIT));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
+                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
+                        String.valueOf(percentageSpecifiedDueDateCharge), "29 October 2011", "1"));
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
 
         secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("149.70", String.valueOf(secondInstallment.get("feeChargesDue")));
-        this.loanTransactionHelper.waiveChargesForLoan(loanID, (Integer) getloanCharge(percentageInstallmentFee, loanCharges).get("id"),
+        this.loanTransactionHelper.waiveChargesForLoan(loanID,
+                (Integer) getloanCharge(percentageInstallmentFee, loanCharges).get("id"),
                 LoanTransactionHelper.getWaiveChargeJSON(String.valueOf(2)));
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         validateCharge(percentageInstallmentFee, loanCharges, "1", "61.19", "29.11", "29.70");
 
-        System.out.println("----------Make repayment 2------------");
+        LOG.info("----------Make repayment 2------------");
         this.loanTransactionHelper.makeRepayment("20 November 2011", Float.valueOf("3271.49"), loanID);
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
-                new JournalEntry(Float.valueOf("3271.49"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("2969.72"),
-                        JournalEntry.TransactionType.CREDIT));
+                new JournalEntry(Float.valueOf("3271.49"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("2969.72"), JournalEntry.TransactionType.CREDIT));
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 November 2011",
-                new JournalEntry(Float.valueOf("120.00"), JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("181.77"),
-                        JournalEntry.TransactionType.CREDIT));
+                new JournalEntry(Float.valueOf("120.00"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("181.77"), JournalEntry.TransactionType.CREDIT));
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("0", String.valueOf(secondInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("--------------Waive interest---------------");
+        LOG.info("--------------Waive interest---------------");
         this.loanTransactionHelper.waiveInterest("20 December 2011", String.valueOf(61.79), loanID);
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         HashMap thirdInstallment = loanSchedule.get(3);
         validateNumberForEqual("60.59", String.valueOf(thirdInstallment.get("interestOutstanding")));
 
-        Integer percentagePenaltySpecifiedDueDate = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", true));
-        this.loanTransactionHelper.addChargesForLoan(loanID, LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
-                String.valueOf(percentagePenaltySpecifiedDueDate), "29 September 2011", "1"));
+        Integer percentagePenaltySpecifiedDueDate = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper
+                .getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", true));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
+                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
+                        String.valueOf(percentagePenaltySpecifiedDueDate), "29 September 2011", "1"));
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         validateCharge(percentagePenaltySpecifiedDueDate, loanCharges, "1", "0.00", "120.0", "0.0");
@@ -1546,33 +1681,35 @@ public class ClientLoanIntegrationTest {
         secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("120", String.valueOf(secondInstallment.get("totalOutstandingForPeriod")));
 
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011", new JournalEntry(
-                Float.valueOf("3300.60"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("2791.49"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011",
+                new JournalEntry(Float.valueOf("3300.60"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("2791.49"), JournalEntry.TransactionType.CREDIT));
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 October 2011",
-                new JournalEntry(Float.valueOf("120.00"), JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("149.11"),
-                        JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("240"), JournalEntry.TransactionType.CREDIT));
+                new JournalEntry(Float.valueOf("120.00"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("149.11"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("240"), JournalEntry.TransactionType.CREDIT));
 
-        System.out.println("----------Make repayment 3 advance------------");
+        LOG.info("----------Make repayment 3 advance------------");
         this.loanTransactionHelper.makeRepayment("20 November 2011", Float.valueOf("3301.78"), loanID);
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
-                new JournalEntry(Float.valueOf("3301.78"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3149.11"),
-                        JournalEntry.TransactionType.CREDIT));
+                new JournalEntry(Float.valueOf("3301.78"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3149.11"), JournalEntry.TransactionType.CREDIT));
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 November 2011",
-                new JournalEntry(Float.valueOf("30.29"), JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("122.38"),
-                        JournalEntry.TransactionType.CREDIT));
-        this.loanTransactionHelper.addChargesForLoan(loanID, LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
-                String.valueOf(percentagePenaltySpecifiedDueDate), "10 January 2012", "1"));
+                new JournalEntry(Float.valueOf("30.29"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("122.38"), JournalEntry.TransactionType.CREDIT));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
+                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
+                        String.valueOf(percentagePenaltySpecifiedDueDate), "10 January 2012", "1"));
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         HashMap fourthInstallment = loanSchedule.get(4);
         validateNumberForEqual("120", String.valueOf(fourthInstallment.get("penaltyChargesOutstanding")));
         validateNumberForEqual("3240.58", String.valueOf(fourthInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("----------Pay applied penalty ------------");
+        LOG.info("----------Pay applied penalty ------------");
         this.loanTransactionHelper.makeRepayment("20 January 2012", Float.valueOf("120"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012", new JournalEntry(Float.valueOf("120"),
-                JournalEntry.TransactionType.DEBIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012",
+                new JournalEntry(Float.valueOf("120"), JournalEntry.TransactionType.DEBIT));
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 January 2012",
                 new JournalEntry(Float.valueOf("120.00"), JournalEntry.TransactionType.CREDIT));
         loanSchedule.clear();
@@ -1581,18 +1718,18 @@ public class ClientLoanIntegrationTest {
         validateNumberForEqual("0", String.valueOf(fourthInstallment.get("penaltyChargesOutstanding")));
         validateNumberForEqual("3120.58", String.valueOf(fourthInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("----------Make repayment 4 ------------");
+        LOG.info("----------Make repayment 4 ------------");
         this.loanTransactionHelper.makeRepayment("20 January 2012", Float.valueOf("3120.58"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012", new JournalEntry(
-                Float.valueOf("3120.58"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3089.68"),
-                JournalEntry.TransactionType.CREDIT));
-        this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 January 2012", new JournalEntry(
-                Float.valueOf("30.90"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012",
+                new JournalEntry(Float.valueOf("3120.58"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3089.68"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 January 2012",
+                new JournalEntry(Float.valueOf("30.90"), JournalEntry.TransactionType.CREDIT));
     }
 
     /***
-     * Test case for checking CashBasedAccounting functionality adding charges
-     * with calculation type percentage of amount plus interest
+     * Test case for checking CashBasedAccounting functionality adding charges with
+     * calculation type percentage of amount plus interest
      */
     @Test
     public void loanWithCahargesOfTypeAmountPlusInterestPercentageAndCashBasedAccountingEnabled() {
@@ -1604,16 +1741,18 @@ public class ClientLoanIntegrationTest {
         // Add charges with payment mode regular
         List<HashMap> charges = new ArrayList<>();
         Integer amountPlusInterestPercentageDisbursementCharge = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanDisbursementJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1"));
+                ChargesHelper.getLoanDisbursementJSON(
+                        ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1"));
         addCharges(charges, amountPlusInterestPercentageDisbursementCharge, "1", null);
 
-        Integer amountPlusInterestPercentageSpecifiedDueDateCharge = ChargesHelper
-                .createCharges(requestSpec, responseSpec, ChargesHelper.getLoanSpecifiedDueDateJSON(
+        Integer amountPlusInterestPercentageSpecifiedDueDateCharge = ChargesHelper.createCharges(requestSpec,
+                responseSpec, ChargesHelper.getLoanSpecifiedDueDateJSON(
                         ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1", false));
         addCharges(charges, amountPlusInterestPercentageSpecifiedDueDateCharge, "1", "29 September 2011");
 
         Integer amountPlusInterestPercentageInstallmentFee = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1", false));
+                ChargesHelper.getLoanInstallmentJSON(
+                        ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1", false));
         addCharges(charges, amountPlusInterestPercentageInstallmentFee, "1", "29 September 2011");
 
         final Account assetAccount = this.accountHelper.createAssetAccount();
@@ -1621,13 +1760,15 @@ public class ClientLoanIntegrationTest {
         final Account expenseAccount = this.accountHelper.createExpenseAccount();
         final Account overpaymentAccount = this.accountHelper.createLiabilityAccount();
 
-        final Integer loanProductID = createLoanProduct(false, CASH_BASED, assetAccount, incomeAccount, expenseAccount, overpaymentAccount);
+        final Integer loanProductID = createLoanProduct(false, CASH_BASED, assetAccount, incomeAccount, expenseAccount,
+                overpaymentAccount);
         final Integer loanID = applyForLoanApplication(clientID, loanProductID, charges, null, "12,000.00");
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         verifyLoanRepaymentSchedule(loanSchedule);
 
         List<HashMap> loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -1647,26 +1788,28 @@ public class ClientLoanIntegrationTest {
         HashMap secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("31.51", String.valueOf(secondInstallment.get("feeChargesDue")));
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
-        final JournalEntry[] assetAccountInitialEntry = { new JournalEntry(Float.valueOf("126.06"), JournalEntry.TransactionType.DEBIT),
+        final JournalEntry[] assetAccountInitialEntry = {
+                new JournalEntry(Float.valueOf("126.06"), JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.CREDIT),
                 new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.DEBIT) };
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 September 2011", assetAccountInitialEntry);
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 September 2011",
+                assetAccountInitialEntry);
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 September 2011",
                 new JournalEntry(Float.valueOf("126.06"), JournalEntry.TransactionType.CREDIT));
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         validateCharge(amountPlusInterestPercentageDisbursementCharge, loanCharges, "1", "0.0", "126.06", "0.0");
 
-        System.out.println("-------------Make repayment 1-----------");
+        LOG.info("-------------Make repayment 1-----------");
         this.loanTransactionHelper.makeRepayment("20 October 2011", Float.valueOf("3309.06"), loanID);
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -1674,14 +1817,13 @@ public class ClientLoanIntegrationTest {
         validateCharge(amountPlusInterestPercentageSpecifiedDueDateCharge, loanCharges, "1", "0.00", "126.06", "0.0");
         validateCharge(amountPlusInterestPercentageInstallmentFee, loanCharges, "1", "94.53", "31.51", "0.0");
 
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011", new JournalEntry(
-                Float.valueOf("3309.06"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("2911.49"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011",
+                new JournalEntry(Float.valueOf("3309.06"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("2911.49"), JournalEntry.TransactionType.CREDIT));
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 October 2011",
-                new JournalEntry(Float.valueOf("157.57"), JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("240.00"),
-                        JournalEntry.TransactionType.CREDIT));
-        this.loanTransactionHelper.addChargesForLoan(
-                loanID,
+                new JournalEntry(Float.valueOf("157.57"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("240.00"), JournalEntry.TransactionType.CREDIT));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
                 LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
                         String.valueOf(amountPlusInterestPercentageSpecifiedDueDateCharge), "29 October 2011", "1"));
         loanSchedule.clear();
@@ -1696,30 +1838,30 @@ public class ClientLoanIntegrationTest {
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         validateCharge(amountPlusInterestPercentageInstallmentFee, loanCharges, "1", "63.02", "31.51", "31.51");
 
-        System.out.println("----------Make repayment 2------------");
+        LOG.info("----------Make repayment 2------------");
         this.loanTransactionHelper.makeRepayment("20 November 2011", Float.valueOf("3277.55"), loanID);
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
-                new JournalEntry(Float.valueOf("3277.55"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("2969.72"),
-                        JournalEntry.TransactionType.CREDIT));
+                new JournalEntry(Float.valueOf("3277.55"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("2969.72"), JournalEntry.TransactionType.CREDIT));
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 November 2011",
-                new JournalEntry(Float.valueOf("126.06"), JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("181.77"),
-                        JournalEntry.TransactionType.CREDIT));
+                new JournalEntry(Float.valueOf("126.06"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("181.77"), JournalEntry.TransactionType.CREDIT));
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("0", String.valueOf(secondInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("--------------Waive interest---------------");
+        LOG.info("--------------Waive interest---------------");
         this.loanTransactionHelper.waiveInterest("20 December 2011", String.valueOf(61.79), loanID);
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         HashMap thirdInstallment = loanSchedule.get(3);
         validateNumberForEqual("60.59", String.valueOf(thirdInstallment.get("interestOutstanding")));
 
-        Integer amountPlusInterestPercentagePenaltySpecifiedDueDate = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", true));
-        this.loanTransactionHelper.addChargesForLoan(
-                loanID,
+        Integer amountPlusInterestPercentagePenaltySpecifiedDueDate = ChargesHelper.createCharges(requestSpec,
+                responseSpec, ChargesHelper.getLoanSpecifiedDueDateJSON(
+                        ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", true));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
                 LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
                         String.valueOf(amountPlusInterestPercentagePenaltySpecifiedDueDate), "29 September 2011", "1"));
         loanCharges.clear();
@@ -1731,22 +1873,23 @@ public class ClientLoanIntegrationTest {
         secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("120", String.valueOf(secondInstallment.get("totalOutstandingForPeriod")));
 
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011", new JournalEntry(
-                Float.valueOf("3309.06"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("2791.49"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011",
+                new JournalEntry(Float.valueOf("3309.06"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("2791.49"), JournalEntry.TransactionType.CREDIT));
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 October 2011",
-                new JournalEntry(Float.valueOf("120.00"), JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("157.57"),
-                        JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("240"), JournalEntry.TransactionType.CREDIT));
+                new JournalEntry(Float.valueOf("120.00"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("157.57"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("240"), JournalEntry.TransactionType.CREDIT));
 
-        System.out.println("----------Make repayment 3 advance------------");
+        LOG.info("----------Make repayment 3 advance------------");
         this.loanTransactionHelper.makeRepayment("20 November 2011", Float.valueOf("3303"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011", new JournalEntry(Float.valueOf("3303"),
-                JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3149.11"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
+                new JournalEntry(Float.valueOf("3303"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3149.11"), JournalEntry.TransactionType.CREDIT));
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 November 2011",
-                new JournalEntry(Float.valueOf("31.51"), JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("122.38"),
-                        JournalEntry.TransactionType.CREDIT));
-        this.loanTransactionHelper.addChargesForLoan(
-                loanID,
+                new JournalEntry(Float.valueOf("31.51"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("122.38"), JournalEntry.TransactionType.CREDIT));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
                 LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
                         String.valueOf(amountPlusInterestPercentagePenaltySpecifiedDueDate), "10 January 2012", "1"));
         loanSchedule.clear();
@@ -1755,10 +1898,10 @@ public class ClientLoanIntegrationTest {
         validateNumberForEqual("120", String.valueOf(fourthInstallment.get("penaltyChargesOutstanding")));
         validateNumberForEqual("3241.19", String.valueOf(fourthInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("----------Pay applied penalty ------------");
+        LOG.info("----------Pay applied penalty ------------");
         this.loanTransactionHelper.makeRepayment("20 January 2012", Float.valueOf("120"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012", new JournalEntry(Float.valueOf("120"),
-                JournalEntry.TransactionType.DEBIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012",
+                new JournalEntry(Float.valueOf("120"), JournalEntry.TransactionType.DEBIT));
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 January 2012",
                 new JournalEntry(Float.valueOf("120.00"), JournalEntry.TransactionType.CREDIT));
         loanSchedule.clear();
@@ -1767,18 +1910,18 @@ public class ClientLoanIntegrationTest {
         validateNumberForEqual("0", String.valueOf(fourthInstallment.get("penaltyChargesOutstanding")));
         validateNumberForEqual("3121.19", String.valueOf(fourthInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("----------Make repayment 4 ------------");
+        LOG.info("----------Make repayment 4 ------------");
         this.loanTransactionHelper.makeRepayment("20 January 2012", Float.valueOf("3121.19"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012", new JournalEntry(
-                Float.valueOf("3121.19"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3089.68"),
-                JournalEntry.TransactionType.CREDIT));
-        this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 January 2012", new JournalEntry(
-                Float.valueOf("31.51"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012",
+                new JournalEntry(Float.valueOf("3121.19"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3089.68"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 January 2012",
+                new JournalEntry(Float.valueOf("31.51"), JournalEntry.TransactionType.CREDIT));
     }
 
     /***
-     * Test case for checking AccuralUpfrontAccounting functionality adding
-     * charges with calculation type flat
+     * Test case for checking AccuralUpfrontAccounting functionality adding charges
+     * with calculation type flat
      */
     @Test
     public void loanWithFlatCahargesAndUpfrontAccrualAccountingEnabled() {
@@ -1789,7 +1932,8 @@ public class ClientLoanIntegrationTest {
 
         // Add charges with payment mode regular
         List<HashMap> charges = new ArrayList<>();
-        Integer flatDisbursement = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper.getLoanDisbursementJSON());
+        Integer flatDisbursement = ChargesHelper.createCharges(requestSpec, responseSpec,
+                ChargesHelper.getLoanDisbursementJSON());
         addCharges(charges, flatDisbursement, "100", null);
         Integer flatSpecifiedDueDate = ChargesHelper.createCharges(requestSpec, responseSpec,
                 ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, "100", false));
@@ -1803,14 +1947,15 @@ public class ClientLoanIntegrationTest {
         final Account expenseAccount = this.accountHelper.createExpenseAccount();
         final Account overpaymentAccount = this.accountHelper.createLiabilityAccount();
 
-        final Integer loanProductID = createLoanProduct(false, ACCRUAL_UPFRONT, assetAccount, incomeAccount, expenseAccount,
-                overpaymentAccount);
+        final Integer loanProductID = createLoanProduct(false, ACCRUAL_UPFRONT, assetAccount, incomeAccount,
+                expenseAccount, overpaymentAccount);
         final Integer loanID = applyForLoanApplication(clientID, loanProductID, charges, null, "12,000.00");
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         verifyLoanRepaymentSchedule(loanSchedule);
 
         List<HashMap> loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -1829,28 +1974,31 @@ public class ClientLoanIntegrationTest {
         HashMap secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("50.00", String.valueOf(secondInstallment.get("feeChargesDue")));
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
-        final JournalEntry[] assetAccountInitialEntry = { new JournalEntry(Float.valueOf("605.94"), JournalEntry.TransactionType.DEBIT),
+        final JournalEntry[] assetAccountInitialEntry = {
+                new JournalEntry(Float.valueOf("605.94"), JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(Float.valueOf("100.00"), JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(Float.valueOf("200.00"), JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.CREDIT),
                 new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.DEBIT) };
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 September 2011", assetAccountInitialEntry);
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 September 2011",
+                assetAccountInitialEntry);
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 September 2011",
-                new JournalEntry(Float.valueOf("605.94"), JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("100.00"),
-                        JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("605.94"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("100.00"), JournalEntry.TransactionType.CREDIT),
                 new JournalEntry(Float.valueOf("200.00"), JournalEntry.TransactionType.CREDIT));
 
-        this.loanTransactionHelper.addChargesForLoan(loanID, LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
-                String.valueOf(flatSpecifiedDueDate), "29 September 2011", "100"));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
+                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(String.valueOf(flatSpecifiedDueDate),
+                        "29 September 2011", "100"));
 
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -1862,7 +2010,7 @@ public class ClientLoanIntegrationTest {
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "29 September 2011",
                 new JournalEntry(Float.valueOf("100.00"), JournalEntry.TransactionType.CREDIT));
 
-        System.out.println("-------------Make repayment 1-----------");
+        LOG.info("-------------Make repayment 1-----------");
         this.loanTransactionHelper.makeRepayment("20 October 2011", Float.valueOf("3301.49"), loanID);
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -1870,41 +2018,43 @@ public class ClientLoanIntegrationTest {
         validateCharge(flatSpecifiedDueDate, loanCharges, "100", "0.00", "100.0", "0.0");
         validateCharge(flatInstallmentFee, loanCharges, "50", "150.00", "50.0", "0.0");
 
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011", new JournalEntry(
-                Float.valueOf("3301.49"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3301.49"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011",
+                new JournalEntry(Float.valueOf("3301.49"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3301.49"), JournalEntry.TransactionType.CREDIT));
 
-        this.loanTransactionHelper.addChargesForLoan(loanID, LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
-                String.valueOf(flatSpecifiedDueDate), "29 October 2011", "100"));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
+                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(String.valueOf(flatSpecifiedDueDate),
+                        "29 October 2011", "100"));
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
 
         secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("150.00", String.valueOf(secondInstallment.get("feeChargesDue")));
-        System.out.println("----------- Waive installment charge for 2nd installment ---------");
-        this.loanTransactionHelper.waiveChargesForLoan(loanID, (Integer) getloanCharge(flatInstallmentFee, loanCharges).get("id"),
+        LOG.info("----------- Waive installment charge for 2nd installment ---------");
+        this.loanTransactionHelper.waiveChargesForLoan(loanID,
+                (Integer) getloanCharge(flatInstallmentFee, loanCharges).get("id"),
                 LoanTransactionHelper.getWaiveChargeJSON(String.valueOf(2)));
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         validateCharge(flatInstallmentFee, loanCharges, "50", "100.00", "50.0", "50.0");
 
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011", new JournalEntry(Float.valueOf("50.0"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
+                new JournalEntry(Float.valueOf("50.0"), JournalEntry.TransactionType.CREDIT));
         this.journalEntryHelper.checkJournalEntryForExpenseAccount(expenseAccount, "20 November 2011",
                 new JournalEntry(Float.valueOf("50.0"), JournalEntry.TransactionType.DEBIT));
 
-        System.out.println("----------Make repayment 2------------");
+        LOG.info("----------Make repayment 2------------");
         this.loanTransactionHelper.makeRepayment("20 November 2011", Float.valueOf("3251.49"), loanID);
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
-                new JournalEntry(Float.valueOf("3251.49"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3251.49"),
-                        JournalEntry.TransactionType.CREDIT));
+                new JournalEntry(Float.valueOf("3251.49"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3251.49"), JournalEntry.TransactionType.CREDIT));
 
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("0", String.valueOf(secondInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("--------------Waive interest---------------");
+        LOG.info("--------------Waive interest---------------");
         this.loanTransactionHelper.waiveInterest("20 December 2011", String.valueOf(61.79), loanID);
 
         loanSchedule.clear();
@@ -1912,15 +2062,16 @@ public class ClientLoanIntegrationTest {
         HashMap thirdInstallment = loanSchedule.get(3);
         validateNumberForEqual("60.59", String.valueOf(thirdInstallment.get("interestOutstanding")));
 
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 December 2011", new JournalEntry(Float.valueOf("61.79"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 December 2011",
+                new JournalEntry(Float.valueOf("61.79"), JournalEntry.TransactionType.CREDIT));
         this.journalEntryHelper.checkJournalEntryForExpenseAccount(expenseAccount, "20 December 2011",
                 new JournalEntry(Float.valueOf("61.79"), JournalEntry.TransactionType.DEBIT));
 
         Integer flatPenaltySpecifiedDueDate = ChargesHelper.createCharges(requestSpec, responseSpec,
                 ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, "100", true));
-        this.loanTransactionHelper.addChargesForLoan(loanID, LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
-                String.valueOf(flatPenaltySpecifiedDueDate), "29 September 2011", "100"));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
+                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
+                        String.valueOf(flatPenaltySpecifiedDueDate), "29 September 2011", "100"));
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         validateCharge(flatPenaltySpecifiedDueDate, loanCharges, "100", "0.00", "100.0", "0.0");
@@ -1931,47 +2082,50 @@ public class ClientLoanIntegrationTest {
         validateNumberForEqual("100", String.valueOf(secondInstallment.get("totalOutstandingForPeriod")));
 
         // checking the journal entry as applied penalty has been collected
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011", new JournalEntry(
-                Float.valueOf("3301.49"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3301.49"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011",
+                new JournalEntry(Float.valueOf("3301.49"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3301.49"), JournalEntry.TransactionType.CREDIT));
 
-        System.out.println("----------Make repayment 3 advance------------");
+        LOG.info("----------Make repayment 3 advance------------");
         this.loanTransactionHelper.makeRepayment("20 November 2011", Float.valueOf("3301.49"), loanID);
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
-                new JournalEntry(Float.valueOf("3301.49"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3301.49"),
-                        JournalEntry.TransactionType.CREDIT));
-        this.loanTransactionHelper.addChargesForLoan(loanID, LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
-                String.valueOf(flatPenaltySpecifiedDueDate), "10 January 2012", "100"));
+                new JournalEntry(Float.valueOf("3301.49"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3301.49"), JournalEntry.TransactionType.CREDIT));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
+                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
+                        String.valueOf(flatPenaltySpecifiedDueDate), "10 January 2012", "100"));
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         HashMap fourthInstallment = loanSchedule.get(4);
         validateNumberForEqual("100", String.valueOf(fourthInstallment.get("penaltyChargesOutstanding")));
         validateNumberForEqual("3239.68", String.valueOf(fourthInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("----------Pay applied penalty ------------");
+        LOG.info("----------Pay applied penalty ------------");
         this.loanTransactionHelper.makeRepayment("20 January 2012", Float.valueOf("100"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012", new JournalEntry(Float.valueOf("100"),
-                JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("100"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012",
+                new JournalEntry(Float.valueOf("100"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("100"), JournalEntry.TransactionType.CREDIT));
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         fourthInstallment = loanSchedule.get(4);
         validateNumberForEqual("0", String.valueOf(fourthInstallment.get("penaltyChargesOutstanding")));
         validateNumberForEqual("3139.68", String.valueOf(fourthInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("----------Make over payment for repayment 4 ------------");
+        LOG.info("----------Make over payment for repayment 4 ------------");
         this.loanTransactionHelper.makeRepayment("20 January 2012", Float.valueOf("3220.60"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012", new JournalEntry(
-                Float.valueOf("3220.60"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3139.68"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012",
+                new JournalEntry(Float.valueOf("3220.60"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3139.68"), JournalEntry.TransactionType.CREDIT));
         this.journalEntryHelper.checkJournalEntryForLiabilityAccount(overpaymentAccount, "20 January 2012",
                 new JournalEntry(Float.valueOf("80.92"), JournalEntry.TransactionType.CREDIT));
-        loanStatusHashMap = (HashMap) this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec, loanID, "status");
+        loanStatusHashMap = (HashMap) this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec,
+                loanID, "status");
         LoanStatusChecker.verifyLoanAccountIsOverPaid(loanStatusHashMap);
     }
 
     /***
-     * Test case for checking AccuralUpfrontAccounting functionality adding
-     * charges with calculation type percentage of amount
+     * Test case for checking AccuralUpfrontAccounting functionality adding charges
+     * with calculation type percentage of amount
      */
     @Test
     public void loanWithCahargesAndUpfrontAccrualAccountingEnabled() {
@@ -1986,12 +2140,12 @@ public class ClientLoanIntegrationTest {
                 ChargesHelper.getLoanDisbursementJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1"));
         addCharges(charges, percentageDisbursementCharge, "1", null);
 
-        Integer percentageSpecifiedDueDateCharge = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", false));
+        Integer percentageSpecifiedDueDateCharge = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper
+                .getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", false));
         addCharges(charges, percentageSpecifiedDueDateCharge, "1", "29 September 2011");
 
-        Integer percentageInstallmentFee = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", false));
+        Integer percentageInstallmentFee = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper
+                .getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", false));
         addCharges(charges, percentageInstallmentFee, "1", "29 September 2011");
 
         final Account assetAccount = this.accountHelper.createAssetAccount();
@@ -1999,14 +2153,15 @@ public class ClientLoanIntegrationTest {
         final Account expenseAccount = this.accountHelper.createExpenseAccount();
         final Account overpaymentAccount = this.accountHelper.createLiabilityAccount();
 
-        final Integer loanProductID = createLoanProduct(false, ACCRUAL_UPFRONT, assetAccount, incomeAccount, expenseAccount,
-                overpaymentAccount);
+        final Integer loanProductID = createLoanProduct(false, ACCRUAL_UPFRONT, assetAccount, incomeAccount,
+                expenseAccount, overpaymentAccount);
         final Integer loanID = applyForLoanApplication(clientID, loanProductID, charges, null, "12,000.00");
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         verifyLoanRepaymentSchedule(loanSchedule);
 
         List<HashMap> loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -2026,32 +2181,34 @@ public class ClientLoanIntegrationTest {
         HashMap secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("29.70", String.valueOf(secondInstallment.get("feeChargesDue")));
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
-        final JournalEntry[] assetAccountInitialEntry = { new JournalEntry(Float.valueOf("605.94"), JournalEntry.TransactionType.DEBIT),
+        final JournalEntry[] assetAccountInitialEntry = {
+                new JournalEntry(Float.valueOf("605.94"), JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(Float.valueOf("120.00"), JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(Float.valueOf("120.00"), JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(Float.valueOf("120.00"), JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.CREDIT),
                 new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.DEBIT) };
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 September 2011", assetAccountInitialEntry);
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 September 2011",
+                assetAccountInitialEntry);
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 September 2011",
-                new JournalEntry(Float.valueOf("605.94"), JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("120.00"),
-                        JournalEntry.TransactionType.CREDIT),
-                new JournalEntry(Float.valueOf("120.00"), JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("120.00"),
-                        JournalEntry.TransactionType.CREDIT));
+                new JournalEntry(Float.valueOf("605.94"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("120.00"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("120.00"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("120.00"), JournalEntry.TransactionType.CREDIT));
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         validateCharge(percentageDisbursementCharge, loanCharges, "1", "0.0", "120.00", "0.0");
 
-        System.out.println("-------------Make repayment 1-----------");
+        LOG.info("-------------Make repayment 1-----------");
         this.loanTransactionHelper.makeRepayment("20 October 2011", Float.valueOf("3300.60"), loanID);
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -2059,41 +2216,43 @@ public class ClientLoanIntegrationTest {
         validateCharge(percentageSpecifiedDueDateCharge, loanCharges, "1", "0.00", "120.0", "0.0");
         validateCharge(percentageInstallmentFee, loanCharges, "1", "90.89", "29.11", "0.0");
 
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011", new JournalEntry(
-                Float.valueOf("3300.60"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3300.60"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011",
+                new JournalEntry(Float.valueOf("3300.60"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3300.60"), JournalEntry.TransactionType.CREDIT));
 
-        this.loanTransactionHelper.addChargesForLoan(loanID, LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
-                String.valueOf(percentageSpecifiedDueDateCharge), "29 October 2011", "1"));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
+                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
+                        String.valueOf(percentageSpecifiedDueDateCharge), "29 October 2011", "1"));
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
 
         secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("149.70", String.valueOf(secondInstallment.get("feeChargesDue")));
-        System.out.println("----------- Waive installment charge for 2nd installment ---------");
-        this.loanTransactionHelper.waiveChargesForLoan(loanID, (Integer) getloanCharge(percentageInstallmentFee, loanCharges).get("id"),
+        LOG.info("----------- Waive installment charge for 2nd installment ---------");
+        this.loanTransactionHelper.waiveChargesForLoan(loanID,
+                (Integer) getloanCharge(percentageInstallmentFee, loanCharges).get("id"),
                 LoanTransactionHelper.getWaiveChargeJSON(String.valueOf(2)));
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         validateCharge(percentageInstallmentFee, loanCharges, "1", "61.19", "29.11", "29.70");
 
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011", new JournalEntry(Float.valueOf("29.7"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
+                new JournalEntry(Float.valueOf("29.7"), JournalEntry.TransactionType.CREDIT));
         this.journalEntryHelper.checkJournalEntryForExpenseAccount(expenseAccount, "20 November 2011",
                 new JournalEntry(Float.valueOf("29.7"), JournalEntry.TransactionType.DEBIT));
 
-        System.out.println("----------Make repayment 2------------");
+        LOG.info("----------Make repayment 2------------");
         this.loanTransactionHelper.makeRepayment("20 November 2011", Float.valueOf("3271.49"), loanID);
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
-                new JournalEntry(Float.valueOf("3271.49"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3271.49"),
-                        JournalEntry.TransactionType.CREDIT));
+                new JournalEntry(Float.valueOf("3271.49"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3271.49"), JournalEntry.TransactionType.CREDIT));
 
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("0", String.valueOf(secondInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("--------------Waive interest---------------");
+        LOG.info("--------------Waive interest---------------");
         this.loanTransactionHelper.waiveInterest("20 December 2011", String.valueOf(61.79), loanID);
 
         loanSchedule.clear();
@@ -2101,15 +2260,16 @@ public class ClientLoanIntegrationTest {
         HashMap thirdInstallment = loanSchedule.get(3);
         validateNumberForEqual("60.59", String.valueOf(thirdInstallment.get("interestOutstanding")));
 
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 December 2011", new JournalEntry(Float.valueOf("61.79"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 December 2011",
+                new JournalEntry(Float.valueOf("61.79"), JournalEntry.TransactionType.CREDIT));
         this.journalEntryHelper.checkJournalEntryForExpenseAccount(expenseAccount, "20 December 2011",
                 new JournalEntry(Float.valueOf("61.79"), JournalEntry.TransactionType.DEBIT));
 
-        Integer percentagePenaltySpecifiedDueDate = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", true));
-        this.loanTransactionHelper.addChargesForLoan(loanID, LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
-                String.valueOf(percentagePenaltySpecifiedDueDate), "29 September 2011", "1"));
+        Integer percentagePenaltySpecifiedDueDate = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper
+                .getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", true));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
+                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
+                        String.valueOf(percentagePenaltySpecifiedDueDate), "29 September 2011", "1"));
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         validateCharge(percentagePenaltySpecifiedDueDate, loanCharges, "1", "0.00", "120.0", "0.0");
@@ -2120,47 +2280,50 @@ public class ClientLoanIntegrationTest {
         validateNumberForEqual("120", String.valueOf(secondInstallment.get("totalOutstandingForPeriod")));
 
         // checking the journal entry as applied penalty has been collected
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011", new JournalEntry(
-                Float.valueOf("3300.60"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3300.60"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011",
+                new JournalEntry(Float.valueOf("3300.60"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3300.60"), JournalEntry.TransactionType.CREDIT));
 
-        System.out.println("----------Make repayment 3 advance------------");
+        LOG.info("----------Make repayment 3 advance------------");
         this.loanTransactionHelper.makeRepayment("20 November 2011", Float.valueOf("3301.78"), loanID);
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
-                new JournalEntry(Float.valueOf("3301.78"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3301.78"),
-                        JournalEntry.TransactionType.CREDIT));
-        this.loanTransactionHelper.addChargesForLoan(loanID, LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
-                String.valueOf(percentagePenaltySpecifiedDueDate), "10 January 2012", "1"));
+                new JournalEntry(Float.valueOf("3301.78"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3301.78"), JournalEntry.TransactionType.CREDIT));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
+                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
+                        String.valueOf(percentagePenaltySpecifiedDueDate), "10 January 2012", "1"));
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         HashMap fourthInstallment = loanSchedule.get(4);
         validateNumberForEqual("120", String.valueOf(fourthInstallment.get("penaltyChargesOutstanding")));
         validateNumberForEqual("3240.58", String.valueOf(fourthInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("----------Pay applied penalty ------------");
+        LOG.info("----------Pay applied penalty ------------");
         this.loanTransactionHelper.makeRepayment("20 January 2012", Float.valueOf("120"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012", new JournalEntry(Float.valueOf("120"),
-                JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("120"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012",
+                new JournalEntry(Float.valueOf("120"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("120"), JournalEntry.TransactionType.CREDIT));
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         fourthInstallment = loanSchedule.get(4);
         validateNumberForEqual("0", String.valueOf(fourthInstallment.get("penaltyChargesOutstanding")));
         validateNumberForEqual("3120.58", String.valueOf(fourthInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("----------Make over payment for repayment 4 ------------");
+        LOG.info("----------Make over payment for repayment 4 ------------");
         this.loanTransactionHelper.makeRepayment("20 January 2012", Float.valueOf("3220.58"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012", new JournalEntry(
-                Float.valueOf("3220.58"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3120.58"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012",
+                new JournalEntry(Float.valueOf("3220.58"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3120.58"), JournalEntry.TransactionType.CREDIT));
         this.journalEntryHelper.checkJournalEntryForLiabilityAccount(overpaymentAccount, "20 January 2012",
                 new JournalEntry(Float.valueOf("100.00"), JournalEntry.TransactionType.CREDIT));
-        loanStatusHashMap = (HashMap) this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec, loanID, "status");
+        loanStatusHashMap = (HashMap) this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec,
+                loanID, "status");
         LoanStatusChecker.verifyLoanAccountIsOverPaid(loanStatusHashMap);
     }
 
     /***
-     * Test case for checking AccuralUpfrontAccounting functionality adding
-     * charges with calculation type percentage of amount plus interest
+     * Test case for checking AccuralUpfrontAccounting functionality adding charges
+     * with calculation type percentage of amount plus interest
      */
     @Test
     public void loanWithCahargesOfTypeAmountPlusInterestPercentageAndUpfrontAccrualAccountingEnabled() {
@@ -2172,15 +2335,17 @@ public class ClientLoanIntegrationTest {
         // Add charges with payment mode regular
         List<HashMap> charges = new ArrayList<>();
         Integer amountPlusInterestPercentageDisbursementCharge = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanDisbursementJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1"));
+                ChargesHelper.getLoanDisbursementJSON(
+                        ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1"));
         addCharges(charges, amountPlusInterestPercentageDisbursementCharge, "1", null);
 
-        Integer amountPlusInterestPercentageSpecifiedDueDateCharge = ChargesHelper
-                .createCharges(requestSpec, responseSpec, ChargesHelper.getLoanSpecifiedDueDateJSON(
+        Integer amountPlusInterestPercentageSpecifiedDueDateCharge = ChargesHelper.createCharges(requestSpec,
+                responseSpec, ChargesHelper.getLoanSpecifiedDueDateJSON(
                         ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1", false));
 
         Integer amountPlusInterestPercentageInstallmentFee = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1", false));
+                ChargesHelper.getLoanInstallmentJSON(
+                        ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1", false));
         addCharges(charges, amountPlusInterestPercentageInstallmentFee, "1", "29 September 2011");
 
         final Account assetAccount = this.accountHelper.createAssetAccount();
@@ -2188,14 +2353,15 @@ public class ClientLoanIntegrationTest {
         final Account expenseAccount = this.accountHelper.createExpenseAccount();
         final Account overpaymentAccount = this.accountHelper.createLiabilityAccount();
 
-        final Integer loanProductID = createLoanProduct(false, ACCRUAL_UPFRONT, assetAccount, incomeAccount, expenseAccount,
-                overpaymentAccount);
+        final Integer loanProductID = createLoanProduct(false, ACCRUAL_UPFRONT, assetAccount, incomeAccount,
+                expenseAccount, overpaymentAccount);
         final Integer loanID = applyForLoanApplication(clientID, loanProductID, charges, null, "12,000.00");
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         verifyLoanRepaymentSchedule(loanSchedule);
 
         List<HashMap> loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -2214,28 +2380,29 @@ public class ClientLoanIntegrationTest {
         HashMap secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("31.51", String.valueOf(secondInstallment.get("feeChargesDue")));
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
-        final JournalEntry[] assetAccountInitialEntry = { new JournalEntry(Float.valueOf("605.94"), JournalEntry.TransactionType.DEBIT),
+        final JournalEntry[] assetAccountInitialEntry = {
+                new JournalEntry(Float.valueOf("605.94"), JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(Float.valueOf("126.06"), JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(Float.valueOf("126.04"), JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.CREDIT),
                 new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.DEBIT) };
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 September 2011", assetAccountInitialEntry);
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 September 2011",
+                assetAccountInitialEntry);
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 September 2011",
-                new JournalEntry(Float.valueOf("605.94"), JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("126.06"),
-                        JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("605.94"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("126.06"), JournalEntry.TransactionType.CREDIT),
                 new JournalEntry(Float.valueOf("126.04"), JournalEntry.TransactionType.CREDIT));
 
-        this.loanTransactionHelper.addChargesForLoan(
-                loanID,
+        this.loanTransactionHelper.addChargesForLoan(loanID,
                 LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
                         String.valueOf(amountPlusInterestPercentageSpecifiedDueDateCharge), "29 September 2011", "1"));
 
@@ -2249,7 +2416,7 @@ public class ClientLoanIntegrationTest {
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "29 September 2011",
                 new JournalEntry(Float.valueOf("126.06"), JournalEntry.TransactionType.CREDIT));
 
-        System.out.println("-------------Make repayment 1-----------");
+        LOG.info("-------------Make repayment 1-----------");
         this.loanTransactionHelper.makeRepayment("20 October 2011", Float.valueOf("3309.06"), loanID);
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -2257,12 +2424,11 @@ public class ClientLoanIntegrationTest {
         validateCharge(amountPlusInterestPercentageSpecifiedDueDateCharge, loanCharges, "1", "0.00", "126.06", "0.0");
         validateCharge(amountPlusInterestPercentageInstallmentFee, loanCharges, "1", "94.53", "31.51", "0.0");
 
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011", new JournalEntry(
-                Float.valueOf("3309.06"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3309.06"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011",
+                new JournalEntry(Float.valueOf("3309.06"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3309.06"), JournalEntry.TransactionType.CREDIT));
 
-        this.loanTransactionHelper.addChargesForLoan(
-                loanID,
+        this.loanTransactionHelper.addChargesForLoan(loanID,
                 LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
                         String.valueOf(amountPlusInterestPercentageSpecifiedDueDateCharge), "29 October 2011", "1"));
         loanSchedule.clear();
@@ -2270,7 +2436,7 @@ public class ClientLoanIntegrationTest {
 
         secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("157.57", String.valueOf(secondInstallment.get("feeChargesDue")));
-        System.out.println("----------- Waive installment charge for 2nd installment ---------");
+        LOG.info("----------- Waive installment charge for 2nd installment ---------");
         this.loanTransactionHelper.waiveChargesForLoan(loanID,
                 (Integer) getloanCharge(amountPlusInterestPercentageInstallmentFee, loanCharges).get("id"),
                 LoanTransactionHelper.getWaiveChargeJSON(String.valueOf(2)));
@@ -2278,23 +2444,23 @@ public class ClientLoanIntegrationTest {
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         validateCharge(amountPlusInterestPercentageInstallmentFee, loanCharges, "1", "63.02", "31.51", "31.51");
 
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011", new JournalEntry(
-                Float.valueOf("31.51"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
+                new JournalEntry(Float.valueOf("31.51"), JournalEntry.TransactionType.CREDIT));
         this.journalEntryHelper.checkJournalEntryForExpenseAccount(expenseAccount, "20 November 2011",
                 new JournalEntry(Float.valueOf("31.51"), JournalEntry.TransactionType.DEBIT));
 
-        System.out.println("----------Make repayment 2------------");
+        LOG.info("----------Make repayment 2------------");
         this.loanTransactionHelper.makeRepayment("20 November 2011", Float.valueOf("3277.55"), loanID);
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
-                new JournalEntry(Float.valueOf("3277.55"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3277.55"),
-                        JournalEntry.TransactionType.CREDIT));
+                new JournalEntry(Float.valueOf("3277.55"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3277.55"), JournalEntry.TransactionType.CREDIT));
 
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("0", String.valueOf(secondInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("--------------Waive interest---------------");
+        LOG.info("--------------Waive interest---------------");
         this.loanTransactionHelper.waiveInterest("20 December 2011", String.valueOf(61.79), loanID);
 
         loanSchedule.clear();
@@ -2302,15 +2468,15 @@ public class ClientLoanIntegrationTest {
         HashMap thirdInstallment = loanSchedule.get(3);
         validateNumberForEqual("60.59", String.valueOf(thirdInstallment.get("interestOutstanding")));
 
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 December 2011", new JournalEntry(Float.valueOf("61.79"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 December 2011",
+                new JournalEntry(Float.valueOf("61.79"), JournalEntry.TransactionType.CREDIT));
         this.journalEntryHelper.checkJournalEntryForExpenseAccount(expenseAccount, "20 December 2011",
                 new JournalEntry(Float.valueOf("61.79"), JournalEntry.TransactionType.DEBIT));
 
-        Integer amountPlusInterestPercentagePenaltySpecifiedDueDate = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", true));
-        this.loanTransactionHelper.addChargesForLoan(
-                loanID,
+        Integer amountPlusInterestPercentagePenaltySpecifiedDueDate = ChargesHelper.createCharges(requestSpec,
+                responseSpec, ChargesHelper.getLoanSpecifiedDueDateJSON(
+                        ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", true));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
                 LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
                         String.valueOf(amountPlusInterestPercentagePenaltySpecifiedDueDate), "29 September 2011", "1"));
         loanCharges.clear();
@@ -2323,16 +2489,16 @@ public class ClientLoanIntegrationTest {
         validateNumberForEqual("120", String.valueOf(secondInstallment.get("totalOutstandingForPeriod")));
 
         // checking the journal entry as applied penalty has been collected
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011", new JournalEntry(
-                Float.valueOf("3309.06"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3309.06"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011",
+                new JournalEntry(Float.valueOf("3309.06"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3309.06"), JournalEntry.TransactionType.CREDIT));
 
-        System.out.println("----------Make repayment 3 advance------------");
+        LOG.info("----------Make repayment 3 advance------------");
         this.loanTransactionHelper.makeRepayment("20 November 2011", Float.valueOf("3303"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011", new JournalEntry(Float.valueOf("3303"),
-                JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3303"), JournalEntry.TransactionType.CREDIT));
-        this.loanTransactionHelper.addChargesForLoan(
-                loanID,
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
+                new JournalEntry(Float.valueOf("3303"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3303"), JournalEntry.TransactionType.CREDIT));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
                 LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
                         String.valueOf(amountPlusInterestPercentagePenaltySpecifiedDueDate), "10 January 2012", "1"));
         loanSchedule.clear();
@@ -2341,30 +2507,32 @@ public class ClientLoanIntegrationTest {
         validateNumberForEqual("120", String.valueOf(fourthInstallment.get("penaltyChargesOutstanding")));
         validateNumberForEqual("3241.19", String.valueOf(fourthInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("----------Pay applied penalty ------------");
+        LOG.info("----------Pay applied penalty ------------");
         this.loanTransactionHelper.makeRepayment("20 January 2012", Float.valueOf("120"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012", new JournalEntry(Float.valueOf("120"),
-                JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("120"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012",
+                new JournalEntry(Float.valueOf("120"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("120"), JournalEntry.TransactionType.CREDIT));
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         fourthInstallment = loanSchedule.get(4);
         validateNumberForEqual("0", String.valueOf(fourthInstallment.get("penaltyChargesOutstanding")));
         validateNumberForEqual("3121.19", String.valueOf(fourthInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("----------Make over payment for repayment 4 ------------");
+        LOG.info("----------Make over payment for repayment 4 ------------");
         this.loanTransactionHelper.makeRepayment("20 January 2012", Float.valueOf("3221.61"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012", new JournalEntry(
-                Float.valueOf("3221.61"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3121.19"),
-                JournalEntry.TransactionType.CREDIT));
-        this.journalEntryHelper.checkJournalEntryForLiabilityAccount(overpaymentAccount, "20 January 2012", new JournalEntry(Float.valueOf("100.42"),
-                JournalEntry.TransactionType.CREDIT));
-        loanStatusHashMap = (HashMap) this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec, loanID, "status");
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012",
+                new JournalEntry(Float.valueOf("3221.61"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3121.19"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForLiabilityAccount(overpaymentAccount, "20 January 2012",
+                new JournalEntry(Float.valueOf("100.42"), JournalEntry.TransactionType.CREDIT));
+        loanStatusHashMap = (HashMap) this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec,
+                loanID, "status");
         LoanStatusChecker.verifyLoanAccountIsOverPaid(loanStatusHashMap);
     }
 
     /***
-     * Test case for checking AccuralPeriodicAccounting functionality adding
-     * charges with calculation type flat
+     * Test case for checking AccuralPeriodicAccounting functionality adding charges
+     * with calculation type flat
      */
     @Test
     @Ignore // TODO FINERACT-885
@@ -2377,7 +2545,8 @@ public class ClientLoanIntegrationTest {
 
         // Add charges with payment mode regular
         List<HashMap> charges = new ArrayList<>();
-        Integer flatDisbursement = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper.getLoanDisbursementJSON());
+        Integer flatDisbursement = ChargesHelper.createCharges(requestSpec, responseSpec,
+                ChargesHelper.getLoanDisbursementJSON());
         addCharges(charges, flatDisbursement, "100", null);
         Integer flatSpecifiedDueDate = ChargesHelper.createCharges(requestSpec, responseSpec,
                 ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, "100", false));
@@ -2391,14 +2560,15 @@ public class ClientLoanIntegrationTest {
         final Account expenseAccount = this.accountHelper.createExpenseAccount();
         final Account overpaymentAccount = this.accountHelper.createLiabilityAccount();
 
-        final Integer loanProductID = createLoanProduct(false, ACCRUAL_PERIODIC, assetAccount, incomeAccount, expenseAccount,
-                overpaymentAccount);
+        final Integer loanProductID = createLoanProduct(false, ACCRUAL_PERIODIC, assetAccount, incomeAccount,
+                expenseAccount, overpaymentAccount);
         final Integer loanID = applyForLoanApplication(clientID, loanProductID, charges, null, "12,000.00");
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         verifyLoanRepaymentSchedule(loanSchedule);
 
         List<HashMap> loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -2418,26 +2588,28 @@ public class ClientLoanIntegrationTest {
         HashMap secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("50.00", String.valueOf(secondInstallment.get("feeChargesDue")));
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
-        final JournalEntry[] assetAccountInitialEntry = { new JournalEntry(Float.valueOf("100.00"), JournalEntry.TransactionType.DEBIT),
+        final JournalEntry[] assetAccountInitialEntry = {
+                new JournalEntry(Float.valueOf("100.00"), JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.CREDIT),
                 new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.DEBIT) };
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 September 2011", assetAccountInitialEntry);
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 September 2011",
+                assetAccountInitialEntry);
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 September 2011",
                 new JournalEntry(Float.valueOf("100.00"), JournalEntry.TransactionType.CREDIT));
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         validateCharge(flatDisbursement, loanCharges, "100", "0.00", "100.0", "0.0");
 
-        System.out.println("-------------Make repayment 1-----------");
+        LOG.info("-------------Make repayment 1-----------");
         this.loanTransactionHelper.makeRepayment("20 October 2011", Float.valueOf("3301.49"), loanID);
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -2445,19 +2617,21 @@ public class ClientLoanIntegrationTest {
         validateCharge(flatSpecifiedDueDate, loanCharges, "100", "0.00", "100.0", "0.0");
         validateCharge(flatInstallmentFee, loanCharges, "50", "150.00", "50.0", "0.0");
 
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011", new JournalEntry(
-                Float.valueOf("3301.49"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3301.49"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011",
+                new JournalEntry(Float.valueOf("3301.49"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3301.49"), JournalEntry.TransactionType.CREDIT));
 
-        this.loanTransactionHelper.addChargesForLoan(loanID, LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
-                String.valueOf(flatSpecifiedDueDate), "29 October 2011", "100"));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
+                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(String.valueOf(flatSpecifiedDueDate),
+                        "29 October 2011", "100"));
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
 
         secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("150.00", String.valueOf(secondInstallment.get("feeChargesDue")));
-        System.out.println("----------- Waive installment charge for 2nd installment ---------");
-        this.loanTransactionHelper.waiveChargesForLoan(loanID, (Integer) getloanCharge(flatInstallmentFee, loanCharges).get("id"),
+        LOG.info("----------- Waive installment charge for 2nd installment ---------");
+        this.loanTransactionHelper.waiveChargesForLoan(loanID,
+                (Integer) getloanCharge(flatInstallmentFee, loanCharges).get("id"),
                 LoanTransactionHelper.getWaiveChargeJSON(String.valueOf(2)));
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -2467,9 +2641,8 @@ public class ClientLoanIntegrationTest {
          * this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount,
          * "20 September 2011", new JournalEntry(Float.valueOf("50.0"),
          * JournalEntry.TransactionType.CREDIT));
-         * this.journalEntryHelper.checkJournalEntryForExpenseAccount
-         * (expenseAccount, "20 September 2011", new
-         * JournalEntry(Float.valueOf("50.0"),
+         * this.journalEntryHelper.checkJournalEntryForExpenseAccount (expenseAccount,
+         * "20 September 2011", new JournalEntry(Float.valueOf("50.0"),
          * JournalEntry.TransactionType.DEBIT));
          */
         final String jobName = "Add Accrual Transactions";
@@ -2483,18 +2656,18 @@ public class ClientLoanIntegrationTest {
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         checkAccrualTransactions(loanSchedule, loanID);
 
-        System.out.println("----------Make repayment 2------------");
+        LOG.info("----------Make repayment 2------------");
         this.loanTransactionHelper.makeRepayment("20 November 2011", Float.valueOf("3251.49"), loanID);
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
-                new JournalEntry(Float.valueOf("3251.49"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3251.49"),
-                        JournalEntry.TransactionType.CREDIT));
+                new JournalEntry(Float.valueOf("3251.49"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3251.49"), JournalEntry.TransactionType.CREDIT));
 
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("0", String.valueOf(secondInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("--------------Waive interest---------------");
+        LOG.info("--------------Waive interest---------------");
         this.loanTransactionHelper.waiveInterest("20 December 2011", String.valueOf(61.79), loanID);
 
         loanSchedule.clear();
@@ -2502,15 +2675,16 @@ public class ClientLoanIntegrationTest {
         HashMap thirdInstallment = loanSchedule.get(3);
         validateNumberForEqual("60.59", String.valueOf(thirdInstallment.get("interestOutstanding")));
 
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 December 2011", new JournalEntry(Float.valueOf("61.79"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 December 2011",
+                new JournalEntry(Float.valueOf("61.79"), JournalEntry.TransactionType.CREDIT));
         this.journalEntryHelper.checkJournalEntryForExpenseAccount(expenseAccount, "20 December 2011",
                 new JournalEntry(Float.valueOf("61.79"), JournalEntry.TransactionType.DEBIT));
 
         Integer flatPenaltySpecifiedDueDate = ChargesHelper.createCharges(requestSpec, responseSpec,
                 ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, "100", true));
-        this.loanTransactionHelper.addChargesForLoan(loanID, LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
-                String.valueOf(flatPenaltySpecifiedDueDate), "29 September 2011", "100"));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
+                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
+                        String.valueOf(flatPenaltySpecifiedDueDate), "29 September 2011", "100"));
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         validateCharge(flatPenaltySpecifiedDueDate, loanCharges, "100", "0.00", "100.0", "0.0");
@@ -2521,46 +2695,49 @@ public class ClientLoanIntegrationTest {
         validateNumberForEqual("100", String.valueOf(secondInstallment.get("totalOutstandingForPeriod")));
 
         // checking the journal entry as applied penalty has been collected
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011", new JournalEntry(
-                Float.valueOf("3301.49"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3301.49"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011",
+                new JournalEntry(Float.valueOf("3301.49"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3301.49"), JournalEntry.TransactionType.CREDIT));
 
-        System.out.println("----------Make repayment 3 advance------------");
+        LOG.info("----------Make repayment 3 advance------------");
         this.loanTransactionHelper.makeRepayment("20 November 2011", Float.valueOf("3301.49"), loanID);
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
-                new JournalEntry(Float.valueOf("3301.49"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3301.49"),
-                        JournalEntry.TransactionType.CREDIT));
+                new JournalEntry(Float.valueOf("3301.49"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3301.49"), JournalEntry.TransactionType.CREDIT));
 
-        this.loanTransactionHelper.addChargesForLoan(loanID, LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
-                String.valueOf(flatPenaltySpecifiedDueDate), "10 January 2012", "100"));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
+                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
+                        String.valueOf(flatPenaltySpecifiedDueDate), "10 January 2012", "100"));
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         HashMap fourthInstallment = loanSchedule.get(4);
         validateNumberForEqual("100", String.valueOf(fourthInstallment.get("penaltyChargesOutstanding")));
         validateNumberForEqual("3239.68", String.valueOf(fourthInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("----------Pay applied penalty ------------");
+        LOG.info("----------Pay applied penalty ------------");
         this.loanTransactionHelper.makeRepayment("20 January 2012", Float.valueOf("100"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012", new JournalEntry(Float.valueOf("100"),
-                JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("100"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012",
+                new JournalEntry(Float.valueOf("100"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("100"), JournalEntry.TransactionType.CREDIT));
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         fourthInstallment = loanSchedule.get(4);
         validateNumberForEqual("0", String.valueOf(fourthInstallment.get("penaltyChargesOutstanding")));
         validateNumberForEqual("3139.68", String.valueOf(fourthInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("----------Make repayment 4 ------------");
+        LOG.info("----------Make repayment 4 ------------");
         this.loanTransactionHelper.makeRepayment("20 January 2012", Float.valueOf("3139.68"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012", new JournalEntry(
-                Float.valueOf("3139.68"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3139.68"),
-                JournalEntry.TransactionType.CREDIT));
-        loanStatusHashMap = (HashMap) this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec, loanID, "status");
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012",
+                new JournalEntry(Float.valueOf("3139.68"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3139.68"), JournalEntry.TransactionType.CREDIT));
+        loanStatusHashMap = (HashMap) this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec,
+                loanID, "status");
         LoanStatusChecker.verifyLoanAccountIsClosed(loanStatusHashMap);
     }
 
     /**
-     * Test case for checking AccuralPeriodicAccounting functionality adding
-     * charges with calculation type percentage of amount
+     * Test case for checking AccuralPeriodicAccounting functionality adding charges
+     * with calculation type percentage of amount
      */
     @Test
     @Ignore // TODO FINERACT-885
@@ -2577,12 +2754,12 @@ public class ClientLoanIntegrationTest {
                 ChargesHelper.getLoanDisbursementJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1"));
         addCharges(charges, percentageDisbursementCharge, "1", null);
 
-        Integer percentageSpecifiedDueDateCharge = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", false));
+        Integer percentageSpecifiedDueDateCharge = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper
+                .getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", false));
         addCharges(charges, percentageSpecifiedDueDateCharge, "1", "29 September 2011");
 
-        Integer percentageInstallmentFee = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", false));
+        Integer percentageInstallmentFee = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper
+                .getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", false));
         addCharges(charges, percentageInstallmentFee, "1", "29 September 2011");
 
         final Account assetAccount = this.accountHelper.createAssetAccount();
@@ -2590,14 +2767,15 @@ public class ClientLoanIntegrationTest {
         final Account expenseAccount = this.accountHelper.createExpenseAccount();
         final Account overpaymentAccount = this.accountHelper.createLiabilityAccount();
 
-        final Integer loanProductID = createLoanProduct(false, ACCRUAL_PERIODIC, assetAccount, incomeAccount, expenseAccount,
-                overpaymentAccount);
+        final Integer loanProductID = createLoanProduct(false, ACCRUAL_PERIODIC, assetAccount, incomeAccount,
+                expenseAccount, overpaymentAccount);
         final Integer loanID = applyForLoanApplication(clientID, loanProductID, charges, null, "12,000.00");
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         verifyLoanRepaymentSchedule(loanSchedule);
 
         List<HashMap> loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -2617,26 +2795,28 @@ public class ClientLoanIntegrationTest {
         HashMap secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("29.70", String.valueOf(secondInstallment.get("feeChargesDue")));
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
-        final JournalEntry[] assetAccountInitialEntry = { new JournalEntry(Float.valueOf("120.00"), JournalEntry.TransactionType.DEBIT),
+        final JournalEntry[] assetAccountInitialEntry = {
+                new JournalEntry(Float.valueOf("120.00"), JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.CREDIT),
                 new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.DEBIT) };
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 September 2011", assetAccountInitialEntry);
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 September 2011",
+                assetAccountInitialEntry);
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 September 2011",
                 new JournalEntry(Float.valueOf("120.00"), JournalEntry.TransactionType.CREDIT));
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         validateCharge(percentageDisbursementCharge, loanCharges, "1", "0.0", "120.00", "0.0");
 
-        System.out.println("-------------Make repayment 1-----------");
+        LOG.info("-------------Make repayment 1-----------");
         this.loanTransactionHelper.makeRepayment("20 October 2011", Float.valueOf("3300.60"), loanID);
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -2644,19 +2824,21 @@ public class ClientLoanIntegrationTest {
         validateCharge(percentageSpecifiedDueDateCharge, loanCharges, "1", "0.00", "120.0", "0.0");
         validateCharge(percentageInstallmentFee, loanCharges, "1", "90.89", "29.11", "0.0");
 
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011", new JournalEntry(
-                Float.valueOf("3300.60"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3300.60"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011",
+                new JournalEntry(Float.valueOf("3300.60"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3300.60"), JournalEntry.TransactionType.CREDIT));
 
-        this.loanTransactionHelper.addChargesForLoan(loanID, LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
-                String.valueOf(percentageSpecifiedDueDateCharge), "29 October 2011", "1"));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
+                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
+                        String.valueOf(percentageSpecifiedDueDateCharge), "29 October 2011", "1"));
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
 
         secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("149.70", String.valueOf(secondInstallment.get("feeChargesDue")));
-        System.out.println("----------- Waive installment charge for 2nd installment ---------");
-        this.loanTransactionHelper.waiveChargesForLoan(loanID, (Integer) getloanCharge(percentageInstallmentFee, loanCharges).get("id"),
+        LOG.info("----------- Waive installment charge for 2nd installment ---------");
+        this.loanTransactionHelper.waiveChargesForLoan(loanID,
+                (Integer) getloanCharge(percentageInstallmentFee, loanCharges).get("id"),
                 LoanTransactionHelper.getWaiveChargeJSON(String.valueOf(2)));
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -2666,9 +2848,8 @@ public class ClientLoanIntegrationTest {
          * this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount,
          * "20 September 2011", new JournalEntry(Float.valueOf("29.7"),
          * JournalEntry.TransactionType.CREDIT));
-         * this.journalEntryHelper.checkJournalEntryForExpenseAccount
-         * (expenseAccount, "20 September 2011", new
-         * JournalEntry(Float.valueOf("29.7"),
+         * this.journalEntryHelper.checkJournalEntryForExpenseAccount (expenseAccount,
+         * "20 September 2011", new JournalEntry(Float.valueOf("29.7"),
          * JournalEntry.TransactionType.DEBIT));
          */
 
@@ -2683,18 +2864,18 @@ public class ClientLoanIntegrationTest {
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         checkAccrualTransactions(loanSchedule, loanID);
 
-        System.out.println("----------Make repayment 2------------");
+        LOG.info("----------Make repayment 2------------");
         this.loanTransactionHelper.makeRepayment("20 November 2011", Float.valueOf("3271.49"), loanID);
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
-                new JournalEntry(Float.valueOf("3271.49"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3271.49"),
-                        JournalEntry.TransactionType.CREDIT));
+                new JournalEntry(Float.valueOf("3271.49"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3271.49"), JournalEntry.TransactionType.CREDIT));
 
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("0", String.valueOf(secondInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("--------------Waive interest---------------");
+        LOG.info("--------------Waive interest---------------");
         this.loanTransactionHelper.waiveInterest("20 December 2011", String.valueOf(61.79), loanID);
 
         loanSchedule.clear();
@@ -2702,15 +2883,16 @@ public class ClientLoanIntegrationTest {
         HashMap thirdInstallment = loanSchedule.get(3);
         validateNumberForEqual("60.59", String.valueOf(thirdInstallment.get("interestOutstanding")));
 
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 December 2011", new JournalEntry(Float.valueOf("61.79"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 December 2011",
+                new JournalEntry(Float.valueOf("61.79"), JournalEntry.TransactionType.CREDIT));
         this.journalEntryHelper.checkJournalEntryForExpenseAccount(expenseAccount, "20 December 2011",
                 new JournalEntry(Float.valueOf("61.79"), JournalEntry.TransactionType.DEBIT));
 
-        Integer percentagePenaltySpecifiedDueDate = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", true));
-        this.loanTransactionHelper.addChargesForLoan(loanID, LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
-                String.valueOf(percentagePenaltySpecifiedDueDate), "29 September 2011", "1"));
+        Integer percentagePenaltySpecifiedDueDate = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper
+                .getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", true));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
+                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
+                        String.valueOf(percentagePenaltySpecifiedDueDate), "29 September 2011", "1"));
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         validateCharge(percentagePenaltySpecifiedDueDate, loanCharges, "1", "0.00", "120.0", "0.0");
@@ -2721,46 +2903,49 @@ public class ClientLoanIntegrationTest {
         validateNumberForEqual("120", String.valueOf(secondInstallment.get("totalOutstandingForPeriod")));
 
         // checking the journal entry as applied penalty has been collected
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011", new JournalEntry(
-                Float.valueOf("3300.60"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3300.60"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011",
+                new JournalEntry(Float.valueOf("3300.60"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3300.60"), JournalEntry.TransactionType.CREDIT));
 
-        System.out.println("----------Make repayment 3 advance------------");
+        LOG.info("----------Make repayment 3 advance------------");
         this.loanTransactionHelper.makeRepayment("20 November 2011", Float.valueOf("3301.78"), loanID);
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
-                new JournalEntry(Float.valueOf("3301.78"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3301.78"),
-                        JournalEntry.TransactionType.CREDIT));
+                new JournalEntry(Float.valueOf("3301.78"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3301.78"), JournalEntry.TransactionType.CREDIT));
 
-        this.loanTransactionHelper.addChargesForLoan(loanID, LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
-                String.valueOf(percentagePenaltySpecifiedDueDate), "10 January 2012", "1"));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
+                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
+                        String.valueOf(percentagePenaltySpecifiedDueDate), "10 January 2012", "1"));
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         HashMap fourthInstallment = loanSchedule.get(4);
         validateNumberForEqual("120", String.valueOf(fourthInstallment.get("penaltyChargesOutstanding")));
         validateNumberForEqual("3240.58", String.valueOf(fourthInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("----------Pay applied penalty ------------");
+        LOG.info("----------Pay applied penalty ------------");
         this.loanTransactionHelper.makeRepayment("20 January 2012", Float.valueOf("120"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012", new JournalEntry(Float.valueOf("120"),
-                JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("120"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012",
+                new JournalEntry(Float.valueOf("120"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("120"), JournalEntry.TransactionType.CREDIT));
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         fourthInstallment = loanSchedule.get(4);
         validateNumberForEqual("0", String.valueOf(fourthInstallment.get("penaltyChargesOutstanding")));
         validateNumberForEqual("3120.58", String.valueOf(fourthInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("----------Make repayment 4 ------------");
+        LOG.info("----------Make repayment 4 ------------");
         this.loanTransactionHelper.makeRepayment("20 January 2012", Float.valueOf("3120.58"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012", new JournalEntry(
-                Float.valueOf("3120.58"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3120.58"),
-                JournalEntry.TransactionType.CREDIT));
-        loanStatusHashMap = (HashMap) this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec, loanID, "status");
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012",
+                new JournalEntry(Float.valueOf("3120.58"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3120.58"), JournalEntry.TransactionType.CREDIT));
+        loanStatusHashMap = (HashMap) this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec,
+                loanID, "status");
         LoanStatusChecker.verifyLoanAccountIsClosed(loanStatusHashMap);
     }
 
     /***
-     * Test case for checking AccuralPeriodicAccounting functionality adding
-     * charges with calculation type percentage of amount and interest
+     * Test case for checking AccuralPeriodicAccounting functionality adding charges
+     * with calculation type percentage of amount and interest
      */
     @Test
     @Ignore // TODO FINERACT-885
@@ -2774,16 +2959,18 @@ public class ClientLoanIntegrationTest {
         // Add charges with payment mode regular
         List<HashMap> charges = new ArrayList<>();
         Integer amountPlusInterestPercentageDisbursementCharge = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanDisbursementJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1"));
+                ChargesHelper.getLoanDisbursementJSON(
+                        ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1"));
         addCharges(charges, amountPlusInterestPercentageDisbursementCharge, "1", null);
 
-        Integer amountPlusInterestPercentageSpecifiedDueDateCharge = ChargesHelper
-                .createCharges(requestSpec, responseSpec, ChargesHelper.getLoanSpecifiedDueDateJSON(
+        Integer amountPlusInterestPercentageSpecifiedDueDateCharge = ChargesHelper.createCharges(requestSpec,
+                responseSpec, ChargesHelper.getLoanSpecifiedDueDateJSON(
                         ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1", false));
         addCharges(charges, amountPlusInterestPercentageSpecifiedDueDateCharge, "1", "29 September 2011");
 
         Integer amountPlusInterestPercentageInstallmentFee = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1", false));
+                ChargesHelper.getLoanInstallmentJSON(
+                        ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT_AND_INTEREST, "1", false));
         addCharges(charges, amountPlusInterestPercentageInstallmentFee, "1", "29 September 2011");
 
         final Account assetAccount = this.accountHelper.createAssetAccount();
@@ -2791,14 +2978,15 @@ public class ClientLoanIntegrationTest {
         final Account expenseAccount = this.accountHelper.createExpenseAccount();
         final Account overpaymentAccount = this.accountHelper.createLiabilityAccount();
 
-        final Integer loanProductID = createLoanProduct(false, ACCRUAL_PERIODIC, assetAccount, incomeAccount, expenseAccount,
-                overpaymentAccount);
+        final Integer loanProductID = createLoanProduct(false, ACCRUAL_PERIODIC, assetAccount, incomeAccount,
+                expenseAccount, overpaymentAccount);
         final Integer loanID = applyForLoanApplication(clientID, loanProductID, charges, null, "12,000.00");
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         verifyLoanRepaymentSchedule(loanSchedule);
 
         List<HashMap> loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -2818,26 +3006,28 @@ public class ClientLoanIntegrationTest {
         HashMap secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("31.51", String.valueOf(secondInstallment.get("feeChargesDue")));
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
-        final JournalEntry[] assetAccountInitialEntry = { new JournalEntry(Float.valueOf("126.06"), JournalEntry.TransactionType.DEBIT),
+        final JournalEntry[] assetAccountInitialEntry = {
+                new JournalEntry(Float.valueOf("126.06"), JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.CREDIT),
                 new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.DEBIT) };
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 September 2011", assetAccountInitialEntry);
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 September 2011",
+                assetAccountInitialEntry);
         this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, "20 September 2011",
                 new JournalEntry(Float.valueOf("126.06"), JournalEntry.TransactionType.CREDIT));
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
         validateCharge(amountPlusInterestPercentageDisbursementCharge, loanCharges, "1", "0.0", "126.06", "0.0");
 
-        System.out.println("-------------Make repayment 1-----------");
+        LOG.info("-------------Make repayment 1-----------");
         this.loanTransactionHelper.makeRepayment("20 October 2011", Float.valueOf("3309.06"), loanID);
         loanCharges.clear();
         loanCharges = this.loanTransactionHelper.getLoanCharges(loanID);
@@ -2845,12 +3035,11 @@ public class ClientLoanIntegrationTest {
         validateCharge(amountPlusInterestPercentageSpecifiedDueDateCharge, loanCharges, "1", "0.00", "126.06", "0.0");
         validateCharge(amountPlusInterestPercentageInstallmentFee, loanCharges, "1", "94.53", "31.51", "0.0");
 
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011", new JournalEntry(
-                Float.valueOf("3309.06"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3309.06"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011",
+                new JournalEntry(Float.valueOf("3309.06"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3309.06"), JournalEntry.TransactionType.CREDIT));
 
-        this.loanTransactionHelper.addChargesForLoan(
-                loanID,
+        this.loanTransactionHelper.addChargesForLoan(loanID,
                 LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
                         String.valueOf(amountPlusInterestPercentageSpecifiedDueDateCharge), "29 October 2011", "1"));
         loanSchedule.clear();
@@ -2858,7 +3047,7 @@ public class ClientLoanIntegrationTest {
 
         secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("157.57", String.valueOf(secondInstallment.get("feeChargesDue")));
-        System.out.println("----------- Waive installment charge for 2nd installment ---------");
+        LOG.info("----------- Waive installment charge for 2nd installment ---------");
         this.loanTransactionHelper.waiveChargesForLoan(loanID,
                 (Integer) getloanCharge(amountPlusInterestPercentageInstallmentFee, loanCharges).get("id"),
                 LoanTransactionHelper.getWaiveChargeJSON(String.valueOf(2)));
@@ -2870,9 +3059,8 @@ public class ClientLoanIntegrationTest {
          * this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount,
          * "20 September 2011", new JournalEntry( Float.valueOf("31.51"),
          * JournalEntry.TransactionType.CREDIT));
-         * this.journalEntryHelper.checkJournalEntryForExpenseAccount
-         * (expenseAccount, "20 September 2011", new
-         * JournalEntry(Float.valueOf("31.51"),
+         * this.journalEntryHelper.checkJournalEntryForExpenseAccount (expenseAccount,
+         * "20 September 2011", new JournalEntry(Float.valueOf("31.51"),
          * JournalEntry.TransactionType.DEBIT));
          */
 
@@ -2887,18 +3075,18 @@ public class ClientLoanIntegrationTest {
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         checkAccrualTransactions(loanSchedule, loanID);
 
-        System.out.println("----------Make repayment 2------------");
+        LOG.info("----------Make repayment 2------------");
         this.loanTransactionHelper.makeRepayment("20 November 2011", Float.valueOf("3277.55"), loanID);
         this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
-                new JournalEntry(Float.valueOf("3277.55"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3277.55"),
-                        JournalEntry.TransactionType.CREDIT));
+                new JournalEntry(Float.valueOf("3277.55"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3277.55"), JournalEntry.TransactionType.CREDIT));
 
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("0", String.valueOf(secondInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("--------------Waive interest---------------");
+        LOG.info("--------------Waive interest---------------");
         this.loanTransactionHelper.waiveInterest("20 December 2011", String.valueOf(61.79), loanID);
 
         loanSchedule.clear();
@@ -2906,15 +3094,15 @@ public class ClientLoanIntegrationTest {
         HashMap thirdInstallment = loanSchedule.get(3);
         validateNumberForEqual("60.59", String.valueOf(thirdInstallment.get("interestOutstanding")));
 
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 December 2011", new JournalEntry(Float.valueOf("61.79"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 December 2011",
+                new JournalEntry(Float.valueOf("61.79"), JournalEntry.TransactionType.CREDIT));
         this.journalEntryHelper.checkJournalEntryForExpenseAccount(expenseAccount, "20 December 2011",
                 new JournalEntry(Float.valueOf("61.79"), JournalEntry.TransactionType.DEBIT));
 
-        Integer amountPlusInterestPercentagePenaltySpecifiedDueDate = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", true));
-        this.loanTransactionHelper.addChargesForLoan(
-                loanID,
+        Integer amountPlusInterestPercentagePenaltySpecifiedDueDate = ChargesHelper.createCharges(requestSpec,
+                responseSpec, ChargesHelper.getLoanSpecifiedDueDateJSON(
+                        ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "1", true));
+        this.loanTransactionHelper.addChargesForLoan(loanID,
                 LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
                         String.valueOf(amountPlusInterestPercentagePenaltySpecifiedDueDate), "29 September 2011", "1"));
         loanCharges.clear();
@@ -2927,17 +3115,17 @@ public class ClientLoanIntegrationTest {
         validateNumberForEqual("120", String.valueOf(secondInstallment.get("totalOutstandingForPeriod")));
 
         // checking the journal entry as applied penalty has been collected
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011", new JournalEntry(
-                Float.valueOf("3309.06"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3309.06"),
-                JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 October 2011",
+                new JournalEntry(Float.valueOf("3309.06"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3309.06"), JournalEntry.TransactionType.CREDIT));
 
-        System.out.println("----------Make repayment 3 advance------------");
+        LOG.info("----------Make repayment 3 advance------------");
         this.loanTransactionHelper.makeRepayment("20 November 2011", Float.valueOf("3303"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011", new JournalEntry(Float.valueOf("3303"),
-                JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3303"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 November 2011",
+                new JournalEntry(Float.valueOf("3303"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3303"), JournalEntry.TransactionType.CREDIT));
 
-        this.loanTransactionHelper.addChargesForLoan(
-                loanID,
+        this.loanTransactionHelper.addChargesForLoan(loanID,
                 LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
                         String.valueOf(amountPlusInterestPercentagePenaltySpecifiedDueDate), "10 January 2012", "1"));
         loanSchedule.clear();
@@ -2946,22 +3134,24 @@ public class ClientLoanIntegrationTest {
         validateNumberForEqual("120", String.valueOf(fourthInstallment.get("penaltyChargesOutstanding")));
         validateNumberForEqual("3241.19", String.valueOf(fourthInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("----------Pay applied penalty ------------");
+        LOG.info("----------Pay applied penalty ------------");
         this.loanTransactionHelper.makeRepayment("20 January 2012", Float.valueOf("120"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012", new JournalEntry(Float.valueOf("120"),
-                JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("120"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012",
+                new JournalEntry(Float.valueOf("120"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("120"), JournalEntry.TransactionType.CREDIT));
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         fourthInstallment = loanSchedule.get(4);
         validateNumberForEqual("0", String.valueOf(fourthInstallment.get("penaltyChargesOutstanding")));
         validateNumberForEqual("3121.19", String.valueOf(fourthInstallment.get("totalOutstandingForPeriod")));
 
-        System.out.println("----------Make repayment 4 ------------");
+        LOG.info("----------Make repayment 4 ------------");
         this.loanTransactionHelper.makeRepayment("20 January 2012", Float.valueOf("3121.19"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012", new JournalEntry(
-                Float.valueOf("3121.19"), JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("3121.19"),
-                JournalEntry.TransactionType.CREDIT));
-        loanStatusHashMap = (HashMap) this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec, loanID, "status");
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, "20 January 2012",
+                new JournalEntry(Float.valueOf("3121.19"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("3121.19"), JournalEntry.TransactionType.CREDIT));
+        loanStatusHashMap = (HashMap) this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec,
+                loanID, "status");
         LoanStatusChecker.verifyLoanAccountIsClosed(loanStatusHashMap);
     }
 
@@ -2973,8 +3163,8 @@ public class ClientLoanIntegrationTest {
         ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, clientID);
         final Integer loanProductID = createLoanProduct("100", "0", LoanProductTestBuilder.DEFAULT_STRATEGY);
         final Integer loanID = applyForLoanApplication(clientID, loanProductID, null);
-        final ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec,
-                loanID);
+        final ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         verifyLoanRepaymentScheduleForEqualPrincipal(loanSchedule);
 
     }
@@ -2987,8 +3177,8 @@ public class ClientLoanIntegrationTest {
         ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, clientID);
         final Integer loanProductID = createLoanProduct("100", "0", LoanProductTestBuilder.DEFAULT_STRATEGY);
         final Integer loanID = applyForLoanApplication(clientID, loanProductID, "5");
-        final ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec,
-                loanID);
+        final ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         verifyLoanRepaymentScheduleForEqualPrincipalWithGrace(loanSchedule);
 
     }
@@ -3014,22 +3204,23 @@ public class ClientLoanIntegrationTest {
          */
         final String savingsId = null;
         final String principal = "12,000.00";
-        final Integer loanID = applyForLoanApplicationWithPaymentStrategy(clientID, loanProductID, null, savingsId, principal,
-                LoanApplicationTestBuilder.RBI_INDIA_STRATEGY);
+        final Integer loanID = applyForLoanApplicationWithPaymentStrategy(clientID, loanProductID, null, savingsId,
+                principal, LoanApplicationTestBuilder.RBI_INDIA_STRATEGY);
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         HashMap firstInstallment = loanSchedule.get(1);
         validateNumberForEqual("3200", String.valueOf(firstInstallment.get("totalOutstandingForPeriod")));
 
@@ -3062,18 +3253,17 @@ public class ClientLoanIntegrationTest {
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
         /***
-         * Verify 2nd and 3rd repayments after making excess payment for
-         * installment no 2
+         * Verify 2nd and 3rd repayments after making excess payment for installment no
+         * 2
          */
         secondInstallment = loanSchedule.get(2);
         validateNumberForEqual("0.00", String.valueOf(secondInstallment.get("totalOutstandingForPeriod")));
 
         /***
-         * According to RBI Excess payment should go to principal portion of
-         * next installment, but as interest recalculation is not implemented,
-         * it wont make any difference to schedule even though if we made excess
-         * payment, so excess payments will behave the same as regular payment
-         * with the excess amount
+         * According to RBI Excess payment should go to principal portion of next
+         * installment, but as interest recalculation is not implemented, it wont make
+         * any difference to schedule even though if we made excess payment, so excess
+         * payments will behave the same as regular payment with the excess amount
          */
         thirdInstallment = loanSchedule.get(3);
         validateNumberForEqual("3200", String.valueOf(thirdInstallment.get("totalOutstandingForPeriod")));
@@ -3083,16 +3273,15 @@ public class ClientLoanIntegrationTest {
         validateNumberForEqual("100.00", String.valueOf(thirdInstallment.get("interestOutstanding")));
 
         /***
-         * Make payment with due amount of 3rd installment on 4th installment
-         * date
+         * Make payment with due amount of 3rd installment on 4th installment date
          */
         this.loanTransactionHelper.makeRepayment("20 January 2012", Float.valueOf("3200"), loanID);
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
 
         /***
-         * Verify overdue interests are deducted first and then remaining amount
-         * for interest portion of due installment
+         * Verify overdue interests are deducted first and then remaining amount for
+         * interest portion of due installment
          */
         thirdInstallment = loanSchedule.get(3);
         HashMap fourthInstallment = loanSchedule.get(4);
@@ -3121,22 +3310,27 @@ public class ClientLoanIntegrationTest {
             final HashMap repayment = loanSchedule.get(i);
 
             final ArrayList<Integer> dueDateAsArray = (ArrayList<Integer>) repayment.get("dueDate");
-            final LocalDate transactionDate = new LocalDate(dueDateAsArray.get(0), dueDateAsArray.get(1), dueDateAsArray.get(2));
+            final LocalDate transactionDate = new LocalDate(dueDateAsArray.get(0), dueDateAsArray.get(1),
+                    dueDateAsArray.get(2));
 
             final Float interestPortion = BigDecimal.valueOf(Double.valueOf(repayment.get("interestDue").toString()))
                     .subtract(BigDecimal.valueOf(Double.valueOf(repayment.get("interestWaived").toString())))
-                    .subtract(BigDecimal.valueOf(Double.valueOf(repayment.get("interestWrittenOff").toString()))).floatValue();
+                    .subtract(BigDecimal.valueOf(Double.valueOf(repayment.get("interestWrittenOff").toString())))
+                    .floatValue();
 
             final Float feePortion = BigDecimal.valueOf(Double.valueOf(repayment.get("feeChargesDue").toString()))
                     .subtract(BigDecimal.valueOf(Double.valueOf(repayment.get("feeChargesWaived").toString())))
-                    .subtract(BigDecimal.valueOf(Double.valueOf(repayment.get("feeChargesWrittenOff").toString()))).floatValue();
+                    .subtract(BigDecimal.valueOf(Double.valueOf(repayment.get("feeChargesWrittenOff").toString())))
+                    .floatValue();
 
-            final Float penaltyPortion = BigDecimal.valueOf(Double.valueOf(repayment.get("penaltyChargesDue").toString()))
+            final Float penaltyPortion = BigDecimal
+                    .valueOf(Double.valueOf(repayment.get("penaltyChargesDue").toString()))
                     .subtract(BigDecimal.valueOf(Double.valueOf(repayment.get("penaltyChargesWaived").toString())))
-                    .subtract(BigDecimal.valueOf(Double.valueOf(repayment.get("penaltyChargesWrittenOff").toString()))).floatValue();
+                    .subtract(BigDecimal.valueOf(Double.valueOf(repayment.get("penaltyChargesWrittenOff").toString())))
+                    .floatValue();
 
-            this.loanTransactionHelper.checkAccrualTransactionForRepayment(transactionDate, interestPortion, feePortion, penaltyPortion,
-                    loanID);
+            this.loanTransactionHelper.checkAccrualTransactionForRepayment(transactionDate, interestPortion, feePortion,
+                    penaltyPortion, loanID);
         }
     }
 
@@ -3153,20 +3347,21 @@ public class ClientLoanIntegrationTest {
 
         final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
         ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, clientID);
-        final Integer loanProductID = createLoanProductWithInterestRecalculation(LoanProductTestBuilder.DEFAULT_STRATEGY,
-                LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_NONE,
+        final Integer loanProductID = createLoanProductWithInterestRecalculation(
+                LoanProductTestBuilder.DEFAULT_STRATEGY, LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_NONE,
                 LoanProductTestBuilder.RECALCULATION_STRATEGY_REDUCE_EMI_AMOUN,
                 LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_SAME_AS_REPAYMENT_PERIOD, "0", null,
                 LoanProductTestBuilder.INTEREST_APPLICABLE_STRATEGY_ON_PRE_CLOSE_DATE, null, null, null);
 
-        final Integer loanID = applyForLoanApplicationForInterestRecalculation(clientID, loanProductID, LOAN_DISBURSEMENT_DATE, null,
-                LoanApplicationTestBuilder.DEFAULT_STRATEGY, new ArrayList<HashMap>(0));
+        final Integer loanID = applyForLoanApplicationForInterestRecalculation(clientID, loanProductID,
+                LOAN_DISBURSEMENT_DATE, null, LoanApplicationTestBuilder.DEFAULT_STRATEGY, new ArrayList<HashMap>(0));
 
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         List<Map<String, Object>> expectedvalues = new ArrayList<>();
         todaysDate = Calendar.getInstance(Utils.getTimeZoneOfTenant());
         addRepaymentValues(expectedvalues, todaysDate, -1, false, "2482.76", "46.15", "0.0", "0.0");
@@ -3175,12 +3370,12 @@ public class ClientLoanIntegrationTest {
         addRepaymentValues(expectedvalues, todaysDate, 1, false, "2517.29", "11.62", "0.0", "0.0");
         verifyLoanRepaymentSchedule(loanSchedule, expectedvalues);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan(LOAN_DISBURSEMENT_DATE, loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan(LOAN_DISBURSEMENT_DATE, loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
@@ -3261,20 +3456,21 @@ public class ClientLoanIntegrationTest {
 
         final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
         ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, clientID);
-        final Integer loanProductID = createLoanProductWithInterestRecalculation(LoanProductTestBuilder.DEFAULT_STRATEGY,
-                LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_NONE,
+        final Integer loanProductID = createLoanProductWithInterestRecalculation(
+                LoanProductTestBuilder.DEFAULT_STRATEGY, LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_NONE,
                 LoanProductTestBuilder.RECALCULATION_STRATEGY_REDUCE_EMI_AMOUN,
-                LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_SAME_AS_REPAYMENT_PERIOD, "0", null, preCloseInterestStrategy, null,
-                null, null);
+                LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_SAME_AS_REPAYMENT_PERIOD, "0", null,
+                preCloseInterestStrategy, null, null, null);
 
-        final Integer loanID = applyForLoanApplicationForInterestRecalculation(clientID, loanProductID, LOAN_DISBURSEMENT_DATE, null,
-                LoanApplicationTestBuilder.DEFAULT_STRATEGY, new ArrayList<HashMap>(0));
+        final Integer loanID = applyForLoanApplicationForInterestRecalculation(clientID, loanProductID,
+                LOAN_DISBURSEMENT_DATE, null, LoanApplicationTestBuilder.DEFAULT_STRATEGY, new ArrayList<HashMap>(0));
 
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         List<Map<String, Object>> expectedvalues = new ArrayList<>();
         todaysDate = Calendar.getInstance(Utils.getTimeZoneOfTenant());
         addRepaymentValues(expectedvalues, todaysDate, -9, true, "2482.76", "46.15", "0.0", "0.0");
@@ -3283,12 +3479,12 @@ public class ClientLoanIntegrationTest {
         addRepaymentValues(expectedvalues, todaysDate, 1, false, "2517.29", "11.62", "0.0", "0.0");
         verifyLoanRepaymentSchedule(loanSchedule, expectedvalues);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan(LOAN_DISBURSEMENT_DATE, loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan(LOAN_DISBURSEMENT_DATE, loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
@@ -3340,24 +3536,25 @@ public class ClientLoanIntegrationTest {
 
         final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
         ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, clientID);
-        final Integer loanProductID = createLoanProductWithInterestRecalculation(LoanProductTestBuilder.DEFAULT_STRATEGY,
-                LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_NONE,
+        final Integer loanProductID = createLoanProductWithInterestRecalculation(
+                LoanProductTestBuilder.DEFAULT_STRATEGY, LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_NONE,
                 LoanProductTestBuilder.RECALCULATION_STRATEGY_REDUCE_EMI_AMOUN,
                 LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_SAME_AS_REPAYMENT_PERIOD, "0", null,
                 LoanProductTestBuilder.INTEREST_APPLICABLE_STRATEGY_ON_PRE_CLOSE_DATE, null, null, null);
 
         List<HashMap> charges = new ArrayList<>();
-        Integer installmentCharge = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_INTEREST, "10", false));
+        Integer installmentCharge = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper
+                .getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_INTEREST, "10", false));
         addCharges(charges, installmentCharge, "10", null);
-        final Integer loanID = applyForLoanApplicationForInterestRecalculation(clientID, loanProductID, LOAN_DISBURSEMENT_DATE, null,
-                LoanApplicationTestBuilder.DEFAULT_STRATEGY, charges);
+        final Integer loanID = applyForLoanApplicationForInterestRecalculation(clientID, loanProductID,
+                LOAN_DISBURSEMENT_DATE, null, LoanApplicationTestBuilder.DEFAULT_STRATEGY, charges);
 
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         List<Map<String, Object>> expectedvalues = new ArrayList<>();
         todaysDate = Calendar.getInstance(Utils.getTimeZoneOfTenant());
         addRepaymentValues(expectedvalues, todaysDate, -1, false, "2482.76", "46.15", "4.62", "0.0");
@@ -3366,12 +3563,12 @@ public class ClientLoanIntegrationTest {
         addRepaymentValues(expectedvalues, todaysDate, 1, false, "2517.29", "11.62", "1.16", "0.0");
         verifyLoanRepaymentSchedule(loanSchedule, expectedvalues);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan(LOAN_DISBURSEMENT_DATE, loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan(LOAN_DISBURSEMENT_DATE, loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
@@ -3439,20 +3636,23 @@ public class ClientLoanIntegrationTest {
         final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
         ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, clientID);
         final Integer loanProductID = createLoanProductWithInterestRecalculationAndCompoundingDetails(
-                LoanProductTestBuilder.RBI_INDIA_STRATEGY, LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_INTEREST,
+                LoanProductTestBuilder.RBI_INDIA_STRATEGY,
+                LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_INTEREST,
                 LoanProductTestBuilder.RECALCULATION_STRATEGY_REDUCE_NUMBER_OF_INSTALLMENTS,
                 LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_DAILY, "1", LOAN_DISBURSEMENT_DATE,
                 LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_WEEKLY, "1", LOAN_DISBURSEMENT_DATE,
-                LoanProductTestBuilder.INTEREST_APPLICABLE_STRATEGY_ON_PRE_CLOSE_DATE, null, null, dayOfWeek, null, dayOfWeek);
+                LoanProductTestBuilder.INTEREST_APPLICABLE_STRATEGY_ON_PRE_CLOSE_DATE, null, null, dayOfWeek, null,
+                dayOfWeek);
 
-        final Integer loanID = applyForLoanApplicationForInterestRecalculation(clientID, loanProductID, LOAN_DISBURSEMENT_DATE,
-                LoanApplicationTestBuilder.RBI_INDIA_STRATEGY, new ArrayList<HashMap>(0));
+        final Integer loanID = applyForLoanApplicationForInterestRecalculation(clientID, loanProductID,
+                LOAN_DISBURSEMENT_DATE, LoanApplicationTestBuilder.RBI_INDIA_STRATEGY, new ArrayList<HashMap>(0));
 
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         List<Map<String, Object>> expectedvalues = new ArrayList<>();
         todaysDate = Calendar.getInstance(Utils.getTimeZoneOfTenant());
         addRepaymentValues(expectedvalues, todaysDate, -1, false, "2482.76", "46.15", "0.0", "0.0");
@@ -3462,12 +3662,12 @@ public class ClientLoanIntegrationTest {
 
         verifyLoanRepaymentSchedule(loanSchedule, expectedvalues);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan(LOAN_DISBURSEMENT_DATE, loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan(LOAN_DISBURSEMENT_DATE, loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
@@ -3481,7 +3681,8 @@ public class ClientLoanIntegrationTest {
 
         verifyLoanRepaymentSchedule(loanSchedule, expectedvalues);
 
-        loanSchedule = this.loanTransactionHelper.getLoanFutureRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        loanSchedule = this.loanTransactionHelper.getLoanFutureRepaymentSchedule(this.requestSpec, this.responseSpec,
+                loanID);
         expectedvalues = new ArrayList<>();
         todaysDate = Calendar.getInstance(Utils.getTimeZoneOfTenant());
         addRepaymentValues(expectedvalues, todaysDate, 0, false, "4965.3", "92.52", "0.0", "0.0");
@@ -3562,8 +3763,8 @@ public class ClientLoanIntegrationTest {
         List<HashMap> charges = new ArrayList<>(2);
         Integer flat = ChargesHelper.createCharges(requestSpec, responseSpec,
                 ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, "100", false));
-        Integer principalPercentage = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "2", false));
+        Integer principalPercentage = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper
+                .getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "2", false));
 
         addCharges(charges, flat, "100", LOAN_FLAT_CHARGE_DATE);
         addCharges(charges, principalPercentage, "2", LOAN_INTEREST_CHARGE_DATE);
@@ -3571,21 +3772,23 @@ public class ClientLoanIntegrationTest {
         final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
         ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, clientID);
         final Integer loanProductID = createLoanProductWithInterestRecalculationAndCompoundingDetails(
-                LoanProductTestBuilder.DEFAULT_STRATEGY, LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_INTEREST_AND_FEE,
+                LoanProductTestBuilder.DEFAULT_STRATEGY,
+                LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_INTEREST_AND_FEE,
                 LoanProductTestBuilder.RECALCULATION_STRATEGY_RESCHEDULE_NEXT_REPAYMENTS,
                 LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_WEEKLY, "1", REST_START_DATE,
                 LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_WEEKLY, "1", LOAN_DISBURSEMENT_DATE,
-                LoanProductTestBuilder.INTEREST_APPLICABLE_STRATEGY_ON_PRE_CLOSE_DATE, null, compoundingDayOfMonth, compoundingDayOfWeek,
-                restDayOfMonth, restDayOfWeek);
+                LoanProductTestBuilder.INTEREST_APPLICABLE_STRATEGY_ON_PRE_CLOSE_DATE, null, compoundingDayOfMonth,
+                compoundingDayOfWeek, restDayOfMonth, restDayOfWeek);
 
-        final Integer loanID = applyForLoanApplicationForInterestRecalculation(clientID, loanProductID, LOAN_DISBURSEMENT_DATE,
-                LOAN_DISBURSEMENT_DATE, LoanApplicationTestBuilder.DEFAULT_STRATEGY, charges);
+        final Integer loanID = applyForLoanApplicationForInterestRecalculation(clientID, loanProductID,
+                LOAN_DISBURSEMENT_DATE, LOAN_DISBURSEMENT_DATE, LoanApplicationTestBuilder.DEFAULT_STRATEGY, charges);
 
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         List<Map<String, Object>> expectedvalues = new ArrayList<>();
         todaysDate = Calendar.getInstance(Utils.getTimeZoneOfTenant());
         addRepaymentValues(expectedvalues, todaysDate, -1, false, "2482.76", "46.15", "100.0", "0.0");
@@ -3594,12 +3797,12 @@ public class ClientLoanIntegrationTest {
         addRepaymentValues(expectedvalues, todaysDate, 1, false, "2517.29", "11.62", "0.0", "0.0");
         verifyLoanRepaymentSchedule(loanSchedule, expectedvalues);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan(LOAN_DISBURSEMENT_DATE, loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan(LOAN_DISBURSEMENT_DATE, loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
@@ -3695,8 +3898,8 @@ public class ClientLoanIntegrationTest {
         List<HashMap> charges = new ArrayList<>(2);
         Integer flat = ChargesHelper.createCharges(requestSpec, responseSpec,
                 ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, "100", false));
-        Integer principalPercentage = ChargesHelper.createCharges(requestSpec, responseSpec,
-                ChargesHelper.getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "2", false));
+        Integer principalPercentage = ChargesHelper.createCharges(requestSpec, responseSpec, ChargesHelper
+                .getLoanSpecifiedDueDateJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_PERCENTAGE_AMOUNT, "2", false));
 
         addCharges(charges, flat, "100", LOAN_FLAT_CHARGE_DATE);
         addCharges(charges, principalPercentage, "2", LOAN_INTEREST_CHARGE_DATE);
@@ -3704,20 +3907,22 @@ public class ClientLoanIntegrationTest {
         final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
         ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, clientID);
         final Integer loanProductID = createLoanProductWithInterestRecalculationAndCompoundingDetails(
-                LoanProductTestBuilder.DEFAULT_STRATEGY, LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_INTEREST_AND_FEE,
+                LoanProductTestBuilder.DEFAULT_STRATEGY,
+                LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_INTEREST_AND_FEE,
                 LoanProductTestBuilder.RECALCULATION_STRATEGY_RESCHEDULE_NEXT_REPAYMENTS,
                 LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_WEEKLY, "1", REST_START_DATE,
-                LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_SAME_AS_REPAYMENT_PERIOD, null, null, preCloseInterestStrategy, null,
-                null, null, restDateOfMonth, restDateOfWeek);
+                LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_SAME_AS_REPAYMENT_PERIOD, null, null,
+                preCloseInterestStrategy, null, null, null, restDateOfMonth, restDateOfWeek);
 
-        final Integer loanID = applyForLoanApplicationForInterestRecalculation(clientID, loanProductID, LOAN_DISBURSEMENT_DATE,
-                REST_START_DATE, LoanApplicationTestBuilder.DEFAULT_STRATEGY, charges);
+        final Integer loanID = applyForLoanApplicationForInterestRecalculation(clientID, loanProductID,
+                LOAN_DISBURSEMENT_DATE, REST_START_DATE, LoanApplicationTestBuilder.DEFAULT_STRATEGY, charges);
 
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         List<Map<String, Object>> expectedvalues = new ArrayList<>();
         todaysDate = Calendar.getInstance(Utils.getTimeZoneOfTenant());
         addRepaymentValues(expectedvalues, todaysDate, -9, true, "2482.76", "46.15", "100.0", "0.0");
@@ -3726,12 +3931,12 @@ public class ClientLoanIntegrationTest {
         addRepaymentValues(expectedvalues, todaysDate, 1, false, "2517.29", "11.62", "0.0", "0.0");
         verifyLoanRepaymentSchedule(loanSchedule, expectedvalues);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan(LOAN_DISBURSEMENT_DATE, loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan(LOAN_DISBURSEMENT_DATE, loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
@@ -3796,23 +4001,25 @@ public class ClientLoanIntegrationTest {
         ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, clientID);
         final String recalculationCompoundingFrequencyInterval = null;
         final String recalculationCompoundingFrequencyDate = null;
-        final Integer loanProductID = createLoanProductWithInterestRecalculation(LoanProductTestBuilder.DEFAULT_STRATEGY,
+        final Integer loanProductID = createLoanProductWithInterestRecalculation(
+                LoanProductTestBuilder.DEFAULT_STRATEGY,
                 LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_INTEREST_AND_FEE,
                 LoanProductTestBuilder.RECALCULATION_STRATEGY_RESCHEDULE_NEXT_REPAYMENTS,
                 LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_DAILY, "1", REST_START_DATE,
-                LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_SAME_AS_REPAYMENT_PERIOD, recalculationCompoundingFrequencyInterval,
-                recalculationCompoundingFrequencyDate, LoanProductTestBuilder.INTEREST_APPLICABLE_STRATEGY_ON_PRE_CLOSE_DATE, null,
+                LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_SAME_AS_REPAYMENT_PERIOD,
+                recalculationCompoundingFrequencyInterval, recalculationCompoundingFrequencyDate,
+                LoanProductTestBuilder.INTEREST_APPLICABLE_STRATEGY_ON_PRE_CLOSE_DATE, null,
                 overdueFeeChargeId.toString(), false, null, null, null, null);
 
-        final Integer loanID = applyForLoanApplicationForInterestRecalculation(clientID, loanProductID, LOAN_DISBURSEMENT_DATE,
-                REST_START_DATE, LoanApplicationTestBuilder.DEFAULT_STRATEGY, null);
-
+        final Integer loanID = applyForLoanApplicationForInterestRecalculation(clientID, loanProductID,
+                LOAN_DISBURSEMENT_DATE, REST_START_DATE, LoanApplicationTestBuilder.DEFAULT_STRATEGY, null);
 
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         List<Map<String, Object>> expectedvalues = new ArrayList<>();
         todaysDate = Calendar.getInstance(Utils.getTimeZoneOfTenant());
         addRepaymentValues(expectedvalues, todaysDate, -2, false, "2482.76", "46.15", "0.0", "0.0");
@@ -3821,12 +4028,12 @@ public class ClientLoanIntegrationTest {
         addRepaymentValues(expectedvalues, todaysDate, 1, false, "2517.29", "11.62", "0.0", "0.0");
         verifyLoanRepaymentSchedule(loanSchedule, expectedvalues);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan(LOAN_DISBURSEMENT_DATE, loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan(LOAN_DISBURSEMENT_DATE, loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
@@ -3901,42 +4108,43 @@ public class ClientLoanIntegrationTest {
         final Account overpaymentAccount = this.accountHelper.createLiabilityAccount();
 
         Calendar todaysDate = Calendar.getInstance(Utils.getTimeZoneOfTenant());
-        System.out.println("Disbursal Date Calendar " + todaysDate.getTime());
+        LOG.info("Disbursal Date Calendar {}" , todaysDate.getTime());
         todaysDate.add(Calendar.DAY_OF_MONTH, -14);
         final String LOAN_DISBURSEMENT_DATE = dateFormat.format(todaysDate.getTime());
 
         final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
         ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, clientID);
         Account[] accounts = { assetAccount, incomeAccount, expenseAccount, overpaymentAccount };
-        final Integer loanProductID = createLoanProductWithInterestRecalculation(LoanProductTestBuilder.DEFAULT_STRATEGY,
-                LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_NONE,
+        final Integer loanProductID = createLoanProductWithInterestRecalculation(
+                LoanProductTestBuilder.DEFAULT_STRATEGY, LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_NONE,
                 LoanProductTestBuilder.RECALCULATION_STRATEGY_REDUCE_EMI_AMOUN,
                 LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_SAME_AS_REPAYMENT_PERIOD, "0", null,
                 LoanProductTestBuilder.INTEREST_APPLICABLE_STRATEGY_ON_PRE_CLOSE_DATE, accounts, null, null);
 
-        final Integer loanID = applyForLoanApplicationForInterestRecalculation(clientID, loanProductID, LOAN_DISBURSEMENT_DATE, null,
-                LoanApplicationTestBuilder.DEFAULT_STRATEGY, new ArrayList<HashMap>(0));
+        final Integer loanID = applyForLoanApplicationForInterestRecalculation(clientID, loanProductID,
+                LOAN_DISBURSEMENT_DATE, null, LoanApplicationTestBuilder.DEFAULT_STRATEGY, new ArrayList<HashMap>(0));
 
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         List<Map<String, Object>> expectedvalues = new ArrayList<>();
         todaysDate = Calendar.getInstance(Utils.getTimeZoneOfTenant());
-        System.out.println("Date during repayment schedule" + todaysDate.getTime());
+        LOG.info("Date during repayment schedule {}" , todaysDate.getTime());
         addRepaymentValues(expectedvalues, todaysDate, -1, false, "2482.76", "46.15", "0.0", "0.0");
         addRepaymentValues(expectedvalues, todaysDate, 1, false, "2494.22", "34.69", "0.0", "0.0");
         addRepaymentValues(expectedvalues, todaysDate, 1, false, "2505.73", "23.18", "0.0", "0.0");
         addRepaymentValues(expectedvalues, todaysDate, 1, false, "2517.29", "11.62", "0.0", "0.0");
         verifyLoanRepaymentSchedule(loanSchedule, expectedvalues);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan(LOAN_DISBURSEMENT_DATE, loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan(LOAN_DISBURSEMENT_DATE, loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
@@ -3950,15 +4158,19 @@ public class ClientLoanIntegrationTest {
 
         verifyLoanRepaymentSchedule(loanSchedule, expectedvalues);
 
-        final JournalEntry[] assetAccountInitialEntry = { new JournalEntry(10000.0f, JournalEntry.TransactionType.CREDIT),
+        final JournalEntry[] assetAccountInitialEntry = {
+                new JournalEntry(10000.0f, JournalEntry.TransactionType.CREDIT),
                 new JournalEntry(10000.0f, JournalEntry.TransactionType.DEBIT), };
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, LOAN_DISBURSEMENT_DATE, assetAccountInitialEntry);
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, LOAN_DISBURSEMENT_DATE,
+                assetAccountInitialEntry);
         todaysDate = Calendar.getInstance(Utils.getTimeZoneOfTenant());
         String runOndate = dateFormat.format(todaysDate.getTime());
-        System.out.println("runOndate : " + runOndate);
+        LOG.info("runOndate : {}" , runOndate);
         this.periodicAccrualAccountingHelper.runPeriodicAccrualAccounting(runOndate);
-        this.loanTransactionHelper.checkAccrualTransactionForRepayment(Utils.getLocalDateOfTenant().minusDays(7), 46.15f, 0f, 0f, loanID);
-        this.loanTransactionHelper.checkAccrualTransactionForRepayment(Utils.getLocalDateOfTenant(), 46.15f, 0f, 0f, loanID);
+        this.loanTransactionHelper.checkAccrualTransactionForRepayment(Utils.getLocalDateOfTenant().minusDays(7),
+                46.15f, 0f, 0f, loanID);
+        this.loanTransactionHelper.checkAccrualTransactionForRepayment(Utils.getLocalDateOfTenant(), 46.15f, 0f, 0f,
+                loanID);
 
         todaysDate = Calendar.getInstance(Utils.getTimeZoneOfTenant());
         todaysDate.add(Calendar.DAY_OF_MONTH, -7);
@@ -3976,8 +4188,10 @@ public class ClientLoanIntegrationTest {
         verifyLoanRepaymentSchedule(loanSchedule, expectedvalues);
 
         this.periodicAccrualAccountingHelper.runPeriodicAccrualAccounting(runOndate);
-        this.loanTransactionHelper.checkAccrualTransactionForRepayment(Utils.getLocalDateOfTenant().minusDays(7), 46.15f, 0f, 0f, loanID);
-        this.loanTransactionHelper.checkAccrualTransactionForRepayment(Utils.getLocalDateOfTenant(), 34.69f, 0f, 0f, loanID);
+        this.loanTransactionHelper.checkAccrualTransactionForRepayment(Utils.getLocalDateOfTenant().minusDays(7),
+                46.15f, 0f, 0f, loanID);
+        this.loanTransactionHelper.checkAccrualTransactionForRepayment(Utils.getLocalDateOfTenant(), 34.69f, 0f, 0f,
+                loanID);
 
         HashMap prepayDetail = this.loanTransactionHelper.getPrepayAmount(this.requestSpec, this.responseSpec, loanID);
         String prepayAmount = String.valueOf(prepayDetail.get("amount"));
@@ -3987,8 +4201,10 @@ public class ClientLoanIntegrationTest {
         loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanAccountIsClosed(loanStatusHashMap);
 
-        this.loanTransactionHelper.checkAccrualTransactionForRepayment(Utils.getLocalDateOfTenant().minusDays(7), 46.15f, 0f, 0f, loanID);
-        this.loanTransactionHelper.checkAccrualTransactionForRepayment(Utils.getLocalDateOfTenant(), 34.69f, 0f, 0f, loanID);
+        this.loanTransactionHelper.checkAccrualTransactionForRepayment(Utils.getLocalDateOfTenant().minusDays(7),
+                46.15f, 0f, 0f, loanID);
+        this.loanTransactionHelper.checkAccrualTransactionForRepayment(Utils.getLocalDateOfTenant(), 34.69f, 0f, 0f,
+                loanID);
 
     }
 
@@ -4006,21 +4222,25 @@ public class ClientLoanIntegrationTest {
         final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
         ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, clientID);
         final Integer loanProductID = createLoanProductWithInterestRecalculationAndCompoundingDetails(
-                LoanProductTestBuilder.RBI_INDIA_STRATEGY, LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_INTEREST,
+                LoanProductTestBuilder.RBI_INDIA_STRATEGY,
+                LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_INTEREST,
                 LoanProductTestBuilder.RECALCULATION_STRATEGY_RESCHEDULE_NEXT_REPAYMENTS,
                 LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_DAILY, "1", LOAN_DISBURSEMENT_DATE,
-                LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_SAME_AS_REPAYMENT_PERIOD, "1", LOAN_DISBURSEMENT_DATE,
-                LoanProductTestBuilder.INTEREST_APPLICABLE_STRATEGY_ON_PRE_CLOSE_DATE, null, getDayOfMonth(todaysDate),
-                getDayOfWeek(todaysDate), getDayOfMonth(todaysDate), getDayOfWeek(todaysDate));
+                LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_SAME_AS_REPAYMENT_PERIOD, "1",
+                LOAN_DISBURSEMENT_DATE, LoanProductTestBuilder.INTEREST_APPLICABLE_STRATEGY_ON_PRE_CLOSE_DATE, null,
+                getDayOfMonth(todaysDate), getDayOfWeek(todaysDate), getDayOfMonth(todaysDate),
+                getDayOfWeek(todaysDate));
 
-        final Integer loanID = applyForLoanApplicationForInterestRecalculation(clientID, loanProductID, LOAN_DISBURSEMENT_DATE,
-                LOAN_DISBURSEMENT_DATE, LoanApplicationTestBuilder.RBI_INDIA_STRATEGY, new ArrayList<HashMap>(0));
+        final Integer loanID = applyForLoanApplicationForInterestRecalculation(clientID, loanProductID,
+                LOAN_DISBURSEMENT_DATE, LOAN_DISBURSEMENT_DATE, LoanApplicationTestBuilder.RBI_INDIA_STRATEGY,
+                new ArrayList<HashMap>(0));
 
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         List<Map<String, Object>> expectedvalues = new ArrayList<>();
         todaysDate = Calendar.getInstance(Utils.getTimeZoneOfTenant());
         addRepaymentValues(expectedvalues, todaysDate, -1, false, "2482.76", "46.15", "0.0", "0.0");
@@ -4030,12 +4250,12 @@ public class ClientLoanIntegrationTest {
 
         verifyLoanRepaymentSchedule(loanSchedule, expectedvalues);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan(LOAN_DISBURSEMENT_DATE, loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan(LOAN_DISBURSEMENT_DATE, loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
@@ -4080,7 +4300,7 @@ public class ClientLoanIntegrationTest {
         dateFormat.setTimeZone(Utils.getTimeZoneOfTenant());
 
         Calendar todaysDate = Calendar.getInstance(Utils.getTimeZoneOfTenant());
-        System.out.println("----timeeeeeeeeeeeeee------>" + dateFormat.format(todaysDate.getTime()));
+        LOG.info("----timeeeeeeeeeeeeee------> {}" , dateFormat.format(todaysDate.getTime()));
         todaysDate.add(Calendar.DAY_OF_MONTH, -14);
         final String LOAN_DISBURSEMENT_DATE = dateFormat.format(todaysDate.getTime());
 
@@ -4088,22 +4308,26 @@ public class ClientLoanIntegrationTest {
         ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, clientID);
         final String recalculationCompoundingFrequencyInterval = null;
         final String recalculationCompoundingFrequencyDate = null;
-        final Integer loanProductID = createLoanProductWithInterestRecalculation(LoanProductTestBuilder.RBI_INDIA_STRATEGY,
+        final Integer loanProductID = createLoanProductWithInterestRecalculation(
+                LoanProductTestBuilder.RBI_INDIA_STRATEGY,
                 LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_INTEREST,
                 LoanProductTestBuilder.RECALCULATION_STRATEGY_RESCHEDULE_NEXT_REPAYMENTS,
                 LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_DAILY, "1", LOAN_DISBURSEMENT_DATE,
-                LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_SAME_AS_REPAYMENT_PERIOD, recalculationCompoundingFrequencyInterval,
-                recalculationCompoundingFrequencyDate, LoanProductTestBuilder.INTEREST_APPLICABLE_STRATEGY_ON_PRE_CLOSE_DATE, null, null,
-                true, null, null, getDayOfMonth(todaysDate), getDayOfWeek(todaysDate));
+                LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_SAME_AS_REPAYMENT_PERIOD,
+                recalculationCompoundingFrequencyInterval, recalculationCompoundingFrequencyDate,
+                LoanProductTestBuilder.INTEREST_APPLICABLE_STRATEGY_ON_PRE_CLOSE_DATE, null, null, true, null, null,
+                getDayOfMonth(todaysDate), getDayOfWeek(todaysDate));
 
-        final Integer loanID = applyForLoanApplicationForInterestRecalculation(clientID, loanProductID, LOAN_DISBURSEMENT_DATE,
-                LOAN_DISBURSEMENT_DATE, LoanApplicationTestBuilder.RBI_INDIA_STRATEGY, new ArrayList<HashMap>(0));
+        final Integer loanID = applyForLoanApplicationForInterestRecalculation(clientID, loanProductID,
+                LOAN_DISBURSEMENT_DATE, LOAN_DISBURSEMENT_DATE, LoanApplicationTestBuilder.RBI_INDIA_STRATEGY,
+                new ArrayList<HashMap>(0));
 
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         List<Map<String, Object>> expectedvalues = new ArrayList<>();
         todaysDate = Calendar.getInstance(Utils.getTimeZoneOfTenant());
         addRepaymentValues(expectedvalues, todaysDate, -1, false, "2482.76", "46.15", "0.0", "0.0");
@@ -4113,12 +4337,12 @@ public class ClientLoanIntegrationTest {
 
         verifyLoanRepaymentSchedule(loanSchedule, expectedvalues);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan(LOAN_DISBURSEMENT_DATE, loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan(LOAN_DISBURSEMENT_DATE, loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
@@ -4178,19 +4402,22 @@ public class ClientLoanIntegrationTest {
 
         final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
         ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, clientID);
-        final Integer loanProductID = createLoanProductWithInterestRecalculation(LoanProductTestBuilder.DEFAULT_STRATEGY,
-                LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_NONE,
+        final Integer loanProductID = createLoanProductWithInterestRecalculation(
+                LoanProductTestBuilder.DEFAULT_STRATEGY, LoanProductTestBuilder.RECALCULATION_COMPOUNDING_METHOD_NONE,
                 LoanProductTestBuilder.RECALCULATION_STRATEGY_REDUCE_EMI_AMOUN,
-                LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_SAME_AS_REPAYMENT_PERIOD, "0", null, preCloseStrategy, null, null, null);
+                LoanProductTestBuilder.RECALCULATION_FREQUENCY_TYPE_SAME_AS_REPAYMENT_PERIOD, "0", null,
+                preCloseStrategy, null, null, null);
 
         final Integer loanID = applyForLoanApplicationForInterestRecalculationWithMoratorium(clientID, loanProductID,
-                LOAN_DISBURSEMENT_DATE, LoanApplicationTestBuilder.DEFAULT_STRATEGY, new ArrayList<HashMap>(0), "1", null);
+                LOAN_DISBURSEMENT_DATE, LoanApplicationTestBuilder.DEFAULT_STRATEGY, new ArrayList<HashMap>(0), "1",
+                null);
 
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         List<Map<String, Object>> expectedvalues = new ArrayList<>();
         todaysDate = Calendar.getInstance(Utils.getTimeZoneOfTenant());
         todaysDate.add(Calendar.DAY_OF_MONTH, -1);
@@ -4200,12 +4427,12 @@ public class ClientLoanIntegrationTest {
         addRepaymentValues(expectedvalues, todaysDate, 1, false, "2517.29", "11.62", "0.0", "0.0");
         verifyLoanRepaymentSchedule(loanSchedule, expectedvalues);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan(LOAN_DISBURSEMENT_DATE, loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan(LOAN_DISBURSEMENT_DATE, loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
@@ -4230,15 +4457,16 @@ public class ClientLoanIntegrationTest {
         LoanStatusChecker.verifyLoanAccountIsClosed(loanStatusHashMap);
     }
 
-    private void addRepaymentValues(List<Map<String, Object>> expectedvalues, Calendar todaysDate, int addPeriod, boolean isAddDays,
-            String principalDue, String interestDue, String feeChargesDue, String penaltyChargesDue) {
+    private void addRepaymentValues(List<Map<String, Object>> expectedvalues, Calendar todaysDate, int addPeriod,
+            boolean isAddDays, String principalDue, String interestDue, String feeChargesDue,
+            String penaltyChargesDue) {
         Map<String, Object> values = new HashMap<>(3);
         if (isAddDays) {
             values.put("dueDate", getDateAsArray(todaysDate, addPeriod));
         } else {
             values.put("dueDate", getDateAsArray(todaysDate, addPeriod * 7));
         }
-        System.out.println("Updated date " + values.get("dueDate"));
+        LOG.info("Updated date {}" , values.get("dueDate"));
         values.put("principalDue", principalDue);
         values.put("interestDue", interestDue);
         values.put("feeChargesDue", feeChargesDue);
@@ -4259,8 +4487,9 @@ public class ClientLoanIntegrationTest {
     private Integer createLoanProductWithInterestRecalculation(final String repaymentStrategy,
             final String interestRecalculationCompoundingMethod, final String rescheduleStrategyMethod,
             final String recalculationRestFrequencyType, final String recalculationRestFrequencyInterval,
-            final String recalculationRestFrequencyDate, final String preCloseInterestCalculationStrategy, final Account[] accounts,
-            final Integer recalculationRestFrequencyOnDayType, final Integer recalculationRestFrequencyDayOfWeekType) {
+            final String recalculationRestFrequencyDate, final String preCloseInterestCalculationStrategy,
+            final Account[] accounts, final Integer recalculationRestFrequencyOnDayType,
+            final Integer recalculationRestFrequencyDayOfWeekType) {
         final String recalculationCompoundingFrequencyType = null;
         final String recalculationCompoundingFrequencyInterval = null;
         final String recalculationCompoundingFrequencyDate = null;
@@ -4268,10 +4497,11 @@ public class ClientLoanIntegrationTest {
         final Integer recalculationCompoundingFrequencyDayOfWeekType = null;
         return createLoanProductWithInterestRecalculation(repaymentStrategy, interestRecalculationCompoundingMethod,
                 rescheduleStrategyMethod, recalculationRestFrequencyType, recalculationRestFrequencyInterval,
-                recalculationRestFrequencyDate, recalculationCompoundingFrequencyType, recalculationCompoundingFrequencyInterval,
-                recalculationCompoundingFrequencyDate, preCloseInterestCalculationStrategy, accounts, null, false,
-                recalculationCompoundingFrequencyOnDayType, recalculationCompoundingFrequencyDayOfWeekType,
-                recalculationRestFrequencyOnDayType, recalculationRestFrequencyDayOfWeekType);
+                recalculationRestFrequencyDate, recalculationCompoundingFrequencyType,
+                recalculationCompoundingFrequencyInterval, recalculationCompoundingFrequencyDate,
+                preCloseInterestCalculationStrategy, accounts, null, false, recalculationCompoundingFrequencyOnDayType,
+                recalculationCompoundingFrequencyDayOfWeekType, recalculationRestFrequencyOnDayType,
+                recalculationRestFrequencyDayOfWeekType);
     }
 
     private Integer createLoanProductWithInterestRecalculationAndCompoundingDetails(final String repaymentStrategy,
@@ -4280,14 +4510,16 @@ public class ClientLoanIntegrationTest {
             final String recalculationRestFrequencyDate, final String recalculationCompoundingFrequencyType,
             final String recalculationCompoundingFrequencyInterval, final String recalculationCompoundingFrequencyDate,
             final String preCloseInterestCalculationStrategy, final Account[] accounts,
-            final Integer recalculationCompoundingFrequencyOnDayType, final Integer recalculationCompoundingFrequencyDayOfWeekType,
+            final Integer recalculationCompoundingFrequencyOnDayType,
+            final Integer recalculationCompoundingFrequencyDayOfWeekType,
             final Integer recalculationRestFrequencyOnDayType, final Integer recalculationRestFrequencyDayOfWeekType) {
         return createLoanProductWithInterestRecalculation(repaymentStrategy, interestRecalculationCompoundingMethod,
                 rescheduleStrategyMethod, recalculationRestFrequencyType, recalculationRestFrequencyInterval,
-                recalculationRestFrequencyDate, recalculationCompoundingFrequencyType, recalculationCompoundingFrequencyInterval,
-                recalculationCompoundingFrequencyDate, preCloseInterestCalculationStrategy, accounts, null, false,
-                recalculationCompoundingFrequencyOnDayType, recalculationCompoundingFrequencyDayOfWeekType,
-                recalculationRestFrequencyOnDayType, recalculationRestFrequencyDayOfWeekType);
+                recalculationRestFrequencyDate, recalculationCompoundingFrequencyType,
+                recalculationCompoundingFrequencyInterval, recalculationCompoundingFrequencyDate,
+                preCloseInterestCalculationStrategy, accounts, null, false, recalculationCompoundingFrequencyOnDayType,
+                recalculationCompoundingFrequencyDayOfWeekType, recalculationRestFrequencyOnDayType,
+                recalculationRestFrequencyDayOfWeekType);
     }
 
     private Integer createLoanProductWithInterestRecalculation(final String repaymentStrategy,
@@ -4297,24 +4529,19 @@ public class ClientLoanIntegrationTest {
             final String recalculationCompoundingFrequencyInterval, final String recalculationCompoundingFrequencyDate,
             final String preCloseInterestCalculationStrategy, final Account[] accounts, final String chargeId,
             boolean isArrearsBasedOnOriginalSchedule, final Integer recalculationCompoundingFrequencyOnDayType,
-            final Integer recalculationCompoundingFrequencyDayOfWeekType, final Integer recalculationRestFrequencyOnDayType,
-            final Integer recalculationRestFrequencyDayOfWeekType) {
-        System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
-        LoanProductTestBuilder builder = new LoanProductTestBuilder()
-                .withPrincipal("10000000.00")
-                .withNumberOfRepayments("24")
-                .withRepaymentAfterEvery("1")
-                .withRepaymentTypeAsWeek()
-                .withinterestRatePerPeriod("2")
-                .withInterestRateFrequencyTypeAsMonths()
-                .withRepaymentStrategy(repaymentStrategy)
-                .withAmortizationTypeAsEqualPrincipalPayment()
-                .withInterestCalculationPeriodTypeAsRepaymentPeriod(true)
-                .withInterestTypeAsDecliningBalance()
+            final Integer recalculationCompoundingFrequencyDayOfWeekType,
+            final Integer recalculationRestFrequencyOnDayType, final Integer recalculationRestFrequencyDayOfWeekType) {
+        LOG.info("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
+        LoanProductTestBuilder builder = new LoanProductTestBuilder().withPrincipal("10000000.00")
+                .withNumberOfRepayments("24").withRepaymentAfterEvery("1").withRepaymentTypeAsWeek()
+                .withinterestRatePerPeriod("2").withInterestRateFrequencyTypeAsMonths()
+                .withRepaymentStrategy(repaymentStrategy).withAmortizationTypeAsEqualPrincipalPayment()
+                .withInterestCalculationPeriodTypeAsRepaymentPeriod(true).withInterestTypeAsDecliningBalance()
                 .withInterestRecalculationDetails(interestRecalculationCompoundingMethod, rescheduleStrategyMethod,
                         preCloseInterestCalculationStrategy)
-                .withInterestRecalculationRestFrequencyDetails(recalculationRestFrequencyType, recalculationRestFrequencyInterval,
-                        recalculationRestFrequencyOnDayType, recalculationRestFrequencyDayOfWeekType)
+                .withInterestRecalculationRestFrequencyDetails(recalculationRestFrequencyType,
+                        recalculationRestFrequencyInterval, recalculationRestFrequencyOnDayType,
+                        recalculationRestFrequencyDayOfWeekType)
                 .withInterestRecalculationCompoundingFrequencyDetails(recalculationCompoundingFrequencyType,
                         recalculationCompoundingFrequencyInterval, recalculationCompoundingFrequencyOnDayType,
                         recalculationCompoundingFrequencyDayOfWeekType);
@@ -4322,7 +4549,8 @@ public class ClientLoanIntegrationTest {
             builder = builder.withAccountingRulePeriodicAccrual(accounts);
         }
 
-        if (isArrearsBasedOnOriginalSchedule) builder = builder.withArrearsConfiguration();
+        if (isArrearsBasedOnOriginalSchedule)
+            builder = builder.withArrearsConfiguration();
 
         final String loanProductJSON = builder.build(chargeId);
         return this.loanTransactionHelper.getLoanProductId(loanProductJSON);
@@ -4330,27 +4558,28 @@ public class ClientLoanIntegrationTest {
 
     private Integer applyForLoanApplicationForInterestRecalculation(final Integer clientID, final Integer loanProductID,
             final String disbursementDate, final String repaymentStrategy, final List<HashMap> charges) {
-        return applyForLoanApplicationForInterestRecalculation(clientID, loanProductID, disbursementDate, repaymentStrategy, charges, null,
-                null);
+        return applyForLoanApplicationForInterestRecalculation(clientID, loanProductID, disbursementDate,
+                repaymentStrategy, charges, null, null);
     }
 
-    private Integer applyForLoanApplicationForInterestRecalculationWithMoratorium(final Integer clientID, final Integer loanProductID,
-            final String disbursementDate, final String repaymentStrategy, final List<HashMap> charges,
-            final String graceOnInterestPayment, final String graceOnPrincipalPayment) {
-        return applyForLoanApplicationForInterestRecalculation(clientID, loanProductID, disbursementDate, repaymentStrategy, charges,
-                graceOnInterestPayment, graceOnPrincipalPayment);
+    private Integer applyForLoanApplicationForInterestRecalculationWithMoratorium(final Integer clientID,
+            final Integer loanProductID, final String disbursementDate, final String repaymentStrategy,
+            final List<HashMap> charges, final String graceOnInterestPayment, final String graceOnPrincipalPayment) {
+        return applyForLoanApplicationForInterestRecalculation(clientID, loanProductID, disbursementDate,
+                repaymentStrategy, charges, graceOnInterestPayment, graceOnPrincipalPayment);
     }
 
     private Integer applyForLoanApplicationForInterestRecalculation(final Integer clientID, final Integer loanProductID,
-            final String disbursementDate, final String compoundingStartDate, final String repaymentStrategy, final List<HashMap> charges) {
-        return applyForLoanApplicationForInterestRecalculation(clientID, loanProductID, disbursementDate, repaymentStrategy, charges, null,
-                null);
+            final String disbursementDate, final String compoundingStartDate, final String repaymentStrategy,
+            final List<HashMap> charges) {
+        return applyForLoanApplicationForInterestRecalculation(clientID, loanProductID, disbursementDate,
+                repaymentStrategy, charges, null, null);
     }
 
     private Integer applyForLoanApplicationForInterestRecalculation(final Integer clientID, final Integer loanProductID,
             final String disbursementDate, final String repaymentStrategy, final List<HashMap> charges,
             final String graceOnInterestPayment, final String graceOnPrincipalPayment) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
+        LOG.info("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
         final String loanApplicationJSON = new LoanApplicationTestBuilder() //
                 .withPrincipal("10000.00") //
                 .withLoanTermFrequency("4") //
@@ -4372,24 +4601,32 @@ public class ClientLoanIntegrationTest {
         return this.loanTransactionHelper.getLoanId(loanApplicationJSON);
     }
 
-    private void verifyLoanRepaymentSchedule(final ArrayList<HashMap> loanSchedule, List<Map<String, Object>> expectedvalues) {
+    private void verifyLoanRepaymentSchedule(final ArrayList<HashMap> loanSchedule,
+            List<Map<String, Object>> expectedvalues) {
         int index = 1;
         verifyLoanRepaymentSchedule(loanSchedule, expectedvalues, index);
 
     }
 
-    private void verifyLoanRepaymentSchedule(final ArrayList<HashMap> loanSchedule, List<Map<String, Object>> expectedvalues, int index) {
-        System.out.println("--------------------VERIFYING THE PRINCIPAL DUES,INTEREST DUE AND DUE DATE--------------------------");
+    private void verifyLoanRepaymentSchedule(final ArrayList<HashMap> loanSchedule,
+            List<Map<String, Object>> expectedvalues, int index) {
+        LOG.info(
+                "--------------------VERIFYING THE PRINCIPAL DUES,INTEREST DUE AND DUE DATE--------------------------");
         for (Map<String, Object> values : expectedvalues) {
-            assertEquals("Checking for Due Date for  installment " + index, values.get("dueDate"), loanSchedule.get(index).get("dueDate"));
+            assertEquals("Checking for Due Date for  installment " + index, values.get("dueDate"),
+                    loanSchedule.get(index).get("dueDate"));
             validateNumberForEqualWithMsg("Checking for Principal Due for installment " + index,
-                    String.valueOf(values.get("principalDue")), String.valueOf(loanSchedule.get(index).get("principalDue")));
-            validateNumberForEqualWithMsg("Checking for Interest Due for installment " + index, String.valueOf(values.get("interestDue")),
+                    String.valueOf(values.get("principalDue")),
+                    String.valueOf(loanSchedule.get(index).get("principalDue")));
+            validateNumberForEqualWithMsg("Checking for Interest Due for installment " + index,
+                    String.valueOf(values.get("interestDue")),
                     String.valueOf(loanSchedule.get(index).get("interestDue")));
             validateNumberForEqualWithMsg("Checking for Fee charge Due for installment " + index,
-                    String.valueOf(values.get("feeChargesDue")), String.valueOf(loanSchedule.get(index).get("feeChargesDue")));
+                    String.valueOf(values.get("feeChargesDue")),
+                    String.valueOf(loanSchedule.get(index).get("feeChargesDue")));
             validateNumberForEqualWithMsg("Checking for Penalty charge Due for installment " + index,
-                    String.valueOf(values.get("penaltyChargesDue")), String.valueOf(loanSchedule.get(index).get("penaltyChargesDue")));
+                    String.valueOf(values.get("penaltyChargesDue")),
+                    String.valueOf(loanSchedule.get(index).get("penaltyChargesDue")));
             index++;
         }
     }
@@ -4420,8 +4657,8 @@ public class ClientLoanIntegrationTest {
         final Account expenseAccount = this.accountHelper.createExpenseAccount();
         final Account overpaymentAccount = this.accountHelper.createLiabilityAccount();
 
-        final Integer loanProductID = createLoanProduct("0", "0", LoanProductTestBuilder.DEFAULT_STRATEGY, CASH_BASED, assetAccount,
-                incomeAccount, expenseAccount, overpaymentAccount);
+        final Integer loanProductID = createLoanProduct("0", "0", LoanProductTestBuilder.DEFAULT_STRATEGY, CASH_BASED,
+                assetAccount, incomeAccount, expenseAccount, overpaymentAccount);
         Assert.assertNotNull(loanProductID);
 
         /***
@@ -4437,26 +4674,29 @@ public class ClientLoanIntegrationTest {
                 ChargesHelper.getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, "50", false));
         addCharges(charges, flatInstallmentFee, "50", null);
 
-        final Integer loanID = applyForLoanApplicationWithPaymentStrategyAndPastMonth(clientID, loanProductID, charges, savingsId,
-                principal, LoanApplicationTestBuilder.DEFAULT_STRATEGY, -4);
+        final Integer loanID = applyForLoanApplicationWithPaymentStrategyAndPastMonth(clientID, loanProductID, charges,
+                savingsId, principal, LoanApplicationTestBuilder.DEFAULT_STRATEGY, -4);
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan(fourMonthsfromNow, loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan(fourMonthsfromNow, loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
-        final JournalEntry[] assetAccountInitialEntry = { new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.CREDIT),
+        final JournalEntry[] assetAccountInitialEntry = {
+                new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.CREDIT),
                 new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.DEBIT) };
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, fourMonthsfromNow, assetAccountInitialEntry);
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, fourMonthsfromNow,
+                assetAccountInitialEntry);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         HashMap firstInstallment = loanSchedule.get(1);
         validateNumberForEqual("2290", String.valueOf(firstInstallment.get("totalOutstandingForPeriod")));
 
@@ -4478,10 +4718,12 @@ public class ClientLoanIntegrationTest {
         final String twoMonthsfromNow = Utils.convertDateToURLFormat(fourMonthsfromNowCalendar);
 
         this.loanTransactionHelper.makeRepayment(twoMonthsfromNow, Float.valueOf("2290"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, twoMonthsfromNow, new JournalEntry(Float.valueOf("2290"),
-                JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("2000"), JournalEntry.TransactionType.CREDIT));
-        this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, twoMonthsfromNow, new JournalEntry(Float.valueOf("50"),
-                JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("240"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, twoMonthsfromNow,
+                new JournalEntry(Float.valueOf("2290"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("2000"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, twoMonthsfromNow,
+                new JournalEntry(Float.valueOf("50"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("240"), JournalEntry.TransactionType.CREDIT));
 
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
@@ -4495,10 +4737,12 @@ public class ClientLoanIntegrationTest {
         final String oneMonthfromNow = Utils.convertDateToURLFormat(fourMonthsfromNowCalendar);
 
         this.loanTransactionHelper.makeRepayment(oneMonthfromNow, Float.valueOf("4580"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, oneMonthfromNow, new JournalEntry(Float.valueOf("4580"),
-                JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("4000"), JournalEntry.TransactionType.CREDIT));
-        this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, oneMonthfromNow, new JournalEntry(Float.valueOf("100"),
-                JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("480"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, oneMonthfromNow,
+                new JournalEntry(Float.valueOf("4580"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("4000"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, oneMonthfromNow,
+                new JournalEntry(Float.valueOf("100"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("480"), JournalEntry.TransactionType.CREDIT));
 
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
@@ -4516,8 +4760,9 @@ public class ClientLoanIntegrationTest {
         final String now = Utils.convertDateToURLFormat(fourMonthsfromNowCalendar);
 
         this.loanTransactionHelper.makeRefundByCash(now, Float.valueOf("20"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, now, new JournalEntry(Float.valueOf("20"),
-                JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("20"), JournalEntry.TransactionType.DEBIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, now,
+                new JournalEntry(Float.valueOf("20"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("20"), JournalEntry.TransactionType.DEBIT));
 
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
@@ -4533,11 +4778,12 @@ public class ClientLoanIntegrationTest {
         // refund 2000 means paid: principal 0, interest 220, fees 50, penalty 0
 
         this.loanTransactionHelper.makeRefundByCash(now, Float.valueOf("2000"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, now, new JournalEntry(Float.valueOf("2000"),
-                JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("1980"), JournalEntry.TransactionType.DEBIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, now,
+                new JournalEntry(Float.valueOf("2000"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("1980"), JournalEntry.TransactionType.DEBIT));
 
-        this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, now, new JournalEntry(Float.valueOf("20"),
-                JournalEntry.TransactionType.DEBIT));
+        this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, now,
+                new JournalEntry(Float.valueOf("20"), JournalEntry.TransactionType.DEBIT));
 
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
@@ -4575,9 +4821,9 @@ public class ClientLoanIntegrationTest {
         final Account expenseAccount = this.accountHelper.createExpenseAccount();
         final Account overpaymentAccount = this.accountHelper.createLiabilityAccount();
 
-        final Integer loanProductID = createLoanProduct("0", "0", LoanProductTestBuilder.DEFAULT_STRATEGY, ACCRUAL_UPFRONT, assetAccount,
-                incomeAccount, expenseAccount, overpaymentAccount);// ,
-                                                                   // LoanProductTestBuilder.EQUAL_INSTALLMENTS,
+        final Integer loanProductID = createLoanProduct("0", "0", LoanProductTestBuilder.DEFAULT_STRATEGY,
+                ACCRUAL_UPFRONT, assetAccount, incomeAccount, expenseAccount, overpaymentAccount);// ,
+                                                                                                  // LoanProductTestBuilder.EQUAL_INSTALLMENTS,
         // LoanProductTestBuilder.FLAT_BALANCE);
         Assert.assertNotNull(loanProductID);
 
@@ -4594,28 +4840,31 @@ public class ClientLoanIntegrationTest {
                 ChargesHelper.getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, "50", false));
         addCharges(charges, flatInstallmentFee, "50", null);
 
-        final Integer loanID = applyForLoanApplicationWithPaymentStrategyAndPastMonth(clientID, loanProductID, charges, savingsId,
-                principal, LoanApplicationTestBuilder.DEFAULT_STRATEGY, -4);
+        final Integer loanID = applyForLoanApplicationWithPaymentStrategyAndPastMonth(clientID, loanProductID, charges,
+                savingsId, principal, LoanApplicationTestBuilder.DEFAULT_STRATEGY, -4);
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan(fourMonthsfromNow, loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan(fourMonthsfromNow, loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
-        final JournalEntry[] assetAccountInitialEntry = { new JournalEntry(Float.valueOf("1440"), JournalEntry.TransactionType.DEBIT),
+        final JournalEntry[] assetAccountInitialEntry = {
+                new JournalEntry(Float.valueOf("1440"), JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(Float.valueOf("300.00"), JournalEntry.TransactionType.DEBIT),
                 new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.CREDIT),
                 new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.DEBIT) };
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, fourMonthsfromNow, assetAccountInitialEntry);
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, fourMonthsfromNow,
+                assetAccountInitialEntry);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         HashMap firstInstallment = loanSchedule.get(1);
         validateNumberForEqual("2290", String.valueOf(firstInstallment.get("totalOutstandingForPeriod")));
 
@@ -4637,8 +4886,9 @@ public class ClientLoanIntegrationTest {
         final String twoMonthsfromNow = Utils.convertDateToURLFormat(fourMonthsfromNowCalendar);
 
         this.loanTransactionHelper.makeRepayment(twoMonthsfromNow, Float.valueOf("2290"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, twoMonthsfromNow, new JournalEntry(Float.valueOf("2290"),
-                JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("2290"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, twoMonthsfromNow,
+                new JournalEntry(Float.valueOf("2290"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("2290"), JournalEntry.TransactionType.CREDIT));
 
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
@@ -4652,8 +4902,9 @@ public class ClientLoanIntegrationTest {
         final String oneMonthfromNow = Utils.convertDateToURLFormat(fourMonthsfromNowCalendar);
 
         this.loanTransactionHelper.makeRepayment(oneMonthfromNow, Float.valueOf("4580"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, oneMonthfromNow, new JournalEntry(Float.valueOf("4580"),
-                JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("4580"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, oneMonthfromNow,
+                new JournalEntry(Float.valueOf("4580"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("4580"), JournalEntry.TransactionType.CREDIT));
 
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
@@ -4671,8 +4922,9 @@ public class ClientLoanIntegrationTest {
         final String now = Utils.convertDateToURLFormat(fourMonthsfromNowCalendar);
 
         this.loanTransactionHelper.makeRefundByCash(now, Float.valueOf("20"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, now, new JournalEntry(Float.valueOf("20"),
-                JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("20"), JournalEntry.TransactionType.DEBIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, now,
+                new JournalEntry(Float.valueOf("20"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("20"), JournalEntry.TransactionType.DEBIT));
 
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
@@ -4688,11 +4940,12 @@ public class ClientLoanIntegrationTest {
         // refund 2000 means paid: principal 0, interest 220, fees 50, penalty 0
 
         this.loanTransactionHelper.makeRefundByCash(now, Float.valueOf("2000"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, now, new JournalEntry(Float.valueOf("2000"),
-                JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("1980"), JournalEntry.TransactionType.DEBIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, now,
+                new JournalEntry(Float.valueOf("2000"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("1980"), JournalEntry.TransactionType.DEBIT));
 
-        this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, now, new JournalEntry(Float.valueOf("20"),
-                JournalEntry.TransactionType.DEBIT));
+        this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, now,
+                new JournalEntry(Float.valueOf("20"), JournalEntry.TransactionType.DEBIT));
 
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
@@ -4720,17 +4973,20 @@ public class ClientLoanIntegrationTest {
         final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
         ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, clientID);
 
-        final Integer savingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec, MINIMUM_OPENING_BALANCE);
+        final Integer savingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec,
+                MINIMUM_OPENING_BALANCE);
         Assert.assertNotNull(savingsProductID);
 
-        final Integer savingsId = this.savingsAccountHelper.applyForSavingsApplication(clientID, savingsProductID, ACCOUNT_TYPE_INDIVIDUAL);
+        final Integer savingsId = this.savingsAccountHelper.applyForSavingsApplication(clientID, savingsProductID,
+                ACCOUNT_TYPE_INDIVIDUAL);
         Assert.assertNotNull(savingsProductID);
 
         HashMap modifications = this.savingsAccountHelper.updateSavingsAccount(clientID, savingsProductID, savingsId,
                 ACCOUNT_TYPE_INDIVIDUAL);
         Assert.assertTrue(modifications.containsKey("submittedOnDate"));
 
-        HashMap savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, savingsId);
+        HashMap savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec,
+                savingsId);
         SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap);
 
         savingsStatusHashMap = this.savingsAccountHelper.approveSavings(savingsId);
@@ -4748,8 +5004,8 @@ public class ClientLoanIntegrationTest {
         final Account expenseAccount = this.accountHelper.createExpenseAccount();
         final Account overpaymentAccount = this.accountHelper.createLiabilityAccount();
 
-        final Integer loanProductID = createLoanProduct("0", "0", LoanProductTestBuilder.DEFAULT_STRATEGY, CASH_BASED, assetAccount,
-                incomeAccount, expenseAccount, overpaymentAccount);
+        final Integer loanProductID = createLoanProduct("0", "0", LoanProductTestBuilder.DEFAULT_STRATEGY, CASH_BASED,
+                assetAccount, incomeAccount, expenseAccount, overpaymentAccount);
         Assert.assertNotNull(loanProductID);
 
         /***
@@ -4765,26 +5021,29 @@ public class ClientLoanIntegrationTest {
                 ChargesHelper.getLoanInstallmentJSON(ChargesHelper.CHARGE_CALCULATION_TYPE_FLAT, "50", false));
         addCharges(charges, flatInstallmentFee, "50", null);
 
-        final Integer loanID = applyForLoanApplicationWithPaymentStrategyAndPastMonth(clientID, loanProductID, charges, null, principal,
-                LoanApplicationTestBuilder.DEFAULT_STRATEGY, -4);
+        final Integer loanID = applyForLoanApplicationWithPaymentStrategyAndPastMonth(clientID, loanProductID, charges,
+                null, principal, LoanApplicationTestBuilder.DEFAULT_STRATEGY, -4);
         Assert.assertNotNull(loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan(fourMonthsfromNow, loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("-------------------------------DISBURSE LOAN-------------------------------------------");
+        LOG.info("-------------------------------DISBURSE LOAN-------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan(fourMonthsfromNow, loanID);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
-        final JournalEntry[] assetAccountInitialEntry = { new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.CREDIT),
+        final JournalEntry[] assetAccountInitialEntry = {
+                new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.CREDIT),
                 new JournalEntry(Float.valueOf("12000.00"), JournalEntry.TransactionType.DEBIT) };
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, fourMonthsfromNow, assetAccountInitialEntry);
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, fourMonthsfromNow,
+                assetAccountInitialEntry);
 
-        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
+        ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
+                this.responseSpec, loanID);
         HashMap firstInstallment = loanSchedule.get(1);
         validateNumberForEqual("2290", String.valueOf(firstInstallment.get("totalOutstandingForPeriod")));
 
@@ -4806,10 +5065,12 @@ public class ClientLoanIntegrationTest {
         final String twoMonthsfromNow = Utils.convertDateToURLFormat(fourMonthsfromNowCalendar);
 
         this.loanTransactionHelper.makeRepayment(twoMonthsfromNow, Float.valueOf("2290"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, twoMonthsfromNow, new JournalEntry(Float.valueOf("2290"),
-                JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("2000"), JournalEntry.TransactionType.CREDIT));
-        this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, twoMonthsfromNow, new JournalEntry(Float.valueOf("50"),
-                JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("240"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, twoMonthsfromNow,
+                new JournalEntry(Float.valueOf("2290"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("2000"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, twoMonthsfromNow,
+                new JournalEntry(Float.valueOf("50"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("240"), JournalEntry.TransactionType.CREDIT));
 
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
@@ -4823,10 +5084,12 @@ public class ClientLoanIntegrationTest {
         final String oneMonthfromNow = Utils.convertDateToURLFormat(fourMonthsfromNowCalendar);
 
         this.loanTransactionHelper.makeRepayment(oneMonthfromNow, Float.valueOf("4580"), loanID);
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, oneMonthfromNow, new JournalEntry(Float.valueOf("4580"),
-                JournalEntry.TransactionType.DEBIT), new JournalEntry(Float.valueOf("4000"), JournalEntry.TransactionType.CREDIT));
-        this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, oneMonthfromNow, new JournalEntry(Float.valueOf("100"),
-                JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("480"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, oneMonthfromNow,
+                new JournalEntry(Float.valueOf("4580"), JournalEntry.TransactionType.DEBIT),
+                new JournalEntry(Float.valueOf("4000"), JournalEntry.TransactionType.CREDIT));
+        this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, oneMonthfromNow,
+                new JournalEntry(Float.valueOf("100"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("480"), JournalEntry.TransactionType.CREDIT));
 
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
@@ -4848,8 +5111,8 @@ public class ClientLoanIntegrationTest {
         final String FROM_LOAN_ACCOUNT_TYPE = "1";
         final String TO_SAVINGS_ACCOUNT_TYPE = "2";
 
-        this.accountTransferHelper.refundLoanByTransfer(now, clientID, loanID, clientID, savingsId, FROM_LOAN_ACCOUNT_TYPE,
-                TO_SAVINGS_ACCOUNT_TYPE, TRANSFER_AMOUNT.toString());
+        this.accountTransferHelper.refundLoanByTransfer(now, clientID, loanID, clientID, savingsId,
+                FROM_LOAN_ACCOUNT_TYPE, TO_SAVINGS_ACCOUNT_TYPE, TRANSFER_AMOUNT.toString());
 
         Float toSavingsBalance = Float.valueOf(MINIMUM_OPENING_BALANCE);
 
@@ -4861,8 +5124,9 @@ public class ClientLoanIntegrationTest {
         assertEquals("Verifying From Savings Account Balance after Account Transfer", toSavingsBalance,
                 toSavingsSummaryAfter.get("accountBalance"));
 
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, now, new JournalEntry(Float.valueOf("20"),
-                JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("20"), JournalEntry.TransactionType.DEBIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, now,
+                new JournalEntry(Float.valueOf("20"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("20"), JournalEntry.TransactionType.DEBIT));
 
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
@@ -4880,8 +5144,8 @@ public class ClientLoanIntegrationTest {
 
         TRANSFER_AMOUNT = 2000f;
 
-        this.accountTransferHelper.refundLoanByTransfer(now, clientID, loanID, clientID, savingsId, FROM_LOAN_ACCOUNT_TYPE,
-                TO_SAVINGS_ACCOUNT_TYPE, TRANSFER_AMOUNT.toString());
+        this.accountTransferHelper.refundLoanByTransfer(now, clientID, loanID, clientID, savingsId,
+                FROM_LOAN_ACCOUNT_TYPE, TO_SAVINGS_ACCOUNT_TYPE, TRANSFER_AMOUNT.toString());
 
         toSavingsSummaryAfter = this.savingsAccountHelper.getSavingsSummary(savingsId);
 
@@ -4891,11 +5155,12 @@ public class ClientLoanIntegrationTest {
         assertEquals("Verifying From Savings Account Balance after Account Transfer", toSavingsBalance,
                 toSavingsSummaryAfter.get("accountBalance"));
 
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, now, new JournalEntry(Float.valueOf("2000"),
-                JournalEntry.TransactionType.CREDIT), new JournalEntry(Float.valueOf("1980"), JournalEntry.TransactionType.DEBIT));
+        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, now,
+                new JournalEntry(Float.valueOf("2000"), JournalEntry.TransactionType.CREDIT),
+                new JournalEntry(Float.valueOf("1980"), JournalEntry.TransactionType.DEBIT));
 
-        this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, now, new JournalEntry(Float.valueOf("20"),
-                JournalEntry.TransactionType.DEBIT));
+        this.journalEntryHelper.checkJournalEntryForIncomeAccount(incomeAccount, now,
+                new JournalEntry(Float.valueOf("20"), JournalEntry.TransactionType.DEBIT));
 
         loanSchedule.clear();
         loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
@@ -4907,13 +5172,13 @@ public class ClientLoanIntegrationTest {
 
     }
 
-    private Integer createSavingsProduct(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
-            final String minOpenningBalance) {
-        System.out.println("------------------------------CREATING NEW SAVINGS PRODUCT ---------------------------------------");
+    private Integer createSavingsProduct(final RequestSpecification requestSpec,
+            final ResponseSpecification responseSpec, final String minOpenningBalance) {
+        LOG.info("------------------------------CREATING NEW SAVINGS PRODUCT ---------------------------------------");
         SavingsProductHelper savingsProductHelper = new SavingsProductHelper();
 
         final String savingsProductJSON = savingsProductHelper
-        //
+                //
                 .withInterestCompoundingPeriodTypeAsDaily()
                 //
                 .withInterestPostingPeriodTypeAsMonthly()
@@ -4928,10 +5193,12 @@ public class ClientLoanIntegrationTest {
     public void testLoanProductConfiguration() {
         final String proposedAmount = "5000";
         JsonObject loanProductConfigurationAsTrue = new JsonObject();
-        loanProductConfigurationAsTrue = this.createLoanProductConfigurationDetail(loanProductConfigurationAsTrue, true);
+        loanProductConfigurationAsTrue = this.createLoanProductConfigurationDetail(loanProductConfigurationAsTrue,
+                true);
 
         JsonObject loanProductConfigurationAsFalse = new JsonObject();
-        loanProductConfigurationAsFalse = this.createLoanProductConfigurationDetail(loanProductConfigurationAsFalse, false);
+        loanProductConfigurationAsFalse = this.createLoanProductConfigurationDetail(loanProductConfigurationAsFalse,
+                false);
 
         final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec, "01 January 2012");
         Integer loanProductID = this.loanTransactionHelper.getLoanProductId(new LoanProductTestBuilder()
@@ -4939,23 +5206,25 @@ public class ClientLoanIntegrationTest {
                 .withRepaymentStrategy(LoanProductTestBuilder.DEFAULT_STRATEGY).withInterestTypeAsDecliningBalance()
                 .withInterestCalculationPeriodTypeAsDays().withInArrearsTolerance("10").withMoratorium("2", "3")
                 .withLoanProductConfiguration(loanProductConfigurationAsTrue).build(null));
-        System.out.println("-----------------------LOAN PRODUCT CREATED WITH ATTRIBUTE CONFIGURATION AS TRUE--------------------------"
-                + loanProductID);
+        LOG.info(
+                "-----------------------LOAN PRODUCT CREATED WITH ATTRIBUTE CONFIGURATION AS TRUE-------------------------- {}"
+                        , loanProductID);
         Integer loanID = applyForLoanApplicationWithProductConfigurationAsTrue(clientID, loanProductID, proposedAmount);
-        System.out.println("------------------------LOAN CREATED WITH ID------------------------------" + loanID);
-
-        loanProductID = this.loanTransactionHelper.getLoanProductId(new LoanProductTestBuilder().withAmortizationTypeAsEqualInstallments()
-                .withRepaymentTypeAsMonth().withRepaymentAfterEvery("1").withRepaymentStrategy(LoanProductTestBuilder.DEFAULT_STRATEGY)
-                .withInterestTypeAsDecliningBalance().withInterestCalculationPeriodTypeAsDays().withInArrearsTolerance("10")
-                .withMoratorium("2", "3").withLoanProductConfiguration(loanProductConfigurationAsFalse).build(null));
-        System.out.println("-------------------LOAN PRODUCT CREATED WITH ATTRIBUTE CONFIGURATION AS FALSE----------------------"
-                + loanProductID);
+        LOG.info("------------------------LOAN CREATED WITH ID------------------------------{}" , loanID);
+
+        loanProductID = this.loanTransactionHelper.getLoanProductId(new LoanProductTestBuilder()
+                .withAmortizationTypeAsEqualInstallments().withRepaymentTypeAsMonth().withRepaymentAfterEvery("1")
+                .withRepaymentStrategy(LoanProductTestBuilder.DEFAULT_STRATEGY).withInterestTypeAsDecliningBalance()
+                .withInterestCalculationPeriodTypeAsDays().withInArrearsTolerance("10").withMoratorium("2", "3")
+                .withLoanProductConfiguration(loanProductConfigurationAsFalse).build(null));
+        LOG.info("-------------------LOAN PRODUCT CREATED WITH ATTRIBUTE CONFIGURATION AS FALSE---------------------- {}"
+                , loanProductID);
         /*
          * Try to override attribute values in loan account when attribute
          * configurations are set to false at product level
          */
         loanID = applyForLoanApplicationWithProductConfigurationAsFalse(clientID, loanProductID, proposedAmount);
-        System.out.println("--------------------------LOAN CREATED WITH ID-------------------------" + loanID);
+        LOG.info("--------------------------LOAN CREATED WITH ID------------------------- {}" , loanID);
         this.validateIfValuesAreNotOverridden(loanID, loanProductID);
     }
 
@@ -4985,20 +5254,20 @@ public class ClientLoanIntegrationTest {
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        System.out.println("----------------------------------- APPROVE LOAN -----------------------------------------");
+        LOG.info("----------------------------------- APPROVE LOAN -----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan("20 September 2011", loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        System.out.println("----------------------------------- DISBURSE LOAN ----------------------------------------");
+        LOG.info("----------------------------------- DISBURSE LOAN ----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan("20 September 2011", loanID, "10,000.00");
-        System.out.println("DISBURSE " + loanStatusHashMap);
+        LOG.info("DISBURSE {}", loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
-        System.out.println("---------------------------------- Make repayment 1 --------------------------------------");
+        LOG.info("---------------------------------- Make repayment 1 --------------------------------------");
         this.loanTransactionHelper.makeRepayment("20 October 2011", Float.valueOf("2676.24"), loanID);
 
-        System.out.println("---------------------------------- FORECLOSE LOAN ----------------------------------------");
+        LOG.info("---------------------------------- FORECLOSE LOAN ----------------------------------------");
         this.loanTransactionHelper.forecloseLoan("08 November 2011", loanID);
 
         // retrieving the loan status
@@ -5013,11 +5282,12 @@ public class ClientLoanIntegrationTest {
     }
 
     private void validateIfValuesAreNotOverridden(Integer loanID, Integer loanProductID) {
-        String loanProductDetails = this.loanTransactionHelper.getLoanProductDetails(this.requestSpec, this.responseSpec, loanProductID);
+        String loanProductDetails = this.loanTransactionHelper.getLoanProductDetails(this.requestSpec,
+                this.responseSpec, loanProductID);
         String loanDetails = this.loanTransactionHelper.getLoanDetails(this.requestSpec, this.responseSpec, loanID);
-        List<String> comparisonAttributes = Arrays.asList("amortizationType", "interestType", "transactionProcessingStrategyId",
-                "interestCalculationPeriodType", "repaymentFrequencyType", "graceOnPrincipalPayment", "graceOnInterestPayment",
-                "inArrearsTolerance", "graceOnArrearsAgeing");
+        List<String> comparisonAttributes = Arrays.asList("amortizationType", "interestType",
+                "transactionProcessingStrategyId", "interestCalculationPeriodType", "repaymentFrequencyType",
+                "graceOnPrincipalPayment", "graceOnInterestPayment", "inArrearsTolerance", "graceOnArrearsAgeing");
 
         for (String comparisonAttribute : comparisonAttributes) {
             Object val1 = JsonPath.from(loanProductDetails).get(comparisonAttribute);
@@ -5038,9 +5308,9 @@ public class ClientLoanIntegrationTest {
         return loanProductConfiguration;
     }
 
-    private Integer applyForLoanApplicationWithProductConfigurationAsTrue(final Integer clientID, final Integer loanProductID,
-            String principal) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
+    private Integer applyForLoanApplicationWithProductConfigurationAsTrue(final Integer clientID,
+            final Integer loanProductID, String principal) {
+        LOG.info("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
         final String loanApplicationJSON = new LoanApplicationTestBuilder() //
                 .withPrincipal(principal) //
                 .withRepaymentEveryAfter("1") //
@@ -5056,9 +5326,9 @@ public class ClientLoanIntegrationTest {
         return this.loanTransactionHelper.getLoanId(loanApplicationJSON);
     }
 
-    private Integer applyForLoanApplicationWithProductConfigurationAsFalse(final Integer clientID, final Integer loanProductID,
-            String principal) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
+    private Integer applyForLoanApplicationWithProductConfigurationAsFalse(final Integer clientID,
+            final Integer loanProductID, String principal) {
+        LOG.info("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
         final String loanApplicationJSON = new LoanApplicationTestBuilder()
                 //
                 .withPrincipal(principal)
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientSavingsIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientSavingsIntegrationTest.java
index e48f864..24f7943 100755
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientSavingsIntegrationTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientSavingsIntegrationTest.java
@@ -56,13 +56,15 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Client Savings Integration Test for checking Savings Application.
  */
 @SuppressWarnings({ "rawtypes"})
 public class ClientSavingsIntegrationTest {
-
+    private final static Logger LOG = LoggerFactory.getLogger(ClientSavingsIntegrationTest.class);
     public static final String DEPOSIT_AMOUNT = "2000";
     public static final String WITHDRAW_AMOUNT = "1000";
     public static final String WITHDRAW_AMOUNT_ADJUSTED = "500";
@@ -970,8 +972,7 @@ public class ClientSavingsIntegrationTest {
                 decimalFormat.format(accountDetailsPostInterestPosted));
         assertEquals("Verifying interest posted", interestPosted,
                 accountDetailsPostInterestPosted);
-        System.out
-                .println("-----Post Interest As on Successfully Worked----------");
+        LOG.info("-----Post Interest As on Successfully Worked----------");
 
         transactionDate.set(Calendar.DAY_OF_MONTH, 3);
         TRANSACTION_DATE = dateFormat.format(transactionDate.getTime());
@@ -1007,8 +1008,7 @@ public class ClientSavingsIntegrationTest {
                 decimalFormat.format(accountDetailsPostInterestPosted));
         assertEquals("Verifying interest posted", interestPosted,
                 accountDetailsPostInterestPosted);
-        System.out
-                .println("-----Post Interest As on Successfully Worked-------");
+        LOG.info("-----Post Interest As on Successfully Worked-------");
 
         //DateFormat transactionFormat = new SimpleDateFormat("dd MMMM yyyy", Locale.US);
         Calendar transactionCalendarDateFormat = Calendar.getInstance();
@@ -1047,8 +1047,7 @@ public class ClientSavingsIntegrationTest {
                     decimalFormat.format(accountDetailsPostInterestPosted));
             assertEquals("Verifying interest posted", interestPosted,
                     accountDetailsPostInterestPosted);
-            System.out
-                    .println("-----Post Interest As on Successfully Worked----------");
+            LOG.info("-----Post Interest As on Successfully Worked----------");
         }
         DateFormat lastTransactionDateFormat = new SimpleDateFormat(
                 "dd MMMM yyyy", Locale.US);
@@ -1091,8 +1090,7 @@ public class ClientSavingsIntegrationTest {
                     decimalFormat.format(accountDetailsPostInterestPosted));
             assertEquals("Verifying interest posted", interestPosted,
                     accountDetailsPostInterestPosted);
-            System.out
-                    .println("-----Post Interest As on Successfully Worked----------");
+            LOG.info("-----Post Interest As on Successfully Worked----------");
 
         }
         transactionDate.set(Calendar.DAY_OF_MONTH, 1);
@@ -1128,8 +1126,7 @@ public class ClientSavingsIntegrationTest {
                 decimalFormat.format(accountDetailsPostInterestPosted));
         assertEquals("Verifying interest posted", interestPosted,
                 accountDetailsPostInterestPosted);
-        System.out
-                .println("-----Post Interest As on Successfully Worked----------");
+        LOG.info("-----Post Interest As on Successfully Worked----------");
 
     }
 
@@ -1313,8 +1310,7 @@ public class ClientSavingsIntegrationTest {
                 decimalFormat.format(accountDetailsPostInterestPosted));
         assertEquals("Verifying interest posted", interestPosted,
                 accountDetailsPostInterestPosted);
-        System.out
-                .println("-----Post Interest As on Successfully Worked----------");
+        LOG.info("-----Post Interest As on Successfully Worked----------");
 
         transactionDate.set(Calendar.DAY_OF_MONTH, 3);
         TRANSACTION_DATE = dateFormat.format(transactionDate.getTime());
@@ -1350,8 +1346,7 @@ public class ClientSavingsIntegrationTest {
                 decimalFormat.format(accountDetailsPostInterestPosted));
         assertEquals("Verifying interest posted", interestPosted,
                 accountDetailsPostInterestPosted);
-        System.out
-                .println("-----Post Interest As on Successfully Worked-------");
+        LOG.info("-----Post Interest As on Successfully Worked-------");
 
         //DateFormat transactionFormat = new SimpleDateFormat("dd MMMM yyyy", Locale.US);
         Calendar transactionCalendarDateFormat = Calendar.getInstance();
@@ -1390,8 +1385,7 @@ public class ClientSavingsIntegrationTest {
                     decimalFormat.format(accountDetailsPostInterestPosted));
             assertEquals("Verifying interest posted", interestPosted,
                     accountDetailsPostInterestPosted);
-            System.out
-                    .println("-----Post Interest As on Successfully Worked----------");
+            LOG.info("-----Post Interest As on Successfully Worked----------");
         }
         DateFormat lastTransactionDateFormat = new SimpleDateFormat(
                 "dd MMMM yyyy", Locale.US);
@@ -1434,8 +1428,7 @@ public class ClientSavingsIntegrationTest {
                     decimalFormat.format(accountDetailsPostInterestPosted));
             assertEquals("Verifying interest posted", interestPosted,
                     accountDetailsPostInterestPosted);
-            System.out
-                    .println("-----Post Interest As on Successfully Worked----------");
+            LOG.info("-----Post Interest As on Successfully Worked----------");
 
         }
         transactionDate.set(Calendar.DAY_OF_MONTH, 1);
@@ -1471,8 +1464,7 @@ public class ClientSavingsIntegrationTest {
                 decimalFormat.format(accountDetailsPostInterestPosted));
         assertEquals("Verifying interest posted", interestPosted,
                 accountDetailsPostInterestPosted);
-        System.out
-                .println("-----Post Interest As on Successfully Worked----------");
+        LOG.info("-----Post Interest As on Successfully Worked----------");
     }
 
     @SuppressWarnings("unchecked")
@@ -1619,7 +1611,7 @@ public class ClientSavingsIntegrationTest {
         interestPosted = Float.valueOf(decimalFormat.format(interestPosted));
         //actualInterestPosted = Float.valueOf(decimalFormat.format(accountDetailsPostInterestPosted));
         assertEquals("Verifying interest posted", interestPosted, accountDetailsPostInterestPosted);
-        System.out.println("------Post Interest As On After doing a post interest Successfully worked--------");
+        LOG.info("------Post Interest As On After doing a post interest Successfully worked--------");
 
         todaysDate = Calendar.getInstance();
         final String CLOSEDON_DATE = dateFormat.format(todaysDate.getTime());
@@ -1706,7 +1698,7 @@ public class ClientSavingsIntegrationTest {
         final String POSTED_TRANSACTION_DATE = dateFormat.format(postedDate.getTime());
         Calendar postedLastDate = Calendar.getInstance();
         int countOfDate=postedDate.getActualMaximum(Calendar.DAY_OF_MONTH);
-        System.out.println("count Of Date---> "+countOfDate);
+        LOG.info("count Of Date---> {}",countOfDate);
         postedLastDate.set(Calendar.DAY_OF_MONTH,countOfDate);
         final String POSTED_LAST_TRANSACTION_DATE = dateFormat.format(postedLastDate.getTime());
 
@@ -1786,7 +1778,7 @@ public class ClientSavingsIntegrationTest {
         interestPosted = Float.valueOf(decimalFormat.format(interestPosted));
         actualInterestPosted = Float.valueOf(decimalFormat.format(actualInterestPosted));
        assertEquals("Verifying interest posted", interestPosted, actualInterestPosted);
-       System.out.println("------Post Interest As On Successful Worked--------");
+       LOG.info("------Post Interest As On Successful Worked--------");
 
        this.savingsAccountHelper.postInterestAsOnSavings(savingsId, POSTED_LAST_TRANSACTION_DATE);
        HashMap accountLastDetails = this.savingsAccountHelper.getSavingsDetails(savingsId);
@@ -1806,7 +1798,7 @@ public class ClientSavingsIntegrationTest {
        interestLastPosted = Float.valueOf(decimalLastFormat.format(interestLastPosted));
        actualInterestPosted = Float.valueOf(decimalFormat.format(actualInterestPosted));
       assertEquals("Verifying interest posted", interestLastPosted, actualInterestPosted);
-      System.out.println("------Post Interest As On Successful Worked--------");
+      LOG.info("------Post Interest As On Successful Worked--------");
 
     }
 
@@ -2070,7 +2062,7 @@ public class ClientSavingsIntegrationTest {
     private Integer createSavingsProduct(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
             final String minOpenningBalance, String minBalanceForInterestCalculation, String minRequiredBalance,
             String enforceMinRequiredBalance, final boolean allowOverdraft, final String taxGroupId, boolean withDormancy) {
-        System.out.println("------------------------------CREATING NEW SAVINGS PRODUCT ---------------------------------------");
+        LOG.info("------------------------------CREATING NEW SAVINGS PRODUCT ---------------------------------------");
         SavingsProductHelper savingsProductHelper = new SavingsProductHelper();
         if (allowOverdraft) {
             final String overDraftLimit = "2000.0";
@@ -2104,7 +2096,7 @@ public class ClientSavingsIntegrationTest {
 
     /*
      * private void verifySavingsInterest(final Object savingsInterest) {
-     * System.out.println(
+     * LOG.info(
      * "--------------------VERIFYING THE BALANCE, INTEREST --------------------------"
      * );
      *
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientStatusChecker.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientStatusChecker.java
index 12863bb..f7892ba 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientStatusChecker.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ClientStatusChecker.java
@@ -21,41 +21,49 @@ package org.apache.fineract.integrationtests;
 import static org.junit.Assert.assertEquals;
 
 import java.util.HashMap;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class ClientStatusChecker {
+    private final static Logger LOG = LoggerFactory.getLogger(ClientStatusChecker.class);
 
     public static void verifyClientIsActive(final HashMap<String, Object> clientStatusHashMap) {
         assertEquals((int) clientStatusHashMap.get("id"), 300);
     }
 
     public static void verifyClientClosed(final HashMap<String, Object> clientStatusHashMap) {
-        System.out.println("\n-------------------------------------- VERIFYING CLIENT IS CLOSED ------------------------------------");
+        LOG.info(
+                "\n-------------------------------------- VERIFYING CLIENT IS CLOSED ------------------------------------");
         assertEquals((int) clientStatusHashMap.get("id"), 600);
-        System.out.println("Client Status:" + clientStatusHashMap + "\n");
+        LOG.info("Client Status: {} \n", clientStatusHashMap);
     }
 
     public static void verifyClientPending(final HashMap<String, Object> clientStatusHashMap) {
-        System.out.println("\n-------------------------------------- VERIFYING CLIENT IS PENDING ------------------------------------");
+        LOG.info(
+                "\n-------------------------------------- VERIFYING CLIENT IS PENDING ------------------------------------");
         assertEquals((int) clientStatusHashMap.get("id"), 100);
-        System.out.println("Client Status:" + clientStatusHashMap + "\n");
+        LOG.info("Client Status: {} \n", clientStatusHashMap);
     }
 
     public static void verifyClientRejected(final HashMap<String, Object> clientStatusHashMap) {
-        System.out.println("\n-------------------------------------- VERIFYING CLIENT IS REJECTED ------------------------------------");
+        LOG.info(
+                "\n-------------------------------------- VERIFYING CLIENT IS REJECTED ------------------------------------");
         assertEquals((int) clientStatusHashMap.get("id"), 700);
-        System.out.println("Client Status:" + clientStatusHashMap + "\n");
+        LOG.info("Client Status: {} \n", clientStatusHashMap);
     }
 
     public static void verifyClientActiavted(final HashMap<String, Object> clientStatusHashMap) {
-        System.out.println("\n-------------------------------------- VERIFYING CLIENT IS ACTIVATED ------------------------------------");
+        LOG.info(
+                "\n-------------------------------------- VERIFYING CLIENT IS ACTIVATED ------------------------------------");
         assertEquals((int) clientStatusHashMap.get("id"), 300);
-        System.out.println("Client Status:" + clientStatusHashMap + "\n");
+        LOG.info("Client Status: {} \n", clientStatusHashMap);
     }
 
     public static void verifyClientWithdrawn(final HashMap<String, Object> clientStatusHashMap) {
-        System.out.println("\n-------------------------------------- VERIFYING CLIENT IS WITHDRAWN ------------------------------------");
+        LOG.info(
+                "\n-------------------------------------- VERIFYING CLIENT IS WITHDRAWN ------------------------------------");
         assertEquals((int) clientStatusHashMap.get("id"), 800);
-        System.out.println("Client Status:" + clientStatusHashMap + "\n");
+        LOG.info("Client Status: {} \n", clientStatusHashMap);
     }
 
 }
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ConcurrencyIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ConcurrencyIntegrationTest.java
index 3c646d4..ec12ffe 100755
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ConcurrencyIntegrationTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ConcurrencyIntegrationTest.java
@@ -37,9 +37,11 @@ import org.apache.fineract.integrationtests.common.loans.LoanProductTestBuilder;
 import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class ConcurrencyIntegrationTest {
-
+    private final static Logger LOG = LoggerFactory.getLogger(ConcurrencyIntegrationTest.class);
     private ResponseSpecification responseSpec;
     private RequestSpecification requestSpec;
     private LoanTransactionHelper loanTransactionHelper;
@@ -73,7 +75,7 @@ public class ConcurrencyIntegrationTest {
         date.set(2011, 9, 20);
         Float repaymentAmount = 100.0f;
         for (int i = 0; i < 10; i++) {
-            System.out.println("Starting concurrent transaction number " + i);
+            LOG.info("Starting concurrent transaction number {}" , i);
             date.add(Calendar.DAY_OF_MONTH, 1);
             repaymentAmount = repaymentAmount + 100;
             Runnable worker = new LoanRepaymentExecutor(loanTransactionHelper, loanID, repaymentAmount, date);
@@ -85,12 +87,12 @@ public class ConcurrencyIntegrationTest {
         while (!executor.isTerminated()) {
 
         }
-        System.out.println("\nFinished all threads");
+        LOG.info("\nFinished all threads");
 
     }
 
     private Integer createLoanProduct(final boolean multiDisburseLoan, final String accountingRule, final Account... accounts) {
-        System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
+        LOG.info("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
         LoanProductTestBuilder builder = new LoanProductTestBuilder() //
                 .withPrincipal("12,000.00") //
                 .withNumberOfRepayments("4") //
@@ -111,7 +113,7 @@ public class ConcurrencyIntegrationTest {
     }
 
     private Integer applyForLoanApplication(final Integer clientID, final Integer loanProductID, String principal) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
+        LOG.info("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
         final String loanApplicationJSON = new LoanApplicationTestBuilder() //
                 .withPrincipal(principal) //
                 .withLoanTermFrequency("4") //
@@ -150,13 +152,12 @@ public class ConcurrencyIntegrationTest {
             try {
                 this.loanTransactionHelper.makeRepayment(repaymentDate, repaymentAmount, loanId);
             } catch (Exception e) {
-                System.out.println("Found an exception" + e.getMessage());
-                System.out.println("Details of failed concurrent transaction (date, amount, loanId) are " + repaymentDate + ","
-                        + repaymentAmount + "," + loanId);
+                LOG.info("Found an exception {}" , e.getMessage());
+                LOG.info("Details of failed concurrent transaction (date, amount, loanId) are {},{},{}" , repaymentDate, repaymentAmount , loanId);
                 throw (e);
             }
-            System.out.println("Details of passed concurrent transaction, details (date, amount, loanId) are " + repaymentDate + ","
-                    + repaymentAmount + "," + loanId);
+            LOG.info("Details of passed concurrent transaction, details (date, amount, loanId) are {},{},{}" , repaymentDate
+                    , repaymentAmount ,  loanId);
         }
     }
 
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/DisbursalAndRepaymentScheduleTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/DisbursalAndRepaymentScheduleTest.java
index 63bbe63..6753b4b 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/DisbursalAndRepaymentScheduleTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/DisbursalAndRepaymentScheduleTest.java
@@ -53,321 +53,362 @@ import org.junit.Test;
 @Ignore
 public class DisbursalAndRepaymentScheduleTest {
 
-    private ResponseSpecification responseSpec;
-    private ResponseSpecification responseSpecForStatusCode403;
-    private ResponseSpecification generalResponseSpec;
-    private RequestSpecification requestSpec;
-    private LoanTransactionHelper loanTransactionHelper;
-    private LoanRescheduleRequestHelper loanRescheduleRequestHelper;
-    private Integer loanRescheduleRequestId;
-    private Integer clientId;
-    private Integer groupId;
-    private Integer groupCalendarId;
-    private Integer loanProductId;
-    private Integer loanId;
-    private final String loanPrincipalAmount = "100000.00";
-    private final String numberOfRepayments = "12";
-    private final String interestRatePerPeriod = "18";
-
-    private final SimpleDateFormat dateFormatterStandard = new SimpleDateFormat("dd MMMM yyyy");
-
-    @Before
-    public void setup() {
-        Utils.initializeRESTAssured();
-    }
-
-    @Test
-    public void testRescheduleJLGLoanSynk() {
-        System.out.println("---------------------------------STARTING RESCHEDULE JLG LOAN TEST ------------------------------------------");
-
-        Calendar meetingCalendar = Calendar.getInstance();
-        meetingCalendar.setFirstDayOfWeek(Calendar.MONDAY);
-        meetingCalendar.setTime(new java.util.Date());
-
-        int today = meetingCalendar.get(Calendar.DAY_OF_WEEK);
-        // making sure that the meeting calendar is set for the coming monday.
-        if (today >= Calendar.MONDAY) {
-            meetingCalendar.add(Calendar.DAY_OF_YEAR, +(Calendar.MONDAY - today + 7));
-        } else {
-            meetingCalendar.add(Calendar.DAY_OF_YEAR, +(Calendar.MONDAY - today));
+        private ResponseSpecification responseSpec;
+        private ResponseSpecification responseSpecForStatusCode403;
+        private ResponseSpecification generalResponseSpec;
+        private RequestSpecification requestSpec;
+        private LoanTransactionHelper loanTransactionHelper;
+        private LoanRescheduleRequestHelper loanRescheduleRequestHelper;
+        private Integer loanRescheduleRequestId;
+        private Integer clientId;
+        private Integer groupId;
+        private Integer groupCalendarId;
+        private Integer loanProductId;
+        private Integer loanId;
+        private final String loanPrincipalAmount = "100000.00";
+        private final String numberOfRepayments = "12";
+        private final String interestRatePerPeriod = "18";
+
+        private final SimpleDateFormat dateFormatterStandard = new SimpleDateFormat("dd MMMM yyyy");
+
+        @Before
+        public void setup() {
+                Utils.initializeRESTAssured();
         }
 
-        Calendar groupMeetingChangeCalendar = (Calendar) meetingCalendar.clone();
-
-        meetingCalendar.add(Calendar.WEEK_OF_YEAR, -3);
-
-        final String groupMeetingDate = this.dateFormatterStandard.format(meetingCalendar.getTime());
-
-        final String disbursalDate = groupMeetingDate; // first meeting date
-        // after group creation
-
-        final String rescheduleSubmittedDate = this.dateFormatterStandard.format(new java.util.Date());
-
-        final String loanType = "jlg";
-        final String rescheduleInterestRate = "28.0";
-        groupMeetingChangeCalendar.add(Calendar.DAY_OF_YEAR, 1);
-        final String groupMeetingNewStartDate = this.dateFormatterStandard.format(groupMeetingChangeCalendar.getTime());
-        // The date
-        // from
-        // which we
-        // start the
-        // new group
-        // meeting
-        // occasion,
-        // this is a
-        // tuesday.
-        groupMeetingChangeCalendar.add(Calendar.WEEK_OF_YEAR, 2);
-        final String rescheduleDate = this.dateFormatterStandard.format(groupMeetingChangeCalendar.getTime());
-
-        this.requestSpec = new RequestSpecBuilder().setContentType(ContentType.JSON).build();
-        this.requestSpec.header("Authorization", "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey());
-        this.requestSpec.header("Fineract-Platform-TenantId", "default");
-        this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
-        this.generalResponseSpec = new ResponseSpecBuilder().build();
-        this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
-
-        this.loanRescheduleRequestHelper = new LoanRescheduleRequestHelper(this.requestSpec, this.responseSpec);
-        System.out.println("---------------------------------CREATING ENTITIES AND JLG LOAN ------------------------------------------");
-        // create all required entities
-        this.createRequiredEntitiesForJLGLoanSync(groupMeetingDate);
-
-        final String loanApplicationJSON = new LoanApplicationTestBuilder().withPrincipal(loanPrincipalAmount).withLoanTermFrequency("24")
-                .withLoanTermFrequencyAsWeeks().withNumberOfRepayments("12").withRepaymentEveryAfter("2")
-                .withRepaymentFrequencyTypeAsMonths().withAmortizationTypeAsEqualInstallments().withInterestCalculationPeriodTypeAsDays()
-                .withInterestRatePerPeriod(interestRatePerPeriod).withRepaymentFrequencyTypeAsWeeks().withSubmittedOnDate(disbursalDate)
-                .withExpectedDisbursementDate(disbursalDate).withLoanType(loanType).withSyncDisbursementWithMeetin()
-                .withCalendarID(this.groupCalendarId.toString())
-                .build(this.clientId.toString(), this.groupId.toString(), this.loanProductId.toString(), null);
-
-        this.loanId = this.loanTransactionHelper.getLoanId(loanApplicationJSON);
-
-        // Test for loan account is created
-        Assert.assertNotNull(this.loanId);
-        HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, this.loanId);
-
-        LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
-
-        // Test for loan account is created, can be approved
-        this.loanTransactionHelper.approveLoan(disbursalDate, this.loanId);
-        loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, this.loanId);
-        LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
-
-        // Test for loan account approved can be disbursed
-        this.loanTransactionHelper.disburseLoan(disbursalDate, this.loanId);
-        loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, this.loanId);
-        LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
-
-        System.out.println("---------------------------------CHANGING GROUP MEETING DATE ------------------------------------------");
-        CalendarHelper.updateMeetingCalendarForGroup(this.requestSpec, this.responseSpec, this.groupId, this.groupCalendarId.toString(),
-                groupMeetingNewStartDate, "2", "2", "2"); // New meeting dates
-                                                          // will be the tuesday
-                                                          // after the
-        // coming
-        // monday
-
-        ArrayList loanRepaymnetSchedule = this.loanTransactionHelper
-                .getLoanRepaymentSchedule(requestSpec, generalResponseSpec, this.loanId);
-
-        ArrayList dueDateLoanSchedule = (ArrayList) ((HashMap) loanRepaymnetSchedule.get(2)).get("dueDate");
-        Calendar dueDateCalendar = Calendar.getInstance();
-        dueDateCalendar.setFirstDayOfWeek(Calendar.MONDAY);
-        dueDateCalendar.set((Integer) dueDateLoanSchedule.get(0), (Integer) dueDateLoanSchedule.get(1) - 1,
-                (Integer) dueDateLoanSchedule.get(2));
-        assertEquals("AFTER MEETING CHANGE DATE THE NEXT REPAYMENT SHOULD BE ON TUESDAY", 3, dueDateCalendar.get(Calendar.DAY_OF_WEEK));
-
-        System.out.println("---------------------------------CREATING LOAN RESCHEDULE REQUEST------------------------------------------");
-
-        String requestJSON = new LoanRescheduleRequestTestBuilder().updateGraceOnInterest("2").updateGraceOnPrincipal("2")
-                .updateNewInterestRate(rescheduleInterestRate).updateRescheduleFromDate(rescheduleDate)
-                .updateSubmittedOnDate(rescheduleSubmittedDate).build(this.loanId.toString());
-
-        this.loanRescheduleRequestId = this.loanRescheduleRequestHelper.createLoanRescheduleRequest(requestJSON);
-        this.loanRescheduleRequestHelper.verifyCreationOfLoanRescheduleRequest(this.loanRescheduleRequestId);
-
-        loanRepaymnetSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(requestSpec, generalResponseSpec, this.loanId);
-        dueDateLoanSchedule = (ArrayList) ((HashMap) loanRepaymnetSchedule.get(2)).get("dueDate");
-        dueDateCalendar.set((Integer) dueDateLoanSchedule.get(0), (Integer) dueDateLoanSchedule.get(1) - 1,
-                (Integer) dueDateLoanSchedule.get(2));
-        assertEquals("AFTER MEETING CHANGE DATE THE NEXT REPAYMENT SHOULD BE ON TUESDAY, EVEN AFTER LOAN RESCHEDULE REQUEST WAS SENT", 3,
-                dueDateCalendar.get(Calendar.DAY_OF_WEEK));
-
-        System.out.println("Successfully created loan reschedule request (ID: " + this.loanRescheduleRequestId + ")");
-
-        System.out.println("-----------------------------APPROVING LOAN RESCHEDULE REQUEST--------------------------");
-
-        requestJSON = new LoanRescheduleRequestTestBuilder().updateSubmittedOnDate(rescheduleSubmittedDate)
-                .getApproveLoanRescheduleRequestJSON();
-        this.loanRescheduleRequestHelper.approveLoanRescheduleRequest(this.loanRescheduleRequestId, requestJSON);
-
-        final HashMap response = (HashMap) this.loanRescheduleRequestHelper.getLoanRescheduleRequest(loanRescheduleRequestId, "statusEnum");
-        assertTrue((Boolean) response.get("approved"));
-
-        loanRepaymnetSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(requestSpec, generalResponseSpec, this.loanId);
-
-        dueDateLoanSchedule = (ArrayList) ((HashMap) loanRepaymnetSchedule.get(2)).get("dueDate");
-        dueDateCalendar.set((Integer) dueDateLoanSchedule.get(0), (Integer) dueDateLoanSchedule.get(1) - 1,
-                (Integer) dueDateLoanSchedule.get(2));
-        assertEquals("AFTER MEETING CHANGE DATE THE NEXT REPAYMENT SHOULD BE ON TUESDAY, EVEN AFTER RESCHEDULE", 3,
-                dueDateCalendar.get(Calendar.DAY_OF_WEEK));
-        System.out.println("Successfully changed group meeting date (CAELNDAR ID: " + this.groupCalendarId
-                + ") and rescheduled loan (RESCHEDULE ID: " + this.loanRescheduleRequestId + ")");
-
-        this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpecForStatusCode403);
-    }
-
-    @Test
-    public void testChangeGroupMeetingMaturedOnDate() {
-        System.out
-                .println("---------------------------------STARTING GROUP LOAN MEETING CHANGE DATE EXPECTED MATURED CHANGE------------------------------------------");
-
-        Calendar meetingCalendar = Calendar.getInstance();
-        meetingCalendar.setFirstDayOfWeek(Calendar.MONDAY);
-        meetingCalendar.setTime(new java.util.Date());
-
-        int today = meetingCalendar.get(Calendar.DAY_OF_WEEK);
-        // making sure that the meeting calendar is set for the coming monday.
-        if (today >= Calendar.MONDAY) {
-            meetingCalendar.add(Calendar.DAY_OF_YEAR, +(Calendar.MONDAY - today + 7));
-        } else {
-            meetingCalendar.add(Calendar.DAY_OF_YEAR, +(Calendar.MONDAY - today));
+        @Test
+        public void testRescheduleJLGLoanSynk() {
+                // system.out.println("---------------------------------STARTING RESCHEDULE JLG
+                // LOAN TEST ------------------------------------------");
+
+                Calendar meetingCalendar = Calendar.getInstance();
+                meetingCalendar.setFirstDayOfWeek(Calendar.MONDAY);
+                meetingCalendar.setTime(new java.util.Date());
+
+                int today = meetingCalendar.get(Calendar.DAY_OF_WEEK);
+                // making sure that the meeting calendar is set for the coming monday.
+                if (today >= Calendar.MONDAY) {
+                        meetingCalendar.add(Calendar.DAY_OF_YEAR, +(Calendar.MONDAY - today + 7));
+                } else {
+                        meetingCalendar.add(Calendar.DAY_OF_YEAR, +(Calendar.MONDAY - today));
+                }
+
+                Calendar groupMeetingChangeCalendar = (Calendar) meetingCalendar.clone();
+
+                meetingCalendar.add(Calendar.WEEK_OF_YEAR, -3);
+
+                final String groupMeetingDate = this.dateFormatterStandard.format(meetingCalendar.getTime());
+
+                final String disbursalDate = groupMeetingDate; // first meeting date
+                // after group creation
+
+                final String rescheduleSubmittedDate = this.dateFormatterStandard.format(new java.util.Date());
+
+                final String loanType = "jlg";
+                final String rescheduleInterestRate = "28.0";
+                groupMeetingChangeCalendar.add(Calendar.DAY_OF_YEAR, 1);
+                final String groupMeetingNewStartDate = this.dateFormatterStandard
+                                .format(groupMeetingChangeCalendar.getTime());
+                // The date
+                // from
+                // which we
+                // start the
+                // new group
+                // meeting
+                // occasion,
+                // this is a
+                // tuesday.
+                groupMeetingChangeCalendar.add(Calendar.WEEK_OF_YEAR, 2);
+                final String rescheduleDate = this.dateFormatterStandard.format(groupMeetingChangeCalendar.getTime());
+
+                this.requestSpec = new RequestSpecBuilder().setContentType(ContentType.JSON).build();
+                this.requestSpec.header("Authorization",
+                                "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey());
+                this.requestSpec.header("Fineract-Platform-TenantId", "default");
+                this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
+                this.generalResponseSpec = new ResponseSpecBuilder().build();
+                this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
+
+                this.loanRescheduleRequestHelper = new LoanRescheduleRequestHelper(this.requestSpec, this.responseSpec);
+                // system.out.println("---------------------------------CREATING ENTITIES AND
+                // JLG LOAN ------------------------------------------");
+                // create all required entities
+                this.createRequiredEntitiesForJLGLoanSync(groupMeetingDate);
+
+                final String loanApplicationJSON = new LoanApplicationTestBuilder().withPrincipal(loanPrincipalAmount)
+                                .withLoanTermFrequency("24").withLoanTermFrequencyAsWeeks().withNumberOfRepayments("12")
+                                .withRepaymentEveryAfter("2").withRepaymentFrequencyTypeAsMonths()
+                                .withAmortizationTypeAsEqualInstallments().withInterestCalculationPeriodTypeAsDays()
+                                .withInterestRatePerPeriod(interestRatePerPeriod).withRepaymentFrequencyTypeAsWeeks()
+                                .withSubmittedOnDate(disbursalDate).withExpectedDisbursementDate(disbursalDate)
+                                .withLoanType(loanType).withSyncDisbursementWithMeetin()
+                                .withCalendarID(this.groupCalendarId.toString()).build(this.clientId.toString(),
+                                                this.groupId.toString(), this.loanProductId.toString(), null);
+
+                this.loanId = this.loanTransactionHelper.getLoanId(loanApplicationJSON);
+
+                // Test for loan account is created
+                Assert.assertNotNull(this.loanId);
+                HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec,
+                                this.loanId);
+
+                LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
+
+                // Test for loan account is created, can be approved
+                this.loanTransactionHelper.approveLoan(disbursalDate, this.loanId);
+                loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, this.loanId);
+                LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
+
+                // Test for loan account approved can be disbursed
+                this.loanTransactionHelper.disburseLoan(disbursalDate, this.loanId);
+                loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, this.loanId);
+                LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
+
+                // system.out.println("---------------------------------CHANGING GROUP MEETING
+                // DATE ------------------------------------------");
+                CalendarHelper.updateMeetingCalendarForGroup(this.requestSpec, this.responseSpec, this.groupId,
+                                this.groupCalendarId.toString(), groupMeetingNewStartDate, "2", "2", "2"); // New
+                                                                                                           // meeting
+                                                                                                           // dates
+                                                                                                           // will be
+                                                                                                           // the
+                                                                                                           // tuesday
+                                                                                                           // after the
+                // coming
+                // monday
+
+                ArrayList loanRepaymnetSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(requestSpec,
+                                generalResponseSpec, this.loanId);
+
+                ArrayList dueDateLoanSchedule = (ArrayList) ((HashMap) loanRepaymnetSchedule.get(2)).get("dueDate");
+                Calendar dueDateCalendar = Calendar.getInstance();
+                dueDateCalendar.setFirstDayOfWeek(Calendar.MONDAY);
+                dueDateCalendar.set((Integer) dueDateLoanSchedule.get(0), (Integer) dueDateLoanSchedule.get(1) - 1,
+                                (Integer) dueDateLoanSchedule.get(2));
+                assertEquals("AFTER MEETING CHANGE DATE THE NEXT REPAYMENT SHOULD BE ON TUESDAY", 3,
+                                dueDateCalendar.get(Calendar.DAY_OF_WEEK));
+
+                // system.out.println("---------------------------------CREATING LOAN RESCHEDULE
+                // REQUEST------------------------------------------");
+
+                String requestJSON = new LoanRescheduleRequestTestBuilder().updateGraceOnInterest("2")
+                                .updateGraceOnPrincipal("2").updateNewInterestRate(rescheduleInterestRate)
+                                .updateRescheduleFromDate(rescheduleDate).updateSubmittedOnDate(rescheduleSubmittedDate)
+                                .build(this.loanId.toString());
+
+                this.loanRescheduleRequestId = this.loanRescheduleRequestHelper
+                                .createLoanRescheduleRequest(requestJSON);
+                this.loanRescheduleRequestHelper.verifyCreationOfLoanRescheduleRequest(this.loanRescheduleRequestId);
+
+                loanRepaymnetSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(requestSpec,
+                                generalResponseSpec, this.loanId);
+                dueDateLoanSchedule = (ArrayList) ((HashMap) loanRepaymnetSchedule.get(2)).get("dueDate");
+                dueDateCalendar.set((Integer) dueDateLoanSchedule.get(0), (Integer) dueDateLoanSchedule.get(1) - 1,
+                                (Integer) dueDateLoanSchedule.get(2));
+                assertEquals("AFTER MEETING CHANGE DATE THE NEXT REPAYMENT SHOULD BE ON TUESDAY, EVEN AFTER LOAN RESCHEDULE REQUEST WAS SENT",
+                                3, dueDateCalendar.get(Calendar.DAY_OF_WEEK));
+
+                // system.out.println("Successfully created loan reschedule request (ID: " +
+                // this.loanRescheduleRequestId + ")");
+
+                // system.out.println("-----------------------------APPROVING LOAN RESCHEDULE
+                // REQUEST--------------------------");
+
+                requestJSON = new LoanRescheduleRequestTestBuilder().updateSubmittedOnDate(rescheduleSubmittedDate)
+                                .getApproveLoanRescheduleRequestJSON();
+                this.loanRescheduleRequestHelper.approveLoanRescheduleRequest(this.loanRescheduleRequestId,
+                                requestJSON);
+
+                final HashMap response = (HashMap) this.loanRescheduleRequestHelper
+                                .getLoanRescheduleRequest(loanRescheduleRequestId, "statusEnum");
+                assertTrue((Boolean) response.get("approved"));
+
+                loanRepaymnetSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(requestSpec,
+                                generalResponseSpec, this.loanId);
+
+                dueDateLoanSchedule = (ArrayList) ((HashMap) loanRepaymnetSchedule.get(2)).get("dueDate");
+                dueDateCalendar.set((Integer) dueDateLoanSchedule.get(0), (Integer) dueDateLoanSchedule.get(1) - 1,
+                                (Integer) dueDateLoanSchedule.get(2));
+                assertEquals("AFTER MEETING CHANGE DATE THE NEXT REPAYMENT SHOULD BE ON TUESDAY, EVEN AFTER RESCHEDULE",
+                                3, dueDateCalendar.get(Calendar.DAY_OF_WEEK));
+                // system.out.println("Successfully changed group meeting date (CAELNDAR ID: " +
+                // this.groupCalendarId
+                // + ") and rescheduled loan (RESCHEDULE ID: " + this.loanRescheduleRequestId +
+                // ")");
+
+                this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec,
+                                this.responseSpecForStatusCode403);
         }
 
-        Calendar groupMeetingChangeCalendar = (Calendar) meetingCalendar.clone();
-
-        meetingCalendar.add(Calendar.WEEK_OF_YEAR, -3);
-
-        final String groupMeetingDate = this.dateFormatterStandard.format(meetingCalendar.getTime());
-
-        final String disbursalDate = groupMeetingDate; // first meeting date
-                                                       // after group creation
-
-        final String loanType = "jlg";
-        groupMeetingChangeCalendar.add(Calendar.DAY_OF_YEAR, 1);
-        final String groupMeetingNewStartDate = this.dateFormatterStandard.format(groupMeetingChangeCalendar.getTime());
-        // The date
-        // from
-        // which we
-        // start the
-        // new group
-        // meeting
-        // occasion,
-        // this is a
-        // tuesday.
-
-        this.requestSpec = new RequestSpecBuilder().setContentType(ContentType.JSON).build();
-        this.requestSpec.header("Authorization", "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey());
-        this.requestSpec.header("Fineract-Platform-TenantId", "default");
-        this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
-        this.generalResponseSpec = new ResponseSpecBuilder().build();
-        this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
-
-        this.loanRescheduleRequestHelper = new LoanRescheduleRequestHelper(this.requestSpec, this.responseSpec);
-        System.out.println("---------------------------------CREATING ENTITIES AND JLG LOAN ------------------------------------------");
-        // create all required entities
-        this.createRequiredEntitiesForJLGLoanSync(groupMeetingDate);
-
-        final String loanApplicationJSON = new LoanApplicationTestBuilder().withPrincipal(loanPrincipalAmount).withLoanTermFrequency("24")
-                .withLoanTermFrequencyAsWeeks().withNumberOfRepayments("12").withRepaymentEveryAfter("2")
-                .withRepaymentFrequencyTypeAsMonths().withAmortizationTypeAsEqualInstallments().withInterestCalculationPeriodTypeAsDays()
-                .withInterestRatePerPeriod(interestRatePerPeriod).withRepaymentFrequencyTypeAsWeeks().withSubmittedOnDate(disbursalDate)
-                .withExpectedDisbursementDate(disbursalDate).withLoanType(loanType).withSyncDisbursementWithMeetin()
-                .withCalendarID(this.groupCalendarId.toString())
-                .build(this.clientId.toString(), this.groupId.toString(), this.loanProductId.toString(), null);
-
-        this.loanId = this.loanTransactionHelper.getLoanId(loanApplicationJSON);
-
-        // Test for loan account is created
-        Assert.assertNotNull(this.loanId);
-        HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, this.loanId);
-
-        LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
-
-        // Test for loan account is created, can be approved
-        this.loanTransactionHelper.approveLoan(disbursalDate, this.loanId);
-        loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, this.loanId);
-        LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
-
-        // Test for loan account approved can be disbursed
-        this.loanTransactionHelper.disburseLoan(disbursalDate, this.loanId);
-        loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, this.loanId);
-        LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
-
-        System.out.println("---------------------------------CHANGING GROUP MEETING DATE ------------------------------------------");
-        CalendarHelper.updateMeetingCalendarForGroup(this.requestSpec, this.responseSpec, this.groupId, this.groupCalendarId.toString(),
-                groupMeetingNewStartDate, "2", "2", "2"); // New meeting dates
-                                                          // will be the tuesday
-                                                          // after the
-                                                          // coming
-                                                          // monday
-
-        Calendar expectedMaturityCalendar = Calendar.getInstance();
-        expectedMaturityCalendar.setFirstDayOfWeek(Calendar.MONDAY);
-        ArrayList expectedMaturityDate = ((ArrayList) ((HashMap) this.loanTransactionHelper.getLoanDetail(requestSpec, generalResponseSpec,
-                this.loanId, "timeline")).get("expectedMaturityDate"));
-
-        expectedMaturityCalendar.set((Integer) expectedMaturityDate.get(0), (Integer) expectedMaturityDate.get(1) - 1,
-                (Integer) expectedMaturityDate.get(2));
-
-        assertEquals("AFTER MEETING CHANGE DATE THE EXPECTED MATURITY SHOULD BE ON TUESDAY", 3,
-                expectedMaturityCalendar.get(Calendar.DAY_OF_WEEK));
-
-        this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpecForStatusCode403);
-    }
-
-    /**
-     * entities for jlg loan
-     **/
-    private void createRequiredEntitiesForJLGLoanSync(final String groupActivationDate) {
-        this.createGroupEntityWithCalendar("2", "2", "1", groupActivationDate);// frequency=2:Weekly
-        // , interval=2:
-        // Every two weeks ,
-        // repeatsOnDay=1:Monday
-        // groupActivationDate is decided by the current date
-        this.createClientEntity();
-        this.associateClientToGroup(this.groupId, this.clientId);
-        this.createLoanProductEntity();
-
-    }
-
-    /*
-     * Associate client to the group
-     */
-
-    private void associateClientToGroup(final Integer groupId, final Integer clientId) {
-        GroupHelper.associateClient(this.requestSpec, this.responseSpec, groupId.toString(), clientId.toString());
-        GroupHelper.verifyGroupMembers(this.requestSpec, this.responseSpec, groupId, clientId);
-    }
-
-    private void createGroupEntityWithCalendar(final String frequency, final String interval, final String repeatsOnDay,
-            final String groupActivationDate) {
-        this.groupId = GroupHelper.createGroup(this.requestSpec, this.responseSpec, groupActivationDate);
-        GroupHelper.verifyGroupCreatedOnServer(this.requestSpec, this.responseSpec, this.groupId);
-
-        final String startDate = groupActivationDate;
-
-        this.setGroupCalendarId(CalendarHelper.createMeetingCalendarForGroup(this.requestSpec, this.responseSpec, this.groupId, startDate,
-                frequency, interval, repeatsOnDay));
-    }
-
-    /**
-     * create a new client
-     **/
-    private void createClientEntity() {
-        this.clientId = ClientHelper.createClient(this.requestSpec, this.responseSpec);
-        ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, this.clientId);
-    }
-
-    /**
-     * create a new loan product
-     **/
-    private void createLoanProductEntity() {
-        final String loanProductJSON = new LoanProductTestBuilder().withPrincipal(loanPrincipalAmount)
-                .withNumberOfRepayments(numberOfRepayments).withinterestRatePerPeriod(interestRatePerPeriod)
-                .withInterestRateFrequencyTypeAsYear().build(null);
-        this.loanProductId = this.loanTransactionHelper.getLoanProductId(loanProductJSON);
-    }
-
-    public void setGroupCalendarId(Integer groupCalendarId) {
-        this.groupCalendarId = groupCalendarId;
-    }
+        @Test
+        public void testChangeGroupMeetingMaturedOnDate() {
+                // system.out
+                // .println("---------------------------------STARTING GROUP LOAN MEETING CHANGE
+                // DATE EXPECTED MATURED CHANGE------------------------------------------");
+
+                Calendar meetingCalendar = Calendar.getInstance();
+                meetingCalendar.setFirstDayOfWeek(Calendar.MONDAY);
+                meetingCalendar.setTime(new java.util.Date());
+
+                int today = meetingCalendar.get(Calendar.DAY_OF_WEEK);
+                // making sure that the meeting calendar is set for the coming monday.
+                if (today >= Calendar.MONDAY) {
+                        meetingCalendar.add(Calendar.DAY_OF_YEAR, +(Calendar.MONDAY - today + 7));
+                } else {
+                        meetingCalendar.add(Calendar.DAY_OF_YEAR, +(Calendar.MONDAY - today));
+                }
+
+                Calendar groupMeetingChangeCalendar = (Calendar) meetingCalendar.clone();
+
+                meetingCalendar.add(Calendar.WEEK_OF_YEAR, -3);
+
+                final String groupMeetingDate = this.dateFormatterStandard.format(meetingCalendar.getTime());
+
+                final String disbursalDate = groupMeetingDate; // first meeting date
+                                                               // after group creation
+
+                final String loanType = "jlg";
+                groupMeetingChangeCalendar.add(Calendar.DAY_OF_YEAR, 1);
+                final String groupMeetingNewStartDate = this.dateFormatterStandard
+                                .format(groupMeetingChangeCalendar.getTime());
+                // The date
+                // from
+                // which we
+                // start the
+                // new group
+                // meeting
+                // occasion,
+                // this is a
+                // tuesday.
+
+                this.requestSpec = new RequestSpecBuilder().setContentType(ContentType.JSON).build();
+                this.requestSpec.header("Authorization",
+                                "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey());
+                this.requestSpec.header("Fineract-Platform-TenantId", "default");
+                this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
+                this.generalResponseSpec = new ResponseSpecBuilder().build();
+                this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
+
+                this.loanRescheduleRequestHelper = new LoanRescheduleRequestHelper(this.requestSpec, this.responseSpec);
+                // system.out.println("---------------------------------CREATING ENTITIES AND
+                // JLG LOAN ------------------------------------------");
+                // create all required entities
+                this.createRequiredEntitiesForJLGLoanSync(groupMeetingDate);
+
+                final String loanApplicationJSON = new LoanApplicationTestBuilder().withPrincipal(loanPrincipalAmount)
+                                .withLoanTermFrequency("24").withLoanTermFrequencyAsWeeks().withNumberOfRepayments("12")
+                                .withRepaymentEveryAfter("2").withRepaymentFrequencyTypeAsMonths()
+                                .withAmortizationTypeAsEqualInstallments().withInterestCalculationPeriodTypeAsDays()
+                                .withInterestRatePerPeriod(interestRatePerPeriod).withRepaymentFrequencyTypeAsWeeks()
+                                .withSubmittedOnDate(disbursalDate).withExpectedDisbursementDate(disbursalDate)
+                                .withLoanType(loanType).withSyncDisbursementWithMeetin()
+                                .withCalendarID(this.groupCalendarId.toString()).build(this.clientId.toString(),
+                                                this.groupId.toString(), this.loanProductId.toString(), null);
+
+                this.loanId = this.loanTransactionHelper.getLoanId(loanApplicationJSON);
+
+                // Test for loan account is created
+                Assert.assertNotNull(this.loanId);
+                HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec,
+                                this.loanId);
+
+                LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
+
+                // Test for loan account is created, can be approved
+                this.loanTransactionHelper.approveLoan(disbursalDate, this.loanId);
+                loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, this.loanId);
+                LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
+
+                // Test for loan account approved can be disbursed
+                this.loanTransactionHelper.disburseLoan(disbursalDate, this.loanId);
+                loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, this.loanId);
+                LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
+
+                // system.out.println("---------------------------------CHANGING GROUP MEETING
+                // DATE ------------------------------------------");
+                CalendarHelper.updateMeetingCalendarForGroup(this.requestSpec, this.responseSpec, this.groupId,
+                                this.groupCalendarId.toString(), groupMeetingNewStartDate, "2", "2", "2"); // New
+                                                                                                           // meeting
+                                                                                                           // dates
+                                                                                                           // will be
+                                                                                                           // the
+                                                                                                           // tuesday
+                                                                                                           // after the
+                                                                                                           // coming
+                                                                                                           // monday
+
+                Calendar expectedMaturityCalendar = Calendar.getInstance();
+                expectedMaturityCalendar.setFirstDayOfWeek(Calendar.MONDAY);
+                ArrayList expectedMaturityDate = ((ArrayList) ((HashMap) this.loanTransactionHelper
+                                .getLoanDetail(requestSpec, generalResponseSpec, this.loanId, "timeline"))
+                                                .get("expectedMaturityDate"));
+
+                expectedMaturityCalendar.set((Integer) expectedMaturityDate.get(0),
+                                (Integer) expectedMaturityDate.get(1) - 1, (Integer) expectedMaturityDate.get(2));
+
+                assertEquals("AFTER MEETING CHANGE DATE THE EXPECTED MATURITY SHOULD BE ON TUESDAY", 3,
+                                expectedMaturityCalendar.get(Calendar.DAY_OF_WEEK));
+
+                this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec,
+                                this.responseSpecForStatusCode403);
+        }
+
+        /**
+         * entities for jlg loan
+         **/
+        private void createRequiredEntitiesForJLGLoanSync(final String groupActivationDate) {
+                this.createGroupEntityWithCalendar("2", "2", "1", groupActivationDate);// frequency=2:Weekly
+                // , interval=2:
+                // Every two weeks ,
+                // repeatsOnDay=1:Monday
+                // groupActivationDate is decided by the current date
+                this.createClientEntity();
+                this.associateClientToGroup(this.groupId, this.clientId);
+                this.createLoanProductEntity();
+
+        }
+
+        /*
+         * Associate client to the group
+         */
+
+        private void associateClientToGroup(final Integer groupId, final Integer clientId) {
+                GroupHelper.associateClient(this.requestSpec, this.responseSpec, groupId.toString(),
+                                clientId.toString());
+                GroupHelper.verifyGroupMembers(this.requestSpec, this.responseSpec, groupId, clientId);
+        }
+
+        private void createGroupEntityWithCalendar(final String frequency, final String interval,
+                        final String repeatsOnDay, final String groupActivationDate) {
+                this.groupId = GroupHelper.createGroup(this.requestSpec, this.responseSpec, groupActivationDate);
+                GroupHelper.verifyGroupCreatedOnServer(this.requestSpec, this.responseSpec, this.groupId);
+
+                final String startDate = groupActivationDate;
+
+                this.setGroupCalendarId(CalendarHelper.createMeetingCalendarForGroup(this.requestSpec,
+                                this.responseSpec, this.groupId, startDate, frequency, interval, repeatsOnDay));
+        }
+
+        /**
+         * create a new client
+         **/
+        private void createClientEntity() {
+                this.clientId = ClientHelper.createClient(this.requestSpec, this.responseSpec);
+                ClientHelper.verifyClientCreatedOnServer(this.requestSpec, this.responseSpec, this.clientId);
+        }
+
+        /**
+         * create a new loan product
+         **/
+        private void createLoanProductEntity() {
+                final String loanProductJSON = new LoanProductTestBuilder().withPrincipal(loanPrincipalAmount)
+                                .withNumberOfRepayments(numberOfRepayments)
+                                .withinterestRatePerPeriod(interestRatePerPeriod).withInterestRateFrequencyTypeAsYear()
+                                .build(null);
+                this.loanProductId = this.loanTransactionHelper.getLoanProductId(loanProductJSON);
+        }
+
+        public void setGroupCalendarId(Integer groupCalendarId) {
+                this.groupCalendarId = groupCalendarId;
+        }
 }
\ No newline at end of file
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ExternalServicesConfigurationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ExternalServicesConfigurationTest.java
index a447893..8b69c6f 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ExternalServicesConfigurationTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/ExternalServicesConfigurationTest.java
@@ -30,10 +30,12 @@ import org.apache.fineract.integrationtests.common.Utils;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({ "rawtypes", "unchecked", "static-access" })
 public class ExternalServicesConfigurationTest {
-
+    private final static Logger LOG = LoggerFactory.getLogger(ExternalServicesConfigurationTest.class);
     private ResponseSpecification responseSpec;
     private RequestSpecification requestSpec;
     private ExternalServicesConfigurationHelper externalServicesConfigurationHelper;
@@ -67,7 +69,7 @@ public class ExternalServicesConfigurationTest {
                     value = "testnull";
                 }
                 String newValue = "test";
-                System.out.println(name + ":" + value);
+                LOG.info( "{} : {}",name, value);
                 HashMap arrayListValue = this.externalServicesConfigurationHelper.updateValueForExternaServicesConfiguration(requestSpec,
                         responseSpec, "S3", name, newValue);
                 Assert.assertNotNull(arrayListValue.get("value"));
@@ -95,7 +97,7 @@ public class ExternalServicesConfigurationTest {
                     value = "testnull";
                 }
                 String newValue = "test";
-                System.out.println(name + ":" + value);
+                LOG.info("{} : {}",name,value);
                 HashMap arrayListValue = this.externalServicesConfigurationHelper.updateValueForExternaServicesConfiguration(requestSpec,
                         responseSpec, "SMTP", name, newValue);
                 Assert.assertNotNull(arrayListValue.get("value"));
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/FixedDepositTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/FixedDepositTest.java
index 83e79f6..bf3cbe7 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/FixedDepositTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/FixedDepositTest.java
@@ -63,10 +63,12 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({ "unused", "unchecked", "rawtypes", "static-access" })
 public class FixedDepositTest {
-
+    private final static Logger LOG = LoggerFactory.getLogger(FixedDepositTest.class);
     private ResponseSpecification responseSpec;
     private RequestSpecification requestSpec;
     private FixedDepositProductHelper fixedDepositProductHelper;
@@ -1224,7 +1226,7 @@ public class FixedDepositTest {
         Float interestRate = this.fixedDepositAccountHelper.getInterestRate(interestRateChartData, depositPeriod);
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}" , perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         todaysDate.getActualMaximum(Calendar.DATE);
@@ -1236,7 +1238,7 @@ public class FixedDepositTest {
         decimalFormat.applyPattern(".");
         principal = Float.valueOf(decimalFormat.format(principal));
         maturityAmount = Float.valueOf(decimalFormat.format(maturityAmount));
-        System.out.println(principal);
+        LOG.info("{}",principal.toString());
         Assert.assertEquals("Verifying Maturity amount for Fixed Deposit Account", principal, maturityAmount);
     }
 
@@ -1298,7 +1300,7 @@ public class FixedDepositTest {
         Float interestRate = this.fixedDepositAccountHelper.getInterestRate(interestRateChartData, depositPeriod);
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}" , perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         todaysDate.getActualMaximum(Calendar.DATE);
@@ -1309,7 +1311,7 @@ public class FixedDepositTest {
         decimalFormat.applyPattern(".");
         principal = Float.valueOf(decimalFormat.format(principal));
         maturityAmount = Float.valueOf(decimalFormat.format(maturityAmount));
-        System.out.println(principal);
+        LOG.info("{}",principal.toString());
         Assert.assertEquals("Verifying Maturity amount for Fixed Deposit Account", principal, maturityAmount);
     }
 
@@ -1376,7 +1378,7 @@ public class FixedDepositTest {
         interestRate -= preClosurePenalInterestRate;
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}" , perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         todaysDate.add(Calendar.MONTH, -1);
@@ -1387,12 +1389,12 @@ public class FixedDepositTest {
         Float interestPerMonth = (float) (interestPerDay * principal * daysInMonth);
         principal += interestPerMonth;
         todaysDate.add(Calendar.DATE, daysInMonth);
-        System.out.println(monthDayFormat.format(todaysDate.getTime()));
+        LOG.info("{}",monthDayFormat.format(todaysDate.getTime()));
 
         interestPerMonth = (float) (interestPerDay * principal * currentDate);
-        System.out.println("IPM = " + interestPerMonth);
+        LOG.info("IPM = {}" , interestPerMonth);
         principal += interestPerMonth;
-        System.out.println("principal = " + principal);
+        LOG.info("principal = {}" , principal);
 
         this.fixedDepositAccountHelper.calculatePrematureAmountForFixedDeposit(fixedDepositAccountId,
                 CLOSED_ON_DATE);
@@ -1484,7 +1486,7 @@ public class FixedDepositTest {
         interestRate -= preClosurePenalInterestRate;
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}", perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         todaysDate.add(Calendar.MONTH, -1);
@@ -1495,12 +1497,12 @@ public class FixedDepositTest {
         Float interestPerMonth = (float) (interestPerDay * principal * daysInMonth);
         principal += interestPerMonth;
         todaysDate.add(Calendar.DATE, daysInMonth);
-        System.out.println(monthDayFormat.format(todaysDate.getTime()));
+         LOG.info("{}",monthDayFormat.format(todaysDate.getTime()));
 
         interestPerMonth = (float) (interestPerDay * principal * currentDate);
-        System.out.println("IPM = " + interestPerMonth);
+        LOG.info("IPM = {}" , interestPerMonth);
         principal += interestPerMonth;
-        System.out.println("principal = " + principal);
+        LOG.info("principal = {}" , principal);
 
         this.fixedDepositAccountHelper.calculatePrematureAmountForFixedDeposit(fixedDepositAccountId,
                 CLOSED_ON_DATE);
@@ -1597,7 +1599,7 @@ public class FixedDepositTest {
         interestRate -= preClosurePenalInterestRate;
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}" , perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         todaysDate.add(Calendar.MONTH, -1);
@@ -1608,12 +1610,12 @@ public class FixedDepositTest {
         Float interestPerMonth = (float) (interestPerDay * principal * daysInMonth);
         principal += interestPerMonth;
         todaysDate.add(Calendar.DATE, daysInMonth);
-        System.out.println(monthDayFormat.format(todaysDate.getTime()));
+         LOG.info("{}",monthDayFormat.format(todaysDate.getTime()));
 
         interestPerMonth = (float) (interestPerDay * principal * currentDate);
-        System.out.println("IPM = " + interestPerMonth);
+        LOG.info("IPM = {}" , interestPerMonth);
         principal += interestPerMonth;
-        System.out.println("principal = " + principal);
+        LOG.info("principal = {}" , principal);
 
         this.fixedDepositAccountHelper.calculatePrematureAmountForFixedDeposit(fixedDepositAccountId,
                 CLOSED_ON_DATE);
@@ -1713,7 +1715,7 @@ public class FixedDepositTest {
         interestRate -= preClosurePenalInterestRate;
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}" , perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         todaysDate.add(Calendar.MONTH, -1);
@@ -1724,12 +1726,12 @@ public class FixedDepositTest {
         Float interestPerMonth = (float) (interestPerDay * principal * daysInMonth);
         principal += interestPerMonth;
         todaysDate.add(Calendar.DATE, daysInMonth);
-        System.out.println(monthDayFormat.format(todaysDate.getTime()));
+         LOG.info("{}",monthDayFormat.format(todaysDate.getTime()));
 
         interestPerMonth = (float) (interestPerDay * principal * currentDate);
-        System.out.println("IPM = " + interestPerMonth);
+        LOG.info("IPM = {}" , interestPerMonth);
         principal += interestPerMonth;
-        System.out.println("principal = " + principal);
+        LOG.info("principal = {}" , principal);
 
         this.fixedDepositAccountHelper.calculatePrematureAmountForFixedDeposit(fixedDepositAccountId,
                 CLOSED_ON_DATE);
@@ -1812,7 +1814,7 @@ public class FixedDepositTest {
         Float interestRate = this.fixedDepositAccountHelper.getInterestRate(interestRateChartData, depositPeriod);
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}" , perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         todaysDate.getActualMaximum(Calendar.DATE);
@@ -1824,7 +1826,7 @@ public class FixedDepositTest {
         decimalFormat.applyPattern(".");
         principal = Float.valueOf(decimalFormat.format(principal));
         maturityAmount = Float.valueOf(decimalFormat.format(maturityAmount));
-        System.out.println(principal);
+        LOG.info("{}",principal.toString());
         Assert.assertEquals("Verifying Maturity amount for Fixed Deposit Account", principal, maturityAmount);
 
     }
@@ -1853,7 +1855,7 @@ public class FixedDepositTest {
         dateFormat.format(todaysDate.getTime());
         monthDayFormat.format(todaysDate.getTime());
 
-        System.out.println("Submitted Date:" + SUBMITTED_ON_DATE);
+        LOG.info("Submitted Date: {}" , SUBMITTED_ON_DATE);
         Integer clientId = ClientHelper.createClient(this.requestSpec, this.responseSpec);
         Assert.assertNotNull(clientId);
 
@@ -1889,7 +1891,7 @@ public class FixedDepositTest {
         Float interestRate = this.fixedDepositAccountHelper.getInterestRate(interestRateChartData, depositPeriod);
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}" , perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         todaysDate.getActualMaximum(Calendar.DATE);
@@ -1899,7 +1901,7 @@ public class FixedDepositTest {
 
         principal = new BigDecimal(principal).setScale(0, RoundingMode.FLOOR).floatValue();
         maturityAmount = new BigDecimal(maturityAmount).setScale(0, RoundingMode.FLOOR).floatValue();
-        System.out.println(principal);
+        LOG.info("{}",principal.toString());
         Assert.assertEquals("Verifying Maturity amount for Fixed Deposit Account", principal, maturityAmount);
 
     }
@@ -1925,7 +1927,7 @@ public class FixedDepositTest {
         Integer daysLeft = daysInMonth - currentDate;
         todaysDate.add(Calendar.DATE, (daysLeft + 1));
         daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
-        System.out.println(dateFormat.format(todaysDate.getTime()));
+        LOG.info("{}",dateFormat.format(todaysDate.getTime()));
         final String VALID_FROM = dateFormat.format(todaysDate.getTime());
 
         final String VALID_TO = null;
@@ -1971,7 +1973,7 @@ public class FixedDepositTest {
         Float interestRate = this.fixedDepositAccountHelper.getInterestRate(interestRateChartData, depositPeriod);
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}" , perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         principal = this.fixedDepositAccountHelper.getPrincipalAfterCompoundingInterest(todaysDate, principal, depositPeriod,
@@ -2009,7 +2011,7 @@ public class FixedDepositTest {
         Integer daysLeft = daysInMonth - currentDate;
         todaysDate.add(Calendar.DATE, (daysLeft + 1));
         daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
-        System.out.println(dateFormat.format(todaysDate.getTime()));
+        LOG.info("{}",dateFormat.format(todaysDate.getTime()));
         final String VALID_FROM = dateFormat.format(todaysDate.getTime());
 
         final String VALID_TO = null;
@@ -2055,7 +2057,7 @@ public class FixedDepositTest {
         Float interestRate = this.fixedDepositAccountHelper.getInterestRate(interestRateChartData, depositPeriod);
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}" , perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         principal = this.fixedDepositAccountHelper.getPrincipalAfterCompoundingInterest(todaysDate, principal, depositPeriod,
@@ -2094,7 +2096,7 @@ public class FixedDepositTest {
         Integer daysLeft = daysInMonth - currentDate;
         todaysDate.add(Calendar.DATE, (daysLeft + 1));
         daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
-        System.out.println(dateFormat.format(todaysDate.getTime()));
+        LOG.info("{}",dateFormat.format(todaysDate.getTime()));
         final String VALID_FROM = dateFormat.format(todaysDate.getTime());
 
         final String VALID_TO = null;
@@ -2137,7 +2139,7 @@ public class FixedDepositTest {
         Float interestRate = this.fixedDepositAccountHelper.getInterestRate(interestRateChartData, depositPeriod);
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}" , perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         principal = this.fixedDepositAccountHelper.getPrincipalAfterCompoundingInterest(todaysDate, principal, depositPeriod,
@@ -2176,7 +2178,7 @@ public class FixedDepositTest {
         Integer daysLeft = daysInMonth - currentDate;
         todaysDate.add(Calendar.DATE, (daysLeft + 1));
         daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
-        System.out.println(dateFormat.format(todaysDate.getTime()));
+        LOG.info("{}",dateFormat.format(todaysDate.getTime()));
         final String VALID_FROM = dateFormat.format(todaysDate.getTime());
 
         final String VALID_TO = null;
@@ -2219,7 +2221,7 @@ public class FixedDepositTest {
         Float interestRate = this.fixedDepositAccountHelper.getInterestRate(interestRateChartData, depositPeriod);
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}" ,perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         principal = this.fixedDepositAccountHelper.getPrincipalAfterCompoundingInterest(todaysDate, principal, depositPeriod,
@@ -2258,7 +2260,7 @@ public class FixedDepositTest {
         Integer daysLeft = daysInMonth - currentDate;
         todaysDate.add(Calendar.DATE, (daysLeft + 1));
         daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
-        System.out.println(dateFormat.format(todaysDate.getTime()));
+        LOG.info("{}",dateFormat.format(todaysDate.getTime()));
         final String VALID_FROM = dateFormat.format(todaysDate.getTime());
 
         final String VALID_TO = null;
@@ -2301,7 +2303,7 @@ public class FixedDepositTest {
         Float interestRate = this.fixedDepositAccountHelper.getInterestRate(interestRateChartData, depositPeriod);
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}" , perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         principal = this.fixedDepositAccountHelper.getPrincipalAfterCompoundingInterest(todaysDate, principal, depositPeriod,
@@ -2339,7 +2341,7 @@ public class FixedDepositTest {
         Integer daysLeft = daysInMonth - currentDate;
         todaysDate.add(Calendar.DATE, (daysLeft + 1));
         daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
-        System.out.println(dateFormat.format(todaysDate.getTime()));
+        LOG.info("{}",dateFormat.format(todaysDate.getTime()));
         final String VALID_FROM = dateFormat.format(todaysDate.getTime());
 
         final String VALID_TO = null;
@@ -2382,7 +2384,7 @@ public class FixedDepositTest {
         Float interestRate = this.fixedDepositAccountHelper.getInterestRate(interestRateChartData, depositPeriod);
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}" , perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         principal = this.fixedDepositAccountHelper.getPrincipalAfterCompoundingInterest(todaysDate, principal, depositPeriod,
@@ -2400,7 +2402,7 @@ public class FixedDepositTest {
 
     private Integer createFixedDepositProduct(final String validFrom, final String validTo, final String accountingRule,
             Account... accounts) {
-        System.out.println("------------------------------CREATING NEW FIXED DEPOSIT PRODUCT ---------------------------------------");
+        LOG.info("------------------------------CREATING NEW FIXED DEPOSIT PRODUCT ---------------------------------------");
         FixedDepositProductHelper fixedDepositProductHelper = new FixedDepositProductHelper(this.requestSpec, this.responseSpec);
         if (accountingRule.equals(CASH_BASED)) {
             fixedDepositProductHelper = fixedDepositProductHelper.withAccountingRuleAsCashBased(accounts);
@@ -2415,7 +2417,7 @@ public class FixedDepositTest {
 
     private Integer createFixedDepositProductWithWithHoldTax(final String validFrom, final String validTo, final String taxGroupId,
             final String accountingRule, Account... accounts) {
-        System.out.println("------------------------------CREATING NEW FIXED DEPOSIT PRODUCT ---------------------------------------");
+        LOG.info("------------------------------CREATING NEW FIXED DEPOSIT PRODUCT ---------------------------------------");
         FixedDepositProductHelper fixedDepositProductHelper = new FixedDepositProductHelper(this.requestSpec, this.responseSpec);
         if (accountingRule.equals(CASH_BASED)) {
             fixedDepositProductHelper = fixedDepositProductHelper.withAccountingRuleAsCashBased(accounts);
@@ -2430,7 +2432,7 @@ public class FixedDepositTest {
 
     private Integer createFixedDepositProduct(final String validFrom, final String validTo, final String accountingRule,
             final String chartToBePicked, Account... accounts) {
-        System.out.println("------------------------------CREATING NEW FIXED DEPOSIT PRODUCT ---------------------------------------");
+        LOG.info("------------------------------CREATING NEW FIXED DEPOSIT PRODUCT ---------------------------------------");
         FixedDepositProductHelper fixedDepositProductHelper = new FixedDepositProductHelper(this.requestSpec, this.responseSpec);
         if (accountingRule.equals(CASH_BASED)) {
             fixedDepositProductHelper = fixedDepositProductHelper.withAccountingRuleAsCashBased(accounts);
@@ -2461,7 +2463,7 @@ public class FixedDepositTest {
 
     private Integer applyForFixedDepositApplication(final String clientID, final String productID, final String submittedOnDate,
             final String penalInterestType) {
-        System.out.println("--------------------------------APPLYING FOR FIXED DEPOSIT ACCOUNT --------------------------------");
+        LOG.info("--------------------------------APPLYING FOR FIXED DEPOSIT ACCOUNT --------------------------------");
         final String fixedDepositApplicationJSON = new FixedDepositAccountHelper(this.requestSpec, this.responseSpec) //
                 .withSubmittedOnDate(submittedOnDate).build(clientID, productID, penalInterestType);
         return this.fixedDepositAccountHelper
@@ -2470,7 +2472,7 @@ public class FixedDepositTest {
 
     private Integer applyForFixedDepositApplication(final String clientID, final String productID, final String submittedOnDate,
             final String penalInterestType, final String depositAmount, final String depositPeriod) {
-        System.out.println("--------------------------------APPLYING FOR FIXED DEPOSIT ACCOUNT --------------------------------");
+        LOG.info("--------------------------------APPLYING FOR FIXED DEPOSIT ACCOUNT --------------------------------");
         final String fixedDepositApplicationJSON = new FixedDepositAccountHelper(this.requestSpec, this.responseSpec)
                 //
                 .withSubmittedOnDate(submittedOnDate).withDepositPeriod(depositPeriod).withDepositAmount(depositAmount)
@@ -2481,7 +2483,7 @@ public class FixedDepositTest {
 
     private Integer createSavingsProduct(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
             final String minOpenningBalance, final String accountingRule, Account... accounts) {
-        System.out.println("------------------------------CREATING NEW SAVINGS PRODUCT ---------------------------------------");
+        LOG.info("------------------------------CREATING NEW SAVINGS PRODUCT ---------------------------------------");
 
         SavingsProductHelper savingsProductHelper = new SavingsProductHelper();
         if (accountingRule.equals(CASH_BASED)) {
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/FlexibleSavingsInterestPostingIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/FlexibleSavingsInterestPostingIntegrationTest.java
index 368b3c4..57cd2af 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/FlexibleSavingsInterestPostingIntegrationTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/FlexibleSavingsInterestPostingIntegrationTest.java
@@ -39,10 +39,12 @@ import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({ "rawtypes", "unused", "unchecked" })
 public class FlexibleSavingsInterestPostingIntegrationTest {
-
+    private final static Logger LOG = LoggerFactory.getLogger(FlexibleSavingsInterestPostingIntegrationTest.class);
     public static final String ACCOUNT_TYPE_INDIVIDUAL = "INDIVIDUAL";
 
     private ResponseSpecification responseSpec;
@@ -84,7 +86,7 @@ public class FlexibleSavingsInterestPostingIntegrationTest {
         ArrayList<HashMap<String, Object>> transactions = (ArrayList<HashMap<String, Object>>) accountDetails.get("transactions");
         HashMap<String, Object> interestPostingTransaction = transactions.get(transactions.size() - 2);
         for (Entry<String, Object> entry : interestPostingTransaction.entrySet())
-            System.out.println(entry.getKey() + "-" + entry.getValue().toString());
+            LOG.info("{} - {}",entry.getKey(), entry.getValue().toString());
         // 1st Dec 13 to 31st March 14 - 365 days, daily compounding using daily
         // balance
         // 33.7016 obtained from formula in excel provided by Subramanya
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GroupTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GroupTest.java
index e99dd80..2a3d0a6 100755
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GroupTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/GroupTest.java
@@ -37,13 +37,15 @@ import org.apache.fineract.integrationtests.common.organisation.StaffHelper;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Group Test for checking Group: Creation, Activation, Client Association,
  * Updating & Deletion
  */
 public class GroupTest {
-
+    private final static Logger LOG = LoggerFactory.getLogger(GroupTest.class);
     private ResponseSpecification responseSpec;
     private RequestSpecification requestSpec;
     private LoanTransactionHelper loanTransactionHelper;
@@ -107,11 +109,11 @@ public class GroupTest {
 
         // create staff
         Integer createStaffId1 = StaffHelper.createStaff(this.requestSpec, this.responseSpec);
-        System.out.println("--------------creating first staff with id-------------" + createStaffId1);
+        LOG.info("--------------creating first staff with id------------- {}" , createStaffId1);
         Assert.assertNotNull(createStaffId1);
 
         Integer createStaffId2 = StaffHelper.createStaff(this.requestSpec, this.responseSpec);
-        System.out.println("--------------creating second staff with id-------------" + createStaffId2);
+        LOG.info("--------------creating second staff with id------------- {}" , createStaffId2);
         Assert.assertNotNull(createStaffId2);
 
         // assign staff "createStaffId1" to group
@@ -155,7 +157,7 @@ public class GroupTest {
     }
 
     private Integer applyForLoanApplication(final Integer clientID, final Integer loanProductID, String principal) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
+        LOG.info("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
         final String loanApplicationJSON = new LoanApplicationTestBuilder() //
                 .withPrincipal(principal) //
                 .withLoanTermFrequency("4") //
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/HookIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/HookIntegrationTest.java
index f1e301f..0e214a7 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/HookIntegrationTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/HookIntegrationTest.java
@@ -36,9 +36,11 @@ import org.apache.http.conn.HttpHostConnectException;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class HookIntegrationTest {
-
+    private final static Logger LOG = LoggerFactory.getLogger(HookIntegrationTest.class);
     private RequestSpecification requestSpec;
     private ResponseSpecification responseSpec;
 
@@ -77,7 +79,7 @@ public class HookIntegrationTest {
                     final Integer notificationOfficeId = JsonPath.with(json).get("officeId");
                     Assert.assertEquals("Equality check for created officeId and hook received payload officeId", createdOfficeID,
                             notificationOfficeId);
-                    System.out.println("Notification Office Id - " + notificationOfficeId);
+                    LOG.info("Notification Office Id - {}" , notificationOfficeId);
                     i = 6;
                 } catch (Exception e) {
                     TimeUnit.SECONDS.sleep(3);
@@ -102,13 +104,13 @@ public class HookIntegrationTest {
         Long hookId = this.hookHelper.createHook(payloadURL).longValue();
         Assert.assertNotNull(hookId);
         this.hookHelper.verifyHookCreatedOnServer(hookId);
-        System.out.println("---------------------SUCCESSFULLY CREATED AND VERIFIED HOOK-------------------------"+hookId);
+        LOG.info("---------------------SUCCESSFULLY CREATED AND VERIFIED HOOK------------------------- {}",hookId);
         this.hookHelper.updateHook(updateURL, hookId);
         this.hookHelper.verifyUpdateHook(updateURL, hookId);
-        System.out.println("---------------------SUCCESSFULLY UPDATED AND VERIFIED HOOK-------------------------"+hookId);
+        LOG.info("---------------------SUCCESSFULLY UPDATED AND VERIFIED HOOK------------------------- {}",hookId);
         this.hookHelper.deleteHook(hookId);
         this.hookHelper.verifyDeleteHook(hookId);
-        System.out.println("---------------------SUCCESSFULLY DELETED AND VERIFIED HOOK-------------------------"+hookId);
+        LOG.info("---------------------SUCCESSFULLY DELETED AND VERIFIED HOOK------------------------- {}",hookId);
 
     }
 }
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanApplicationApprovalTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanApplicationApprovalTest.java
index 044d73b..81d4fae 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanApplicationApprovalTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanApplicationApprovalTest.java
@@ -37,10 +37,12 @@ import org.apache.fineract.integrationtests.common.loans.LoanStatusChecker;
 import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @SuppressWarnings("rawtypes")
 public class LoanApplicationApprovalTest {
-
+    private final static Logger LOG = LoggerFactory.getLogger(LoanApplicationApprovalTest.class);
     private ResponseSpecification responseSpec;
     private ResponseSpecification responseSpecForStatusCode403;
     private ResponseSpecification responseSpecForStatusCode400;
@@ -128,14 +130,14 @@ public class LoanApplicationApprovalTest {
         createTranches.add(createTrancheDetail("23 March 2014", "4000"));
 
         final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec, "01 January 2014");
-        System.out.println("---------------------------------CLIENT CREATED WITH ID---------------------------------------------------"
-                + clientID);
+        LOG.info("---------------------------------CLIENT CREATED WITH ID--------------------------------------------------- {}"
+                , clientID);
 
         final Integer loanProductID = this.loanTransactionHelper.getLoanProductId(new LoanProductTestBuilder()
                 .withInterestTypeAsDecliningBalance().withTranches(true).withInterestCalculationPeriodTypeAsRepaymentPeriod(true)
                 .build(null));
-        System.out.println("----------------------------------LOAN PRODUCT CREATED WITH ID-------------------------------------------"
-                + loanProductID);
+        LOG.info("----------------------------------LOAN PRODUCT CREATED WITH ID------------------------------------------- {}"
+                , loanProductID);
 
         this.trancheLoansApprovedAmountLesserThanProposedAmount(clientID, loanProductID, createTranches);
         this.trancheLoansApprovalValidation(clientID, loanProductID, createTranches);
@@ -153,19 +155,18 @@ public class LoanApplicationApprovalTest {
         approveTranches.add(createTrancheDetail("23 March 2014", "1000"));
 
         final Integer loanID = applyForLoanApplicationWithTranches(clientID, loanProductID, proposedAmount, createTranches);
-        System.out.println("-----------------------------------LOAN CREATED WITH LOANID-------------------------------------------------"
-                + loanID);
+        LOG.info("-----------------------------------LOAN CREATED WITH LOANID------------------------------------------------- {}"
+                , loanID);
 
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoanWithApproveAmount(approveDate, expectedDisbursementDate, approvalAmount,
                 loanID, approveTranches);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
-        System.out
-                .println("-----------------------------------MULTI DISBURSAL LOAN APPROVED SUCCESSFULLY---------------------------------------");
+        LOG.info("-----------------------------------MULTI DISBURSAL LOAN APPROVED SUCCESSFULLY---------------------------------------");
 
     }
 
@@ -200,13 +201,13 @@ public class LoanApplicationApprovalTest {
         approveTranche4.add(createTrancheDetail("24 March 2014", "100"));
 
         final Integer loanID = applyForLoanApplicationWithTranches(clientID, loanProductID, proposedAmount, createTranches);
-        System.out.println("-----------------------------------LOAN CREATED WITH LOANID-------------------------------------------------"
-                + loanID);
+        LOG.info("-----------------------------------LOAN CREATED WITH LOANID------------------------------------------------- {}"
+                , loanID);
 
         HashMap<String, Object> loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
         this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpecForStatusCode400);
 
         /* Tranches with same expected disbursement date */
@@ -256,7 +257,7 @@ public class LoanApplicationApprovalTest {
 
     public Integer applyForLoanApplicationWithTranches(final Integer clientID, final Integer loanProductID, String principal,
             List<HashMap> tranches) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
+        LOG.info("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
         final String loanApplicationJSON = new LoanApplicationTestBuilder()
         //
                 .withPrincipal(principal)
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanApplicationUndoLastTrancheTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanApplicationUndoLastTrancheTest.java
index 04b4d24..a2ccea4 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanApplicationUndoLastTrancheTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanApplicationUndoLastTrancheTest.java
@@ -35,10 +35,12 @@ import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @SuppressWarnings("rawtypes")
 public class LoanApplicationUndoLastTrancheTest {
-
+    private final static Logger LOG = LoggerFactory.getLogger(LoanApplicationUndoLastTrancheTest.class);
     private ResponseSpecification responseSpec;
     private RequestSpecification requestSpec;
     private LoanTransactionHelper loanTransactionHelper;
@@ -65,15 +67,15 @@ public class LoanApplicationUndoLastTrancheTest {
 
         // CREATE CLIENT
         final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec, "01 January 2014");
-        System.out.println("---------------------------------CLIENT CREATED WITH ID---------------------------------------------------"
-                + clientID);
+        LOG.info("---------------------------------CLIENT CREATED WITH ID--------------------------------------------------- {}"
+                , clientID);
 
         // CREATE LOAN MULTIDISBURSAL PRODUCT
         final Integer loanProductID = this.loanTransactionHelper.getLoanProductId(new LoanProductTestBuilder()
                 .withInterestTypeAsDecliningBalance().withTranches(true).withInterestCalculationPeriodTypeAsRepaymentPeriod(true)
                 .build(null));
-        System.out.println("----------------------------------LOAN PRODUCT CREATED WITH ID-------------------------------------------"
-                + loanProductID);
+        LOG.info("----------------------------------LOAN PRODUCT CREATED WITH ID------------------------------------------- {}"
+                , loanProductID);
 
         // CREATE TRANCHES
         List<HashMap> createTranches = new ArrayList<>();
@@ -87,14 +89,14 @@ public class LoanApplicationUndoLastTrancheTest {
 
         // APPLY FOR LOAN WITH TRANCHES
         final Integer loanID = applyForLoanApplicationWithTranches(clientID, loanProductID, proposedAmount, createTranches);
-        System.out.println("-----------------------------------LOAN CREATED WITH LOANID-------------------------------------------------"
-                + loanID);
+        LOG.info("-----------------------------------LOAN CREATED WITH LOANID------------------------------------------------- {}"
+                , loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
 
         // VALIDATE THE LOAN STATUS
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoanWithApproveAmount(approveDate, expectedDisbursementDate, approvalAmount,
                 loanID, approveTranches);
 
@@ -109,11 +111,11 @@ public class LoanApplicationUndoLastTrancheTest {
         // VALIDATE THE LOAN IS ACTIVE STATUS
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
-        System.out.println("-------------Make repayment 1-----------");
+        LOG.info("-------------Make repayment 1-----------");
         this.loanTransactionHelper.makeRepayment("01 April 2014", Float.valueOf("420"), loanID);
-        System.out.println("-------------Make repayment 2-----------");
+        LOG.info("-------------Make repayment 2-----------");
         this.loanTransactionHelper.makeRepayment("01 May 2014", Float.valueOf("412"), loanID);
-        System.out.println("-------------Make repayment 3-----------");
+        LOG.info("-------------Make repayment 3-----------");
         this.loanTransactionHelper.makeRepayment("01 June 2014", Float.valueOf("204"), loanID);
         // DISBURSE A SECOND TRANCHE
         this.loanTransactionHelper.disburseLoan("23 June 2014", loanID);
@@ -129,7 +131,7 @@ public class LoanApplicationUndoLastTrancheTest {
 
     public Integer applyForLoanApplicationWithTranches(final Integer clientID, final Integer loanProductID, String principal,
             List<HashMap> tranches) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
+        LOG.info("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
         final String loanApplicationJSON = new LoanApplicationTestBuilder()
         //
                 .withPrincipal(principal)
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanDisbursalDateValidationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanDisbursalDateValidationTest.java
index 64b9ee4..abc9640 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanDisbursalDateValidationTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanDisbursalDateValidationTest.java
@@ -35,10 +35,12 @@ import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @SuppressWarnings("rawtypes")
 public class LoanDisbursalDateValidationTest {
-
+    private final static Logger LOG = LoggerFactory.getLogger(LoanDisbursalDateValidationTest.class);
     private ResponseSpecification responseSpec;
     private RequestSpecification requestSpec;
     private LoanTransactionHelper loanTransactionHelper;
@@ -63,25 +65,25 @@ public class LoanDisbursalDateValidationTest {
 
         // CREATE CLIENT
         final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec, "01 January 2014");
-        System.out.println("---------------------------------CLIENT CREATED WITH ID---------------------------------------------------"
-                + clientID);
+        LOG.info("---------------------------------CLIENT CREATED WITH ID--------------------------------------------------- {}"
+                , clientID);
 
         // CREATE LOAN  PRODUCT
         final Integer loanProductID = this.loanTransactionHelper.getLoanProductId(new LoanProductTestBuilder()
                 .withSyncExpectedWithDisbursementDate(true).build(null));
-        System.out.println("----------------------------------LOAN PRODUCT CREATED WITH ID-------------------------------------------"
-                + loanProductID);
+        LOG.info("----------------------------------LOAN PRODUCT CREATED WITH ID------------------------------------------- {}"
+                , loanProductID);
 
         // APPLY FOR LOAN
         final Integer loanID = applyForLoanApplication(clientID, loanProductID, proposedAmount);
-        System.out.println("-----------------------------------LOAN CREATED WITH LOANID-------------------------------------------------"
-                + loanID);
+        LOG.info("-----------------------------------LOAN CREATED WITH LOANID------------------------------------------------- {}"
+                , loanID);
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
 
         // VALIDATE THE LOAN STATUS
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan(approveDate, loanID);
 
         // VALIDATE THE LOAN IS APPROVED
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanDisbursementDetailsIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanDisbursementDetailsIntegrationTest.java
index c5b936b..35be2ff 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanDisbursementDetailsIntegrationTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanDisbursementDetailsIntegrationTest.java
@@ -39,10 +39,12 @@ import org.apache.fineract.integrationtests.common.loans.LoanStatusChecker;
 import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({ "rawtypes", "unchecked" })
 public class LoanDisbursementDetailsIntegrationTest {
-
+    private final static Logger LOG = LoggerFactory.getLogger(LoanDisbursementDetailsIntegrationTest.class);
     private ResponseSpecification responseSpec;
     private RequestSpecification requestSpec;
     private LoanTransactionHelper loanTransactionHelper;
@@ -73,21 +75,20 @@ public class LoanDisbursementDetailsIntegrationTest {
         createTranches.add(this.loanTransactionHelper.createTrancheDetail(id, "01 Sep 2015", "5000"));
 
         final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec, "01 January 2014");
-        System.out.println("---------------------------------CLIENT CREATED WITH ID---------------------------------------------------"
-                + clientID);
+        LOG.info("---------------------------------CLIENT CREATED WITH ID---------------------------------------------------{}"
+                , clientID);
 
         final Integer loanProductID = this.loanTransactionHelper.getLoanProductId(new LoanProductTestBuilder()
                 .withInterestTypeAsDecliningBalance().withMoratorium("", "").withAmortizationTypeAsEqualInstallments().withTranches(true)
                 .withInterestCalculationPeriodTypeAsRepaymentPeriod(true).build(null));
-        System.out.println("----------------------------------LOAN PRODUCT CREATED WITH ID-------------------------------------------"
-                + loanProductID);
+        LOG.info("----------------------------------LOAN PRODUCT CREATED WITH ID------------------------------------------- {}"
+                , loanProductID);
 
         final Integer loanIDWithEmi = applyForLoanApplicationWithEmiAmount(clientID, loanProductID, proposedAmount, createTranches,
                 installmentAmount);
 
-        System.out
-                .println("-----------------------------------LOAN CREATED WITH EMI LOANID-------------------------------------------------"
-                        + loanIDWithEmi);
+        LOG.info("-----------------------------------LOAN CREATED WITH EMI LOANID------------------------------------------------- {}"
+                        , loanIDWithEmi);
 
         HashMap repaymentScheduleWithEmi = (HashMap) this.loanTransactionHelper.getLoanDetail(this.requestSpec, this.responseSpec,
                 loanIDWithEmi, "repaymentSchedule");
@@ -100,13 +101,12 @@ public class LoanDisbursementDetailsIntegrationTest {
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanIDWithEmi);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoanWithApproveAmount("01 June 2015", "01 June 2015", "10000", loanIDWithEmi,
                 createTranches);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
-        System.out
-                .println("-----------------------------------MULTI DISBURSAL LOAN WITH EMI APPROVED SUCCESSFULLY---------------------------------------");
+        LOG.info("-----------------------------------MULTI DISBURSAL LOAN WITH EMI APPROVED SUCCESSFULLY---------------------------------------");
 
         final Integer loanIDWithoutEmi = applyForLoanApplicationWithEmiAmount(clientID, loanProductID, proposedAmount, createTranches,
                 withoutInstallmentAmount);
@@ -117,9 +117,8 @@ public class LoanDisbursementDetailsIntegrationTest {
         ArrayList<HashMap> periods1 = (ArrayList<HashMap>) repaymentScheduleWithEmi.get("periods");
         assertEquals(periods1.size(), 15);
 
-        System.out
-                .println("-----------------------------------LOAN CREATED WITHOUT EMI LOANID-------------------------------------------------"
-                        + loanIDWithoutEmi);
+        LOG.info("-----------------------------------LOAN CREATED WITHOUT EMI LOANID------------------------------------------------- {}"
+                        , loanIDWithoutEmi);
 
         /* To be uncommented once issue MIFOSX-2006 is closed. */
         // this.validateRepaymentScheduleWithoutEMI(periods1);
@@ -127,13 +126,12 @@ public class LoanDisbursementDetailsIntegrationTest {
         HashMap loanStatusMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanIDWithoutEmi);
         LoanStatusChecker.verifyLoanIsPending(loanStatusMap);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoanWithApproveAmount("01 June 2015", "01 June 2015", "10000",
                 loanIDWithoutEmi, createTranches);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
-        System.out
-                .println("-----------------------------------MULTI DISBURSAL LOAN WITHOUT EMI APPROVED SUCCESSFULLY---------------------------------------");
+        LOG.info("-----------------------------------MULTI DISBURSAL LOAN WITHOUT EMI APPROVED SUCCESSFULLY---------------------------------------");
 
     }
 
@@ -209,7 +207,7 @@ public class LoanDisbursementDetailsIntegrationTest {
 
         assertEquals(period.get("dueDate").toString(), expectedRepaymentSchedule.getDueDate());
         assertEquals(period.get("principalLoanBalanceOutstanding"), expectedRepaymentSchedule.getPrincipalLoanBalanceOutstanding());
-        System.out.println(period.get("totalOriginalDueForPeriod").toString());
+        LOG.info("{}",period.get("totalOriginalDueForPeriod").toString());
         assertEquals(Float.valueOf(period.get("totalOriginalDueForPeriod").toString()), expectedRepaymentSchedule
                 .getTotalOriginalDueForPeriod().floatValue(), 0.0f);
 
@@ -342,7 +340,7 @@ public class LoanDisbursementDetailsIntegrationTest {
     private Integer applyForLoanApplicationWithEmiAmount(final Integer clientID, final Integer loanProductID, final String proposedAmount,
             List<HashMap> tranches, final String installmentAmount) {
 
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
+        LOG.info("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
         final String loanApplicationJSON = new LoanApplicationTestBuilder()
         //
                 .withPrincipal(proposedAmount)
@@ -373,29 +371,28 @@ public class LoanDisbursementDetailsIntegrationTest {
         createTranches.add(this.loanTransactionHelper.createTrancheDetail(id, "01 March 2014", "1000"));
 
         final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec, "01 January 2014");
-        System.out.println("---------------------------------CLIENT CREATED WITH ID---------------------------------------------------"
-                + clientID);
+        LOG.info("---------------------------------CLIENT CREATED WITH ID--------------------------------------------------- {}"
+                , clientID);
 
         final Integer loanProductID = this.loanTransactionHelper.getLoanProductId(new LoanProductTestBuilder()
                 .withInterestTypeAsDecliningBalance().withTranches(true).withInterestCalculationPeriodTypeAsRepaymentPeriod(true)
                 .build(null));
-        System.out.println("----------------------------------LOAN PRODUCT CREATED WITH ID-------------------------------------------"
-                + loanProductID);
+        LOG.info("----------------------------------LOAN PRODUCT CREATED WITH ID------------------------------------------- {}"
+                , loanProductID);
 
         this.loanID = applyForLoanApplicationWithTranches(clientID, loanProductID, proposedAmount, createTranches);
-        System.out.println("-----------------------------------LOAN CREATED WITH LOANID-------------------------------------------------"
-                + loanID);
+        LOG.info("-----------------------------------LOAN CREATED WITH LOANID------------------------------------------------- {}"
+                , loanID);
 
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoanWithApproveAmount(approveDate, expectedDisbursementDate, approvalAmount,
                 loanID, createTranches);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
-        System.out
-                .println("-----------------------------------MULTI DISBURSAL LOAN APPROVED SUCCESSFULLY---------------------------------------");
+        LOG.info("-----------------------------------MULTI DISBURSAL LOAN APPROVED SUCCESSFULLY---------------------------------------");
         ArrayList<HashMap> disbursementDetails = (ArrayList<HashMap>) this.loanTransactionHelper.getLoanDetail(this.requestSpec,
                 this.responseSpec, this.loanID, "disbursementDetails");
         this.disbursementId = (Integer) disbursementDetails.get(0).get("id");
@@ -474,7 +471,7 @@ public class LoanDisbursementDetailsIntegrationTest {
 
     private Integer applyForLoanApplicationWithTranches(final Integer clientID, final Integer loanProductID, String principal,
             List<HashMap> tranches) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
+        LOG.info("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
         final String loanApplicationJSON = new LoanApplicationTestBuilder()
         //
                 .withPrincipal(principal)
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRepaymentRescheduleAtDisbursementTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRepaymentRescheduleAtDisbursementTest.java
index bef3864..eec0b7a 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRepaymentRescheduleAtDisbursementTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRepaymentRescheduleAtDisbursementTest.java
@@ -40,10 +40,12 @@ import org.apache.fineract.integrationtests.common.loans.LoanStatusChecker;
 import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @SuppressWarnings("rawtypes")
 public class LoanRepaymentRescheduleAtDisbursementTest {
-
+    private final static Logger LOG = LoggerFactory.getLogger(LoanRepaymentRescheduleAtDisbursementTest.class);
     private ResponseSpecification responseSpec;
     private RequestSpecification requestSpec;
     private LoanTransactionHelper loanTransactionHelper;
@@ -73,8 +75,8 @@ public class LoanRepaymentRescheduleAtDisbursementTest {
 
         // CREATE CLIENT
         final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec, "01 January 2014");
-        System.out.println("---------------------------------CLIENT CREATED WITH ID---------------------------------------------------"
-                + clientID);
+        LOG.info("---------------------------------CLIENT CREATED WITH ID--------------------------------------------------- {}"
+                , clientID);
 
         // CREATE LOAN MULTIDISBURSAL PRODUCT WITH INTEREST RECALCULATION
         final Integer loanProductID = createLoanProductWithInterestRecalculation(LoanProductTestBuilder.RBI_INDIA_STRATEGY,
@@ -102,7 +104,7 @@ public class LoanRepaymentRescheduleAtDisbursementTest {
         // VALIDATE THE LOAN STATUS
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoanWithApproveAmount(approveDate, expectedDisbursementDate, approvalAmount,
                 loanID, approveTranches);
 
@@ -167,7 +169,7 @@ public class LoanRepaymentRescheduleAtDisbursementTest {
             boolean isArrearsBasedOnOriginalSchedule, final Integer recalculationCompoundingFrequencyOnDayType,
             final Integer recalculationCompoundingFrequencyDayOfWeekType, final Integer recalculationRestFrequencyOnDayType,
             final Integer recalculationRestFrequencyDayOfWeekType) {
-        System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
+        LOG.info("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
         LoanProductTestBuilder builder = new LoanProductTestBuilder()
                 .withPrincipal("10000.00")
                 .withNumberOfRepayments("12")
@@ -207,7 +209,7 @@ public class LoanRepaymentRescheduleAtDisbursementTest {
     private Integer applyForLoanApplicationForInterestRecalculation(final Integer clientID, final Integer loanProductID,
             final String disbursementDate, final String repaymentStrategy, final List<HashMap> charges, final String graceOnInterestPayment,
             final String graceOnPrincipalPayment, List<HashMap> tranches) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
+        LOG.info("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
         final String loanApplicationJSON = new LoanApplicationTestBuilder() //
                 .withPrincipal("10000.00") //
                 .withLoanTermFrequency("24") //
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRescheduleRequestTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRescheduleRequestTest.java
index 03376dc..60a76be 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRescheduleRequestTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanRescheduleRequestTest.java
@@ -36,12 +36,15 @@ import org.apache.fineract.integrationtests.common.loans.LoanRescheduleRequestTe
 import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Test the creation, approval and rejection of a loan reschedule request
  **/
 @SuppressWarnings({ "rawtypes" })
 public class LoanRescheduleRequestTest {
+    private final static Logger LOG = LoggerFactory.getLogger(LoanRescheduleRequestTest.class);
     private ResponseSpecification responseSpec;
     private ResponseSpecification generalResponseSpec;
     private RequestSpecification requestSpec;
@@ -93,7 +96,7 @@ public class LoanRescheduleRequestTest {
      * create a new loan product
      **/
     private void createLoanProductEntity() {
-        System.out.println("---------------------------------CREATING LOAN PRODUCT------------------------------------------");
+        LOG.info("---------------------------------CREATING LOAN PRODUCT------------------------------------------");
 
         final String loanProductJSON = new LoanProductTestBuilder()
                 .withPrincipal(loanPrincipalAmount)
@@ -103,14 +106,14 @@ public class LoanRescheduleRequestTest {
                 .build(null);
 
         this.loanProductId = this.loanTransactionHelper.getLoanProductId(loanProductJSON);
-        System.out.println("Successfully created loan product  (ID: " + this.loanProductId + ")");
+        LOG.info("Successfully created loan product  (ID:{}) " , this.loanProductId);
     }
 
     /**
      * submit a new loan application, approve and disburse the loan
      **/
     private void createLoanEntity() {
-        System.out.println("---------------------------------NEW LOAN APPLICATION------------------------------------------");
+        LOG.info("---------------------------------NEW LOAN APPLICATION------------------------------------------");
 
         final String loanApplicationJSON = new LoanApplicationTestBuilder()
                 .withPrincipal(loanPrincipalAmount)
@@ -131,7 +134,7 @@ public class LoanRescheduleRequestTest {
 
         this.loanId = this.loanTransactionHelper.getLoanId(loanApplicationJSON);
 
-        System.out.println("Sucessfully created loan (ID: " + this.loanId + ")");
+        LOG.info("Sucessfully created loan (ID: {} )" , this.loanId);
 
         this.approveLoanApplication();
         this.disburseLoan();
@@ -144,7 +147,7 @@ public class LoanRescheduleRequestTest {
 
         if(this.loanId != null) {
             this.loanTransactionHelper.approveLoan(this.dateString, this.loanId);
-            System.out.println("Successfully approved loan (ID: " + this.loanId + ")");
+            LOG.info("Successfully approved loan (ID: {} )" , this.loanId);
         }
     }
 
@@ -155,7 +158,7 @@ public class LoanRescheduleRequestTest {
 
         if(this.loanId != null) {
             this.loanTransactionHelper.disburseLoan(this.dateString, this.loanId);
-            System.out.println("Successfully disbursed loan (ID: " + this.loanId + ")");
+            LOG.info("Successfully disbursed loan (ID: {} )" , this.loanId);
         }
     }
 
@@ -163,14 +166,14 @@ public class LoanRescheduleRequestTest {
      * create new loan reschedule request
      **/
     private void createLoanRescheduleRequest() {
-        System.out.println("---------------------------------CREATING LOAN RESCHEDULE REQUEST------------------------------------------");
+        LOG.info("---------------------------------CREATING LOAN RESCHEDULE REQUEST------------------------------------------");
 
         final String requestJSON = new LoanRescheduleRequestTestBuilder().build(this.loanId.toString());
 
         this.loanRescheduleRequestId = this.loanRescheduleRequestHelper.createLoanRescheduleRequest(requestJSON);
         this.loanRescheduleRequestHelper.verifyCreationOfLoanRescheduleRequest(this.loanRescheduleRequestId);
 
-        System.out.println("Successfully created loan reschedule request (ID: " + this.loanRescheduleRequestId + ")");
+        LOG.info("Successfully created loan reschedule request (ID: {} )" , this.loanRescheduleRequestId);
     }
 
     @Test
@@ -182,7 +185,7 @@ public class LoanRescheduleRequestTest {
     public void testRejectLoanRescheduleRequest() {
         this.createLoanRescheduleRequest();
 
-        System.out.println("-----------------------------REJECTING LOAN RESCHEDULE REQUEST--------------------------");
+        LOG.info("-----------------------------REJECTING LOAN RESCHEDULE REQUEST--------------------------");
 
         final String requestJSON = new LoanRescheduleRequestTestBuilder().getRejectLoanRescheduleRequestJSON();
         this.loanRescheduleRequestHelper.rejectLoanRescheduleRequest(this.loanRescheduleRequestId, requestJSON);
@@ -190,14 +193,14 @@ public class LoanRescheduleRequestTest {
         final HashMap response = (HashMap) this.loanRescheduleRequestHelper.getLoanRescheduleRequest(loanRescheduleRequestId, "statusEnum");
         assertTrue((Boolean)response.get("rejected"));
 
-        System.out.println("Successfully rejected loan reschedule request (ID: " + this.loanRescheduleRequestId + ")");
+        LOG.info("Successfully rejected loan reschedule request (ID: {} )" , this.loanRescheduleRequestId);
     }
 
     @Test
     public void testApproveLoanRescheduleRequest() {
         this.createLoanRescheduleRequest();
 
-        System.out.println("-----------------------------APPROVING LOAN RESCHEDULE REQUEST--------------------------");
+        LOG.info("-----------------------------APPROVING LOAN RESCHEDULE REQUEST--------------------------");
 
         final String requestJSON = new LoanRescheduleRequestTestBuilder().getApproveLoanRescheduleRequestJSON();
         this.loanRescheduleRequestHelper.approveLoanRescheduleRequest(this.loanRescheduleRequestId, requestJSON);
@@ -212,6 +215,6 @@ public class LoanRescheduleRequestTest {
         assertEquals("NUMBER OF REPAYMENTS SHOULD BE 16, NOT 12", "12", numberOfRepayments.toString());
         assertEquals("TOTAL EXPECTED REPAYMENT MUST BE EQUAL TO 118000.0", "118000.0", totalExpectedRepayment.toString());
 
-        System.out.println("Successfully approved loan reschedule request (ID: " + this.loanRescheduleRequestId + ")");
+        LOG.info("Successfully approved loan reschedule request (ID: {})" , this.loanRescheduleRequestId);
     }
 }
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanReschedulingWithinCenterTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanReschedulingWithinCenterTest.java
index 44a1701..2ed745c 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanReschedulingWithinCenterTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanReschedulingWithinCenterTest.java
@@ -52,9 +52,11 @@ import org.apache.fineract.integrationtests.common.organisation.StaffHelper;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class LoanReschedulingWithinCenterTest {
-
+    private final static Logger LOG = LoggerFactory.getLogger(LoanReschedulingWithinCenterTest.class);
     private RequestSpecification requestSpec;
     private ResponseSpecification responseSpec;
     private LoanTransactionHelper loanTransactionHelper;
@@ -133,7 +135,7 @@ public class LoanReschedulingWithinCenterTest {
         loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanId);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
-        System.out.println("---------------------------------CHANGING GROUP MEETING DATE ------------------------------------------");
+        LOG.info("---------------------------------CHANGING GROUP MEETING DATE ------------------------------------------");
         Calendar todaysdate = Calendar.getInstance(Utils.getTimeZoneOfTenant());
         todaysdate.add(Calendar.DAY_OF_MONTH, 14);
         String oldMeetingDate = dateFormat.format(todaysdate.getTime());
@@ -181,7 +183,7 @@ public class LoanReschedulingWithinCenterTest {
 
         Integer calendarId = CalendarHelper.createMeetingForGroup(this.requestSpec, this.responseSpec, centerId, startDate, frequency,
                 interval, repeatsOnDay.toString());
-        System.out.println("calendarId " + calendarId);
+        LOG.info("calendarId {}" , calendarId);
         return calendarId;
     }
 
@@ -253,7 +255,7 @@ public class LoanReschedulingWithinCenterTest {
         // VALIDATE THE LOAN STATUS
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoanWithApproveAmount(approveDate, expectedDisbursementDate, approvalAmount,
                 loanID, approveTranches);
 
@@ -265,7 +267,7 @@ public class LoanReschedulingWithinCenterTest {
         this.loanTransactionHelper.disburseLoan(disbursementDate, loanID);
         loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
 
-        System.out.println("---------------------------------CHANGING GROUP MEETING DATE ------------------------------------------");
+        LOG.info("---------------------------------CHANGING GROUP MEETING DATE ------------------------------------------");
         Calendar todaysdate = Calendar.getInstance(Utils.getTimeZoneOfTenant());
         todaysdate.add(Calendar.DAY_OF_MONTH, 14);
         String oldMeetingDate = dateFormat.format(todaysdate.getTime());
@@ -312,7 +314,7 @@ public class LoanReschedulingWithinCenterTest {
             final Integer recalculationCompoundingFrequencyOnDayType,
             final Integer recalculationCompoundingFrequencyDayOfWeekType, final Integer recalculationRestFrequencyOnDayType,
             final Integer recalculationRestFrequencyDayOfWeekType) {
-        System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
+        LOG.info("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
         LoanProductTestBuilder builder = new LoanProductTestBuilder()
                 .withPrincipal("10000.00")
                 .withNumberOfRepayments("12")
@@ -359,7 +361,7 @@ public class LoanReschedulingWithinCenterTest {
             final Integer loanProductID, final String disbursementDate, final String restStartDate, final String compoundingStartDate,
             final String repaymentStrategy, final List<HashMap> charges, final String graceOnInterestPayment,
             final String graceOnPrincipalPayment, List<HashMap> tranches) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
+        LOG.info("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
         final String loanApplicationJSON = new LoanApplicationTestBuilder() //
                 .withPrincipal("10000.00") //
                 .withLoanTermFrequency("24") //
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanWithWaiveInterestAndWriteOffIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanWithWaiveInterestAndWriteOffIntegrationTest.java
index dd94477..c5aacb8 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanWithWaiveInterestAndWriteOffIntegrationTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/LoanWithWaiveInterestAndWriteOffIntegrationTest.java
@@ -33,6 +33,8 @@ import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * Client Loan Integration Test for checking Loan Disbursement with Waive
@@ -40,7 +42,7 @@ import org.junit.Test;
  */
 @SuppressWarnings({ "rawtypes" })
 public class LoanWithWaiveInterestAndWriteOffIntegrationTest {
-
+    private final static Logger LOG = LoggerFactory.getLogger(LoanWithWaiveInterestAndWriteOffIntegrationTest.class);
     private ResponseSpecification responseSpec;
     private RequestSpecification requestSpec;
 
@@ -74,7 +76,7 @@ public class LoanWithWaiveInterestAndWriteOffIntegrationTest {
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan("28 September 2010", loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
@@ -83,14 +85,14 @@ public class LoanWithWaiveInterestAndWriteOffIntegrationTest {
         loanStatusHashMap = this.loanTransactionHelper.undoApproval(loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        System.out.println("-----------------------------------RE-APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------RE-APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan("1 October 2010", loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
         // DISBURSE
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan(this.DISBURSEMENT_DATE, loanID);
-        System.out.println("DISBURSE " + loanStatusHashMap);
+        LOG.info("DISBURSE {}" , loanStatusHashMap.toString());
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
         // PERFORM REPAYMENTS AND CHECK LOAN STATUS
@@ -103,7 +105,7 @@ public class LoanWithWaiveInterestAndWriteOffIntegrationTest {
 
         // DIBURSE AGAIN
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan(this.DISBURSEMENT_DATE, loanID);
-        System.out.println("DISBURSE " + loanStatusHashMap);
+        LOG.info("DISBURSE {}" , loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
         // MAKE REPAYMENTS
@@ -142,14 +144,14 @@ public class LoanWithWaiveInterestAndWriteOffIntegrationTest {
         HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
         LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        System.out.println("-----------------------------------APPROVE LOAN-----------------------------------------");
+        LOG.info("-----------------------------------APPROVE LOAN-----------------------------------------");
         loanStatusHashMap = this.loanTransactionHelper.approveLoan("28 September 2010", loanID);
         LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
         // DISBURSE
         loanStatusHashMap = this.loanTransactionHelper.disburseLoan(this.DISBURSEMENT_DATE, loanID);
-        System.out.println("DISBURSE " + loanStatusHashMap);
+        LOG.info("DISBURSE {}" , loanStatusHashMap);
         LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
         // MAKE REPAYMENTS
@@ -179,7 +181,7 @@ public class LoanWithWaiveInterestAndWriteOffIntegrationTest {
     }
 
     private Integer createLoanProduct() {
-        System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
+        LOG.info("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
         final String loanProductJSON = new LoanProductTestBuilder().withPrincipal(this.LP_PRINCIPAL).withRepaymentTypeAsMonth()
                 .withRepaymentAfterEvery(this.LP_REPAYMENT_PERIOD).withNumberOfRepayments(this.LP_REPAYMENTS).withRepaymentTypeAsMonth()
                 .withinterestRatePerPeriod(this.LP_INTEREST_RATE).withInterestRateFrequencyTypeAsMonths()
@@ -189,7 +191,7 @@ public class LoanWithWaiveInterestAndWriteOffIntegrationTest {
     }
 
     private Integer applyForLoanApplication(final Integer clientID, final Integer loanProductID) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
+        LOG.info("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
         final String loanApplicationJSON = new LoanApplicationTestBuilder().withPrincipal(this.PRINCIPAL)
                 .withLoanTermFrequency(this.LOAN_TERM_FREQUENCY).withLoanTermFrequencyAsMonths()
                 .withNumberOfRepayments(this.NUMBER_OF_REPAYMENTS).withRepaymentEveryAfter(this.REPAYMENT_PERIOD)
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/NotificationApiTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/NotificationApiTest.java
index 7b1d604..e4925d0 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/NotificationApiTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/NotificationApiTest.java
@@ -29,9 +29,11 @@ import org.apache.fineract.integrationtests.common.Utils;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class NotificationApiTest {
-
+    private final static Logger LOG = LoggerFactory.getLogger(NotificationApiTest.class);
     private ResponseSpecification responseSpec;
     private RequestSpecification requestSpec;
 
@@ -48,7 +50,7 @@ public class NotificationApiTest {
     public void testNotificationRetrieval() {
         HashMap<String, Object> response = (HashMap<String, Object>) NotificationHelper.getNotifications(this.requestSpec,
                 this.responseSpec, "");
-        System.out.println("Response : " + response.toString());
+        LOG.info("Response : {}" , response.toString());
         Assert.assertNotNull(response);
     }
 }
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/PasswordPreferencesIntegrationTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/PasswordPreferencesIntegrationTest.java
index a4705a4..f670693 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/PasswordPreferencesIntegrationTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/PasswordPreferencesIntegrationTest.java
@@ -32,10 +32,12 @@ import org.apache.fineract.integrationtests.common.PasswordPreferencesHelper;
 import org.apache.fineract.integrationtests.common.Utils;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({ "rawtypes", "unchecked" })
 public class PasswordPreferencesIntegrationTest {
-
+    private final static Logger LOG = LoggerFactory.getLogger(PasswordPreferencesIntegrationTest.class);
     private ResponseSpecification responseSpec;
     private RequestSpecification requestSpec;
     private ResponseSpecification generalResponseSpec;
@@ -60,7 +62,7 @@ public class PasswordPreferencesIntegrationTest {
     private void validateIfThePasswordIsUpdated(String validationPolicyId){
         Integer id = PasswordPreferencesHelper.getActivePasswordPreference(requestSpec, responseSpec);
         assertEquals(validationPolicyId, id.toString());
-        System.out.println("---------------------------------PASSWORD PREFERENCE VALIDATED SUCCESSFULLY-----------------------------------------");
+        LOG.info("---------------------------------PASSWORD PREFERENCE VALIDATED SUCCESSFULLY-----------------------------------------");
 
     }
 
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/RecurringDepositTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/RecurringDepositTest.java
index 55b7890..6ae8df5 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/RecurringDepositTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/RecurringDepositTest.java
@@ -62,10 +62,12 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({ "unused", "rawtypes", "unchecked", "static-access" })
 public class RecurringDepositTest {
-
+    private final static Logger LOG = LoggerFactory.getLogger(RecurringDepositTest.class);
     private ResponseSpecification responseSpec;
     private RequestSpecification requestSpec;
     private RecurringDepositProductHelper recurringDepositProductHelper;
@@ -1420,7 +1422,7 @@ public class RecurringDepositTest {
         Float interestRate = this.recurringDepositAccountHelper.getInterestRate(interestRateChartData, depositPeriod);
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}" , perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         Integer daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
@@ -1432,7 +1434,7 @@ public class RecurringDepositTest {
         decimalFormat.applyPattern(".");
         principal = Float.valueOf(decimalFormat.format(principal));
         maturityAmount = Float.valueOf(decimalFormat.format(maturityAmount));
-        System.out.println(principal);
+        LOG.info("{}",principal.toString());
         Assert.assertEquals("Verifying Maturity amount for Recurring Deposit Account", principal, maturityAmount);
     }
 
@@ -1505,7 +1507,7 @@ public class RecurringDepositTest {
         Float interestRate = this.recurringDepositAccountHelper.getInterestRate(interestRateChartData, depositPeriod);
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}" , perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         Integer daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
@@ -1517,7 +1519,7 @@ public class RecurringDepositTest {
         decimalFormat.applyPattern(".");
         principal = Float.valueOf(decimalFormat.format(principal));
         maturityAmount = Float.valueOf(decimalFormat.format(maturityAmount));
-        System.out.println(principal);
+        LOG.info("{}",principal.toString());
         Assert.assertEquals("Verifying Maturity amount for Recurring Deposit Account", principal, maturityAmount);
     }
 
@@ -1588,7 +1590,7 @@ public class RecurringDepositTest {
         Float interestRate = this.recurringDepositAccountHelper.getInterestRate(interestRateChartData, depositPeriod);
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}" , perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         DecimalFormat decimalFormat = new DecimalFormat("", new DecimalFormatSymbols(Locale.US));
@@ -1601,7 +1603,7 @@ public class RecurringDepositTest {
         principal += interestToBePosted;
 
         Float expectedBalanceAfter = Float.valueOf(decimalFormat.format(principal));
-        System.out.println(expectedBalanceAfter);
+        LOG.info("{}",expectedBalanceAfter.toString());
 
         Integer transactionIdForPostInterest = this.recurringDepositAccountHelper
                 .postInterestForRecurringDeposit(recurringDepositAccountId);
@@ -1696,7 +1698,7 @@ public class RecurringDepositTest {
         interestRate -= preClosurePenalInterestRate;
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}" , perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         Calendar calendar = Calendar.getInstance();
@@ -1707,7 +1709,7 @@ public class RecurringDepositTest {
         Float interestPerMonth = (float) (interestPerDay * principal * daysInMonth);
         principal += interestPerMonth + depositAmount;
         calendar.add(Calendar.DATE, daysInMonth);
-        System.out.println(monthDayFormat.format(calendar.getTime()));
+        LOG.info("{}",monthDayFormat.format(calendar.getTime()));
 
         EXPECTED_FIRST_DEPOSIT_ON_DATE = dateFormat.format(calendar.getTime());
         Integer transactionIdForDeposit = this.recurringDepositAccountHelper.depositToRecurringDepositAccount(recurringDepositAccountId,
@@ -1716,9 +1718,9 @@ public class RecurringDepositTest {
 
         currentDate = currentDate - 1;
         interestPerMonth = (float) (interestPerDay * principal * currentDate);
-        System.out.println("IPM = " + interestPerMonth);
+        LOG.info("IPM = {}" , interestPerMonth);
         principal += interestPerMonth;
-        System.out.println("principal = " + principal);
+        LOG.info("principal = {}" , principal);
 
         HashMap recurringDepositPrematureData = this.recurringDepositAccountHelper.calculatePrematureAmountForRecurringDeposit(
                 recurringDepositAccountId, CLOSED_ON_DATE);
@@ -1828,7 +1830,7 @@ public class RecurringDepositTest {
         interestRate -= preClosurePenalInterestRate;
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}" , perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         Calendar calendar = Calendar.getInstance();
@@ -1839,7 +1841,7 @@ public class RecurringDepositTest {
         Float interestPerMonth = (float) (interestPerDay * principal * daysInMonth);
         principal += interestPerMonth + depositAmount;
         calendar.add(Calendar.DATE, daysInMonth);
-        System.out.println(monthDayFormat.format(calendar.getTime()));
+        LOG.info("{}",monthDayFormat.format(calendar.getTime()));
 
         EXPECTED_FIRST_DEPOSIT_ON_DATE = dateFormat.format(calendar.getTime());
         Integer transactionIdForDeposit = this.recurringDepositAccountHelper.depositToRecurringDepositAccount(recurringDepositAccountId,
@@ -1848,9 +1850,9 @@ public class RecurringDepositTest {
 
         currentDate = currentDate - 1;
         interestPerMonth = (float) (interestPerDay * principal * currentDate);
-        System.out.println("IPM = " + interestPerMonth);
+        LOG.info("IPM = {}" , interestPerMonth);
         principal += interestPerMonth;
-        System.out.println("principal = " + principal);
+        LOG.info("principal = {}" , principal);
 
         HashMap recurringDepositPrematureData = this.recurringDepositAccountHelper.calculatePrematureAmountForRecurringDeposit(
                 recurringDepositAccountId, CLOSED_ON_DATE);
@@ -1967,7 +1969,7 @@ public class RecurringDepositTest {
         interestRate -= preClosurePenalInterestRate;
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}" , perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         Calendar calendar = Calendar.getInstance();
@@ -1979,7 +1981,7 @@ public class RecurringDepositTest {
         Float interestPerMonth = (float) (interestPerDay * principal * daysInMonth);
         principal += interestPerMonth + depositAmount;
         calendar.add(Calendar.DATE, daysInMonth);
-        System.out.println(monthDayFormat.format(calendar.getTime()));
+        LOG.info("{}",monthDayFormat.format(calendar.getTime()));
 
         EXPECTED_FIRST_DEPOSIT_ON_DATE = dateFormat.format(calendar.getTime());
         Integer transactionIdForDeposit = this.recurringDepositAccountHelper.depositToRecurringDepositAccount(recurringDepositAccountId,
@@ -1988,9 +1990,9 @@ public class RecurringDepositTest {
 
         currentDate = currentDate - 1;
         interestPerMonth = (float) (interestPerDay * principal * currentDate);
-        System.out.println("IPM = " + interestPerMonth);
+        LOG.info("IPM = {}" , interestPerMonth);
         principal += interestPerMonth;
-        System.out.println("principal = " + principal);
+        LOG.info("principal = {}" , principal);
 
         HashMap recurringDepositPrematureData = this.recurringDepositAccountHelper.calculatePrematureAmountForRecurringDeposit(
                 recurringDepositAccountId, CLOSED_ON_DATE);
@@ -2112,7 +2114,7 @@ public class RecurringDepositTest {
         interestRate -= preClosurePenalInterestRate;
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}" , perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         Calendar calendar = Calendar.getInstance();
@@ -2124,7 +2126,7 @@ public class RecurringDepositTest {
         Float interestPerMonth = (float) (interestPerDay * principal * daysInMonth);
         principal += interestPerMonth + depositAmount;
         calendar.add(Calendar.DATE, daysInMonth);
-        System.out.println(monthDayFormat.format(calendar.getTime()));
+        LOG.info("{}",monthDayFormat.format(calendar.getTime()));
 
         EXPECTED_FIRST_DEPOSIT_ON_DATE = dateFormat.format(calendar.getTime());
         Integer newTransactionIdForDeposit = this.recurringDepositAccountHelper.depositToRecurringDepositAccount(recurringDepositAccountId,
@@ -2133,9 +2135,9 @@ public class RecurringDepositTest {
 
         currentDate = currentDate - 1;
         interestPerMonth = (float) (interestPerDay * principal * currentDate);
-        System.out.println("IPM = " + interestPerMonth);
+        LOG.info("IPM = {}" , interestPerMonth);
         principal += interestPerMonth;
-        System.out.println("principal = " + principal);
+        LOG.info("principal = {}" , principal);
 
         HashMap recurringDepositPrematureData = this.recurringDepositAccountHelper.calculatePrematureAmountForRecurringDeposit(
                 recurringDepositAccountId, CLOSED_ON_DATE);
@@ -2227,7 +2229,7 @@ public class RecurringDepositTest {
         Float interestRate = this.recurringDepositAccountHelper.getInterestRate(interestRateChartData, depositPeriod);
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}" , perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         Integer daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
@@ -2239,7 +2241,7 @@ public class RecurringDepositTest {
         decimalFormat.applyPattern(".");
         principal = Float.valueOf(decimalFormat.format(principal));
         maturityAmount = Float.valueOf(decimalFormat.format(maturityAmount));
-        System.out.println(principal);
+        LOG.info("{}",principal.toString());
         Assert.assertEquals("Verifying Maturity amount for Recurring Deposit Account", principal, maturityAmount);
 
     }
@@ -2312,7 +2314,7 @@ public class RecurringDepositTest {
         Float interestRate = this.recurringDepositAccountHelper.getInterestRate(interestRateChartData, depositPeriod);
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}" , perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         Integer daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
@@ -2324,7 +2326,7 @@ public class RecurringDepositTest {
         decimalFormat.applyPattern(".");
         principal = Float.valueOf(decimalFormat.format(principal));
         maturityAmount = Float.valueOf(decimalFormat.format(maturityAmount));
-        System.out.println(principal);
+        LOG.info("{}",principal.toString());
         Assert.assertEquals("Verifying Maturity amount for Recurring Deposit Account", principal, maturityAmount);
 
     }
@@ -2355,7 +2357,7 @@ public class RecurringDepositTest {
         Integer daysLeft = daysInMonth - currentDate;
         todaysDate.add(Calendar.DATE, (daysLeft + 1));
         daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
-        System.out.println(dateFormat.format(todaysDate.getTime()));
+        LOG.info("{}",dateFormat.format(todaysDate.getTime()));
         final String VALID_FROM = dateFormat.format(todaysDate.getTime());
 
         final String VALID_TO = null;
@@ -2403,7 +2405,7 @@ public class RecurringDepositTest {
         Float interestRate = this.recurringDepositAccountHelper.getInterestRate(interestRateChartData, depositPeriod);
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {}" , perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         principal = this.recurringDepositAccountHelper.getPrincipalAfterCompoundingInterest(todaysDate, principal, recurringDepositAmount,
@@ -2446,7 +2448,7 @@ public class RecurringDepositTest {
         Integer daysLeft = daysInMonth - currentDate;
         todaysDate.add(Calendar.DATE, (daysLeft + 1));
         daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
-        System.out.println(dateFormat.format(todaysDate.getTime()));
+        LOG.info("{}",dateFormat.format(todaysDate.getTime()));
         final String VALID_FROM = dateFormat.format(todaysDate.getTime());
 
         final String VALID_TO = null;
@@ -2494,7 +2496,7 @@ public class RecurringDepositTest {
         Float interestRate = this.recurringDepositAccountHelper.getInterestRate(interestRateChartData, depositPeriod);
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {} " ,  perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         principal = this.recurringDepositAccountHelper.getPrincipalAfterCompoundingInterest(todaysDate, principal, recurringDepositAmount,
@@ -2536,7 +2538,7 @@ public class RecurringDepositTest {
         Integer daysLeft = daysInMonth - currentDate;
         todaysDate.add(Calendar.DATE, (daysLeft + 1));
         daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
-        System.out.println(dateFormat.format(todaysDate.getTime()));
+        LOG.info("{}",dateFormat.format(todaysDate.getTime()));
         final String VALID_FROM = dateFormat.format(todaysDate.getTime());
 
         final String VALID_TO = null;
@@ -2585,7 +2587,7 @@ public class RecurringDepositTest {
         Float interestRate = this.recurringDepositAccountHelper.getInterestRate(interestRateChartData, depositPeriod);
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {} " ,  perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         principal = this.recurringDepositAccountHelper.getPrincipalAfterCompoundingInterest(todaysDate, principal, recurringDepositAmount,
@@ -2627,7 +2629,7 @@ public class RecurringDepositTest {
         Integer daysLeft = daysInMonth - currentDate;
         todaysDate.add(Calendar.DATE, (daysLeft + 1));
         daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
-        System.out.println(dateFormat.format(todaysDate.getTime()));
+        LOG.info("{}",dateFormat.format(todaysDate.getTime()));
         final String VALID_FROM = dateFormat.format(todaysDate.getTime());
 
         final String VALID_TO = null;
@@ -2676,7 +2678,7 @@ public class RecurringDepositTest {
         Float interestRate = this.recurringDepositAccountHelper.getInterestRate(interestRateChartData, depositPeriod);
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {} " ,  perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         principal = this.recurringDepositAccountHelper.getPrincipalAfterCompoundingInterest(todaysDate, principal, recurringDepositAmount,
@@ -2719,7 +2721,7 @@ public class RecurringDepositTest {
         Integer daysLeft = daysInMonth - currentDate;
         todaysDate.add(Calendar.DATE, (daysLeft + 1));
         daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
-        System.out.println(dateFormat.format(todaysDate.getTime()));
+        LOG.info("{}",dateFormat.format(todaysDate.getTime()));
         final String VALID_FROM = dateFormat.format(todaysDate.getTime());
 
         final String VALID_TO = null;
@@ -2767,7 +2769,7 @@ public class RecurringDepositTest {
         Float interestRate = this.recurringDepositAccountHelper.getInterestRate(interestRateChartData, depositPeriod);
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {} " ,  perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         principal = this.recurringDepositAccountHelper.getPrincipalAfterCompoundingInterest(todaysDate, principal, recurringDepositAmount,
@@ -2810,7 +2812,7 @@ public class RecurringDepositTest {
         Integer daysLeft = daysInMonth - currentDate;
         todaysDate.add(Calendar.DATE, (daysLeft + 1));
         daysInMonth = todaysDate.getActualMaximum(Calendar.DATE);
-        System.out.println(dateFormat.format(todaysDate.getTime()));
+        LOG.info("{}",dateFormat.format(todaysDate.getTime()));
         final String VALID_FROM = dateFormat.format(todaysDate.getTime());
 
         final String VALID_TO = null;
@@ -2858,7 +2860,7 @@ public class RecurringDepositTest {
         Float interestRate = this.recurringDepositAccountHelper.getInterestRate(interestRateChartData, depositPeriod);
         double interestRateInFraction = (interestRate / 100);
         double perDay = (double) 1 / (daysInYear);
-        System.out.println("per day = " + perDay);
+        LOG.info("per day = {} " ,  perDay);
         double interestPerDay = interestRateInFraction * perDay;
 
         principal = this.recurringDepositAccountHelper.getPrincipalAfterCompoundingInterest(todaysDate, principal, recurringDepositAmount,
@@ -3040,7 +3042,7 @@ public class RecurringDepositTest {
 
     private Integer createRecurringDepositProduct(final String validFrom, final String validTo, final String accountingRule,
             Account... accounts) {
-        System.out.println("------------------------------CREATING NEW RECURRING DEPOSIT PRODUCT ---------------------------------------");
+        LOG.info("------------------------------CREATING NEW RECURRING DEPOSIT PRODUCT ---------------------------------------");
         RecurringDepositProductHelper recurringDepositProductHelper = new RecurringDepositProductHelper(this.requestSpec, this.responseSpec);
         if (accountingRule.equals(CASH_BASED)) {
             recurringDepositProductHelper = recurringDepositProductHelper.withAccountingRuleAsCashBased(accounts);
@@ -3053,7 +3055,7 @@ public class RecurringDepositTest {
 
     private Integer createRecurringDepositProductWithWithHoldTax(final String validFrom, final String validTo,final String taxGroupId, final String accountingRule,
             Account... accounts) {
-        System.out.println("------------------------------CREATING NEW RECURRING DEPOSIT PRODUCT ---------------------------------------");
+        LOG.info("------------------------------CREATING NEW RECURRING DEPOSIT PRODUCT ---------------------------------------");
         RecurringDepositProductHelper recurringDepositProductHelper = new RecurringDepositProductHelper(this.requestSpec, this.responseSpec);
         if (accountingRule.equals(CASH_BASED)) {
             recurringDepositProductHelper = recurringDepositProductHelper.withAccountingRuleAsCashBased(accounts);
@@ -3068,7 +3070,7 @@ public class RecurringDepositTest {
 
     private Integer createRecurringDepositProduct(final String validFrom, final String validTo, final String accountingRule,
             final String chartToBePicked, Account... accounts) {
-        System.out.println("------------------------------CREATING NEW RECURRING DEPOSIT PRODUCT ---------------------------------------");
+        LOG.info("------------------------------CREATING NEW RECURRING DEPOSIT PRODUCT ---------------------------------------");
         RecurringDepositProductHelper recurringDepositProductHelper = new RecurringDepositProductHelper(this.requestSpec, this.responseSpec);
         if (accountingRule.equals(CASH_BASED)) {
             recurringDepositProductHelper = recurringDepositProductHelper.withAccountingRuleAsCashBased(accounts);
@@ -3098,7 +3100,7 @@ public class RecurringDepositTest {
 
     private Integer applyForRecurringDepositApplication(final String clientID, final String productID, final String validFrom,
             final String validTo, final String submittedOnDate, final String penalInterestType, final String expectedFirstDepositOnDate) {
-        System.out.println("--------------------------------APPLYING FOR RECURRING DEPOSIT ACCOUNT --------------------------------");
+        LOG.info("--------------------------------APPLYING FOR RECURRING DEPOSIT ACCOUNT --------------------------------");
         final String recurringDepositApplicationJSON = new RecurringDepositAccountHelper(this.requestSpec, this.responseSpec)
                 .withSubmittedOnDate(submittedOnDate).withExpectedFirstDepositOnDate(expectedFirstDepositOnDate)
                 .build(clientID, productID, penalInterestType);
@@ -3109,7 +3111,7 @@ public class RecurringDepositTest {
     private Integer applyForRecurringDepositApplication(final String clientID, final String productID, final String validFrom,
             final String validTo, final String submittedOnDate, final String penalInterestType, final String expectedFirstDepositOnDate,
             final String depositAmount, final String depositPeriod) {
-        System.out.println("--------------------------------APPLYING FOR RECURRING DEPOSIT ACCOUNT --------------------------------");
+        LOG.info("--------------------------------APPLYING FOR RECURRING DEPOSIT ACCOUNT --------------------------------");
         final String recurringDepositApplicationJSON = new RecurringDepositAccountHelper(this.requestSpec, this.responseSpec)
                 .withSubmittedOnDate(submittedOnDate).withExpectedFirstDepositOnDate(expectedFirstDepositOnDate)
                 .withDepositPeriod(depositPeriod).withMandatoryDepositAmount(depositAmount).build(clientID, productID, penalInterestType);
@@ -3119,7 +3121,7 @@ public class RecurringDepositTest {
 
     private Integer createSavingsProduct(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
             final String minOpenningBalance, final String accountingRule, Account... accounts) {
-        System.out.println("------------------------------CREATING NEW SAVINGS PRODUCT ---------------------------------------");
+        LOG.info("------------------------------CREATING NEW SAVINGS PRODUCT ---------------------------------------");
         SavingsProductHelper savingsProductHelper = new SavingsProductHelper();
         if (accountingRule.equals(CASH_BASED)) {
             savingsProductHelper = savingsProductHelper.withAccountingRuleAsCashBased(accounts);
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/RolesTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/RolesTest.java
index ba745b2..46697fb 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/RolesTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/RolesTest.java
@@ -34,9 +34,11 @@ import org.apache.fineract.integrationtests.useradministration.users.UserHelper;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 public class RolesTest {
-
+    private final static Logger LOG = LoggerFactory.getLogger(RolesTest.class);
     private ResponseSpecification responseSpec;
     private RequestSpecification requestSpec;
 
@@ -52,11 +54,11 @@ public class RolesTest {
     @Test
     public void testCreateRolesStatus() {
 
-        System.out.println("---------------------------------CREATING A ROLE---------------------------------------------");
+        LOG.info("---------------------------------CREATING A ROLE---------------------------------------------");
         final Integer roleId = RolesHelper.createRole(this.requestSpec, this.responseSpec);
         Assert.assertNotNull(roleId);
 
-        System.out.println("--------------------------------- Getting ROLE -------------------------------");
+        LOG.info("--------------------------------- Getting ROLE -------------------------------");
         HashMap<String, Object> role = RolesHelper.getRoleDetails(requestSpec, responseSpec, roleId);
         assertEquals((Integer) role.get("id"), roleId);
 
@@ -66,15 +68,15 @@ public class RolesTest {
     @Test
     public void testDisableRolesStatus() {
 
-        System.out.println("---------------------------------CREATING A ROLE---------------------------------------------");
+        LOG.info("---------------------------------CREATING A ROLE---------------------------------------------");
         final Integer roleId = RolesHelper.createRole(this.requestSpec, this.responseSpec);
         Assert.assertNotNull(roleId);
 
-        System.out.println("--------------------------------- Getting ROLE -------------------------------");
+        LOG.info("--------------------------------- Getting ROLE -------------------------------");
         HashMap<String, Object> role = RolesHelper.getRoleDetails(requestSpec, responseSpec, roleId);
         assertEquals((Integer) role.get("id"), roleId);
 
-        System.out.println("--------------------------------- DISABLING ROLE -------------------------------");
+        LOG.info("--------------------------------- DISABLING ROLE -------------------------------");
         final Integer disableRoleId = RolesHelper.disableRole(this.requestSpec, this.responseSpec, roleId);
         assertEquals(disableRoleId, roleId);
         role = RolesHelper.getRoleDetails(requestSpec, responseSpec, roleId);
@@ -87,22 +89,22 @@ public class RolesTest {
     @Test
     public void testEnableRolesStatus() {
 
-        System.out.println("---------------------------------CREATING A ROLE---------------------------------------------");
+        LOG.info("---------------------------------CREATING A ROLE---------------------------------------------");
         final Integer roleId = RolesHelper.createRole(this.requestSpec, this.responseSpec);
         Assert.assertNotNull(roleId);
 
-        System.out.println("--------------------------------- Getting ROLE -------------------------------");
+        LOG.info("--------------------------------- Getting ROLE -------------------------------");
         HashMap<String, Object> role = RolesHelper.getRoleDetails(requestSpec, responseSpec, roleId);
         assertEquals((Integer) role.get("id"), roleId);
 
-        System.out.println("--------------------------------- DISABLING ROLE -------------------------------");
+        LOG.info("--------------------------------- DISABLING ROLE -------------------------------");
         final Integer disableRoleId = RolesHelper.disableRole(this.requestSpec, this.responseSpec, roleId);
         assertEquals(disableRoleId, roleId);
         role = RolesHelper.getRoleDetails(requestSpec, responseSpec, roleId);
         assertEquals((Integer) role.get("id"), roleId);
         assertEquals((Boolean) role.get("disabled"), true);
 
-        System.out.println("--------------------------------- ENABLING ROLE -------------------------------");
+        LOG.info("--------------------------------- ENABLING ROLE -------------------------------");
         final Integer enableRoleId = RolesHelper.enableRole(this.requestSpec, this.responseSpec, roleId);
         assertEquals(enableRoleId, roleId);
         role = RolesHelper.getRoleDetails(requestSpec, responseSpec, roleId);
@@ -115,15 +117,15 @@ public class RolesTest {
     @Test
     public void testDeleteRoleStatus() {
 
-        System.out.println("-------------------------------- CREATING A ROLE---------------------------------------------");
+        LOG.info("-------------------------------- CREATING A ROLE---------------------------------------------");
         final Integer roleId = RolesHelper.createRole(this.requestSpec, this.responseSpec);
         Assert.assertNotNull(roleId);
 
-        System.out.println("--------------------------------- Getting ROLE -------------------------------");
+        LOG.info("--------------------------------- Getting ROLE -------------------------------");
         HashMap<String, Object> role = RolesHelper.getRoleDetails(requestSpec, responseSpec, roleId);
         assertEquals((Integer) role.get("id"), roleId);
 
-        System.out.println("--------------------------------- DELETE ROLE -------------------------------");
+        LOG.info("--------------------------------- DELETE ROLE -------------------------------");
         final Integer deleteRoleId = RolesHelper.deleteRole(this.requestSpec, this.responseSpec, roleId);
         assertEquals(deleteRoleId, roleId);
     }
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SchedulerJobsTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SchedulerJobsTest.java
index d00e03a..fd49a71 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SchedulerJobsTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SchedulerJobsTest.java
@@ -51,10 +51,13 @@ public class SchedulerJobsTest {
 
     @Test // FINERACT-926
     public void testDateFormat() {
-        // must start scheduler and make job active to have nextRunTime (which is a java.util.Date)
+        // must start scheduler and make job active to have nextRunTime (which is a
+        // java.util.Date)
         schedulerJobHelper.updateSchedulerStatus(true);
         schedulerJobHelper.updateSchedulerJob(1, "true");
-        String nextRunTimeText = await().until(() -> (String)schedulerJobHelper.getSchedulerJobById(1).get("nextRunTime"), nextRunTime -> nextRunTime != null);
+        String nextRunTimeText = await().until(
+                () -> (String) schedulerJobHelper.getSchedulerJobById(1).get("nextRunTime"),
+                nextRunTime -> nextRunTime != null);
         DateTimeFormatter.ISO_INSTANT.parse(nextRunTimeText);
     }
 
@@ -77,7 +80,8 @@ public class SchedulerJobsTest {
 
     @Test
     public void testFlippingJobsActiveStatus() throws InterruptedException {
-        // Stop the Scheduler while we test flapping jobs' active on/off, to avoid side effects
+        // Stop the Scheduler while we test flapping jobs' active on/off, to avoid side
+        // effects
         schedulerJobHelper.updateSchedulerStatus(false);
 
         // For each retrieved scheduled job (by ID)...
@@ -119,13 +123,13 @@ public class SchedulerJobsTest {
                 Thread.sleep(500);
                 schedulerJob = schedulerJobHelper.getSchedulerJobById(jobId);
                 assertNotNull(schedulerJob);
-                System.out.println("Job " + jobId +" is Still Running");
             }
             @SuppressWarnings({ "unchecked", "rawtypes" })
             List<Map> jobHistoryData = schedulerJobHelper.getSchedulerJobHistory(jobId);
 
             // Verifying the Status of the Recently executed Scheduler Job
-            assertFalse("Job History is empty :(  Was it too slow? Failures in background job?", jobHistoryData.isEmpty());
+            assertFalse("Job History is empty :(  Was it too slow? Failures in background job?",
+                    jobHistoryData.isEmpty());
             assertEquals("Verifying Last Scheduler Job Status", "success",
                     jobHistoryData.get(jobHistoryData.size() - 1).get("status"));
         }
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SchedulerJobsTestResults.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SchedulerJobsTestResults.java
index 0ece685..21976f4 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SchedulerJobsTestResults.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SchedulerJobsTestResults.java
@@ -69,936 +69,1024 @@ import org.junit.Test;
 @SuppressWarnings({ "unused", "unchecked", "rawtypes", "static-access", "cast" })
 public class SchedulerJobsTestResults {
 
-    private static final String FROM_ACCOUNT_TYPE_LOAN = "1";
-    private static final String FROM_ACCOUNT_TYPE_SAVINGS = "2";
-    private static final String TO_ACCOUNT_TYPE_LOAN = "1";
-    private static final String TO_ACCOUNT_TYPE_SAVINGS = "2";
-    private final String DATE_OF_JOINING = "01 January 2011";
-
-    private final String TRANSACTION_DATE = "01 March 2013";
-    public static final String ACCOUNT_TYPE_INDIVIDUAL = "INDIVIDUAL";
-    public static final String MINIMUM_OPENING_BALANCE = "1000";
-
-    Float SP_BALANCE = Float.valueOf(MINIMUM_OPENING_BALANCE);
-
-    private static ResponseSpecification responseSpec;
-    private static RequestSpecification requestSpec;
-    private ResponseSpecification responseSpecForSchedulerJob;
-    private SchedulerJobHelper schedulerJobHelper;
-    private SavingsAccountHelper savingsAccountHelper;
-    private LoanTransactionHelper loanTransactionHelper;
-    private HolidayHelper holidayHelper;
-    private GlobalConfigurationHelper globalConfigurationHelper;
-    private AccountHelper accountHelper;
-    private JournalEntryHelper journalEntryHelper;
-    private StandingInstructionsHelper standingInstructionsHelper;
-
-    @Before
-    public void setup() {
-        Utils.initializeRESTAssured();
-        this.requestSpec = new RequestSpecBuilder().setContentType(ContentType.JSON).build();
-        this.requestSpec.header("Authorization", "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey());
-        this.requestSpec.header("Fineract-Platform-TenantId", "default");
-        this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
-        this.responseSpecForSchedulerJob = new ResponseSpecBuilder().expectStatusCode(202).build();
-        this.accountHelper = new AccountHelper(this.requestSpec, this.responseSpec);
-        this.journalEntryHelper = new JournalEntryHelper(this.requestSpec, this.responseSpec);
-    }
-
-    @After
-    public void tearDown() {
-        GlobalConfigurationHelper.resetAllDefaultGlobalConfigurations(this.requestSpec, this.responseSpec);
-        GlobalConfigurationHelper.verifyAllDefaultGlobalConfigurations(this.requestSpec, this.responseSpec);
-    }
+        private static final String FROM_ACCOUNT_TYPE_LOAN = "1";
+        private static final String FROM_ACCOUNT_TYPE_SAVINGS = "2";
+        private static final String TO_ACCOUNT_TYPE_LOAN = "1";
+        private static final String TO_ACCOUNT_TYPE_SAVINGS = "2";
+        private final String DATE_OF_JOINING = "01 January 2011";
+
+        private final String TRANSACTION_DATE = "01 March 2013";
+        public static final String ACCOUNT_TYPE_INDIVIDUAL = "INDIVIDUAL";
+        public static final String MINIMUM_OPENING_BALANCE = "1000";
+
+        Float SP_BALANCE = Float.valueOf(MINIMUM_OPENING_BALANCE);
+
+        private static ResponseSpecification responseSpec;
+        private static RequestSpecification requestSpec;
+        private ResponseSpecification responseSpecForSchedulerJob;
+        private SchedulerJobHelper schedulerJobHelper;
+        private SavingsAccountHelper savingsAccountHelper;
+        private LoanTransactionHelper loanTransactionHelper;
+        private HolidayHelper holidayHelper;
+        private GlobalConfigurationHelper globalConfigurationHelper;
+        private AccountHelper accountHelper;
+        private JournalEntryHelper journalEntryHelper;
+        private StandingInstructionsHelper standingInstructionsHelper;
+
+        @Before
+        public void setup() {
+                Utils.initializeRESTAssured();
+                this.requestSpec = new RequestSpecBuilder().setContentType(ContentType.JSON).build();
+                this.requestSpec.header("Authorization",
+                                "Basic " + Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey());
+                this.requestSpec.header("Fineract-Platform-TenantId", "default");
+                this.responseSpec = new ResponseSpecBuilder().expectStatusCode(200).build();
+                this.responseSpecForSchedulerJob = new ResponseSpecBuilder().expectStatusCode(202).build();
+                this.accountHelper = new AccountHelper(this.requestSpec, this.responseSpec);
+                this.journalEntryHelper = new JournalEntryHelper(this.requestSpec, this.responseSpec);
+        }
 
-    @Test
-    @Ignore // TODO FINERACT-924
-    public void testApplyAnnualFeeForSavingsJobOutcome() throws InterruptedException {
-        this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
-        this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
-
-        final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
-        Assert.assertNotNull(clientID);
+        @After
+        public void tearDown() {
+                GlobalConfigurationHelper.resetAllDefaultGlobalConfigurations(this.requestSpec, this.responseSpec);
+                GlobalConfigurationHelper.verifyAllDefaultGlobalConfigurations(this.requestSpec, this.responseSpec);
+        }
 
-        final Integer savingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec,
-                ClientSavingsIntegrationTest.MINIMUM_OPENING_BALANCE);
-        Assert.assertNotNull(savingsProductID);
+        @Test
+        @Ignore // TODO FINERACT-924
+        public void testApplyAnnualFeeForSavingsJobOutcome() throws InterruptedException {
+                this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
+                this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
 
-        final Integer savingsId = this.savingsAccountHelper.applyForSavingsApplication(clientID, savingsProductID,
-                ClientSavingsIntegrationTest.ACCOUNT_TYPE_INDIVIDUAL);
-        Assert.assertNotNull(savingsProductID);
+                final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
+                Assert.assertNotNull(clientID);
 
-        HashMap savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, savingsId);
-        SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap);
+                final Integer savingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec,
+                                ClientSavingsIntegrationTest.MINIMUM_OPENING_BALANCE);
+                Assert.assertNotNull(savingsProductID);
 
-        final Integer annualFeeChargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec,
-                ChargesHelper.getSavingsAnnualFeeJSON());
-        Assert.assertNotNull(annualFeeChargeId);
+                final Integer savingsId = this.savingsAccountHelper.applyForSavingsApplication(clientID,
+                                savingsProductID, ClientSavingsIntegrationTest.ACCOUNT_TYPE_INDIVIDUAL);
+                Assert.assertNotNull(savingsProductID);
 
-        this.savingsAccountHelper.addChargesForSavings(savingsId, annualFeeChargeId, true);
-        ArrayList<HashMap> chargesPendingState = this.savingsAccountHelper.getSavingsCharges(savingsId);
-        Assert.assertEquals(1, chargesPendingState.size());
+                HashMap savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec,
+                                this.responseSpec, savingsId);
+                SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap);
 
-        savingsStatusHashMap = this.savingsAccountHelper.approveSavings(savingsId);
-        SavingsStatusChecker.verifySavingsIsApproved(savingsStatusHashMap);
+                final Integer annualFeeChargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec,
+                                ChargesHelper.getSavingsAnnualFeeJSON());
+                Assert.assertNotNull(annualFeeChargeId);
 
-        savingsStatusHashMap = this.savingsAccountHelper.activateSavings(savingsId);
-        SavingsStatusChecker.verifySavingsIsActive(savingsStatusHashMap);
+                this.savingsAccountHelper.addChargesForSavings(savingsId, annualFeeChargeId, true);
+                ArrayList<HashMap> chargesPendingState = this.savingsAccountHelper.getSavingsCharges(savingsId);
+                Assert.assertEquals(1, chargesPendingState.size());
 
-        String JobName = "Apply Annual Fee For Savings";
+                savingsStatusHashMap = this.savingsAccountHelper.approveSavings(savingsId);
+                SavingsStatusChecker.verifySavingsIsApproved(savingsStatusHashMap);
 
-        this.schedulerJobHelper.executeJob(JobName);
-        final HashMap chargeData = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, annualFeeChargeId);
+                savingsStatusHashMap = this.savingsAccountHelper.activateSavings(savingsId);
+                SavingsStatusChecker.verifySavingsIsActive(savingsStatusHashMap);
 
-        Float chargeAmount = (Float) chargeData.get("amount");
+                String JobName = "Apply Annual Fee For Savings";
 
-        final HashMap savingsDetails = this.savingsAccountHelper.getSavingsDetails(savingsId);
-        final HashMap annualFeeDetails = (HashMap) savingsDetails.get("annualFee");
-        ArrayList<Integer> annualFeeDueDateAsArrayList = (ArrayList<Integer>) annualFeeDetails.get("dueDate");
-        LocalDate nextDueDateForAnnualFee = LocalDate.of(annualFeeDueDateAsArrayList.get(0), annualFeeDueDateAsArrayList.get(1), annualFeeDueDateAsArrayList.get(2));
-        LocalDate todaysDate = LocalDate.now(ZoneId.of("Asia/Kolkata"));
+                this.schedulerJobHelper.executeJob(JobName);
+                final HashMap chargeData = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec,
+                                annualFeeChargeId);
 
-        Assert.assertTrue("Verifying that all due Annual Fees have been paid ",
-                nextDueDateForAnnualFee.isAfter(todaysDate));
+                Float chargeAmount = (Float) chargeData.get("amount");
 
-    }
+                final HashMap savingsDetails = this.savingsAccountHelper.getSavingsDetails(savingsId);
+                final HashMap annualFeeDetails = (HashMap) savingsDetails.get("annualFee");
+                ArrayList<Integer> annualFeeDueDateAsArrayList = (ArrayList<Integer>) annualFeeDetails.get("dueDate");
+                LocalDate nextDueDateForAnnualFee = LocalDate.of(annualFeeDueDateAsArrayList.get(0),
+                                annualFeeDueDateAsArrayList.get(1), annualFeeDueDateAsArrayList.get(2));
+                LocalDate todaysDate = LocalDate.now(ZoneId.of("Asia/Kolkata"));
 
-    @Test
-    @Ignore
-    public void testInterestPostingForSavingsJobOutcome() throws InterruptedException {
-        this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
-        this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
+                Assert.assertTrue("Verifying that all due Annual Fees have been paid ",
+                                nextDueDateForAnnualFee.isAfter(todaysDate));
 
-        final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
-        Assert.assertNotNull(clientID);
+        }
 
-        final Integer savingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec,
-                ClientSavingsIntegrationTest.MINIMUM_OPENING_BALANCE);
-        Assert.assertNotNull(savingsProductID);
+        @Test
+        @Ignore
+        public void testInterestPostingForSavingsJobOutcome() throws InterruptedException {
+                this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
+                this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
 
-        final Integer savingsId = this.savingsAccountHelper.applyForSavingsApplication(clientID, savingsProductID,
-                ClientSavingsIntegrationTest.ACCOUNT_TYPE_INDIVIDUAL);
-        Assert.assertNotNull(savingsProductID);
+                final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
+                Assert.assertNotNull(clientID);
 
-        HashMap savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, savingsId);
-        SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap);
+                final Integer savingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec,
+                                ClientSavingsIntegrationTest.MINIMUM_OPENING_BALANCE);
+                Assert.assertNotNull(savingsProductID);
 
-        savingsStatusHashMap = this.savingsAccountHelper.approveSavings(savingsId);
-        SavingsStatusChecker.verifySavingsIsApproved(savingsStatusHashMap);
+                final Integer savingsId = this.savingsAccountHelper.applyForSavingsApplication(clientID,
+                                savingsProductID, ClientSavingsIntegrationTest.ACCOUNT_TYPE_INDIVIDUAL);
+                Assert.assertNotNull(savingsProductID);
 
-        savingsStatusHashMap = this.savingsAccountHelper.activateSavings(savingsId);
-        SavingsStatusChecker.verifySavingsIsActive(savingsStatusHashMap);
+                HashMap savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec,
+                                this.responseSpec, savingsId);
+                SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap);
 
-        final HashMap summaryBefore = this.savingsAccountHelper.getSavingsSummary(savingsId);
+                savingsStatusHashMap = this.savingsAccountHelper.approveSavings(savingsId);
+                SavingsStatusChecker.verifySavingsIsApproved(savingsStatusHashMap);
 
-        String JobName = "Post Interest For Savings";
+                savingsStatusHashMap = this.savingsAccountHelper.activateSavings(savingsId);
+                SavingsStatusChecker.verifySavingsIsActive(savingsStatusHashMap);
 
-        this.schedulerJobHelper.executeJob(JobName);
-        final HashMap summaryAfter = this.savingsAccountHelper.getSavingsSummary(savingsId);
+                final HashMap summaryBefore = this.savingsAccountHelper.getSavingsSummary(savingsId);
 
-        Assert.assertNotSame("Verifying the Balance after running Post Interest for Savings Job", summaryBefore.get("accountBalance"),
-                summaryAfter.get("accountBalance"));
+                String JobName = "Post Interest For Savings";
 
-    }
+                this.schedulerJobHelper.executeJob(JobName);
+                final HashMap summaryAfter = this.savingsAccountHelper.getSavingsSummary(savingsId);
 
-    @Test
-    @Ignore // TODO FINERACT-857
-    public void testTransferFeeForLoansFromSavingsJobOutcome() throws InterruptedException {
-        this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
-        this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
-        this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
+                Assert.assertNotSame("Verifying the Balance after running Post Interest for Savings Job",
+                                summaryBefore.get("accountBalance"), summaryAfter.get("accountBalance"));
 
-        final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
-        Assert.assertNotNull(clientID);
+        }
 
-        final Integer savingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec,
-                ClientSavingsIntegrationTest.MINIMUM_OPENING_BALANCE);
-        Assert.assertNotNull(savingsProductID);
+        @Test
+        @Ignore // TODO FINERACT-857
+        public void testTransferFeeForLoansFromSavingsJobOutcome() throws InterruptedException {
+                this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
+                this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
+                this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
 
-        final Integer savingsId = this.savingsAccountHelper.applyForSavingsApplication(clientID, savingsProductID,
-                ClientSavingsIntegrationTest.ACCOUNT_TYPE_INDIVIDUAL);
-        Assert.assertNotNull(savingsProductID);
+                final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
+                Assert.assertNotNull(clientID);
 
-        HashMap savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, savingsId);
-        SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap);
+                final Integer savingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec,
+                                ClientSavingsIntegrationTest.MINIMUM_OPENING_BALANCE);
+                Assert.assertNotNull(savingsProductID);
 
-        savingsStatusHashMap = this.savingsAccountHelper.approveSavings(savingsId);
-        SavingsStatusChecker.verifySavingsIsApproved(savingsStatusHashMap);
+                final Integer savingsId = this.savingsAccountHelper.applyForSavingsApplication(clientID,
+                                savingsProductID, ClientSavingsIntegrationTest.ACCOUNT_TYPE_INDIVIDUAL);
+                Assert.assertNotNull(savingsProductID);
 
-        savingsStatusHashMap = this.savingsAccountHelper.activateSavings(savingsId);
-        SavingsStatusChecker.verifySavingsIsActive(savingsStatusHashMap);
+                HashMap savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec,
+                                this.responseSpec, savingsId);
+                SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap);
 
-        final Integer loanProductID = createLoanProduct(null);
-        Assert.assertNotNull(loanProductID);
+                savingsStatusHashMap = this.savingsAccountHelper.approveSavings(savingsId);
+                SavingsStatusChecker.verifySavingsIsApproved(savingsStatusHashMap);
 
-        final Integer loanID = applyForLoanApplication(clientID.toString(), loanProductID.toString(), savingsId.toString());
-        Assert.assertNotNull(loanID);
+                savingsStatusHashMap = this.savingsAccountHelper.activateSavings(savingsId);
+                SavingsStatusChecker.verifySavingsIsActive(savingsStatusHashMap);
 
-        HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
-        LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
+                final Integer loanProductID = createLoanProduct(null);
+                Assert.assertNotNull(loanProductID);
 
-        loanStatusHashMap = this.loanTransactionHelper.approveLoan(AccountTransferTest.LOAN_APPROVAL_DATE, loanID);
-        LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
+                final Integer loanID = applyForLoanApplication(clientID.toString(), loanProductID.toString(),
+                                savingsId.toString());
+                Assert.assertNotNull(loanID);
 
-        Integer specifiedDueDateChargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec,
-                ChargesHelper.getLoanSpecifiedDueDateWithAccountTransferJSON());
-        Assert.assertNotNull(specifiedDueDateChargeId);
+                HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec,
+                                loanID);
+                LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        this.loanTransactionHelper.addChargesForLoan(loanID,
-                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(specifiedDueDateChargeId.toString(), "12 March 2013", "100"));
-        ArrayList<HashMap> chargesPendingState = this.loanTransactionHelper.getLoanCharges(loanID);
-        Assert.assertEquals(1, chargesPendingState.size());
+                loanStatusHashMap = this.loanTransactionHelper.approveLoan(AccountTransferTest.LOAN_APPROVAL_DATE,
+                                loanID);
+                LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
 
-        loanStatusHashMap = this.loanTransactionHelper.disburseLoan(AccountTransferTest.LOAN_DISBURSAL_DATE, loanID);
-        LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
-        final HashMap summaryBefore = this.savingsAccountHelper.getSavingsSummary(savingsId);
+                Integer specifiedDueDateChargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec,
+                                ChargesHelper.getLoanSpecifiedDueDateWithAccountTransferJSON());
+                Assert.assertNotNull(specifiedDueDateChargeId);
 
-        String JobName = "Transfer Fee For Loans From Savings";
-        this.schedulerJobHelper.executeJob(JobName);
-        final HashMap summaryAfter = this.savingsAccountHelper.getSavingsSummary(savingsId);
+                this.loanTransactionHelper.addChargesForLoan(loanID,
+                                LoanTransactionHelper.getSpecifiedDueDateChargesForLoanAsJSON(
+                                                specifiedDueDateChargeId.toString(), "12 March 2013", "100"));
+                ArrayList<HashMap> chargesPendingState = this.loanTransactionHelper.getLoanCharges(loanID);
+                Assert.assertEquals(1, chargesPendingState.size());
 
-        final HashMap chargeData = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, specifiedDueDateChargeId);
+                loanStatusHashMap = this.loanTransactionHelper.disburseLoan(AccountTransferTest.LOAN_DISBURSAL_DATE,
+                                loanID);
+                LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
+                final HashMap summaryBefore = this.savingsAccountHelper.getSavingsSummary(savingsId);
 
-        Float chargeAmount = (Float) chargeData.get("amount");
+                String JobName = "Transfer Fee For Loans From Savings";
+                this.schedulerJobHelper.executeJob(JobName);
+                final HashMap summaryAfter = this.savingsAccountHelper.getSavingsSummary(savingsId);
 
-        final Float balance = (Float) summaryBefore.get("accountBalance") - chargeAmount;
+                final HashMap chargeData = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec,
+                                specifiedDueDateChargeId);
 
-        Assert.assertEquals("Verifying the Balance after running Transfer Fee for Loans from Savings", balance,
-                (Float) summaryAfter.get("accountBalance"));
+                Float chargeAmount = (Float) chargeData.get("amount");
 
-    }
+                final Float balance = (Float) summaryBefore.get("accountBalance") - chargeAmount;
 
-    @Test
-    @Ignore // TODO FINERACT-923
-    public void testApplyHolidaysToLoansJobOutcome() throws InterruptedException {
-        this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
-        this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
-        this.holidayHelper = new HolidayHelper(this.requestSpec, this.responseSpec);
-        this.globalConfigurationHelper = new GlobalConfigurationHelper(this.requestSpec, this.responseSpec);
+                Assert.assertEquals("Verifying the Balance after running Transfer Fee for Loans from Savings", balance,
+                                (Float) summaryAfter.get("accountBalance"));
 
-        final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
-        Assert.assertNotNull(clientID);
+        }
 
-        Integer holidayId = this.holidayHelper.createHolidays(this.requestSpec, this.responseSpec);
-        Assert.assertNotNull(holidayId);
+        @Test
+        @Ignore // TODO FINERACT-923
+        public void testApplyHolidaysToLoansJobOutcome() throws InterruptedException {
+                this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
+                this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
+                this.holidayHelper = new HolidayHelper(this.requestSpec, this.responseSpec);
+                this.globalConfigurationHelper = new GlobalConfigurationHelper(this.requestSpec, this.responseSpec);
 
-        final Integer loanProductID = createLoanProduct(null);
-        Assert.assertNotNull(loanProductID);
+                final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
+                Assert.assertNotNull(clientID);
 
-        final Integer loanID = applyForLoanApplication(clientID.toString(), loanProductID.toString(), null);
-        Assert.assertNotNull(loanID);
+                Integer holidayId = this.holidayHelper.createHolidays(this.requestSpec, this.responseSpec);
+                Assert.assertNotNull(holidayId);
 
-        HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
-        LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
+                final Integer loanProductID = createLoanProduct(null);
+                Assert.assertNotNull(loanProductID);
 
-        loanStatusHashMap = this.loanTransactionHelper.approveLoan(AccountTransferTest.LOAN_APPROVAL_DATE, loanID);
-        LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
+                final Integer loanID = applyForLoanApplication(clientID.toString(), loanProductID.toString(), null);
+                Assert.assertNotNull(loanID);
 
-        loanStatusHashMap = this.loanTransactionHelper.disburseLoan(AccountTransferTest.LOAN_DISBURSAL_DATE, loanID);
-        LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
+                HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec,
+                                loanID);
+                LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        // Retrieving All Global Configuration details
-        final ArrayList<HashMap> globalConfig = this.globalConfigurationHelper.getAllGlobalConfigurations(this.requestSpec,
-                this.responseSpec);
-        Assert.assertNotNull(globalConfig);
+                loanStatusHashMap = this.loanTransactionHelper.approveLoan(AccountTransferTest.LOAN_APPROVAL_DATE,
+                                loanID);
+                LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
 
-        // Updating Value for reschedule-repayments-on-holidays Global
-        // Configuration
-        Integer configId = (Integer) globalConfig.get(3).get("id");
-        Assert.assertNotNull(configId);
+                loanStatusHashMap = this.loanTransactionHelper.disburseLoan(AccountTransferTest.LOAN_DISBURSAL_DATE,
+                                loanID);
+                LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
-        HashMap configData = this.globalConfigurationHelper.getGlobalConfigurationById(this.requestSpec, this.responseSpec,
-                configId.toString());
-        Assert.assertNotNull(configData);
+                // Retrieving All Global Configuration details
+                final ArrayList<HashMap> globalConfig = this.globalConfigurationHelper
+                                .getAllGlobalConfigurations(this.requestSpec, this.responseSpec);
+                Assert.assertNotNull(globalConfig);
 
-        Boolean enabled = (Boolean) globalConfig.get(3).get("enabled");
+                // Updating Value for reschedule-repayments-on-holidays Global
+                // Configuration
+                Integer configId = (Integer) globalConfig.get(3).get("id");
+                Assert.assertNotNull(configId);
 
-        if (enabled == false) {
-            enabled = true;
-            configId = this.globalConfigurationHelper.updateEnabledFlagForGlobalConfiguration(this.requestSpec, this.responseSpec,
-                    configId.toString(), enabled);
-        }
-        final ArrayList<HashMap> repaymentScheduleDataBeforeJob = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
-                this.responseSpec, loanID);
+                HashMap configData = this.globalConfigurationHelper.getGlobalConfigurationById(this.requestSpec,
+                                this.responseSpec, configId.toString());
+                Assert.assertNotNull(configData);
 
-        holidayId = this.holidayHelper.activateHolidays(this.requestSpec, this.responseSpec, holidayId.toString());
-        Assert.assertNotNull(holidayId);
+                Boolean enabled = (Boolean) globalConfig.get(3).get("enabled");
 
-        String JobName = "Apply Holidays To Loans";
+                if (enabled == false) {
+                        enabled = true;
+                        configId = this.globalConfigurationHelper.updateEnabledFlagForGlobalConfiguration(
+                                        this.requestSpec, this.responseSpec, configId.toString(), enabled);
+                }
+                final ArrayList<HashMap> repaymentScheduleDataBeforeJob = this.loanTransactionHelper
+                                .getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
 
-        this.schedulerJobHelper.executeJob(JobName);
-        final ArrayList<HashMap> repaymentScheduleDataAfterJob = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
-                this.responseSpec, loanID);
+                holidayId = this.holidayHelper.activateHolidays(this.requestSpec, this.responseSpec,
+                                holidayId.toString());
+                Assert.assertNotNull(holidayId);
 
-        HashMap holidayData = this.holidayHelper.getHolidayById(this.requestSpec, this.responseSpec, holidayId.toString());
-        ArrayList<Integer> repaymentsRescheduledDate = (ArrayList<Integer>) holidayData.get("repaymentsRescheduledTo");
+                String JobName = "Apply Holidays To Loans";
 
-        ArrayList<Integer> rescheduleDateAfter = (ArrayList<Integer>) repaymentScheduleDataAfterJob.get(2).get("fromDate");
+                this.schedulerJobHelper.executeJob(JobName);
+                final ArrayList<HashMap> repaymentScheduleDataAfterJob = this.loanTransactionHelper
+                                .getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
 
-        Assert.assertEquals("Verifying Repayment Rescheduled Date after Running Apply Holidays to Loans Scheduler Job",
-                repaymentsRescheduledDate, repaymentsRescheduledDate);
+                HashMap holidayData = this.holidayHelper.getHolidayById(this.requestSpec, this.responseSpec,
+                                holidayId.toString());
+                ArrayList<Integer> repaymentsRescheduledDate = (ArrayList<Integer>) holidayData
+                                .get("repaymentsRescheduledTo");
 
-    }
+                ArrayList<Integer> rescheduleDateAfter = (ArrayList<Integer>) repaymentScheduleDataAfterJob.get(2)
+                                .get("fromDate");
 
-    @Test
-    @Ignore // TODO FINERACT-857
-    public void testApplyDueFeeChargesForSavingsJobOutcome() throws InterruptedException {
-        this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
-        this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
+                Assert.assertEquals(
+                                "Verifying Repayment Rescheduled Date after Running Apply Holidays to Loans Scheduler Job",
+                                repaymentsRescheduledDate, repaymentsRescheduledDate);
 
-        final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
-        Assert.assertNotNull(clientID);
+        }
 
-        final Integer savingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec,
-                ClientSavingsIntegrationTest.MINIMUM_OPENING_BALANCE);
-        Assert.assertNotNull(savingsProductID);
+        @Test
+        @Ignore // TODO FINERACT-857
+        public void testApplyDueFeeChargesForSavingsJobOutcome() throws InterruptedException {
+                this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
+                this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
 
-        final Integer savingsId = this.savingsAccountHelper.applyForSavingsApplication(clientID, savingsProductID,
-                ClientSavingsIntegrationTest.ACCOUNT_TYPE_INDIVIDUAL);
-        Assert.assertNotNull(savingsProductID);
+                final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
+                Assert.assertNotNull(clientID);
 
-        HashMap savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, savingsId);
-        SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap);
+                final Integer savingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec,
+                                ClientSavingsIntegrationTest.MINIMUM_OPENING_BALANCE);
+                Assert.assertNotNull(savingsProductID);
 
-        final Integer specifiedDueDateChargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec,
-                ChargesHelper.getSavingsSpecifiedDueDateJSON());
-        Assert.assertNotNull(specifiedDueDateChargeId);
+                final Integer savingsId = this.savingsAccountHelper.applyForSavingsApplication(clientID,
+                                savingsProductID, ClientSavingsIntegrationTest.ACCOUNT_TYPE_INDIVIDUAL);
+                Assert.assertNotNull(savingsProductID);
 
-        this.savingsAccountHelper.addChargesForSavings(savingsId, specifiedDueDateChargeId, true);
-        ArrayList<HashMap> chargesPendingState = this.savingsAccountHelper.getSavingsCharges(savingsId);
-        Assert.assertEquals(1, chargesPendingState.size());
+                HashMap savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec,
+                                this.responseSpec, savingsId);
+                SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap);
 
-        savingsStatusHashMap = this.savingsAccountHelper.approveSavings(savingsId);
-        SavingsStatusChecker.verifySavingsIsApproved(savingsStatusHashMap);
+                final Integer specifiedDueDateChargeId = ChargesHelper.createCharges(this.requestSpec,
+                                this.responseSpec, ChargesHelper.getSavingsSpecifiedDueDateJSON());
+                Assert.assertNotNull(specifiedDueDateChargeId);
 
-        savingsStatusHashMap = this.savingsAccountHelper.activateSavings(savingsId);
-        SavingsStatusChecker.verifySavingsIsActive(savingsStatusHashMap);
+                this.savingsAccountHelper.addChargesForSavings(savingsId, specifiedDueDateChargeId, true);
+                ArrayList<HashMap> chargesPendingState = this.savingsAccountHelper.getSavingsCharges(savingsId);
+                Assert.assertEquals(1, chargesPendingState.size());
 
-        HashMap summaryBefore = this.savingsAccountHelper.getSavingsSummary(savingsId);
+                savingsStatusHashMap = this.savingsAccountHelper.approveSavings(savingsId);
+                SavingsStatusChecker.verifySavingsIsApproved(savingsStatusHashMap);
 
-        String JobName = "Pay Due Savings Charges";
+                savingsStatusHashMap = this.savingsAccountHelper.activateSavings(savingsId);
+                SavingsStatusChecker.verifySavingsIsActive(savingsStatusHashMap);
 
-        this.schedulerJobHelper.executeJob(JobName);
-        HashMap summaryAfter = this.savingsAccountHelper.getSavingsSummary(savingsId);
+                HashMap summaryBefore = this.savingsAccountHelper.getSavingsSummary(savingsId);
 
-        final HashMap chargeData = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, specifiedDueDateChargeId);
+                String JobName = "Pay Due Savings Charges";
 
-        Float chargeAmount = (Float) chargeData.get("amount");
+                this.schedulerJobHelper.executeJob(JobName);
+                HashMap summaryAfter = this.savingsAccountHelper.getSavingsSummary(savingsId);
 
-        final Float balance = (Float) summaryBefore.get("accountBalance") - chargeAmount;
+                final HashMap chargeData = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec,
+                                specifiedDueDateChargeId);
 
-        Assert.assertEquals("Verifying the Balance after running Pay due Savings Charges", balance,
-                (Float) summaryAfter.get("accountBalance"));
-    }
+                Float chargeAmount = (Float) chargeData.get("amount");
 
-    @Test
-    @Ignore // TODO FINERACT-857
-    public void testUpdateAccountingRunningBalancesJobOutcome() throws InterruptedException {
-        this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
-        this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
+                final Float balance = (Float) summaryBefore.get("accountBalance") - chargeAmount;
 
-        final Account assetAccount = this.accountHelper.createAssetAccount();
-        final Account incomeAccount = this.accountHelper.createIncomeAccount();
-        final Account expenseAccount = this.accountHelper.createExpenseAccount();
-        final Account liabilityAccount = this.accountHelper.createLiabilityAccount();
+                Assert.assertEquals("Verifying the Balance after running Pay due Savings Charges", balance,
+                                (Float) summaryAfter.get("accountBalance"));
+        }
 
-        final Integer accountID = assetAccount.getAccountID();
+        @Test
+        @Ignore // TODO FINERACT-857
+        public void testUpdateAccountingRunningBalancesJobOutcome() throws InterruptedException {
+                this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
+                this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
 
-        final Integer savingsProductID = createSavingsProduct(MINIMUM_OPENING_BALANCE, assetAccount, incomeAccount, expenseAccount,
-                liabilityAccount);
+                final Account assetAccount = this.accountHelper.createAssetAccount();
+                final Account incomeAccount = this.accountHelper.createIncomeAccount();
+                final Account expenseAccount = this.accountHelper.createExpenseAccount();
+                final Account liabilityAccount = this.accountHelper.createLiabilityAccount();
 
-        final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec, this.DATE_OF_JOINING);
-        final Integer savingsID = this.savingsAccountHelper.applyForSavingsApplication(clientID, savingsProductID, ACCOUNT_TYPE_INDIVIDUAL);
+                final Integer accountID = assetAccount.getAccountID();
 
-        HashMap savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, savingsID);
-        SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap);
+                final Integer savingsProductID = createSavingsProduct(MINIMUM_OPENING_BALANCE, assetAccount,
+                                incomeAccount, expenseAccount, liabilityAccount);
 
-        savingsStatusHashMap = this.savingsAccountHelper.approveSavings(savingsID);
-        SavingsStatusChecker.verifySavingsIsApproved(savingsStatusHashMap);
+                final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec,
+                                this.DATE_OF_JOINING);
+                final Integer savingsID = this.savingsAccountHelper.applyForSavingsApplication(clientID,
+                                savingsProductID, ACCOUNT_TYPE_INDIVIDUAL);
 
-        savingsStatusHashMap = this.savingsAccountHelper.activateSavings(savingsID);
-        SavingsStatusChecker.verifySavingsIsActive(savingsStatusHashMap);
+                HashMap savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec,
+                                this.responseSpec, savingsID);
+                SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap);
 
-        // Checking initial Account entries.
-        final JournalEntry[] assetAccountInitialEntry = { new JournalEntry(this.SP_BALANCE, JournalEntry.TransactionType.DEBIT) };
-        final JournalEntry[] liablilityAccountInitialEntry = { new JournalEntry(this.SP_BALANCE, JournalEntry.TransactionType.CREDIT) };
-        this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, this.TRANSACTION_DATE, assetAccountInitialEntry);
-        this.journalEntryHelper
-                .checkJournalEntryForLiabilityAccount(liabilityAccount, this.TRANSACTION_DATE, liablilityAccountInitialEntry);
+                savingsStatusHashMap = this.savingsAccountHelper.approveSavings(savingsID);
+                SavingsStatusChecker.verifySavingsIsApproved(savingsStatusHashMap);
 
-        String JobName = "Update Accounting Running Balances";
+                savingsStatusHashMap = this.savingsAccountHelper.activateSavings(savingsID);
+                SavingsStatusChecker.verifySavingsIsActive(savingsStatusHashMap);
 
-        this.schedulerJobHelper.executeJob(JobName);
-        final HashMap runningBalanceAfter = this.accountHelper.getAccountingWithRunningBalanceById(accountID.toString());
+                // Checking initial Account entries.
+                final JournalEntry[] assetAccountInitialEntry = {
+                                new JournalEntry(this.SP_BALANCE, JournalEntry.TransactionType.DEBIT) };
+                final JournalEntry[] liablilityAccountInitialEntry = {
+                                new JournalEntry(this.SP_BALANCE, JournalEntry.TransactionType.CREDIT) };
+                this.journalEntryHelper.checkJournalEntryForAssetAccount(assetAccount, this.TRANSACTION_DATE,
+                                assetAccountInitialEntry);
+                this.journalEntryHelper.checkJournalEntryForLiabilityAccount(liabilityAccount, this.TRANSACTION_DATE,
+                                liablilityAccountInitialEntry);
 
-        final Integer INT_BALANCE = Integer.valueOf(MINIMUM_OPENING_BALANCE);
+                String JobName = "Update Accounting Running Balances";
 
-        Assert.assertEquals("Verifying Account Running Balance after running Update Accounting Running Balances Scheduler Job",
-                INT_BALANCE, runningBalanceAfter.get("organizationRunningBalance"));
+                this.schedulerJobHelper.executeJob(JobName);
+                final HashMap runningBalanceAfter = this.accountHelper
+                                .getAccountingWithRunningBalanceById(accountID.toString());
 
-    }
+                final Integer INT_BALANCE = Integer.valueOf(MINIMUM_OPENING_BALANCE);
 
-    @Test
-    @Ignore // TODO FINERACT-857
-    public void testUpdateLoanArrearsAgingJobOutcome() throws InterruptedException {
-        this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
-        this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
+                Assert.assertEquals(
+                                "Verifying Account Running Balance after running Update Accounting Running Balances Scheduler Job",
+                                INT_BALANCE, runningBalanceAfter.get("organizationRunningBalance"));
 
-        final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
-        Assert.assertNotNull(clientID);
+        }
 
-        final Integer loanProductID = createLoanProduct(null);
-        Assert.assertNotNull(loanProductID);
+        @Test
+        @Ignore // TODO FINERACT-857
+        public void testUpdateLoanArrearsAgingJobOutcome() throws InterruptedException {
+                this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
+                this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
 
-        final Integer loanID = applyForLoanApplication(clientID.toString(), loanProductID.toString(), null);
-        Assert.assertNotNull(loanID);
+                final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
+                Assert.assertNotNull(clientID);
 
-        HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
-        LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
+                final Integer loanProductID = createLoanProduct(null);
+                Assert.assertNotNull(loanProductID);
 
-        loanStatusHashMap = this.loanTransactionHelper.approveLoan(AccountTransferTest.LOAN_APPROVAL_DATE, loanID);
-        LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
+                final Integer loanID = applyForLoanApplication(clientID.toString(), loanProductID.toString(), null);
+                Assert.assertNotNull(loanID);
 
-        loanStatusHashMap = this.loanTransactionHelper.disburseLoan(AccountTransferTest.LOAN_DISBURSAL_DATE, loanID);
-        LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
+                HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec,
+                                loanID);
+                LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        String JobName = "Update Loan Arrears Ageing";
+                loanStatusHashMap = this.loanTransactionHelper.approveLoan(AccountTransferTest.LOAN_APPROVAL_DATE,
+                                loanID);
+                LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
 
-        this.schedulerJobHelper.executeJob(JobName);
-        HashMap loanSummaryData = this.loanTransactionHelper.getLoanSummary(this.requestSpec, this.responseSpec, loanID);
+                loanStatusHashMap = this.loanTransactionHelper.disburseLoan(AccountTransferTest.LOAN_DISBURSAL_DATE,
+                                loanID);
+                LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
-        Float totalLoanArrearsAging = (Float) loanSummaryData.get("principalOverdue") + (Float) loanSummaryData.get("interestOverdue");
+                String JobName = "Update Loan Arrears Ageing";
 
-        Assert.assertEquals("Verifying Arrears Aging after Running Update Loan Arrears Aging Scheduler Job", totalLoanArrearsAging,
-                loanSummaryData.get("totalOverdue"));
+                this.schedulerJobHelper.executeJob(JobName);
+                HashMap loanSummaryData = this.loanTransactionHelper.getLoanSummary(this.requestSpec, this.responseSpec,
+                                loanID);
 
-    }
+                Float totalLoanArrearsAging = (Float) loanSummaryData.get("principalOverdue")
+                                + (Float) loanSummaryData.get("interestOverdue");
 
-    @Test
-    @Ignore // TODO FINERACT-857
-    public void testUpdateLoanPaidInAdvanceJobOutcome() throws InterruptedException {
-        this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
-        this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
+                Assert.assertEquals("Verifying Arrears Aging after Running Update Loan Arrears Aging Scheduler Job",
+                                totalLoanArrearsAging, loanSummaryData.get("totalOverdue"));
 
-        DateFormat dateFormat = new SimpleDateFormat("dd MMMM yyyy", Locale.US);
+        }
 
-        Calendar todayDate = Calendar.getInstance();
-        final String currentDate = dateFormat.format(todayDate.getTime());
+        @Test
+        @Ignore // TODO FINERACT-857
+        public void testUpdateLoanPaidInAdvanceJobOutcome() throws InterruptedException {
+                this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
+                this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
 
-        todayDate.add(Calendar.MONTH, -1);
-        final String LOAN_DISBURSEMENT_DATE = dateFormat.format(todayDate.getTime());
+                DateFormat dateFormat = new SimpleDateFormat("dd MMMM yyyy", Locale.US);
 
-        todayDate = Calendar.getInstance();
-        todayDate.add(Calendar.DATE, -5);
-        final String LOAN_FIRST_REPAYMENT_DATE = dateFormat.format(todayDate.getTime());
+                Calendar todayDate = Calendar.getInstance();
+                final String currentDate = dateFormat.format(todayDate.getTime());
 
-        final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
-        Assert.assertNotNull(clientID);
+                todayDate.add(Calendar.MONTH, -1);
+                final String LOAN_DISBURSEMENT_DATE = dateFormat.format(todayDate.getTime());
 
-        final Integer loanProductID = createLoanProduct(null);
-        Assert.assertNotNull(loanProductID);
+                todayDate = Calendar.getInstance();
+                todayDate.add(Calendar.DATE, -5);
+                final String LOAN_FIRST_REPAYMENT_DATE = dateFormat.format(todayDate.getTime());
 
-        final Integer loanID = applyForLoanApplication(clientID.toString(), loanProductID.toString(), null);
-        Assert.assertNotNull(loanID);
+                final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
+                Assert.assertNotNull(clientID);
 
-        HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
-        LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
+                final Integer loanProductID = createLoanProduct(null);
+                Assert.assertNotNull(loanProductID);
 
-        loanStatusHashMap = this.loanTransactionHelper.approveLoan(AccountTransferTest.LOAN_APPROVAL_DATE, loanID);
-        LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
+                final Integer loanID = applyForLoanApplication(clientID.toString(), loanProductID.toString(), null);
+                Assert.assertNotNull(loanID);
 
-        loanStatusHashMap = this.loanTransactionHelper.disburseLoan(LOAN_DISBURSEMENT_DATE, loanID);
-        LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
+                HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec,
+                                loanID);
+                LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> loanScheduleBefore = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec,
-                loanID);
+                loanStatusHashMap = this.loanTransactionHelper.approveLoan(AccountTransferTest.LOAN_APPROVAL_DATE,
+                                loanID);
+                LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
 
-        Float totalDueForCurrentPeriod = (Float) loanScheduleBefore.get(1).get("totalDueForPeriod");
+                loanStatusHashMap = this.loanTransactionHelper.disburseLoan(LOAN_DISBURSEMENT_DATE, loanID);
+                LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
-        this.loanTransactionHelper.makeRepayment(LOAN_FIRST_REPAYMENT_DATE, totalDueForCurrentPeriod, loanID);
+                ArrayList<HashMap> loanScheduleBefore = this.loanTransactionHelper
+                                .getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
 
-        HashMap loanSummary = this.loanTransactionHelper.getLoanSummary(this.requestSpec, this.responseSpec, loanID);
+                Float totalDueForCurrentPeriod = (Float) loanScheduleBefore.get(1).get("totalDueForPeriod");
 
-        String JobName = "Update Loan Paid In Advance";
-        this.schedulerJobHelper.executeJob(JobName);
-        // Retrieving Loan Repayment Schedule after the successful
-        // completion of
-        // Update Loan Paid in Advance Scheduler Job
-        ArrayList<HashMap> loanScheduleAfter = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec, this.responseSpec,
-                loanID);
+                this.loanTransactionHelper.makeRepayment(LOAN_FIRST_REPAYMENT_DATE, totalDueForCurrentPeriod, loanID);
 
-        loanSummary = this.loanTransactionHelper.getLoanSummary(this.requestSpec, this.responseSpec, loanID);
+                HashMap loanSummary = this.loanTransactionHelper.getLoanSummary(this.requestSpec, this.responseSpec,
+                                loanID);
 
-        Float totalPaidInAdvance = (Float) loanScheduleAfter.get(1).get("totalPaidInAdvanceForPeriod");
+                String JobName = "Update Loan Paid In Advance";
+                this.schedulerJobHelper.executeJob(JobName);
+                // Retrieving Loan Repayment Schedule after the successful
+                // completion of
+                // Update Loan Paid in Advance Scheduler Job
+                ArrayList<HashMap> loanScheduleAfter = this.loanTransactionHelper
+                                .getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
 
-        Assert.assertEquals("Verifying Loan Repayment in Advance after Running Update Loan Paid in Advance Scheduler Job",
-                totalDueForCurrentPeriod, totalPaidInAdvance);
+                loanSummary = this.loanTransactionHelper.getLoanSummary(this.requestSpec, this.responseSpec, loanID);
 
-    }
+                Float totalPaidInAdvance = (Float) loanScheduleAfter.get(1).get("totalPaidInAdvanceForPeriod");
 
-    // Invalid test case as it won't affect summary (Loan summary is properly
-    // updated before running this job)
-    @Ignore
-    @Test
-    public void testUpdateLoanSummaryJobOutcome() throws InterruptedException {
-        this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
-        this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
+                Assert.assertEquals(
+                                "Verifying Loan Repayment in Advance after Running Update Loan Paid in Advance Scheduler Job",
+                                totalDueForCurrentPeriod, totalPaidInAdvance);
 
-        DateFormat dateFormat = new SimpleDateFormat("dd MMMM yyyy", Locale.US);
+        }
 
-        Calendar todaysDate = Calendar.getInstance();
-        final String currentDate = dateFormat.format(todaysDate.getTime());
+        // Invalid test case as it won't affect summary (Loan summary is properly
+        // updated before running this job)
+        @Ignore
+        @Test
+        public void testUpdateLoanSummaryJobOutcome() throws InterruptedException {
+                this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
+                this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
 
-        todaysDate.add(Calendar.MONTH, -1);
-        final String LOAN_DISBURSEMENT_DATE = dateFormat.format(todaysDate.getTime());
+                DateFormat dateFormat = new SimpleDateFormat("dd MMMM yyyy", Locale.US);
 
-        todaysDate = Calendar.getInstance();
-        todaysDate.add(Calendar.DATE, -5);
-        final String LOAN_FIRST_REPAYMENT_DATE = dateFormat.format(todaysDate.getTime());
+                Calendar todaysDate = Calendar.getInstance();
+                final String currentDate = dateFormat.format(todaysDate.getTime());
 
-        final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
-        Assert.assertNotNull(clientID);
+                todaysDate.add(Calendar.MONTH, -1);
+                final String LOAN_DISBURSEMENT_DATE = dateFormat.format(todaysDate.getTime());
 
-        final Integer loanProductID = createLoanProduct(null);
-        Assert.assertNotNull(loanProductID);
+                todaysDate = Calendar.getInstance();
+                todaysDate.add(Calendar.DATE, -5);
+                final String LOAN_FIRST_REPAYMENT_DATE = dateFormat.format(todaysDate.getTime());
 
-        final Integer loanID = applyForLoanApplication(clientID.toString(), loanProductID.toString(), null);
-        Assert.assertNotNull(loanID);
+                final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
+                Assert.assertNotNull(clientID);
 
-        Integer disburseChargeId = ChargesHelper
-                .createCharges(this.requestSpec, this.responseSpec, ChargesHelper.getLoanDisbursementJSON());
-        Assert.assertNotNull(disburseChargeId);
+                final Integer loanProductID = createLoanProduct(null);
+                Assert.assertNotNull(loanProductID);
 
-        this.loanTransactionHelper.addChargesForLoan(loanID,
-                LoanTransactionHelper.getDisbursementChargesForLoanAsJSON(disburseChargeId.toString()));
-        ArrayList<HashMap> chargesPendingState = this.loanTransactionHelper.getLoanCharges(loanID);
-        Assert.assertEquals(1, chargesPendingState.size());
+                final Integer loanID = applyForLoanApplication(clientID.toString(), loanProductID.toString(), null);
+                Assert.assertNotNull(loanID);
 
-        HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
-        LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
+                Integer disburseChargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec,
+                                ChargesHelper.getLoanDisbursementJSON());
+                Assert.assertNotNull(disburseChargeId);
 
-        loanStatusHashMap = this.loanTransactionHelper.approveLoan(AccountTransferTest.LOAN_APPROVAL_DATE, loanID);
-        LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
+                this.loanTransactionHelper.addChargesForLoan(loanID,
+                                LoanTransactionHelper.getDisbursementChargesForLoanAsJSON(disburseChargeId.toString()));
+                ArrayList<HashMap> chargesPendingState = this.loanTransactionHelper.getLoanCharges(loanID);
+                Assert.assertEquals(1, chargesPendingState.size());
 
-        loanStatusHashMap = this.loanTransactionHelper.disburseLoan(LOAN_DISBURSEMENT_DATE, loanID);
-        LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
+                HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec,
+                                loanID);
+                LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        HashMap loanSummaryBefore = this.loanTransactionHelper.getLoanSummary(this.requestSpec, this.responseSpec, loanID);
+                loanStatusHashMap = this.loanTransactionHelper.approveLoan(AccountTransferTest.LOAN_APPROVAL_DATE,
+                                loanID);
+                LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
 
-        String JobName = "Update loan Summary";
-        this.schedulerJobHelper.executeJob(JobName);
-        Float expectedSummaryAfterJob = (Float) loanSummaryBefore.get("totalExpectedRepayment")
-               /* - (Float) loanSummaryBefore.get("feeChargesPaid")*/;
-        HashMap loanSummaryAfter = this.loanTransactionHelper.getLoanSummary(this.requestSpec, this.responseSpec, loanID);
-        Assert.assertEquals("Verifying Loan Summary after Running Update Loan Summary Scheduler Job", expectedSummaryAfterJob,
-                (Float) loanSummaryAfter.get("totalExpectedRepayment"));
+                loanStatusHashMap = this.loanTransactionHelper.disburseLoan(LOAN_DISBURSEMENT_DATE, loanID);
+                LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
-    }
+                HashMap loanSummaryBefore = this.loanTransactionHelper.getLoanSummary(this.requestSpec,
+                                this.responseSpec, loanID);
 
-    @Test
-    @Ignore // TODO FINERACT-857
-    public void testExecuteStandingInstructionsJobOutcome() throws InterruptedException {
-        this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
-        this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
-        this.standingInstructionsHelper = new StandingInstructionsHelper(this.requestSpec, this.responseSpec);
+                String JobName = "Update loan Summary";
+                this.schedulerJobHelper.executeJob(JobName);
+                Float expectedSummaryAfterJob = (Float) loanSummaryBefore.get("totalExpectedRepayment")
+                /* - (Float) loanSummaryBefore.get("feeChargesPaid") */;
+                HashMap loanSummaryAfter = this.loanTransactionHelper.getLoanSummary(this.requestSpec,
+                                this.responseSpec, loanID);
+                Assert.assertEquals("Verifying Loan Summary after Running Update Loan Summary Scheduler Job",
+                                expectedSummaryAfterJob, (Float) loanSummaryAfter.get("totalExpectedRepayment"));
 
-        DateFormat dateFormat = new SimpleDateFormat("dd MMMM yyyy", Locale.US);
-        DateFormat monthDayFormat = new SimpleDateFormat("dd MMMM", Locale.US);
+        }
 
-        Calendar todaysDate = Calendar.getInstance();
-        todaysDate.add(Calendar.WEEK_OF_YEAR, -1);
-        final String VALID_FROM = dateFormat.format(todaysDate.getTime());
+        @Test
+        @Ignore // TODO FINERACT-857
+        public void testExecuteStandingInstructionsJobOutcome() throws InterruptedException {
+                this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
+                this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
+                this.standingInstructionsHelper = new StandingInstructionsHelper(this.requestSpec, this.responseSpec);
 
-        final String MONTH_DAY = monthDayFormat.format(todaysDate.getTime());
+                DateFormat dateFormat = new SimpleDateFormat("dd MMMM yyyy", Locale.US);
+                DateFormat monthDayFormat = new SimpleDateFormat("dd MMMM", Locale.US);
 
-        todaysDate.add(Calendar.YEAR, 1);
-        final String VALID_TO = dateFormat.format(todaysDate.getTime());
+                Calendar todaysDate = Calendar.getInstance();
+                todaysDate.add(Calendar.WEEK_OF_YEAR, -1);
+                final String VALID_FROM = dateFormat.format(todaysDate.getTime());
 
-        final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
-        Assert.assertNotNull(clientID);
+                final String MONTH_DAY = monthDayFormat.format(todaysDate.getTime());
 
-        final Integer savingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec,
-                ClientSavingsIntegrationTest.MINIMUM_OPENING_BALANCE);
-        Assert.assertNotNull(savingsProductID);
+                todaysDate.add(Calendar.YEAR, 1);
+                final String VALID_TO = dateFormat.format(todaysDate.getTime());
 
-        final Integer fromSavingsId = this.savingsAccountHelper.applyForSavingsApplication(clientID, savingsProductID,
-                ClientSavingsIntegrationTest.ACCOUNT_TYPE_INDIVIDUAL);
-        Assert.assertNotNull(savingsProductID);
+                final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
+                Assert.assertNotNull(clientID);
 
-        HashMap fromSavingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, fromSavingsId);
-        SavingsStatusChecker.verifySavingsIsPending(fromSavingsStatusHashMap);
+                final Integer savingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec,
+                                ClientSavingsIntegrationTest.MINIMUM_OPENING_BALANCE);
+                Assert.assertNotNull(savingsProductID);
 
-        fromSavingsStatusHashMap = this.savingsAccountHelper.approveSavings(fromSavingsId);
-        SavingsStatusChecker.verifySavingsIsApproved(fromSavingsStatusHashMap);
+                final Integer fromSavingsId = this.savingsAccountHelper.applyForSavingsApplication(clientID,
+                                savingsProductID, ClientSavingsIntegrationTest.ACCOUNT_TYPE_INDIVIDUAL);
+                Assert.assertNotNull(savingsProductID);
 
-        fromSavingsStatusHashMap = this.savingsAccountHelper.activateSavings(fromSavingsId);
-        SavingsStatusChecker.verifySavingsIsActive(fromSavingsStatusHashMap);
+                HashMap fromSavingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec,
+                                this.responseSpec, fromSavingsId);
+                SavingsStatusChecker.verifySavingsIsPending(fromSavingsStatusHashMap);
 
-        final Integer toSavingsId = this.savingsAccountHelper.applyForSavingsApplication(clientID, savingsProductID,
-                ClientSavingsIntegrationTest.ACCOUNT_TYPE_INDIVIDUAL);
-        Assert.assertNotNull(savingsProductID);
+                fromSavingsStatusHashMap = this.savingsAccountHelper.approveSavings(fromSavingsId);
+                SavingsStatusChecker.verifySavingsIsApproved(fromSavingsStatusHashMap);
 
-        HashMap toSavingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, toSavingsId);
-        SavingsStatusChecker.verifySavingsIsPending(toSavingsStatusHashMap);
+                fromSavingsStatusHashMap = this.savingsAccountHelper.activateSavings(fromSavingsId);
+                SavingsStatusChecker.verifySavingsIsActive(fromSavingsStatusHashMap);
 
-        toSavingsStatusHashMap = this.savingsAccountHelper.approveSavings(toSavingsId);
-        SavingsStatusChecker.verifySavingsIsApproved(toSavingsStatusHashMap);
+                final Integer toSavingsId = this.savingsAccountHelper.applyForSavingsApplication(clientID,
+                                savingsProductID, ClientSavingsIntegrationTest.ACCOUNT_TYPE_INDIVIDUAL);
+                Assert.assertNotNull(savingsProductID);
 
-        toSavingsStatusHashMap = this.savingsAccountHelper.activateSavings(toSavingsId);
-        SavingsStatusChecker.verifySavingsIsActive(toSavingsStatusHashMap);
+                HashMap toSavingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec,
+                                this.responseSpec, toSavingsId);
+                SavingsStatusChecker.verifySavingsIsPending(toSavingsStatusHashMap);
 
-        HashMap fromSavingsSummaryBefore = this.savingsAccountHelper.getSavingsSummary(fromSavingsId);
-        Float fromSavingsBalanceBefore = (Float) fromSavingsSummaryBefore.get("accountBalance");
+                toSavingsStatusHashMap = this.savingsAccountHelper.approveSavings(toSavingsId);
+                SavingsStatusChecker.verifySavingsIsApproved(toSavingsStatusHashMap);
 
-        HashMap toSavingsSummaryBefore = this.savingsAccountHelper.getSavingsSummary(toSavingsId);
-        Float toSavingsBalanceBefore = (Float) toSavingsSummaryBefore.get("accountBalance");
+                toSavingsStatusHashMap = this.savingsAccountHelper.activateSavings(toSavingsId);
+                SavingsStatusChecker.verifySavingsIsActive(toSavingsStatusHashMap);
 
-        Integer standingInstructionId = this.standingInstructionsHelper.createStandingInstruction(clientID.toString(),
-                fromSavingsId.toString(), toSavingsId.toString(), FROM_ACCOUNT_TYPE_SAVINGS, TO_ACCOUNT_TYPE_SAVINGS, VALID_FROM, VALID_TO,
-                MONTH_DAY);
-        Assert.assertNotNull(standingInstructionId);
+                HashMap fromSavingsSummaryBefore = this.savingsAccountHelper.getSavingsSummary(fromSavingsId);
+                Float fromSavingsBalanceBefore = (Float) fromSavingsSummaryBefore.get("accountBalance");
 
-        String JobName = "Execute Standing Instruction";
-        this.schedulerJobHelper.executeJob(JobName);
-        HashMap fromSavingsSummaryAfter = this.savingsAccountHelper.getSavingsSummary(fromSavingsId);
-        Float fromSavingsBalanceAfter = (Float) fromSavingsSummaryAfter.get("accountBalance");
+                HashMap toSavingsSummaryBefore = this.savingsAccountHelper.getSavingsSummary(toSavingsId);
+                Float toSavingsBalanceBefore = (Float) toSavingsSummaryBefore.get("accountBalance");
 
-        HashMap toSavingsSummaryAfter = this.savingsAccountHelper.getSavingsSummary(toSavingsId);
-        Float toSavingsBalanceAfter = (Float) toSavingsSummaryAfter.get("accountBalance");
+                Integer standingInstructionId = this.standingInstructionsHelper.createStandingInstruction(
+                                clientID.toString(), fromSavingsId.toString(), toSavingsId.toString(),
+                                FROM_ACCOUNT_TYPE_SAVINGS, TO_ACCOUNT_TYPE_SAVINGS, VALID_FROM, VALID_TO, MONTH_DAY);
+                Assert.assertNotNull(standingInstructionId);
 
-        final HashMap standingInstructionData = this.standingInstructionsHelper
-                .getStandingInstructionById(standingInstructionId.toString());
-        Float expectedFromSavingsBalance = fromSavingsBalanceBefore - (Float) standingInstructionData.get("amount");
-        Float expectedToSavingsBalance = toSavingsBalanceBefore + (Float) standingInstructionData.get("amount");
+                String JobName = "Execute Standing Instruction";
+                this.schedulerJobHelper.executeJob(JobName);
+                HashMap fromSavingsSummaryAfter = this.savingsAccountHelper.getSavingsSummary(fromSavingsId);
+                Float fromSavingsBalanceAfter = (Float) fromSavingsSummaryAfter.get("accountBalance");
 
-        Assert.assertEquals("Verifying From Savings Balance after Successful completion of Scheduler Job", expectedFromSavingsBalance,
-                fromSavingsBalanceAfter);
-        Assert.assertEquals("Verifying To Savings Balance after Successful completion of Scheduler Job", expectedToSavingsBalance,
-                toSavingsBalanceAfter);
-        Integer fromAccountType = PortfolioAccountType.SAVINGS.getValue();
-        Integer transferType = AccountTransferType.ACCOUNT_TRANSFER.getValue();
-        List<HashMap> standinInstructionHistoryData = this.standingInstructionsHelper.getStandingInstructionHistory(fromSavingsId,
-                fromAccountType, clientID, transferType);
-        Assert.assertEquals("Verifying the no of stainding instruction transactions logged for the client", 1,
-                standinInstructionHistoryData.size());
-        HashMap loggedTransaction = standinInstructionHistoryData.get(0);
+                HashMap toSavingsSummaryAfter = this.savingsAccountHelper.getSavingsSummary(toSavingsId);
+                Float toSavingsBalanceAfter = (Float) toSavingsSummaryAfter.get("accountBalance");
 
-        Assert.assertEquals("Verifying transferred amount and logged transaction amounts", (Float) standingInstructionData.get("amount"),
-                (Float) loggedTransaction.get("amount"));
+                final HashMap standingInstructionData = this.standingInstructionsHelper
+                                .getStandingInstructionById(standingInstructionId.toString());
+                Float expectedFromSavingsBalance = fromSavingsBalanceBefore
+                                - (Float) standingInstructionData.get("amount");
+                Float expectedToSavingsBalance = toSavingsBalanceBefore + (Float) standingInstructionData.get("amount");
 
-    }
+                Assert.assertEquals("Verifying From Savings Balance after Successful completion of Scheduler Job",
+                                expectedFromSavingsBalance, fromSavingsBalanceAfter);
+                Assert.assertEquals("Verifying To Savings Balance after Successful completion of Scheduler Job",
+                                expectedToSavingsBalance, toSavingsBalanceAfter);
+                Integer fromAccountType = PortfolioAccountType.SAVINGS.getValue();
+                Integer transferType = AccountTransferType.ACCOUNT_TRANSFER.getValue();
+                List<HashMap> standinInstructionHistoryData = this.standingInstructionsHelper
+                                .getStandingInstructionHistory(fromSavingsId, fromAccountType, clientID, transferType);
+                Assert.assertEquals("Verifying the no of stainding instruction transactions logged for the client", 1,
+                                standinInstructionHistoryData.size());
+                HashMap loggedTransaction = standinInstructionHistoryData.get(0);
 
-    @Test
-    @Ignore
-    public void testApplyPenaltyForOverdueLoansJobOutcome() throws InterruptedException {
-        this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
-        this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
-        this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
+                Assert.assertEquals("Verifying transferred amount and logged transaction amounts",
+                                (Float) standingInstructionData.get("amount"), (Float) loggedTransaction.get("amount"));
 
-        final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
-        Assert.assertNotNull(clientID);
+        }
 
-        Integer overdueFeeChargeId = ChargesHelper
-                .createCharges(this.requestSpec, this.responseSpec, ChargesHelper.getLoanOverdueFeeJSON());
-        Assert.assertNotNull(overdueFeeChargeId);
+        @Test
+        @Ignore
+        public void testApplyPenaltyForOverdueLoansJobOutcome() throws InterruptedException {
+                this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
+                this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
+                this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
 
-        final Integer loanProductID = createLoanProduct(overdueFeeChargeId.toString());
-        Assert.assertNotNull(loanProductID);
+                final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
+                Assert.assertNotNull(clientID);
 
-        final Integer loanID = applyForLoanApplication(clientID.toString(), loanProductID.toString(), null);
-        Assert.assertNotNull(loanID);
+                Integer overdueFeeChargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec,
+                                ChargesHelper.getLoanOverdueFeeJSON());
+                Assert.assertNotNull(overdueFeeChargeId);
 
-        HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
-        LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
+                final Integer loanProductID = createLoanProduct(overdueFeeChargeId.toString());
+                Assert.assertNotNull(loanProductID);
 
-        loanStatusHashMap = this.loanTransactionHelper.approveLoan(AccountTransferTest.LOAN_APPROVAL_DATE, loanID);
-        LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
+                final Integer loanID = applyForLoanApplication(clientID.toString(), loanProductID.toString(), null);
+                Assert.assertNotNull(loanID);
 
-        loanStatusHashMap = this.loanTransactionHelper.disburseLoan(AccountTransferTest.LOAN_APPROVAL_DATE_PLUS_ONE, loanID);
-        LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
+                HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec,
+                                loanID);
+                LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> repaymentScheduleDataBefore = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
-                this.responseSpec, loanID);
+                loanStatusHashMap = this.loanTransactionHelper.approveLoan(AccountTransferTest.LOAN_APPROVAL_DATE,
+                                loanID);
+                LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
 
-        String JobName = "Apply penalty to overdue loans";
-        this.schedulerJobHelper.executeJob(JobName);
+                loanStatusHashMap = this.loanTransactionHelper
+                                .disburseLoan(AccountTransferTest.LOAN_APPROVAL_DATE_PLUS_ONE, loanID);
+                LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
-        final HashMap chargeData = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, overdueFeeChargeId);
+                ArrayList<HashMap> repaymentScheduleDataBefore = this.loanTransactionHelper
+                                .getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
 
-        Float chargeAmount = (Float) chargeData.get("amount");
+                String JobName = "Apply penalty to overdue loans";
+                this.schedulerJobHelper.executeJob(JobName);
 
-        ArrayList<HashMap> repaymentScheduleDataAfter = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
-                this.responseSpec, loanID);
+                final HashMap chargeData = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec,
+                                overdueFeeChargeId);
 
-        Assert.assertEquals("Verifying From Penalty Charges due fot first Repayment after Successful completion of Scheduler Job",
-                chargeAmount, (Float) repaymentScheduleDataAfter.get(1).get("penaltyChargesDue"));
+                Float chargeAmount = (Float) chargeData.get("amount");
 
-        loanStatusHashMap = this.loanTransactionHelper.undoDisbursal(loanID);
-        LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
-        LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
+                ArrayList<HashMap> repaymentScheduleDataAfter = this.loanTransactionHelper
+                                .getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
 
-    }
+                Assert.assertEquals(
+                                "Verifying From Penalty Charges due fot first Repayment after Successful completion of Scheduler Job",
+                                chargeAmount, (Float) repaymentScheduleDataAfter.get(1).get("penaltyChargesDue"));
 
-    @Test
-    @Ignore // TODO FINERACT-857
-    public void testAvoidUnncessaryPenaltyWhenAmountZeroForOverdueLoansJobOutcome() throws InterruptedException {
-        this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
-        this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
-        this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
+                loanStatusHashMap = this.loanTransactionHelper.undoDisbursal(loanID);
+                LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
+                LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
-        Assert.assertNotNull(clientID);
+        }
 
-        Integer overdueFeeChargeId = ChargesHelper
-                .createCharges(this.requestSpec, this.responseSpec, ChargesHelper.getLoanOverdueFeeJSONWithCalculattionTypePercentage("0.000001"));
-        Assert.assertNotNull(overdueFeeChargeId);
+        @Test
+        @Ignore // TODO FINERACT-857
+        public void testAvoidUnncessaryPenaltyWhenAmountZeroForOverdueLoansJobOutcome() throws InterruptedException {
+                this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
+                this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
+                this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
 
-        final Integer loanProductID = createLoanProduct(overdueFeeChargeId.toString());
-        Assert.assertNotNull(loanProductID);
+                final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
+                Assert.assertNotNull(clientID);
 
-        final Integer loanID = applyForLoanApplication(clientID.toString(), loanProductID.toString(), null);
-        Assert.assertNotNull(loanID);
+                Integer overdueFeeChargeId = ChargesHelper.createCharges(this.requestSpec, this.responseSpec,
+                                ChargesHelper.getLoanOverdueFeeJSONWithCalculattionTypePercentage("0.000001"));
+                Assert.assertNotNull(overdueFeeChargeId);
 
-        HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
-        LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
+                final Integer loanProductID = createLoanProduct(overdueFeeChargeId.toString());
+                Assert.assertNotNull(loanProductID);
 
-        loanStatusHashMap = this.loanTransactionHelper.approveLoan(AccountTransferTest.LOAN_APPROVAL_DATE, loanID);
-        LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
+                final Integer loanID = applyForLoanApplication(clientID.toString(), loanProductID.toString(), null);
+                Assert.assertNotNull(loanID);
 
-        loanStatusHashMap = this.loanTransactionHelper.disburseLoan(AccountTransferTest.LOAN_APPROVAL_DATE_PLUS_ONE, loanID);
-        LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
+                HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec,
+                                loanID);
+                LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
 
-        ArrayList<HashMap> repaymentScheduleDataBefore = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
-                this.responseSpec, loanID);
+                loanStatusHashMap = this.loanTransactionHelper.approveLoan(AccountTransferTest.LOAN_APPROVAL_DATE,
+                                loanID);
+                LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
 
-        String JobName = "Apply penalty to overdue loans";
-        Integer jobId = 12;
+                loanStatusHashMap = this.loanTransactionHelper
+                                .disburseLoan(AccountTransferTest.LOAN_APPROVAL_DATE_PLUS_ONE, loanID);
+                LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
 
-        this.schedulerJobHelper.executeJob(JobName);
+                ArrayList<HashMap> repaymentScheduleDataBefore = this.loanTransactionHelper
+                                .getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
 
-        Map<String, Object> schedulerJob = this.schedulerJobHelper.getSchedulerJobById(jobId);
+                String JobName = "Apply penalty to overdue loans";
+                Integer jobId = 12;
 
-        Assert.assertNotNull(schedulerJob);
-        while ((Boolean) schedulerJob.get("currentlyRunning") == true) {
-            Thread.sleep(15000);
-            schedulerJob = this.schedulerJobHelper.getSchedulerJobById(jobId);
-            Assert.assertNotNull(schedulerJob);
-        }
+                this.schedulerJobHelper.executeJob(JobName);
 
-        final HashMap chargeData = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec, overdueFeeChargeId);
+                Map<String, Object> schedulerJob = this.schedulerJobHelper.getSchedulerJobById(jobId);
 
-        ArrayList<HashMap> repaymentScheduleDataAfter = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
-                this.responseSpec, loanID);
+                Assert.assertNotNull(schedulerJob);
+                while ((Boolean) schedulerJob.get("currentlyRunning") == true) {
+                        Thread.sleep(15000);
+                        schedulerJob = this.schedulerJobHelper.getSchedulerJobById(jobId);
+                        Assert.assertNotNull(schedulerJob);
+                }
 
-        Assert.assertEquals("Verifying From Penalty Charges due fot first Repayment after Successful completion of Scheduler Job",
-                0, repaymentScheduleDataAfter.get(1).get("penaltyChargesDue"));
+                final HashMap chargeData = ChargesHelper.getChargeById(this.requestSpec, this.responseSpec,
+                                overdueFeeChargeId);
 
-        final ArrayList loanCharges = this.loanTransactionHelper.getLoanCharges(this.requestSpec,
-                this.responseSpec, loanID);
+                ArrayList<HashMap> repaymentScheduleDataAfter = this.loanTransactionHelper
+                                .getLoanRepaymentSchedule(this.requestSpec, this.responseSpec, loanID);
 
-        Assert.assertNull("Verifying that charge isn't created when the amount is 0", loanCharges);
+                Assert.assertEquals(
+                                "Verifying From Penalty Charges due fot first Repayment after Successful completion of Scheduler Job",
+                                0, repaymentScheduleDataAfter.get(1).get("penaltyChargesDue"));
 
-        loanStatusHashMap = this.loanTransactionHelper.undoDisbursal(loanID);
-        LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
-        LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
+                final ArrayList loanCharges = this.loanTransactionHelper.getLoanCharges(this.requestSpec,
+                                this.responseSpec, loanID);
 
-    }
+                Assert.assertNull("Verifying that charge isn't created when the amount is 0", loanCharges);
 
-    @Test
-    @Ignore // TODO FINERACT-857
-    public void testUpdateOverdueDaysForNPA() throws InterruptedException {
-        this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
-        this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
+                loanStatusHashMap = this.loanTransactionHelper.undoDisbursal(loanID);
+                LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
+                LoanStatusChecker.verifyLoanIsWaitingForDisbursal(loanStatusHashMap);
 
-        final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
-        Assert.assertNotNull(clientID);
+        }
+
+        @Test
+        @Ignore // TODO FINERACT-857
+        public void testUpdateOverdueDaysForNPA() throws InterruptedException {
+                this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
+                this.loanTransactionHelper = new LoanTransactionHelper(this.requestSpec, this.responseSpec);
+
+                final Integer clientID = ClientHelper.createClient(this.requestSpec, this.responseSpec);
+                Assert.assertNotNull(clientID);
+
+                final Integer loanProductID = createLoanProduct(null);
+                Assert.assertNotNull(loanProductID);
+
+                final Integer loanID = applyForLoanApplication(clientID.toString(), loanProductID.toString(), null);
+                Assert.assertNotNull(loanID);
+
+                HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec,
+                                loanID);
+                LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
+
+                loanStatusHashMap = this.loanTransactionHelper.approveLoan(AccountTransferTest.LOAN_APPROVAL_DATE,
+                                loanID);
+                LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
+
+                loanStatusHashMap = this.loanTransactionHelper.disburseLoan(AccountTransferTest.LOAN_DISBURSAL_DATE,
+                                loanID);
+                LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
+
+                final Boolean isNPABefore = (Boolean) this.loanTransactionHelper.getLoanDetail(requestSpec,
+                                responseSpec, loanID, "isNPA");
+                Assert.assertFalse(isNPABefore);
+                // Integer jobId = (Integer) allSchedulerJobsData.get(1).get("jobId");
+                String JobName = "Update Non Performing Assets";
+                this.schedulerJobHelper.executeJob(JobName);
+                final Boolean isNPAAfter = (Boolean) this.loanTransactionHelper.getLoanDetail(requestSpec, responseSpec,
+                                loanID, "isNPA");
+                Assert.assertTrue(isNPAAfter);
+        }
+
+        @Test
+        @Ignore // TODO FINERACT-857
+        public void testInterestTransferForSavings() throws InterruptedException {
+                this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
+                this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
+                // FixedDepositProductHelper fixedDepositProductHelper = new
+                // FixedDepositProductHelper(this.requestSpec,this.responseSpec);
+                // AccountHelper accountHelper = new AccountHelper(this.requestSpec,
+                // this.responseSpec);
+                FixedDepositAccountHelper fixedDepositAccountHelper = new FixedDepositAccountHelper(this.requestSpec,
+                                this.responseSpec);
+
+                DateFormat dateFormat = new SimpleDateFormat("dd MMMM yyyy", Locale.US);
+                // DateFormat monthDayFormat = new SimpleDateFormat("dd MMM", Locale.US);
+
+                Calendar todaysDate = Calendar.getInstance();
+                todaysDate.add(Calendar.MONTH, -3);
+                final String VALID_FROM = dateFormat.format(todaysDate.getTime());
+                todaysDate.add(Calendar.YEAR, 10);
+                final String VALID_TO = dateFormat.format(todaysDate.getTime());
+
+                todaysDate = Calendar.getInstance();
+                todaysDate.add(Calendar.MONTH, -2);
+                final String SUBMITTED_ON_DATE = dateFormat.format(todaysDate.getTime());
+                final String APPROVED_ON_DATE = dateFormat.format(todaysDate.getTime());
+                final String ACTIVATION_DATE = dateFormat.format(todaysDate.getTime());
+                todaysDate.add(Calendar.MONTH, 1);
+                final String WHOLE_TERM = "1";
+
+                Integer clientId = ClientHelper.createClient(this.requestSpec, this.responseSpec);
+                Assert.assertNotNull(clientId);
+                Float balance = Float.valueOf(MINIMUM_OPENING_BALANCE)
+                                + Float.valueOf(FixedDepositAccountHelper.depositAmount);
+                final Integer savingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec,
+                                String.valueOf(balance));
+                Assert.assertNotNull(savingsProductID);
+
+                final Integer savingsId = this.savingsAccountHelper.applyForSavingsApplication(clientId,
+                                savingsProductID, ClientSavingsIntegrationTest.ACCOUNT_TYPE_INDIVIDUAL);
+                Assert.assertNotNull(savingsId);
+
+                HashMap savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec,
+                                this.responseSpec, savingsId);
+                SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap);
+
+                savingsStatusHashMap = this.savingsAccountHelper.approveSavings(savingsId);
+                SavingsStatusChecker.verifySavingsIsApproved(savingsStatusHashMap);
+
+                savingsStatusHashMap = this.savingsAccountHelper.activateSavings(savingsId);
+                SavingsStatusChecker.verifySavingsIsActive(savingsStatusHashMap);
+                HashMap summary = savingsAccountHelper.getSavingsSummary(savingsId);
+                assertEquals("Verifying opening Balance", balance, summary.get("accountBalance"));
+
+                Integer fixedDepositProductId = createFixedDepositProduct(VALID_FROM, VALID_TO);
+                Assert.assertNotNull(fixedDepositProductId);
+
+                Integer fixedDepositAccountId = applyForFixedDepositApplication(clientId.toString(),
+                                fixedDepositProductId.toString(), VALID_FROM, VALID_TO, SUBMITTED_ON_DATE, WHOLE_TERM,
+                                savingsId.toString(), true, fixedDepositAccountHelper);
+                Assert.assertNotNull(fixedDepositAccountId);
+
+                HashMap fixedDepositAccountStatusHashMap = FixedDepositAccountStatusChecker
+                                .getStatusOfFixedDepositAccount(this.requestSpec, this.responseSpec,
+                                                fixedDepositAccountId.toString());
+                FixedDepositAccountStatusChecker.verifyFixedDepositIsPending(fixedDepositAccountStatusHashMap);
+
+                fixedDepositAccountStatusHashMap = fixedDepositAccountHelper.approveFixedDeposit(fixedDepositAccountId,
+                                APPROVED_ON_DATE);
+                FixedDepositAccountStatusChecker.verifyFixedDepositIsApproved(fixedDepositAccountStatusHashMap);
+
+                fixedDepositAccountStatusHashMap = fixedDepositAccountHelper.activateFixedDeposit(fixedDepositAccountId,
+                                ACTIVATION_DATE);
+                FixedDepositAccountStatusChecker.verifyFixedDepositIsActive(fixedDepositAccountStatusHashMap);
+                summary = savingsAccountHelper.getSavingsSummary(savingsId);
+                balance = Float.valueOf(MINIMUM_OPENING_BALANCE);
+                assertEquals("Verifying Balance", balance, summary.get("accountBalance"));
+
+                fixedDepositAccountHelper.postInterestForFixedDeposit(fixedDepositAccountId);
+
+                HashMap fixedDepositSummary = savingsAccountHelper.getSavingsSummary(fixedDepositAccountId);
+                Float interestPosted = (Float) fixedDepositSummary.get("accountBalance")
+                                - Float.valueOf(FixedDepositAccountHelper.depositAmount);
+
+                String JobName = "Transfer Interest To Savings";
+                this.schedulerJobHelper.executeJob(JobName);
+                fixedDepositSummary = savingsAccountHelper.getSavingsSummary(fixedDepositAccountId);
+                assertEquals("Verifying opening Balance", Float.valueOf(FixedDepositAccountHelper.depositAmount),
+                                fixedDepositSummary.get("accountBalance"));
+
+                summary = savingsAccountHelper.getSavingsSummary(savingsId);
+                balance = Float.valueOf(MINIMUM_OPENING_BALANCE) + interestPosted;
+                validateNumberForEqualExcludePrecission(String.valueOf(balance),
+                                String.valueOf(summary.get("accountBalance")));
+        }
 
-        final Integer loanProductID = createLoanProduct(null);
-        Assert.assertNotNull(loanProductID);
+        private Integer createSavingsProduct(final RequestSpecification requestSpec,
+                        final ResponseSpecification responseSpec, final String minOpenningBalance) {
+                // system.out.println("------------------------------CREATING NEW SAVINGS
+                // PRODUCT ---------------------------------------");
+                SavingsProductHelper savingsProductHelper = new SavingsProductHelper();
+                final String savingsProductJSON = savingsProductHelper //
+                                .withInterestCompoundingPeriodTypeAsDaily() //
+                                .withInterestPostingPeriodTypeAsMonthly() //
+                                .withInterestCalculationPeriodTypeAsDailyBalance() //
+                                .withMinimumOpenningBalance(minOpenningBalance).build();
+                return SavingsProductHelper.createSavingsProduct(savingsProductJSON, requestSpec, responseSpec);
+        }
 
-        final Integer loanID = applyForLoanApplication(clientID.toString(), loanProductID.toString(), null);
-        Assert.assertNotNull(loanID);
+        private static Integer createSavingsProduct(final String minOpenningBalance, final Account... accounts) {
+                // system.out.println("------------------------------CREATING NEW SAVINGS
+                // PRODUCT ---------------------------------------");
+                final String savingsProductJSON = new SavingsProductHelper().withInterestCompoundingPeriodTypeAsDaily() //
+                                .withInterestPostingPeriodTypeAsQuarterly() //
+                                .withInterestCalculationPeriodTypeAsDailyBalance() //
+                                .withMinimumOpenningBalance(minOpenningBalance).withAccountingRuleAsCashBased(accounts)
+                                .build();
+                return SavingsProductHelper.createSavingsProduct(savingsProductJSON, requestSpec, responseSpec);
+        }
 
-        HashMap loanStatusHashMap = LoanStatusChecker.getStatusOfLoan(this.requestSpec, this.responseSpec, loanID);
-        LoanStatusChecker.verifyLoanIsPending(loanStatusHashMap);
+        private Integer createLoanProduct(final String chargeId) {
+                // system.out.println("------------------------------CREATING NEW LOAN PRODUCT
+                // ---------------------------------------");
+                final String loanProductJSON = new LoanProductTestBuilder() //
+                                .withPrincipal("15,000.00") //
+                                .withNumberOfRepayments("4") //
+                                .withRepaymentAfterEvery("1") //
+                                .withRepaymentTypeAsMonth() //
+                                .withinterestRatePerPeriod("1") //
+                                .withInterestRateFrequencyTypeAsMonths() //
+                                .withAmortizationTypeAsEqualInstallments() //
+                                .withInterestTypeAsDecliningBalance() //
+                                .build(chargeId);
+                return this.loanTransactionHelper.getLoanProductId(loanProductJSON);
+        }
 
-        loanStatusHashMap = this.loanTransactionHelper.approveLoan(AccountTransferTest.LOAN_APPROVAL_DATE, loanID);
-        LoanStatusChecker.verifyLoanIsApproved(loanStatusHashMap);
-
-        loanStatusHashMap = this.loanTransactionHelper.disburseLoan(AccountTransferTest.LOAN_DISBURSAL_DATE, loanID);
-        LoanStatusChecker.verifyLoanIsActive(loanStatusHashMap);
-
-        final Boolean isNPABefore = (Boolean) this.loanTransactionHelper.getLoanDetail(requestSpec, responseSpec, loanID, "isNPA");
-        Assert.assertFalse(isNPABefore);
-        // Integer jobId = (Integer) allSchedulerJobsData.get(1).get("jobId");
-        String JobName = "Update Non Performing Assets";
-        this.schedulerJobHelper.executeJob(JobName);
-        final Boolean isNPAAfter = (Boolean) this.loanTransactionHelper.getLoanDetail(requestSpec, responseSpec, loanID, "isNPA");
-        Assert.assertTrue(isNPAAfter);
-    }
-
-    @Test
-    @Ignore // TODO FINERACT-857
-    public void testInterestTransferForSavings() throws InterruptedException {
-        this.savingsAccountHelper = new SavingsAccountHelper(this.requestSpec, this.responseSpec);
-        this.schedulerJobHelper = new SchedulerJobHelper(this.requestSpec, this.responseSpec);
-        //FixedDepositProductHelper fixedDepositProductHelper = new FixedDepositProductHelper(this.requestSpec,this.responseSpec);
-        //AccountHelper accountHelper = new AccountHelper(this.requestSpec, this.responseSpec);
-        FixedDepositAccountHelper fixedDepositAccountHelper = new FixedDepositAccountHelper(this.requestSpec, this.responseSpec);
-
-        DateFormat dateFormat = new SimpleDateFormat("dd MMMM yyyy", Locale.US);
-        //DateFormat monthDayFormat = new SimpleDateFormat("dd MMM", Locale.US);
-
-        Calendar todaysDate = Calendar.getInstance();
-        todaysDate.add(Calendar.MONTH, -3);
-        final String VALID_FROM = dateFormat.format(todaysDate.getTime());
-        todaysDate.add(Calendar.YEAR, 10);
-        final String VALID_TO = dateFormat.format(todaysDate.getTime());
-
-        todaysDate = Calendar.getInstance();
-        todaysDate.add(Calendar.MONTH, -2);
-        final String SUBMITTED_ON_DATE = dateFormat.format(todaysDate.getTime());
-        final String APPROVED_ON_DATE = dateFormat.format(todaysDate.getTime());
-        final String ACTIVATION_DATE = dateFormat.format(todaysDate.getTime());
-        todaysDate.add(Calendar.MONTH, 1);
-        final String WHOLE_TERM = "1";
-
-        Integer clientId = ClientHelper.createClient(this.requestSpec, this.responseSpec);
-        Assert.assertNotNull(clientId);
-        Float balance = Float.valueOf(MINIMUM_OPENING_BALANCE) + Float.valueOf(FixedDepositAccountHelper.depositAmount);
-        final Integer savingsProductID = createSavingsProduct(this.requestSpec, this.responseSpec, String.valueOf(balance));
-        Assert.assertNotNull(savingsProductID);
-
-        final Integer savingsId = this.savingsAccountHelper.applyForSavingsApplication(clientId, savingsProductID,
-                ClientSavingsIntegrationTest.ACCOUNT_TYPE_INDIVIDUAL);
-        Assert.assertNotNull(savingsId);
-
-        HashMap savingsStatusHashMap = SavingsStatusChecker.getStatusOfSavings(this.requestSpec, this.responseSpec, savingsId);
-        SavingsStatusChecker.verifySavingsIsPending(savingsStatusHashMap);
-
-        savingsStatusHashMap = this.savingsAccountHelper.approveSavings(savingsId);
-        SavingsStatusChecker.verifySavingsIsApproved(savingsStatusHashMap);
-
-        savingsStatusHashMap = this.savingsAccountHelper.activateSavings(savingsId);
-        SavingsStatusChecker.verifySavingsIsActive(savingsStatusHashMap);
-        HashMap summary = savingsAccountHelper.getSavingsSummary(savingsId);
-        assertEquals("Verifying opening Balance", balance, summary.get("accountBalance"));
-
-        Integer fixedDepositProductId = createFixedDepositProduct(VALID_FROM, VALID_TO);
-        Assert.assertNotNull(fixedDepositProductId);
-
-        Integer fixedDepositAccountId = applyForFixedDepositApplication(clientId.toString(), fixedDepositProductId.toString(), VALID_FROM,
-                VALID_TO, SUBMITTED_ON_DATE, WHOLE_TERM, savingsId.toString(), true, fixedDepositAccountHelper);
-        Assert.assertNotNull(fixedDepositAccountId);
-
-        HashMap fixedDepositAccountStatusHashMap = FixedDepositAccountStatusChecker.getStatusOfFixedDepositAccount(this.requestSpec,
-                this.responseSpec, fixedDepositAccountId.toString());
-        FixedDepositAccountStatusChecker.verifyFixedDepositIsPending(fixedDepositAccountStatusHashMap);
-
-        fixedDepositAccountStatusHashMap = fixedDepositAccountHelper.approveFixedDeposit(fixedDepositAccountId, APPROVED_ON_DATE);
-        FixedDepositAccountStatusChecker.verifyFixedDepositIsApproved(fixedDepositAccountStatusHashMap);
-
-        fixedDepositAccountStatusHashMap = fixedDepositAccountHelper.activateFixedDeposit(fixedDepositAccountId, ACTIVATION_DATE);
-        FixedDepositAccountStatusChecker.verifyFixedDepositIsActive(fixedDepositAccountStatusHashMap);
-        summary = savingsAccountHelper.getSavingsSummary(savingsId);
-        balance = Float.valueOf(MINIMUM_OPENING_BALANCE);
-        assertEquals("Verifying Balance", balance, summary.get("accountBalance"));
-
-        fixedDepositAccountHelper.postInterestForFixedDeposit(fixedDepositAccountId);
-
-        HashMap fixedDepositSummary = savingsAccountHelper.getSavingsSummary(fixedDepositAccountId);
-        Float interestPosted = (Float) fixedDepositSummary.get("accountBalance") - Float.valueOf(FixedDepositAccountHelper.depositAmount);
-
-        String JobName = "Transfer Interest To Savings";
-        this.schedulerJobHelper.executeJob(JobName);
-        fixedDepositSummary = savingsAccountHelper.getSavingsSummary(fixedDepositAccountId);
-        assertEquals("Verifying opening Balance", Float.valueOf(FixedDepositAccountHelper.depositAmount),
-                fixedDepositSummary.get("accountBalance"));
-
-        summary = savingsAccountHelper.getSavingsSummary(savingsId);
-        balance = Float.valueOf(MINIMUM_OPENING_BALANCE) + interestPosted;
-        validateNumberForEqualExcludePrecission(String.valueOf(balance), String.valueOf(summary.get("accountBalance")));
-    }
-
-    private Integer createSavingsProduct(final RequestSpecification requestSpec, final ResponseSpecification responseSpec,
-            final String minOpenningBalance) {
-        System.out.println("------------------------------CREATING NEW SAVINGS PRODUCT ---------------------------------------");
-        SavingsProductHelper savingsProductHelper = new SavingsProductHelper();
-        final String savingsProductJSON = savingsProductHelper //
-                .withInterestCompoundingPeriodTypeAsDaily() //
-                .withInterestPostingPeriodTypeAsMonthly() //
-                .withInterestCalculationPeriodTypeAsDailyBalance() //
-                .withMinimumOpenningBalance(minOpenningBalance).build();
-        return SavingsProductHelper.createSavingsProduct(savingsProductJSON, requestSpec, responseSpec);
-    }
-
-    private static Integer createSavingsProduct(final String minOpenningBalance, final Account... accounts) {
-        System.out.println("------------------------------CREATING NEW SAVINGS PRODUCT ---------------------------------------");
-        final String savingsProductJSON = new SavingsProductHelper().withInterestCompoundingPeriodTypeAsDaily() //
-                .withInterestPostingPeriodTypeAsQuarterly() //
-                .withInterestCalculationPeriodTypeAsDailyBalance() //
-                .withMinimumOpenningBalance(minOpenningBalance).withAccountingRuleAsCashBased(accounts).build();
-        return SavingsProductHelper.createSavingsProduct(savingsProductJSON, requestSpec, responseSpec);
-    }
-
-    private Integer createLoanProduct(final String chargeId) {
-        System.out.println("------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
-        final String loanProductJSON = new LoanProductTestBuilder() //
-                .withPrincipal("15,000.00") //
-                .withNumberOfRepayments("4") //
-                .withRepaymentAfterEvery("1") //
-                .withRepaymentTypeAsMonth() //
-                .withinterestRatePerPeriod("1") //
-                .withInterestRateFrequencyTypeAsMonths() //
-                .withAmortizationTypeAsEqualInstallments() //
-                .withInterestTypeAsDecliningBalance() //
-                .build(chargeId);
-        return this.loanTransactionHelper.getLoanProductId(loanProductJSON);
-    }
-
-    private Integer applyForLoanApplication(final String clientID, final String loanProductID, final String savingsID) {
-        System.out.println("--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
-        final String loanApplicationJSON = new LoanApplicationTestBuilder() //
-                .withPrincipal("15,000.00") //
-                .withLoanTermFrequency("4") //
-                .withLoanTermFrequencyAsMonths() //
-                .withNumberOfRepayments("4") //
-                .withRepaymentEveryAfter("1") //
-                .withRepaymentFrequencyTypeAsMonths() //
-                .withInterestRatePerPeriod("2") //
-                .withAmortizationTypeAsEqualInstallments() //
-                .withInterestTypeAsDecliningBalance() //
-                .withInterestCalculationPeriodTypeSameAsRepaymentPeriod() //
-                .withExpectedDisbursementDate("10 January 2013") //
-                .withSubmittedOnDate("10 January 2013") //
-                .build(clientID, loanProductID, savingsID);
-        return this.loanTransactionHelper.getLoanId(loanApplicationJSON);
-    }
-
-    private Integer createFixedDepositProduct(final String validFrom, final String validTo, Account... accounts) {
-        System.out.println("------------------------------CREATING NEW FIXED DEPOSIT PRODUCT ---------------------------------------");
-        FixedDepositProductHelper fixedDepositProductHelper = new FixedDepositProductHelper(this.requestSpec, this.responseSpec);
-        final String fixedDepositProductJSON = fixedDepositProductHelper //
-                // .withAccountingRuleAsCashBased(accounts)
-                .withPeriodRangeChart()//
-                .build(validFrom, validTo);
-        return FixedDepositProductHelper.createFixedDepositProduct(fixedDepositProductJSON, requestSpec, responseSpec);
-    }
-
-    private Integer applyForFixedDepositApplication(final String clientID, final String productID, final String validFrom,
-            final String validTo, final String submittedOnDate, final String penalInterestType, String savingsId,
-            final boolean transferInterest, final FixedDepositAccountHelper fixedDepositAccountHelper) {
-        System.out.println("--------------------------------APPLYING FOR FIXED DEPOSIT ACCOUNT --------------------------------");
-        final String fixedDepositApplicationJSON = new FixedDepositAccountHelper(this.requestSpec, this.responseSpec)
-                //
-                .withSubmittedOnDate(submittedOnDate).withSavings(savingsId).transferInterest(true)
-                .withLockinPeriodFrequency("1", FixedDepositAccountHelper.DAYS)
-                .build(clientID, productID, penalInterestType);
-        return fixedDepositAccountHelper.applyFixedDepositApplication(fixedDepositApplicationJSON, this.requestSpec, this.responseSpec);
-    }
-
-    private void validateNumberForEqualExcludePrecission(String val, String val2) {
-        DecimalFormat twoDForm = new DecimalFormat("#", new DecimalFormatSymbols(Locale.US));
-        Assert.assertTrue(Float.valueOf(twoDForm.format(Float.valueOf(val))).compareTo(Float.valueOf(twoDForm.format(Float.valueOf(val2)))) == 0);
-    }
+        private Integer applyForLoanApplication(final String clientID, final String loanProductID,
+                        final String savingsID) {
+                // system.out.println("--------------------------------APPLYING FOR LOAN
+                // APPLICATION--------------------------------");
+                final String loanApplicationJSON = new LoanApplicationTestBuilder() //
+                                .withPrincipal("15,000.00") //
+                                .withLoanTermFrequency("4") //
+                                .withLoanTermFrequencyAsMonths() //
+                                .withNumberOfRepayments("4") //
+                                .withRepaymentEveryAfter("1") //
+                                .withRepaymentFrequencyTypeAsMonths() //
+                                .withInterestRatePerPeriod("2") //
+                                .withAmortizationTypeAsEqualInstallments() //
+                                .withInterestTypeAsDecliningBalance() //
+                                .withInterestCalculationPeriodTypeSameAsRepaymentPeriod() //
+                                .withExpectedDisbursementDate("10 January 2013") //
+                                .withSubmittedOnDate("10 January 2013") //
+                                .build(clientID, loanProductID, savingsID);
+                return this.loanTransactionHelper.getLoanId(loanApplicationJSON);
+        }
+
+        private Integer createFixedDepositProduct(final String validFrom, final String validTo, Account... accounts) {
+                // system.out.println("------------------------------CREATING NEW FIXED DEPOSIT
+                // PRODUCT ---------------------------------------");
+                FixedDepositProductHelper fixedDepositProductHelper = new FixedDepositProductHelper(this.requestSpec,
+                                this.responseSpec);
+                final String fixedDepositProductJSON = fixedDepositProductHelper //
+                                // .withAccountingRuleAsCashBased(accounts)
+                                .withPeriodRangeChart()//
+                                .build(validFrom, validTo);
+                return FixedDepositProductHelper.createFixedDepositProduct(fixedDepositProductJSON, requestSpec,
+                                responseSpec);
+        }
+
+        private Integer applyForFixedDepositApplication(final String clientID, final String productID,
+                        final String validFrom, final String validTo, final String submittedOnDate,
+                        final String penalInterestType, String savingsId, final boolean transferInterest,
+                        final FixedDepositAccountHelper fixedDepositAccountHelper) {
+                // system.out.println("--------------------------------APPLYING FOR FIXED
+                // DEPOSIT ACCOUNT --------------------------------");
+                final String fixedDepositApplicationJSON = new FixedDepositAccountHelper(this.requestSpec,
+                                this.responseSpec)
+                                                //
+                                                .withSubmittedOnDate(submittedOnDate).withSavings(savingsId)
+                                                .transferInterest(true)
+                                                .withLockinPeriodFrequency("1", FixedDepositAccountHelper.DAYS)
+                                                .build(clientID, productID, penalInterestType);
+                return fixedDepositAccountHelper.applyFixedDepositApplication(fixedDepositApplicationJSON,
+                                this.requestSpec, this.responseSpec);
+        }
+
+        private void validateNumberForEqualExcludePrecission(String val, String val2) {
+                DecimalFormat twoDForm = new DecimalFormat("#", new DecimalFormatSymbols(Locale.US));
+                Assert.assertTrue(Float.valueOf(twoDForm.format(Float.valueOf(val)))
+                                .compareTo(Float.valueOf(twoDForm.format(Float.valueOf(val2)))) == 0);
+        }
 }
diff --git a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SkipRepaymentOnMonthFirstTest.java b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SkipRepaymentOnMonthFirstTest.java
index 7eaf0aa..035dce8 100644
--- a/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SkipRepaymentOnMonthFirstTest.java
+++ b/fineract-provider/src/integrationTest/java/org/apache/fineract/integrationtests/SkipRepaymentOnMonthFirstTest.java
@@ -40,10 +40,12 @@ import org.apache.fineract.integrationtests.common.loans.LoanTransactionHelper;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @SuppressWarnings({ "static-access", "rawtypes", "unchecked", "deprecation" })
 public class SkipRepaymentOnMonthFirstTest {
-
+    private final static Logger LOG = LoggerFactory.getLogger(SkipRepaymentOnMonthFirstTest.class);
     private ResponseSpecification responseSpec;
     private RequestSpecification requestSpec;
     private GlobalConfigurationHelper globalConfigurationHelper;
@@ -102,10 +104,10 @@ public class SkipRepaymentOnMonthFirstTest {
         final String interval = "1"; //Every One Moth
         Integer calendarID = calendarHelper.createMeetingForGroup(requestSpec, responseSpec, groupID, startDate, frequency,
                 interval, null);
-        System.out.println("caladerId --------------------" + calendarID);
+        LOG.info("caladerId -------------------- {}" , calendarID);
         final Integer loanProductID = createLoanProduct();
         final Integer loanID = applyForLoanApplication(groupID, loanProductID, calendarID, clientID);
-        System.out.println("loanID----" + loanID);
+        LOG.info("loanID---- {}" , loanID);
         final ArrayList<HashMap> loanSchedule = this.loanTransactionHelper.getLoanRepaymentSchedule(this.requestSpec,
                 this.responseSpec, loanID);
         verifyLoanRepaymentSchedule(loanSchedule);
@@ -113,7 +115,7 @@ public class SkipRepaymentOnMonthFirstTest {
     }
 
     private Integer createLoanProduct() {
-        System.out.println(
+        LOG.info(
                 "------------------------------CREATING NEW LOAN PRODUCT ---------------------------------------");
         final String loanProductJSON = new LoanProductTestBuilder() //
                 .withPrincipal("12,000.00") //
@@ -130,7 +132,7 @@ public class SkipRepaymentOnMonthFirstTest {
 
     private Integer applyForLoanApplication(final Integer groupID, final Integer loanProductID, Integer calendarID,
             Integer clientID) {
-        System.out.println(
+        LOG.info(
                 "--------------------------------APPLYING FOR LOAN APPLICATION--------------------------------");
         final String loanApplicationJSON = new LoanApplicationTestBuilder() //
                 .withPrincipal("12,000.00") //
@@ -147,27 +149,27 @@ public class SkipRepaymentOnMonthFirstTest {
                 .withCalendarID(calendarID.toString()) //
                 .withSubmittedOnDate("01 October 2011") //
                 .withLoanType("jlg").build(clientID.toString(), groupID.toString(), loanProductID.toString(), null);
-        System.out.println(loanApplicationJSON);
+        LOG.info(loanApplicationJSON);
         return this.loanTransactionHelper.getLoanId(loanApplicationJSON);
     }
 
     private void verifyLoanRepaymentSchedule(final ArrayList<HashMap> loanSchedule) {
-        System.out.println("--------------------VERIFYING THE REPAYMENT DATE--------------------------");
+        LOG.info("--------------------VERIFYING THE REPAYMENT DATE--------------------------");
         assertEquals("Checking for Repayment Date for 1st Month", new ArrayList<>(Arrays.asList(2011, 10, 15)),
                 loanSchedule.get(1).get("dueDate"));
-        System.out.println("Repayment Date for 1st Month--" + loanSchedule.get(1).get("dueDate"));
+        LOG.info("Repayment Date for 1st Month-- {}" , loanSchedule.get(1).get("dueDate"));
 
         assertEquals("Checking for Repayment Date for 2nd Month", new ArrayList<>(Arrays.asList(2011, 11, 15)),
                 loanSchedule.get(2).get("dueDate"));
-        System.out.println("Repayment Date for 2nd Month--" + loanSchedule.get(2).get("dueDate"));
+        LOG.info("Repayment Date for 2nd Month-- {}" , loanSchedule.get(2).get("dueDate"));
 
         assertEquals("Checking for  Repayment Date for 3rd Month", new ArrayList<>(Arrays.asList(2011, 12, 15)),
                 loanSchedule.get(3).get("dueDate"));
-        System.out.println("Repayment Date for 3rd Month--" + loanSchedule.get(3).get("dueDate"));
+        LOG.info("Repayment Date for 3rd Month-- {}" , loanSchedule.get(3).get("dueDate"));
 
         assertEquals("Checking for  Repayment Date for 4th Month", new ArrayList<>(Arrays.asList(2012, 1, 15)),
                 loanSchedule.get(4).get("dueDate"));
-        System.out.println("Repayment Date for 4th Month--" + loanSchedule.get(4).get("dueDate"));
+        LOG.info("Repayment Date for 4th Month-- {}" , loanSchedule.get(4).get("dueDate"));
     }
 
... 5777 lines suppressed ...


Mime
View raw message