This is an automated email from the ASF dual-hosted git repository.
adamsaghy 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 d6c10e830 FINERACT-1724: Sonar fixes
d6c10e830 is described below
commit d6c10e8303d5e45bd73c2b28ca5a5e5b8c04ca54
Author: abraham.menyhart <[email protected]>
AuthorDate: Tue Aug 1 13:42:05 2023 +0200
FINERACT-1724: Sonar fixes
---
.../job/src/test/java/AcmeNoopJobTaskletTest.java | 5 +-
.../client/util/CallFailedRuntimeException.java | 12 +++--
.../java/org/apache/fineract/client/util/JSON.java | 34 +++++++------
.../client/test/FineractClientTechnicalTest.java | 2 +-
.../core/api/ApiParameterHelper.java | 15 ------
.../core/config/FineractProperties.java | 8 ++++
.../core/data/DataValidatorBuilder.java | 55 +++++++---------------
.../database/DatabasePasswordEncryptor.java | 12 ++---
.../workingdays/service/WorkingDaysUtil.java | 5 +-
.../portfolio/calendar/data/CalendarData.java | 22 ++-------
.../portfolio/calendar/domain/Calendar.java | 54 ++++-----------------
.../portfolio/calendar/domain/CalendarHistory.java | 23 ++-------
.../portfolio/calendar/service/CalendarUtils.java | 4 +-
.../portfolio/savings/DepositAccountType.java | 2 +-
.../portfolio/savings/data/SavingsAccountData.java | 15 ++----
.../savings/data/SavingsAccountSummaryData.java | 6 +--
.../savings/service/SavingsEnumerations.java | 20 --------
.../fineract/cob/loan/LoanInlineCOBConfig.java | 3 --
.../ChartOfAccountsImportHandler.java | 5 +-
.../service/ReadWriteNonCoreDataServiceImpl.java | 4 +-
.../infrastructure/s3/AmazonS3ConfigCondition.java | 4 +-
.../service/TwoFactorConfigurationServiceImpl.java | 2 +-
.../service/CalendarReadPlatformServiceImpl.java | 5 +-
.../domain/DefaultScheduledDateGenerator.java | 2 +-
.../service/LoanReadPlatformServiceImpl.java | 3 +-
...ocketAccountMappingReadPlatformServiceImpl.java | 8 +---
...ServiceRegistrationReadPlatformServiceImpl.java | 7 +--
.../service/AppUserReadPlatformServiceImpl.java | 7 +--
.../src/main/resources/application.properties | 1 +
.../src/test/resources/application-test.properties | 1 +
.../integrationtests/CurrencyIntegrationTest.java | 43 -----------------
31 files changed, 113 insertions(+), 276 deletions(-)
diff --git a/custom/acme/loan/job/src/test/java/AcmeNoopJobTaskletTest.java
b/custom/acme/loan/job/src/test/java/AcmeNoopJobTaskletTest.java
index f8b6e5026..4b8f076ec 100644
--- a/custom/acme/loan/job/src/test/java/AcmeNoopJobTaskletTest.java
+++ b/custom/acme/loan/job/src/test/java/AcmeNoopJobTaskletTest.java
@@ -17,7 +17,8 @@
* specific language governing permissions and limitations
* under the License.
*/
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.springframework.batch.repeat.RepeatStatus.FINISHED;
import com.acme.fineract.loan.job.AcmeNoopJobTasklet;
import org.junit.jupiter.api.BeforeEach;
@@ -47,7 +48,7 @@ public class AcmeNoopJobTaskletTest {
@Test
public void testJobExecution() throws Exception {
resultStatus = underTest.execute(stepContribution, chunkContext);
- assertEquals(resultStatus, RepeatStatus.FINISHED);
+ assertEquals(FINISHED, resultStatus);
}
}
diff --git
a/fineract-client/src/main/java/org/apache/fineract/client/util/CallFailedRuntimeException.java
b/fineract-client/src/main/java/org/apache/fineract/client/util/CallFailedRuntimeException.java
index 333daa715..eb77e570a 100644
---
a/fineract-client/src/main/java/org/apache/fineract/client/util/CallFailedRuntimeException.java
+++
b/fineract-client/src/main/java/org/apache/fineract/client/util/CallFailedRuntimeException.java
@@ -19,6 +19,7 @@
package org.apache.fineract.client.util;
import java.io.IOException;
+import lombok.extern.slf4j.Slf4j;
import retrofit2.Call;
import retrofit2.Response;
@@ -27,6 +28,7 @@ import retrofit2.Response;
*
* @author Michael Vorburger.ch
*/
+@Slf4j
public class CallFailedRuntimeException extends RuntimeException {
private final Call<?> call;
@@ -46,17 +48,17 @@ public class CallFailedRuntimeException extends
RuntimeException {
private static String message(Call<?> call, Response<?> response) {
StringBuilder sb = new StringBuilder("HTTP failed: " + call.request()
+ "; " + response);
- if (response.message() != null && !response.message().isEmpty()) {
- sb.append("; message: " + response.message());
+ if (null != response.message() && !response.message().isEmpty()) {
+ sb.append("; message: ").append(response.message());
}
String errorBody;
try {
- errorBody = response.errorBody().string();
+ errorBody = response.errorBody() != null ?
response.errorBody().string() : null;
if (errorBody != null) {
- sb.append("; errorBody: " + errorBody);
+ sb.append("; errorBody: ").append(errorBody);
}
} catch (IOException e) {
- // Ignore.
+ log.error("Exception during creating the {} message:",
CallFailedRuntimeException.class.getSimpleName(), e);
}
return sb.toString();
}
diff --git
a/fineract-client/src/main/java/org/apache/fineract/client/util/JSON.java
b/fineract-client/src/main/java/org/apache/fineract/client/util/JSON.java
index cfbc15cbf..e6caa7ff9 100644
--- a/fineract-client/src/main/java/org/apache/fineract/client/util/JSON.java
+++ b/fineract-client/src/main/java/org/apache/fineract/client/util/JSON.java
@@ -23,6 +23,7 @@ import com.google.gson.JsonParseException;
import com.google.gson.TypeAdapter;
import com.google.gson.internal.bind.util.ISO8601Utils;
import com.google.gson.stream.JsonReader;
+import com.google.gson.stream.JsonToken;
import com.google.gson.stream.JsonWriter;
import io.gsonfire.GsonFireBuilder;
import java.io.IOException;
@@ -35,10 +36,12 @@ import java.time.LocalDate;
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
+import java.util.Objects;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import org.apache.fineract.client.models.ExternalId;
import org.apache.fineract.client.util.adapter.ExternalIdAdapter;
+import org.jetbrains.annotations.NotNull;
import retrofit2.Converter;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
@@ -212,25 +215,28 @@ public class JSON {
@Override
public Date read(JsonReader in) throws IOException {
try {
- switch (in.peek()) {
- case NULL:
- in.nextNull();
- return null;
- default:
- String date = in.nextString();
- try {
- if (dateFormat != null) {
- return dateFormat.parse(date);
- }
- return ISO8601Utils.parse(date, new
ParsePosition(0));
- } catch (ParseException e) {
- throw new JsonParseException(e);
- }
+ if (Objects.requireNonNull(in.peek()) == JsonToken.NULL) {
+ in.nextNull();
+ return null;
}
+ String date = in.nextString();
+ return parseDate(date);
} catch (IllegalArgumentException e) {
throw new JsonParseException(e);
}
}
+
+ @NotNull
+ private Date parseDate(String date) {
+ try {
+ if (null != dateFormat) {
+ return dateFormat.parse(date);
+ }
+ return ISO8601Utils.parse(date, new ParsePosition(0));
+ } catch (ParseException e) {
+ throw new JsonParseException(e);
+ }
+ }
}
// The following is not from the generated JSON class, but from the
original generated ApiClient.
diff --git
a/fineract-client/src/test/java/org/apache/fineract/client/test/FineractClientTechnicalTest.java
b/fineract-client/src/test/java/org/apache/fineract/client/test/FineractClientTechnicalTest.java
index efbe147aa..b369bec3a 100644
---
a/fineract-client/src/test/java/org/apache/fineract/client/test/FineractClientTechnicalTest.java
+++
b/fineract-client/src/test/java/org/apache/fineract/client/test/FineractClientTechnicalTest.java
@@ -32,7 +32,7 @@ import org.junit.jupiter.api.Test;
public class FineractClientTechnicalTest {
@Test
- @Disabled // TODO remove Ignore once
https://issues.apache.org/jira/browse/FINERACT-1221 is fixed
+ @Disabled("remove Ignore once
https://issues.apache.org/jira/browse/FINERACT-1221 is fixed")
void testInvalidOperations() {
FineractClient.Builder builder =
FineractClient.builder().baseURL("http://test/").tenant("default").basicAuth("mifos",
"password");
builder.getRetrofitBuilder().validateEagerly(true); // see
FINERACT-1221
diff --git
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/api/ApiParameterHelper.java
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/api/ApiParameterHelper.java
index 6c3ced505..f9e0a5a77 100644
---
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/api/ApiParameterHelper.java
+++
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/api/ApiParameterHelper.java
@@ -20,11 +20,8 @@ package org.apache.fineract.infrastructure.core.api;
import jakarta.ws.rs.core.MultivaluedMap;
import java.util.Arrays;
-import java.util.HashMap;
import java.util.HashSet;
-import java.util.List;
import java.util.Locale;
-import java.util.Map;
import java.util.Set;
import org.apache.commons.lang3.StringUtils;
import org.apache.fineract.infrastructure.core.serialization.JsonParserHelper;
@@ -148,16 +145,4 @@ public final class ApiParameterHelper {
public static boolean genericResultSetPassed(final MultivaluedMap<String,
String> queryParams) {
return queryParams.getFirst("genericResultSet") != null;
}
-
- public static Map<String, String> asMap(final MultivaluedMap<String,
String> queryParameters) {
-
- final Map<String, String> map = new HashMap<>(queryParameters.size());
-
- for (final String parameterName : queryParameters.keySet()) {
- final List<String> values = queryParameters.get(parameterName);
- map.put(parameterName, values.get(0));
- }
-
- return map;
- }
}
diff --git
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/config/FineractProperties.java
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/config/FineractProperties.java
index eeede352f..cf9f5baaa 100644
---
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/config/FineractProperties.java
+++
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/config/FineractProperties.java
@@ -61,6 +61,7 @@ public class FineractProperties {
private FineractTemplateProperties template;
private FineractJpaProperties jpa;
+ private FineractDatabaseProperties database;
private FineractQueryProperties query;
private FineractApiProperties api;
private FineractSecurityProperties security;
@@ -398,6 +399,13 @@ public class FineractProperties {
private boolean statementLoggingEnabled;
}
+ @Getter
+ @Setter
+ public static class FineractDatabaseProperties {
+
+ private String defaultMasterPassword;
+ }
+
@Getter
@Setter
public static class FineractQueryProperties {
diff --git
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/data/DataValidatorBuilder.java
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/data/DataValidatorBuilder.java
index 87ac64e78..29bb485e1 100644
---
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/data/DataValidatorBuilder.java
+++
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/data/DataValidatorBuilder.java
@@ -18,8 +18,6 @@
*/
package org.apache.fineract.infrastructure.core.data;
-import static java.util.stream.Collectors.toList;
-
import com.google.common.base.Splitter;
import com.google.gson.JsonArray;
import java.math.BigDecimal;
@@ -176,13 +174,10 @@ public class DataValidatorBuilder {
return this;
}
- /*** FIXME: Vishwas, why does this method have a parameter? Seems wrong
***/
- /*
- * This method is not meant for validation, if you have mandatory boolean
param and if it has invalid value or value
- * not passed then call this method, this method is always used with input
as false
- */
- public DataValidatorBuilder trueOrFalseRequired1(final boolean
trueOfFalseFieldProvided) {
- if (!trueOfFalseFieldProvided && !this.ignoreNullValue) {
+ public DataValidatorBuilder trueOrFalseRequired(final Object
trueOfFalseField) {
+
+ if (trueOfFalseField != null &&
!trueOfFalseField.toString().equalsIgnoreCase("true")
+ && !trueOfFalseField.toString().equalsIgnoreCase("false")) {
final StringBuilder validationErrorCode = new
StringBuilder("validation.msg.").append(this.resource).append(".")
.append(this.parameter).append(".must.be.true.or.false");
final StringBuilder defaultEnglishMessage = new StringBuilder("The
parameter `").append(this.parameter)
@@ -191,22 +186,6 @@ public class DataValidatorBuilder {
defaultEnglishMessage.toString(), this.parameter);
this.dataValidationErrors.add(error);
}
- return this;
- }
-
- public DataValidatorBuilder trueOrFalseRequired(final Object
trueOfFalseField) {
-
- if (trueOfFalseField != null) {
- if (!trueOfFalseField.toString().equalsIgnoreCase("true") &&
!trueOfFalseField.toString().equalsIgnoreCase("false")) {
- final StringBuilder validationErrorCode = new
StringBuilder("validation.msg.").append(this.resource).append(".")
-
.append(this.parameter).append(".must.be.true.or.false");
- final StringBuilder defaultEnglishMessage = new
StringBuilder("The parameter `").append(this.parameter)
- .append("` must be set as true or false.");
- final ApiParameterError error =
ApiParameterError.parameterError(validationErrorCode.toString(),
- defaultEnglishMessage.toString(), this.parameter);
- this.dataValidationErrors.add(error);
- }
- }
return this;
}
@@ -320,7 +299,7 @@ public class DataValidatorBuilder {
final List<Object> rawValuesList = Arrays.asList(values);
if (this.value == null || !rawValuesList.contains(this.value)) {
- final List<String> valuesList =
Arrays.stream(values).map(Object::toString).collect(toList());
+ final List<String> valuesList =
Arrays.stream(values).map(Object::toString).toList();
final String valuesListStr = String.join(", ", valuesList);
final StringBuilder validationErrorCode = new
StringBuilder("validation.msg.").append(this.resource).append(".")
.append(this.parameter).append(".is.not.one.of.expected.enumerations");
@@ -349,7 +328,7 @@ public class DataValidatorBuilder {
final List<Object> rawValuesList = Arrays.asList(values);
if (this.value == null ||
!rawValuesList.contains(this.value.toString().toLowerCase())) {
- final List<String> valuesList =
Arrays.stream(values).map(Object::toString).collect(toList());
+ final List<String> valuesList =
Arrays.stream(values).map(Object::toString).toList();
final String valuesListStr = String.join(", ", valuesList);
final StringBuilder validationErrorCode = new
StringBuilder("validation.msg.").append(this.resource).append(".")
.append(this.parameter).append(".is.not.one.of.expected.enumerations");
@@ -397,7 +376,7 @@ public class DataValidatorBuilder {
final List<Object> rawValuesList = Arrays.asList(values);
if (rawValuesList.contains(this.value)) {
- final List<String> valuesList =
Arrays.stream(values).map(Object::toString).collect(toList());
+ final List<String> valuesList =
Arrays.stream(values).map(Object::toString).toList();
final String valuesListStr = String.join(", ", valuesList);
final StringBuilder validationErrorCode = new
StringBuilder("validation.msg.").append(this.resource).append(".")
.append(this.parameter).append(".is.one.of.unwanted.enumerations");
@@ -879,17 +858,15 @@ public class DataValidatorBuilder {
}
public DataValidatorBuilder compareMinAndMaxOfTwoBigDecmimalNos(final
BigDecimal min, final BigDecimal max) {
- if (min != null && max != null) {
- if (max.compareTo(min) < 0) {
- final StringBuilder validationErrorCode = new
StringBuilder("validation.msg.").append(this.resource).append(".")
-
.append(this.parameter).append(".is.not.within.expected.range");
- final StringBuilder defaultEnglishMessage = new
StringBuilder("The ").append(" min number ").append(min)
- .append(" should less than max number
").append(max).append(".");
- final ApiParameterError error =
ApiParameterError.parameterError(validationErrorCode.toString(),
- defaultEnglishMessage.toString(), this.parameter, min,
max);
- this.dataValidationErrors.add(error);
- return this;
- }
+ if (min != null && max != null && max.compareTo(min) < 0) {
+ final StringBuilder validationErrorCode = new
StringBuilder("validation.msg.").append(this.resource).append(".")
+
.append(this.parameter).append(".is.not.within.expected.range");
+ final StringBuilder defaultEnglishMessage = new StringBuilder("The
").append(" min number ").append(min)
+ .append(" should less than max number
").append(max).append(".");
+ final ApiParameterError error =
ApiParameterError.parameterError(validationErrorCode.toString(),
+ defaultEnglishMessage.toString(), this.parameter, min,
max);
+ this.dataValidationErrors.add(error);
+ return this;
}
return this;
}
diff --git
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/DatabasePasswordEncryptor.java
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/DatabasePasswordEncryptor.java
index 7dec6c30b..161e84b7f 100644
---
a/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/DatabasePasswordEncryptor.java
+++
b/fineract-core/src/main/java/org/apache/fineract/infrastructure/core/service/database/DatabasePasswordEncryptor.java
@@ -34,8 +34,6 @@ public class DatabasePasswordEncryptor implements
PasswordEncryptor {
public static final String DEFAULT_ENCRYPTION = "AES/CBC/PKCS5Padding";
- public static final String DEFAULT_MASTER_PASSWORD = "fineract";
-
private final FineractProperties fineractProperties;
@SuppressWarnings("checkstyle:regexpsinglelinejava")
@@ -54,7 +52,8 @@ public class DatabasePasswordEncryptor implements
PasswordEncryptor {
@Override
public String encrypt(String plainPassword) {
String masterPassword =
Optional.ofNullable(fineractProperties.getTenant())
-
.map(FineractProperties.FineractTenantProperties::getMasterPassword).orElse(DEFAULT_MASTER_PASSWORD);
+
.map(FineractProperties.FineractTenantProperties::getMasterPassword)
+
.orElse(fineractProperties.getDatabase().getDefaultMasterPassword());
String encryption = Optional.ofNullable(fineractProperties.getTenant())
.map(FineractProperties.FineractTenantProperties::getEncryption).orElse(DEFAULT_ENCRYPTION);
return EncryptionUtil.encryptToBase64(encryption, masterPassword,
plainPassword);
@@ -63,7 +62,8 @@ public class DatabasePasswordEncryptor implements
PasswordEncryptor {
@Override
public String decrypt(String encryptedPassword) {
String masterPassword =
Optional.ofNullable(fineractProperties.getTenant())
-
.map(FineractProperties.FineractTenantProperties::getMasterPassword).orElse(DEFAULT_MASTER_PASSWORD);
+
.map(FineractProperties.FineractTenantProperties::getMasterPassword)
+
.orElse(fineractProperties.getDatabase().getDefaultMasterPassword());
String encryption = Optional.ofNullable(fineractProperties.getTenant())
.map(FineractProperties.FineractTenantProperties::getEncryption).orElse(DEFAULT_ENCRYPTION);
return EncryptionUtil.decryptFromBase64(encryption, masterPassword,
encryptedPassword);
@@ -73,7 +73,7 @@ public class DatabasePasswordEncryptor implements
PasswordEncryptor {
String masterPassword = Optional.ofNullable(fineractProperties) //
.map(FineractProperties::getTenant) //
.map(FineractProperties.FineractTenantProperties::getMasterPassword) //
- .orElse(DEFAULT_MASTER_PASSWORD);
+
.orElse(fineractProperties.getDatabase().getDefaultMasterPassword());
return BCrypt.hashpw(masterPassword.getBytes(StandardCharsets.UTF_8),
BCrypt.gensalt());
}
@@ -81,7 +81,7 @@ public class DatabasePasswordEncryptor implements
PasswordEncryptor {
String masterPassword = Optional.ofNullable(fineractProperties) //
.map(FineractProperties::getTenant) //
.map(FineractProperties.FineractTenantProperties::getMasterPassword) //
- .orElse(DEFAULT_MASTER_PASSWORD);
+
.orElse(fineractProperties.getDatabase().getDefaultMasterPassword());
return BCrypt.checkpw(masterPassword, hashed);
}
}
diff --git
a/fineract-core/src/main/java/org/apache/fineract/organisation/workingdays/service/WorkingDaysUtil.java
b/fineract-core/src/main/java/org/apache/fineract/organisation/workingdays/service/WorkingDaysUtil.java
index 68735cacf..cb0d6e17e 100644
---
a/fineract-core/src/main/java/org/apache/fineract/organisation/workingdays/service/WorkingDaysUtil.java
+++
b/fineract-core/src/main/java/org/apache/fineract/organisation/workingdays/service/WorkingDaysUtil.java
@@ -71,8 +71,7 @@ public final class WorkingDaysUtil {
adjustedDateDetailsDTO.setChangedScheduleDate(changedScheduleDate);
}
- public static RepaymentRescheduleType getRepaymentRescheduleType(final
WorkingDays workingDays, final LocalDate date) {
- RepaymentRescheduleType rescheduleType =
RepaymentRescheduleType.fromInt(workingDays.getRepaymentReschedulingType());
- return rescheduleType;
+ public static RepaymentRescheduleType getRepaymentRescheduleType(final
WorkingDays workingDays) {
+ return
RepaymentRescheduleType.fromInt(workingDays.getRepaymentReschedulingType());
}
}
diff --git
a/fineract-core/src/main/java/org/apache/fineract/portfolio/calendar/data/CalendarData.java
b/fineract-core/src/main/java/org/apache/fineract/portfolio/calendar/data/CalendarData.java
index aba4e210e..9a5211a47 100644
---
a/fineract-core/src/main/java/org/apache/fineract/portfolio/calendar/data/CalendarData.java
+++
b/fineract-core/src/main/java/org/apache/fineract/portfolio/calendar/data/CalendarData.java
@@ -377,30 +377,16 @@ public final class CalendarData implements Serializable {
}
public boolean isStartDateBeforeOrEqual(final LocalDate compareDate) {
- if (this.startDate != null && compareDate != null) {
- if (this.startDate.isBefore(compareDate) ||
this.startDate.equals(compareDate)) {
- return true;
- }
- }
- return false;
+ return this.startDate != null && compareDate != null
+ && (this.startDate.isBefore(compareDate) ||
this.startDate.equals(compareDate));
}
public boolean isEndDateAfterOrEqual(final LocalDate compareDate) {
- if (this.endDate != null && compareDate != null) {
- if (this.endDate.isAfter(compareDate) ||
this.endDate.isEqual(compareDate)) {
- return true;
- }
- }
- return false;
+ return this.endDate != null && compareDate != null &&
(this.endDate.isAfter(compareDate) || this.endDate.isEqual(compareDate));
}
public boolean isBetweenStartAndEndDate(final LocalDate compareDate) {
- if (isStartDateBeforeOrEqual(compareDate)) {
- if (this.endDate == null || isEndDateAfterOrEqual(compareDate)) {
- return true;
- }
- }
- return false;
+ return isStartDateBeforeOrEqual(compareDate) && (this.endDate == null
|| isEndDateAfterOrEqual(compareDate));
}
public boolean isValidRecurringDate(final LocalDate compareDate, final
Boolean isSkipMeetingOnFirstDay, final Integer numberOfDays) {
diff --git
a/fineract-core/src/main/java/org/apache/fineract/portfolio/calendar/domain/Calendar.java
b/fineract-core/src/main/java/org/apache/fineract/portfolio/calendar/domain/Calendar.java
index fbdff740a..ed8419b63 100644
---
a/fineract-core/src/main/java/org/apache/fineract/portfolio/calendar/domain/Calendar.java
+++
b/fineract-core/src/main/java/org/apache/fineract/portfolio/calendar/domain/Calendar.java
@@ -153,10 +153,7 @@ public class Calendar extends
AbstractAuditableWithUTCDateTimeCustom {
public static Calendar fromJson(final JsonCommand command) {
- // final Long entityId = command.getSupportedEntityId();
- // final Integer entityTypeId =
- //
CalendarEntityType.valueOf(command.getSupportedEntityType().toUpperCase()).getValue();
- LocalTime meetingtime = null;
+ LocalTime meetingtime;
final String title =
command.stringValueOfParameterNamed(CalendarSupportedParameters.TITLE.getValue());
final String description =
command.stringValueOfParameterNamed(CalendarSupportedParameters.DESCRIPTION.getValue());
final String location =
command.stringValueOfParameterNamed(CalendarSupportedParameters.LOCATION.getValue());
@@ -304,10 +301,6 @@ public class Calendar extends
AbstractAuditableWithUTCDateTimeCustom {
final String newMeetingType =
CalendarType.fromInt(newValue).name();
throw new
CalendarParameterUpdateNotSupportedException("meeting.type",
defaultUserMessage, newMeetingType, oldMeeingType);
- /*
- * final Integer newValue =
command.integerValueSansLocaleOfParameterNamed(typeParamName);
- * actualChanges.put(typeParamName, newValue); this.typeId =
newValue;
- */
}
final String repeatingParamName =
CalendarSupportedParameters.REPEATING.getValue();
@@ -401,11 +394,9 @@ public class Calendar extends
AbstractAuditableWithUTCDateTimeCustom {
final Integer interval, final Integer repeatsOnDay, final Integer
repeatsOnNthDay) {
final Map<String, Object> actualChanges = new LinkedHashMap<>(9);
- if (calendarStartDate != null && this.startDate != null) {
- if (!calendarStartDate.equals(this.getStartDateLocalDate())) {
- actualChanges.put("startDate", calendarStartDate);
- this.startDate = calendarStartDate;
- }
+ if (calendarStartDate != null && this.startDate != null &&
!calendarStartDate.equals(this.getStartDateLocalDate())) {
+ actualChanges.put("startDate", calendarStartDate);
+ this.startDate = calendarStartDate;
}
final String newRecurrence =
Calendar.constructRecurrence(frequencyType, interval, repeatsOnDay,
repeatsOnNthDay);
@@ -488,46 +479,21 @@ public class Calendar extends
AbstractAuditableWithUTCDateTimeCustom {
}
public boolean isStartDateBeforeOrEqual(final LocalDate compareDate) {
- if (this.startDate != null && compareDate != null) {
- if (getStartDateLocalDate().isBefore(compareDate) ||
getStartDateLocalDate().equals(compareDate)) {
- return true;
- }
- }
- return false;
+ return this.startDate != null && compareDate != null
+ && (getStartDateLocalDate().isBefore(compareDate) ||
getStartDateLocalDate().equals(compareDate));
}
public boolean isStartDateAfter(final LocalDate compareDate) {
- if (this.startDate != null && compareDate != null &&
getStartDateLocalDate().isAfter(compareDate)) {
- return true;
- }
- return false;
- }
-
- public boolean isStartDateAfterOrEqual(final LocalDate compareDate) {
- if (this.startDate != null && compareDate != null) {
- if (getStartDateLocalDate().isAfter(compareDate) ||
getStartDateLocalDate().isEqual(compareDate)) {
- return true;
- }
- }
- return false;
+ return this.startDate != null && compareDate != null &&
getStartDateLocalDate().isAfter(compareDate);
}
public boolean isEndDateAfterOrEqual(final LocalDate compareDate) {
- if (this.endDate != null && compareDate != null) {
- if (getEndDateLocalDate().isAfter(compareDate) ||
getEndDateLocalDate().isEqual(compareDate)) {
- return true;
- }
- }
- return false;
+ return this.endDate != null && compareDate != null
+ && (getEndDateLocalDate().isAfter(compareDate) ||
getEndDateLocalDate().isEqual(compareDate));
}
public boolean isBetweenStartAndEndDate(final LocalDate compareDate) {
- if (isStartDateBeforeOrEqual(compareDate)) {
- if (getEndDateLocalDate() == null ||
isEndDateAfterOrEqual(compareDate)) {
- return true;
- }
- }
- return false;
+ return isStartDateBeforeOrEqual(compareDate) && (getEndDateLocalDate()
== null || isEndDateAfterOrEqual(compareDate));
}
private static String constructRecurrence(final JsonCommand command, final
Calendar calendar) {
diff --git
a/fineract-core/src/main/java/org/apache/fineract/portfolio/calendar/domain/CalendarHistory.java
b/fineract-core/src/main/java/org/apache/fineract/portfolio/calendar/domain/CalendarHistory.java
index 9de62a950..7c40d8f25 100644
---
a/fineract-core/src/main/java/org/apache/fineract/portfolio/calendar/domain/CalendarHistory.java
+++
b/fineract-core/src/main/java/org/apache/fineract/portfolio/calendar/domain/CalendarHistory.java
@@ -104,30 +104,17 @@ public class CalendarHistory extends
AbstractPersistableCustom {
}
public boolean isEndDateAfterOrEqual(final LocalDate compareDate) {
- if (this.endDate != null && compareDate != null) {
- if (getEndDateLocalDate().isAfter(compareDate) ||
getEndDateLocalDate().isEqual(compareDate)) {
- return true;
- }
- }
- return false;
+ return this.endDate != null && compareDate != null
+ && (getEndDateLocalDate().isAfter(compareDate) ||
getEndDateLocalDate().isEqual(compareDate));
}
public boolean isStartDateBeforeOrEqual(final LocalDate compareDate) {
- if (this.startDate != null && compareDate != null) {
- if (getStartDateLocalDate().isBefore(compareDate) ||
getStartDateLocalDate().equals(compareDate)) {
- return true;
- }
- }
- return false;
+ return this.startDate != null && compareDate != null
+ && (getStartDateLocalDate().isBefore(compareDate) ||
getStartDateLocalDate().equals(compareDate));
}
public boolean isBetweenStartAndEndDate(final LocalDate compareDate) {
- if (isStartDateBeforeOrEqual(compareDate)) {
- if (getEndDateLocalDate() == null ||
isEndDateAfterOrEqual(compareDate)) {
- return true;
- }
- }
- return false;
+ return isStartDateBeforeOrEqual(compareDate) && (getEndDateLocalDate()
== null || isEndDateAfterOrEqual(compareDate));
}
public void updateEndDate(LocalDate historyCalEndDate) {
diff --git
a/fineract-core/src/main/java/org/apache/fineract/portfolio/calendar/service/CalendarUtils.java
b/fineract-core/src/main/java/org/apache/fineract/portfolio/calendar/service/CalendarUtils.java
index b6bc34948..486c2fe9a 100644
---
a/fineract-core/src/main/java/org/apache/fineract/portfolio/calendar/service/CalendarUtils.java
+++
b/fineract-core/src/main/java/org/apache/fineract/portfolio/calendar/service/CalendarUtils.java
@@ -833,7 +833,7 @@ public final class CalendarUtils {
LocalDate nextRepaymentDate = null;
if (applyWorkingDays) {
if (WorkingDaysUtil.isNonWorkingDay(workingDays, newRepaymentDate)
- && WorkingDaysUtil.getRepaymentRescheduleType(workingDays,
newRepaymentDate).isMoveToNextRepaymentDay()) {
+ &&
WorkingDaysUtil.getRepaymentRescheduleType(workingDays).isMoveToNextRepaymentDay())
{
newRepaymentDate = getNextRepaymentMeetingDate(recurringRule,
seedDate, newRepaymentDate.plusDays(1), loanRepaymentInterval,
frequency, workingDays,
isSkipRepaymentOnFirstDayOfMonth, numberOfDays, isCalledFirstTime,
applyWorkingDays);
} else {
@@ -851,7 +851,7 @@ public final class CalendarUtils {
final LocalDate newRepaymentDateTemp =
adjustRecurringDate(newRepaymentDate, numberOfDays);
if (applyWorkingDays) {
if (WorkingDaysUtil.isNonWorkingDay(workingDays,
newRepaymentDateTemp)
- &&
WorkingDaysUtil.getRepaymentRescheduleType(workingDays,
newRepaymentDateTemp).isMoveToNextRepaymentDay()) {
+ &&
WorkingDaysUtil.getRepaymentRescheduleType(workingDays).isMoveToNextRepaymentDay())
{
newRepaymentDate =
getNextRepaymentMeetingDate(recurringRule, seedDate,
newRepaymentDate.plusDays(1),
loanRepaymentInterval, frequency, workingDays,
isSkipRepaymentOnFirstDayOfMonth, numberOfDays,
isCalledFirstTime, applyWorkingDays);
diff --git
a/fineract-core/src/main/java/org/apache/fineract/portfolio/savings/DepositAccountType.java
b/fineract-core/src/main/java/org/apache/fineract/portfolio/savings/DepositAccountType.java
index 200d03506..f9b3178b6 100644
---
a/fineract-core/src/main/java/org/apache/fineract/portfolio/savings/DepositAccountType.java
+++
b/fineract-core/src/main/java/org/apache/fineract/portfolio/savings/DepositAccountType.java
@@ -95,7 +95,7 @@ public enum DepositAccountType {
public String resourceName() {
- String resourceName = "INVALID";
+ String resourceName;
switch (this) {
case FIXED_DEPOSIT:
diff --git
a/fineract-core/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountData.java
b/fineract-core/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountData.java
index f24513978..1fcc9764c 100644
---
a/fineract-core/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountData.java
+++
b/fineract-core/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountData.java
@@ -28,7 +28,6 @@ import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Set;
-import java.util.stream.Collectors;
import lombok.Getter;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
@@ -229,14 +228,10 @@ public final class SavingsAccountData implements
Serializable {
this.savingsAmountOnHold = null;
}
- public static final Comparator<SavingsAccountData> ClientNameComparator =
new Comparator<SavingsAccountData>() {
-
- @Override
- public int compare(SavingsAccountData savings1, SavingsAccountData
savings2) {
- String clientOfSavings1 =
savings1.getClientName().toUpperCase(Locale.ENGLISH);
- String clientOfSavings2 =
savings2.getClientName().toUpperCase(Locale.ENGLISH);
- return clientOfSavings1.compareTo(clientOfSavings2);
- }
+ public static final Comparator<SavingsAccountData> ClientNameComparator =
(savings1, savings2) -> {
+ String clientOfSavings1 =
savings1.getClientName().toUpperCase(Locale.ENGLISH);
+ String clientOfSavings2 =
savings2.getClientName().toUpperCase(Locale.ENGLISH);
+ return clientOfSavings1.compareTo(clientOfSavings2);
};
public void setNewSavingsAccountTransactionData(final
SavingsAccountTransactionData savingsAccountTransactionData) {
@@ -395,7 +390,7 @@ public final class SavingsAccountData implements
Serializable {
}
public List<SavingsAccountTransactionData>
getSavingsAccountTransactionsWithPivotConfig() {
- return this.transactions.stream().collect(Collectors.toList());
+ return this.transactions.stream().toList();
}
public Boolean isAccrualBasedAccountingEnabledOnSavingsProduct() {
diff --git
a/fineract-core/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountSummaryData.java
b/fineract-core/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountSummaryData.java
index aa2176244..a4be4cde3 100644
---
a/fineract-core/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountSummaryData.java
+++
b/fineract-core/src/main/java/org/apache/fineract/portfolio/savings/data/SavingsAccountSummaryData.java
@@ -167,7 +167,7 @@ public class SavingsAccountSummaryData implements
Serializable {
this.totalDeposits = wrapper.calculateTotalDeposits(currency,
savingsAccountTransactions);
this.totalWithdrawals =
wrapper.calculateTotalWithdrawals(currency, savingsAccountTransactions);
final HashMap<String, Money> map =
updateRunningBalanceAndPivotDate(true, savingsAccountTransactions,
interestTotal,
- overdraftInterestTotal, withHoldTaxTotal, currency);
+ overdraftInterestTotal, withHoldTaxTotal);
interestTotal = map.get("interestTotal");
withHoldTaxTotal = map.get("withHoldTax");
overdraftInterestTotal = map.get("overdraftInterestTotal");
@@ -200,7 +200,7 @@ public class SavingsAccountSummaryData implements
Serializable {
@SuppressWarnings("unchecked")
private HashMap<String, Money> updateRunningBalanceAndPivotDate(final
boolean backdatedTxnsAllowedTill,
final List<SavingsAccountTransactionData>
savingsAccountTransactions, Money interestTotal, Money overdraftInterestTotal,
- Money withHoldTaxTotal, CurrencyData currency) {
+ Money withHoldTaxTotal) {
boolean isUpdated = false;
HashMap<String, Money> map = new HashMap<>();
for (int i = savingsAccountTransactions.size() - 1; i >= 0; i--) {
@@ -257,7 +257,7 @@ public class SavingsAccountSummaryData implements
Serializable {
this.totalWithholdTax =
wrapper.calculateTotalWithholdTaxWithdrawal(currency, transactions);
// boolean isUpdated = false;
- updateRunningBalanceAndPivotDate(false, transactions, null, null,
null, currency);
+ updateRunningBalanceAndPivotDate(false, transactions, null, null,
null);
this.accountBalance = Money.of(currency,
this.totalDeposits).plus(this.totalInterestPosted).minus(this.totalWithdrawals)
.minus(this.totalWithdrawalFees).minus(this.totalAnnualFees).minus(this.totalFeeCharge).minus(this.totalPenaltyCharge)
diff --git
a/fineract-core/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsEnumerations.java
b/fineract-core/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsEnumerations.java
index eb4ba984b..9d14a871f 100644
---
a/fineract-core/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsEnumerations.java
+++
b/fineract-core/src/main/java/org/apache/fineract/portfolio/savings/service/SavingsEnumerations.java
@@ -661,16 +661,6 @@ public final class SavingsEnumerations {
return optionData;
}
- public static List<EnumOptionData> depositTermFrequencyType(final
SavingsPeriodFrequencyType[] types) {
- final List<EnumOptionData> optionDatas = new ArrayList<>();
- for (final SavingsPeriodFrequencyType type : types) {
- if (!type.isInvalid()) {
- optionDatas.add(recurringDepositFrequencyType(type));
- }
- }
- return optionDatas;
- }
-
public static EnumOptionData inMultiplesOfDepositTermFrequencyType(final
int id) {
return
depositTermFrequencyType(SavingsPeriodFrequencyType.fromInt(id));
}
@@ -702,16 +692,6 @@ public final class SavingsEnumerations {
return optionData;
}
- public static List<EnumOptionData>
inMultiplesOfDepositTermFrequencyType(final SavingsPeriodFrequencyType[] types)
{
- final List<EnumOptionData> optionDatas = new ArrayList<>();
- for (final SavingsPeriodFrequencyType type : types) {
- if (!type.isInvalid()) {
- optionDatas.add(recurringDepositFrequencyType(type));
- }
- }
- return optionDatas;
- }
-
public static EnumOptionData depositType(final Integer id) {
return depositType(DepositAccountType.fromInt(id));
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/cob/loan/LoanInlineCOBConfig.java
b/fineract-provider/src/main/java/org/apache/fineract/cob/loan/LoanInlineCOBConfig.java
index 194a4cd79..d2e570cfc 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/cob/loan/LoanInlineCOBConfig.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/cob/loan/LoanInlineCOBConfig.java
@@ -22,7 +22,6 @@ import org.apache.fineract.cob.COBBusinessStepService;
import org.apache.fineract.cob.common.CustomJobParameterResolver;
import org.apache.fineract.cob.common.ResetContextTasklet;
import org.apache.fineract.cob.conditions.LoanCOBEnabledCondition;
-import org.apache.fineract.cob.domain.LoanAccountLockRepository;
import org.apache.fineract.cob.listener.InlineCOBLoanItemListener;
import
org.apache.fineract.infrastructure.jobs.domain.CustomJobParameterRepository;
import org.apache.fineract.infrastructure.jobs.service.JobName;
@@ -60,8 +59,6 @@ public class LoanInlineCOBConfig {
@Autowired
private COBBusinessStepService cobBusinessStepService;
@Autowired
- private LoanAccountLockRepository accountLockRepository;
- @Autowired
private TransactionTemplate transactionTemplate;
@Autowired
private CustomJobParameterRepository customJobParameterRepository;
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/chartofaccounts/ChartOfAccountsImportHandler.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/chartofaccounts/ChartOfAccountsImportHandler.java
index 563145e67..2dd0234bf 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/chartofaccounts/ChartOfAccountsImportHandler.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/bulkimport/importhandler/chartofaccounts/ChartOfAccountsImportHandler.java
@@ -134,8 +134,9 @@ public class ChartOfAccountsImportHandler implements
ImportHandler {
tagIdCodeValueData = new CodeValueData().setId(tagId);
}
String description =
ImportHandlerUtils.readAsString(ChartOfAcountsConstants.DESCRIPTION_COL, row);
- return GLAccountData.importInstance(accountName, parentId, glCode,
manualEntriesAllowed, accountTypeEnum, usageEnum, description,
- tagIdCodeValueData, row.getRowNum());
+ return new
GLAccountData().setName(accountName).setParentId(parentId).setGlCode(glCode)
+
.setManualEntriesAllowed(manualEntriesAllowed).setType(accountTypeEnum).setUsage(usageEnum).setDescription(description)
+ .setTagId(tagIdCodeValueData).setRowIndex(row.getRowNum());
}
private Count importEntity(final Workbook workbook, final
List<GLAccountData> glAccounts, final List<JournalEntryData> glTransactions,
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataServiceImpl.java
index ae5f88700..25456173c 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/dataqueries/service/ReadWriteNonCoreDataServiceImpl.java
@@ -1867,7 +1867,7 @@ public class ReadWriteNonCoreDataServiceImpl implements
ReadWriteNonCoreDataServ
private void validateDatatable(final String datatable) {
final String sql = "SELECT COUNT(application_table_name) FROM
x_registered_table WHERE registered_table_name = ?";
- final Integer count = jdbcTemplate.queryForObject(sql, Integer.class,
datatable);
+ final int count = jdbcTemplate.queryForObject(sql, Integer.class,
datatable);
if (count == 0) {
throw new DatatableNotFoundException(datatable);
}
@@ -2278,7 +2278,7 @@ public class ReadWriteNonCoreDataServiceImpl implements
ReadWriteNonCoreDataServ
builder.append(" JOIN m_entity_datatable_check edc ON
edc.x_registered_table_name = xrt.registered_table_name");
builder.append(" WHERE edc.x_registered_table_name = '" +
datatableName + "'");
final Long count =
this.jdbcTemplate.queryForObject(builder.toString(), Long.class);
- return count > 0 ? true : false;
+ return count > 0;
}
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/s3/AmazonS3ConfigCondition.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/s3/AmazonS3ConfigCondition.java
index 932b1bc94..5a607f94c 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/s3/AmazonS3ConfigCondition.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/s3/AmazonS3ConfigCondition.java
@@ -34,8 +34,8 @@ public class AmazonS3ConfigCondition extends
PropertiesCondition {
}
private boolean isAwsCredentialValid() {
- try {
- DefaultCredentialsProvider.create().resolveCredentials();
+ try (var defaultCredentialsProvider =
DefaultCredentialsProvider.create()) {
+ defaultCredentialsProvider.resolveCredentials();
DefaultAwsRegionProviderChain.builder().build().getRegion();
return true;
} catch (Exception e) {
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/service/TwoFactorConfigurationServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/service/TwoFactorConfigurationServiceImpl.java
index b3247e3da..fd4505359 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/service/TwoFactorConfigurationServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/security/service/TwoFactorConfigurationServiceImpl.java
@@ -133,7 +133,7 @@ public class TwoFactorConfigurationServiceImpl implements
TwoFactorConfiguration
@Cacheable(value = "tfConfig", key =
"T(org.apache.fineract.infrastructure.core.service.ThreadLocalContextUtil).getTenant().getTenantIdentifier()+'|smsProvider'")
public Integer getSMSProviderId() {
Integer value =
getIntegerConfig(TwoFactorConfigurationConstants.SMS_PROVIDER_ID, null);
- if (value < 1) {
+ if (value == null || value < 1) {
return null;
}
return value;
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/service/CalendarReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/service/CalendarReadPlatformServiceImpl.java
index fc1804a53..a68888c40 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/service/CalendarReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/calendar/service/CalendarReadPlatformServiceImpl.java
@@ -265,10 +265,7 @@ public class CalendarReadPlatformServiceImpl implements
CalendarReadPlatformServ
+ " ci.entity_type_enum = ?";
try {
int calendarInstaneId = this.jdbcTemplate.queryForObject(query,
Integer.class, entityId, calendarId, entityTypeId);
- if (calendarInstaneId > 0) {
- return true;
- }
- return false;
+ return calendarInstaneId > 0;
} catch (final EmptyResultDataAccessException e) {
return false;
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/DefaultScheduledDateGenerator.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/DefaultScheduledDateGenerator.java
index b4abfea6d..04cc076c3 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/DefaultScheduledDateGenerator.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/loanschedule/domain/DefaultScheduledDateGenerator.java
@@ -202,7 +202,7 @@ public class DefaultScheduledDateGenerator implements
ScheduledDateGenerator {
while
(WorkingDaysUtil.isNonWorkingDay(holidayDetailDTO.getWorkingDays(),
adjustedDateDetailsDTO.getChangedScheduleDate())) {
final RepaymentRescheduleType repaymentRescheduleType =
WorkingDaysUtil
-
.getRepaymentRescheduleType(holidayDetailDTO.getWorkingDays(),
adjustedDateDetailsDTO.getChangedScheduleDate());
+
.getRepaymentRescheduleType(holidayDetailDTO.getWorkingDays());
if (repaymentRescheduleType.isMoveToNextRepaymentDay()) {
while
(WorkingDaysUtil.isNonWorkingDay(holidayDetailDTO.getWorkingDays(),
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
index cd2e61499..a5e06b898 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanReadPlatformServiceImpl.java
@@ -18,6 +18,7 @@
*/
package org.apache.fineract.portfolio.loanaccount.service;
+import static java.lang.Boolean.TRUE;
import static
org.apache.fineract.portfolio.loanproduct.service.LoanEnumerations.interestType;
import java.math.BigDecimal;
@@ -2153,7 +2154,7 @@ public class LoanReadPlatformServiceImpl implements
LoanReadPlatformService, Loa
@Override
public boolean isGuaranteeRequired(final Long loanId) {
final String sql = "select pl.hold_guarantee_funds from m_loan ml
inner join m_product_loan pl on pl.id = ml.product_id where ml.id=?";
- return this.jdbcTemplate.queryForObject(sql, Boolean.class, loanId);
+ return TRUE.equals(this.jdbcTemplate.queryForObject(sql,
Boolean.class, loanId));
}
private static final class LoanTransactionDerivedComponentMapper
implements RowMapper<LoanTransactionData> {
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/PocketAccountMappingReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/PocketAccountMappingReadPlatformServiceImpl.java
index 1f5f6d400..1c534767a 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/PocketAccountMappingReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/pockets/service/PocketAccountMappingReadPlatformServiceImpl.java
@@ -27,7 +27,6 @@ import
org.apache.fineract.portfolio.self.pockets.domain.PocketAccountMapping;
import
org.apache.fineract.portfolio.self.pockets.domain.PocketAccountMappingRepositoryWrapper;
import
org.apache.fineract.portfolio.self.pockets.domain.PocketRepositoryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
@@ -77,11 +76,8 @@ public class PocketAccountMappingReadPlatformServiceImpl
implements PocketAccoun
@Override
public boolean validatePocketAndAccountMapping(Long pocketId, Long
accountId, Integer accountType) {
final String sql = "select count(id) from m_pocket_accounts_mapping
mapping where pocket_id = ? and account_id = ? and account_type = ?";
- try {
- return this.jdbcTemplate.queryForObject(sql, Boolean.class,
pocketId, accountId, accountType);
- } catch (EmptyResultDataAccessException e) {
- return false;
- }
+ int count = this.jdbcTemplate.queryForObject(sql, Integer.class,
pocketId, accountId, accountType);
+ return count > 0;
}
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/service/SelfServiceRegistrationReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/service/SelfServiceRegistrationReadPlatformServiceImpl.java
index 30655c2a2..d26f8f6c2 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/service/SelfServiceRegistrationReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/portfolio/self/registration/service/SelfServiceRegistrationReadPlatformServiceImpl.java
@@ -41,11 +41,8 @@ public class SelfServiceRegistrationReadPlatformServiceImpl
implements SelfServi
sql = sql + " and mobile_no = ?";
params = new Object[] { accountNumber, firstName, lastName,
mobileNumber };
}
- Integer count = this.jdbcTemplate.queryForObject(sql, Integer.class,
params);
- if (count == 0) {
- return false;
- }
- return true;
+ int count = this.jdbcTemplate.queryForObject(sql, Integer.class,
params);
+ return count != 0;
}
}
diff --git
a/fineract-provider/src/main/java/org/apache/fineract/useradministration/service/AppUserReadPlatformServiceImpl.java
b/fineract-provider/src/main/java/org/apache/fineract/useradministration/service/AppUserReadPlatformServiceImpl.java
index ce0c87bec..12d2949d0 100644
---
a/fineract-provider/src/main/java/org/apache/fineract/useradministration/service/AppUserReadPlatformServiceImpl.java
+++
b/fineract-provider/src/main/java/org/apache/fineract/useradministration/service/AppUserReadPlatformServiceImpl.java
@@ -218,10 +218,7 @@ public class AppUserReadPlatformServiceImpl implements
AppUserReadPlatformServic
public boolean isUsernameExist(String username) {
String sql = "select count(*) from m_appuser where username = ?";
Object[] params = new Object[] { username };
- Integer count = this.jdbcTemplate.queryForObject(sql, Integer.class,
params);
- if (count == 0) {
- return false;
- }
- return true;
+ int count = this.jdbcTemplate.queryForObject(sql, Integer.class,
params);
+ return count != 0;
}
}
diff --git a/fineract-provider/src/main/resources/application.properties
b/fineract-provider/src/main/resources/application.properties
index 51325fa3b..e4021daac 100644
--- a/fineract-provider/src/main/resources/application.properties
+++ b/fineract-provider/src/main/resources/application.properties
@@ -158,6 +158,7 @@
fineract.report.export.s3.bucket=${FINERACT_REPORT_EXPORT_S3_BUCKET_NAME:}
fineract.report.export.s3.enabled=${FINERACT_REPORT_EXPORT_S3_ENABLED:false}
fineract.jpa.statementLoggingEnabled=${FINERACT_STATEMENT_LOGGING_ENABLED:false}
+fineract.database.defaultMasterPassword=${FINERACT_DEFAULT_MASTER_PASSWORD:fineract}
fineract.notification.user-notification-system.enabled=${FINERACT_USER_NOTIFICATION_SYSTEM_ENABLED:true}
fineract.logging.json.enabled=${FINERACT_LOGGING_JSON_ENABLED:false}
diff --git a/fineract-provider/src/test/resources/application-test.properties
b/fineract-provider/src/test/resources/application-test.properties
index 28e79e287..5ce497251 100644
--- a/fineract-provider/src/test/resources/application-test.properties
+++ b/fineract-provider/src/test/resources/application-test.properties
@@ -86,6 +86,7 @@
fineract.report.export.s3.bucket=${FINERACT_REPORT_EXPORT_S3_BUCKET_NAME:}
fineract.report.export.s3.enabled=${FINERACT_REPORT_EXPORT_S3_ENABLED:false}
fineract.jpa.statementLoggingEnabled=${FINERACT_STATEMENT_LOGGING_ENABLED:false}
+fineract.database.defaultMasterPassword=${FINERACT_DEFAULT_MASTER_PASSWORD:fineract}
fineract.job.loan-cob-enabled=${FINERACT_JOB_LOAN_COB_ENABLED:true}
diff --git
a/integration-tests/src/test/java/org/apache/fineract/integrationtests/CurrencyIntegrationTest.java
b/integration-tests/src/test/java/org/apache/fineract/integrationtests/CurrencyIntegrationTest.java
deleted file mode 100644
index b07c50b57..000000000
---
a/integration-tests/src/test/java/org/apache/fineract/integrationtests/CurrencyIntegrationTest.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.fineract.integrationtests;
-
-import io.restassured.builder.RequestSpecBuilder;
-import io.restassured.builder.ResponseSpecBuilder;
-import io.restassured.http.ContentType;
-import io.restassured.specification.RequestSpecification;
-import io.restassured.specification.ResponseSpecification;
-import org.apache.fineract.integrationtests.common.Utils;
-import
org.apache.fineract.integrationtests.common.savings.SavingsAccountHelper;
-import org.junit.jupiter.api.BeforeEach;
-
-public class CurrencyIntegrationTest {
-
- private ResponseSpecification responseSpec;
- private RequestSpecification requestSpec;
- private SavingsAccountHelper savingsAccountHelper;
-
- @BeforeEach
- public void setup() {
- Utils.initializeRESTAssured();
- this.requestSpec = new
RequestSpecBuilder().setContentType(ContentType.JSON).build();
- this.requestSpec.header("Authorization", "Basic " +
Utils.loginIntoServerAndGetBase64EncodedAuthenticationKey());
- this.responseSpec = new
ResponseSpecBuilder().expectStatusCode(200).build();
- }
-}