TSK-1224: refactorings - rename methods, reuse roles/propertiesSeparator, use Pattern#quote

This commit is contained in:
sfrevel 2020-05-12 10:58:23 +02:00
parent 6e3ac9cc5c
commit 9329a3acee
9 changed files with 25 additions and 19 deletions

View File

@ -21,12 +21,14 @@ import java.util.Map.Entry;
import java.util.Properties;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import javax.sql.DataSource;
import org.apache.ibatis.datasource.pooled.PooledDataSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import pro.taskana.common.api.CustomHoliday;
import pro.taskana.common.api.LoggerUtils;
import pro.taskana.common.api.TaskanaEngine;
import pro.taskana.common.api.TaskanaRole;
@ -57,7 +59,7 @@ public class TaskanaEngineConfiguration {
+ "SET COLLATION DEFAULT_de_DE ";
private static final String H2_DRIVER = "org.h2.Driver";
private static final String TASKANA_PROPERTIES = "/taskana.properties";
private static final String TASKANA_ROLES_SEPARATOR = "|";
private static final String TASKANA_PROPERTY_SEPARATOR = "|";
private static final String TASKANA_JOB_BATCHSIZE = "taskana.jobs.batchSize";
private static final String TASKANA_JOB_RETRIES = "taskana.jobs.maxRetries";
private static final String TASKANA_JOB_CLEANUP_RUN_EVERY = "taskana.jobs.cleanup.runEvery";
@ -75,8 +77,7 @@ public class TaskanaEngineConfiguration {
private static final String DEFAULT_SCHEMA_NAME = "TASKANA";
private static final String TASKANA_CUSTOM_HOLIDAY = "taskana.custom.holidays";
private static final String TASKANA_CUSTOM_HOLIDAY_SEPERATOR = ";";
private static final String TASKANA_CUSTOM_HOLIDAY_DAY_MONTH_SEPERATOR = "\\.";
private static final String TASKANA_CUSTOM_HOLIDAY_DAY_MONTH_SEPERATOR = ".";
// Taskana properties file
protected String propertiesFileName = TASKANA_PROPERTIES;
@ -87,7 +88,7 @@ public class TaskanaEngineConfiguration {
protected String schemaName;
// Taskana role configuration
protected String rolesSeparator = TASKANA_ROLES_SEPARATOR;
protected String propertiesSeparator = TASKANA_PROPERTY_SEPARATOR;
protected Map<TaskanaRole, Set<String>> roleMap = new HashMap<>();
// global switch to enable JAAS based authentication and Taskana
@ -132,7 +133,7 @@ public class TaskanaEngineConfiguration {
boolean useManagedTransactions,
boolean securityEnabled,
String propertiesFileName,
String rolesSeparator,
String propertySeparator,
String schemaName)
throws SQLException {
this.useManagedTransactions = useManagedTransactions;
@ -142,8 +143,8 @@ public class TaskanaEngineConfiguration {
this.propertiesFileName = propertiesFileName;
}
if (rolesSeparator != null) {
this.rolesSeparator = rolesSeparator;
if (propertySeparator != null) {
this.propertiesSeparator = propertySeparator;
}
if (dataSource != null) {
@ -154,7 +155,7 @@ public class TaskanaEngineConfiguration {
}
initSchemaName(schemaName);
initTaskanaProperties(this.propertiesFileName, this.rolesSeparator);
initTaskanaProperties(this.propertiesFileName, this.propertiesSeparator);
dbSchemaCreator = new DbSchemaCreator(this.dataSource, this.getSchemaName());
dbSchemaCreator.run();
@ -245,11 +246,11 @@ public class TaskanaEngineConfiguration {
}
public String getPropertiesSeparator() {
return this.rolesSeparator;
return this.propertiesSeparator;
}
public void setPropertiesSeparator(String propertiesSeparator) {
this.rolesSeparator = propertiesSeparator;
this.propertiesSeparator = propertiesSeparator;
}
public boolean isGermanPublicHolidaysEnabled() {
@ -264,7 +265,7 @@ public class TaskanaEngineConfiguration {
return customHolidays;
}
public void setCustomHolidays(List<CustomHoliday> customHolidays) {
public void addCustomHolidays(List<CustomHoliday> customHolidays) {
customHolidays.forEach(this.customHolidays::add);
}
@ -549,7 +550,9 @@ public class TaskanaEngineConfiguration {
private void initCustomHolidays(Properties props) {
if (props.getProperty(TASKANA_CUSTOM_HOLIDAY) != null) {
Arrays.asList(
props.getProperty(TASKANA_CUSTOM_HOLIDAY).split(TASKANA_CUSTOM_HOLIDAY_SEPERATOR))
props
.getProperty(TASKANA_CUSTOM_HOLIDAY)
.split(Pattern.quote(propertiesSeparator)))
.forEach(
entry -> {
try {
@ -563,7 +566,8 @@ public class TaskanaEngineConfiguration {
private CustomHoliday createCustomHolidayFromPropsEntry(String customHolidayEntry)
throws WrongCustomHolidayFormatException {
String[] parts = customHolidayEntry.split(TASKANA_CUSTOM_HOLIDAY_DAY_MONTH_SEPERATOR);
String[] parts =
customHolidayEntry.split(Pattern.quote(TASKANA_CUSTOM_HOLIDAY_DAY_MONTH_SEPERATOR));
if (parts.length == 2) {
return CustomHoliday.of(Integer.valueOf(parts[0]), Integer.valueOf(parts[1]));
}

View File

@ -1,4 +1,4 @@
package pro.taskana.common.internal.util;
package pro.taskana.common.api;
import java.util.Objects;

View File

@ -1,6 +1,6 @@
package pro.taskana.common.api.exceptions;
public class WrongCustomHolidayFormatException extends Exception {
public class WrongCustomHolidayFormatException extends TaskanaException {
private static final long serialVersionUID = -7644923780787018797L;

View File

@ -15,6 +15,7 @@ import java.util.Set;
import java.util.stream.LongStream;
import java.util.stream.Stream;
import pro.taskana.common.api.CustomHoliday;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
import pro.taskana.common.api.exceptions.SystemException;

View File

@ -7,8 +7,8 @@ import javax.sql.DataSource;
import org.junit.jupiter.api.Test;
import pro.taskana.TaskanaEngineConfiguration;
import pro.taskana.common.api.CustomHoliday;
import pro.taskana.common.api.TaskanaEngine;
import pro.taskana.common.internal.util.CustomHoliday;
/** Test of configuration. */
class TaskanaEngineTestConfigurationTest {

View File

@ -9,6 +9,7 @@ import java.util.Arrays;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import pro.taskana.common.api.CustomHoliday;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
/** Test for the WorkingDaysToDaysConverter. */

View File

@ -9,8 +9,8 @@ import java.util.List;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import pro.taskana.common.api.CustomHoliday;
import pro.taskana.common.api.exceptions.InvalidArgumentException;
import pro.taskana.common.internal.util.CustomHoliday;
import pro.taskana.common.internal.util.WorkingDaysToDaysConverter;
import pro.taskana.monitor.api.reports.header.TimeIntervalColumnHeader;
import pro.taskana.monitor.internal.preprocessor.WorkingDaysToDaysReportConverter;

View File

@ -12,4 +12,4 @@ taskana.jobs.cleanup.runEvery=P1D
taskana.jobs.cleanup.firstRunAt=2018-07-25T08:00:00Z
taskana.jobs.cleanup.minimumAge=P14D
taskana.german.holidays.enabled=true
taskana.custom.holidays=31.07;16.12
taskana.custom.holidays=31.07|16.12

View File

@ -12,4 +12,4 @@ taskana.jobs.cleanup.runEvery=P1D
taskana.jobs.cleanup.firstRunAt=2018-07-25T08:00:00Z
taskana.jobs.cleanup.minimumAge=P14D
taskana.german.holidays.enabled=true
taskana.custom.holidays=31,07;1612
taskana.custom.holidays=31,07|1612