TSK-1996 taskana.properties file is optional
This commit is contained in:
parent
61a5e32865
commit
b96c68ac6f
|
@ -102,7 +102,9 @@ public abstract class AbstractAccTest {
|
|||
}
|
||||
}
|
||||
TaskanaConfiguration tec =
|
||||
new TaskanaConfiguration.Builder(dataSource, false, schemaNameTmp).build();
|
||||
new TaskanaConfiguration.Builder(dataSource, false, schemaNameTmp)
|
||||
.initTaskanaProperties()
|
||||
.build();
|
||||
initTaskanaEngine(tec);
|
||||
|
||||
SampleDataGenerator sampleDataGenerator =
|
||||
|
|
|
@ -18,6 +18,7 @@ class TaskanaEngineConfigurationTest extends AbstractAccTest {
|
|||
DataSource ds = DataSourceGenerator.getDataSource();
|
||||
TaskanaConfiguration taskEngineConfiguration =
|
||||
new TaskanaConfiguration.Builder(ds, false, DataSourceGenerator.getSchemaName(), false)
|
||||
.initTaskanaProperties()
|
||||
.build();
|
||||
|
||||
TaskanaEngine te = TaskanaEngine.buildTaskanaEngine(taskEngineConfiguration);
|
||||
|
|
|
@ -54,7 +54,9 @@ public class TaskanaProducers {
|
|||
}
|
||||
}
|
||||
this.taskanaEngineConfiguration =
|
||||
new TaskanaConfiguration.Builder(dataSource, true, "TASKANA", false).build();
|
||||
new TaskanaConfiguration.Builder(dataSource, true, "TASKANA", false)
|
||||
.initTaskanaProperties()
|
||||
.build();
|
||||
} catch (NamingException | SQLException | IOException e) {
|
||||
LOGGER.error("Could not start Taskana: ", e);
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@ class TaskanaConfigurationTest {
|
|||
TaskanaConfiguration configuration =
|
||||
new TaskanaConfiguration.Builder(
|
||||
TestContainerExtension.createDataSourceForH2(), false, "TASKANA")
|
||||
.initTaskanaProperties()
|
||||
.build();
|
||||
|
||||
Stream<Field> fields =
|
||||
|
@ -47,6 +48,7 @@ class TaskanaConfigurationTest {
|
|||
TaskanaConfiguration configuration =
|
||||
new TaskanaConfiguration.Builder(
|
||||
TestContainerExtension.createDataSourceForH2(), false, "TASKANA")
|
||||
.initTaskanaProperties()
|
||||
.build();
|
||||
|
||||
Stream<Field> fields =
|
||||
|
|
|
@ -433,22 +433,6 @@ public class TaskanaConfiguration {
|
|||
boolean useManagedTransactions,
|
||||
String schemaName,
|
||||
boolean securityEnabled) {
|
||||
this(
|
||||
dataSource,
|
||||
useManagedTransactions,
|
||||
schemaName,
|
||||
securityEnabled,
|
||||
TASKANA_PROPERTIES,
|
||||
TASKANA_PROPERTY_SEPARATOR);
|
||||
}
|
||||
|
||||
public Builder(
|
||||
DataSource dataSource,
|
||||
boolean useManagedTransactions,
|
||||
String schemaName,
|
||||
boolean securityEnabled,
|
||||
String propertiesFileName,
|
||||
String propertySeparator) {
|
||||
this.useManagedTransactions = useManagedTransactions;
|
||||
this.securityEnabled = securityEnabled;
|
||||
|
||||
|
@ -459,8 +443,6 @@ public class TaskanaConfiguration {
|
|||
}
|
||||
|
||||
this.schemaName = initSchemaName(schemaName);
|
||||
|
||||
this.initTaskanaProperties(propertiesFileName, propertySeparator);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
|
|
|
@ -55,6 +55,7 @@ public abstract class AbstractAccTest {
|
|||
|
||||
taskanaEngineConfiguration =
|
||||
new TaskanaConfiguration.Builder(dataSource, false, schemaName)
|
||||
.initTaskanaProperties()
|
||||
.germanPublicHolidaysEnabled(true)
|
||||
.build();
|
||||
SampleDataGenerator sampleDataGenerator =
|
||||
|
|
|
@ -29,6 +29,7 @@ class TaskanaConfigAccTest {
|
|||
taskanaEngineConfiguration =
|
||||
new TaskanaConfiguration.Builder(
|
||||
DataSourceGenerator.getDataSource(), true, DataSourceGenerator.getSchemaName())
|
||||
.initTaskanaProperties()
|
||||
.build();
|
||||
}
|
||||
|
||||
|
@ -65,9 +66,8 @@ class TaskanaConfigAccTest {
|
|||
DataSourceGenerator.getDataSource(),
|
||||
true,
|
||||
DataSourceGenerator.getSchemaName(),
|
||||
true,
|
||||
propertiesFileName,
|
||||
delimiter)
|
||||
true)
|
||||
.initTaskanaProperties(propertiesFileName, delimiter)
|
||||
.build();
|
||||
assertThat(taskanaEngineConfiguration.getClassificationTypes()).isEmpty();
|
||||
}
|
||||
|
@ -81,9 +81,8 @@ class TaskanaConfigAccTest {
|
|||
DataSourceGenerator.getDataSource(),
|
||||
true,
|
||||
DataSourceGenerator.getSchemaName(),
|
||||
true,
|
||||
propertiesFileName,
|
||||
delimiter)
|
||||
true)
|
||||
.initTaskanaProperties(propertiesFileName, delimiter)
|
||||
.build();
|
||||
assertThat(taskanaEngineConfiguration.getClassificationCategoriesByTypeMap())
|
||||
.containsExactly(
|
||||
|
@ -100,9 +99,8 @@ class TaskanaConfigAccTest {
|
|||
DataSourceGenerator.getDataSource(),
|
||||
true,
|
||||
DataSourceGenerator.getSchemaName(),
|
||||
true,
|
||||
propertiesFileName,
|
||||
delimiter)
|
||||
true)
|
||||
.initTaskanaProperties(propertiesFileName, delimiter)
|
||||
.build();
|
||||
assertThat(taskanaEngineConfiguration.getClassificationCategoriesByTypeMap())
|
||||
.containsExactly(
|
||||
|
|
|
@ -17,7 +17,9 @@ class TaskanaEngineConfigTest {
|
|||
void should_ReturnTaskanaEngine_When_BuildingWithConfiguration() throws Exception {
|
||||
DataSource ds = DataSourceGenerator.getDataSource();
|
||||
TaskanaConfiguration taskEngineConfiguration =
|
||||
new TaskanaConfiguration.Builder(ds, false, DataSourceGenerator.getSchemaName()).build();
|
||||
new TaskanaConfiguration.Builder(ds, false, DataSourceGenerator.getSchemaName())
|
||||
.initTaskanaProperties()
|
||||
.build();
|
||||
|
||||
TaskanaEngine te = TaskanaEngine.buildTaskanaEngine(taskEngineConfiguration);
|
||||
|
||||
|
@ -28,13 +30,8 @@ class TaskanaEngineConfigTest {
|
|||
void should_SetCorpusChristiEnabled_When_PropertyIsSet() throws Exception {
|
||||
DataSource ds = DataSourceGenerator.getDataSource();
|
||||
TaskanaConfiguration taskEngineConfiguration =
|
||||
new TaskanaConfiguration.Builder(
|
||||
ds,
|
||||
false,
|
||||
DataSourceGenerator.getSchemaName(),
|
||||
true,
|
||||
"/corpusChristiEnabled.properties",
|
||||
"|")
|
||||
new TaskanaConfiguration.Builder(ds, false, DataSourceGenerator.getSchemaName(), true)
|
||||
.initTaskanaProperties("/corpusChristiEnabled.properties", "|")
|
||||
.build();
|
||||
|
||||
assertThat(taskEngineConfiguration.isCorpusChristiEnabled()).isTrue();
|
||||
|
@ -45,13 +42,8 @@ class TaskanaEngineConfigTest {
|
|||
throws Exception {
|
||||
DataSource ds = DataSourceGenerator.getDataSource();
|
||||
TaskanaConfiguration taskEngineConfiguration =
|
||||
new TaskanaConfiguration.Builder(
|
||||
ds,
|
||||
false,
|
||||
DataSourceGenerator.getSchemaName(),
|
||||
true,
|
||||
"/custom_holiday_taskana.properties",
|
||||
"|")
|
||||
new TaskanaConfiguration.Builder(ds, false, DataSourceGenerator.getSchemaName(), true)
|
||||
.initTaskanaProperties("/custom_holiday_taskana.properties", "|")
|
||||
.build();
|
||||
assertThat(taskEngineConfiguration.getCustomHolidays()).contains(CustomHoliday.of(31, 7));
|
||||
assertThat(taskEngineConfiguration.getCustomHolidays()).contains(CustomHoliday.of(16, 12));
|
||||
|
@ -62,13 +54,8 @@ class TaskanaEngineConfigTest {
|
|||
throws Exception {
|
||||
DataSource ds = DataSourceGenerator.getDataSource();
|
||||
TaskanaConfiguration taskEngineConfiguration =
|
||||
new TaskanaConfiguration.Builder(
|
||||
ds,
|
||||
false,
|
||||
DataSourceGenerator.getSchemaName(),
|
||||
true,
|
||||
"/custom_holiday_with_wrong_format_taskana.properties",
|
||||
"|")
|
||||
new TaskanaConfiguration.Builder(ds, false, DataSourceGenerator.getSchemaName(), true)
|
||||
.initTaskanaProperties("/custom_holiday_with_wrong_format_taskana.properties", "|")
|
||||
.build();
|
||||
assertThat(taskEngineConfiguration.getCustomHolidays()).isEmpty();
|
||||
}
|
||||
|
|
|
@ -26,6 +26,7 @@ class TaskanaRoleConfigAccTest {
|
|||
taskanaEngineConfiguration =
|
||||
new TaskanaConfiguration.Builder(
|
||||
DataSourceGenerator.getDataSource(), true, DataSourceGenerator.getSchemaName())
|
||||
.initTaskanaProperties()
|
||||
.build();
|
||||
}
|
||||
|
||||
|
@ -77,9 +78,8 @@ class TaskanaRoleConfigAccTest {
|
|||
DataSourceGenerator.getDataSource(),
|
||||
true,
|
||||
DataSourceGenerator.getSchemaName(),
|
||||
true,
|
||||
propertiesFileName,
|
||||
delimiter)
|
||||
true)
|
||||
.initTaskanaProperties(propertiesFileName, delimiter)
|
||||
.build();
|
||||
|
||||
Set<TaskanaRole> rolesConfigured = taskanaEngineConfiguration.getRoleMap().keySet();
|
||||
|
@ -110,9 +110,8 @@ class TaskanaRoleConfigAccTest {
|
|||
DataSourceGenerator.getDataSource(),
|
||||
true,
|
||||
DataSourceGenerator.getSchemaName(),
|
||||
true,
|
||||
propertiesFileName,
|
||||
delimiter)
|
||||
true)
|
||||
.initTaskanaProperties(propertiesFileName, delimiter)
|
||||
.build();
|
||||
|
||||
Set<TaskanaRole> rolesConfigured = taskanaEngineConfiguration.getRoleMap().keySet();
|
||||
|
|
|
@ -82,6 +82,7 @@ class TaskanaSecurityConfigAccTest {
|
|||
false,
|
||||
DataSourceGenerator.getSchemaName(),
|
||||
securityEnabled)
|
||||
.initTaskanaProperties()
|
||||
.build());
|
||||
}
|
||||
|
||||
|
|
|
@ -19,6 +19,7 @@ public abstract class AbstractReportAccTest {
|
|||
String schemaName = DataSourceGenerator.getSchemaName();
|
||||
taskanaEngineConfiguration =
|
||||
new TaskanaConfiguration.Builder(dataSource, false, schemaName)
|
||||
.initTaskanaProperties()
|
||||
.germanPublicHolidaysEnabled(false)
|
||||
.build();
|
||||
taskanaEngine = TaskanaEngine.buildTaskanaEngine(taskanaEngineConfiguration);
|
||||
|
|
|
@ -2,6 +2,7 @@ package pro.taskana.example;
|
|||
|
||||
import java.sql.SQLException;
|
||||
import javax.sql.DataSource;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
|
@ -50,8 +51,23 @@ public class TaskanaConfig {
|
|||
}
|
||||
|
||||
@Bean
|
||||
public TaskanaConfiguration taskanaEngineConfiguration(DataSource dataSource) {
|
||||
return new TaskanaConfiguration.Builder(dataSource, true, schemaName, false).build();
|
||||
public TaskanaConfiguration taskanaEngineConfiguration(
|
||||
DataSource dataSource,
|
||||
@Qualifier("taskanaPropertiesFileName") String propertiesFileName,
|
||||
@Qualifier("taskanaPropertiesDelimiter") String delimiter) {
|
||||
return new TaskanaConfiguration.Builder(dataSource, true, schemaName, false)
|
||||
.initTaskanaProperties(propertiesFileName, delimiter)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public String taskanaPropertiesFileName() {
|
||||
return "/taskana.properties";
|
||||
}
|
||||
|
||||
@Bean
|
||||
public String taskanaPropertiesDelimiter() {
|
||||
return "|";
|
||||
}
|
||||
|
||||
@Bean
|
||||
|
|
|
@ -106,7 +106,8 @@ public class TaskanaInitializationExtension implements TestInstancePostProcessor
|
|||
throw new JUnitException("Expected dataSource to be defined in store, but it's not.");
|
||||
}
|
||||
|
||||
return new TaskanaConfiguration.Builder(dataSource, false, schemaName);
|
||||
return new TaskanaConfiguration.Builder(dataSource, false, schemaName)
|
||||
.initTaskanaProperties();
|
||||
}
|
||||
|
||||
private static Map<Class<?>, Object> generateTaskanaEntityMap(TaskanaEngine taskanaEngine)
|
||||
|
|
|
@ -3,6 +3,7 @@ package pro.taskana.common.rest;
|
|||
import com.fasterxml.jackson.databind.cfg.HandlerInstantiator;
|
||||
import java.sql.SQLException;
|
||||
import javax.sql.DataSource;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
|
@ -79,8 +80,23 @@ public class RestConfiguration {
|
|||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean(TaskanaConfiguration.class)
|
||||
public TaskanaConfiguration taskanaEngineConfiguration(DataSource dataSource) {
|
||||
return new TaskanaConfiguration.Builder(dataSource, true, schemaName).build();
|
||||
public TaskanaConfiguration taskanaEngineConfiguration(
|
||||
DataSource dataSource,
|
||||
@Qualifier("taskanaPropertiesFileName") String propertiesFileName,
|
||||
@Qualifier("taskanaPropertiesDelimiter") String delimiter) {
|
||||
return new TaskanaConfiguration.Builder(dataSource, true, schemaName)
|
||||
.initTaskanaProperties(propertiesFileName, delimiter)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public String taskanaPropertiesFileName() {
|
||||
return "/taskana.properties";
|
||||
}
|
||||
|
||||
@Bean
|
||||
public String taskanaPropertiesDelimiter() {
|
||||
return "|";
|
||||
}
|
||||
|
||||
// Needed for injection into jackson deserializer.
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
package pro.taskana.properties;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.test.annotation.DirtiesContext;
|
||||
import org.springframework.test.annotation.DirtiesContext.ClassMode;
|
||||
|
||||
@DirtiesContext(classMode = ClassMode.AFTER_CLASS)
|
||||
@SpringBootTest(
|
||||
classes = MyTaskanaTestConfiguration.class,
|
||||
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||
class MyTaskanaConfigurationIntTest {
|
||||
|
||||
@Autowired private ApplicationContext appContext;
|
||||
|
||||
@Test
|
||||
void should_loadApplicationContextWithMyTaskanaProperties_When_ApplicationStarts() {
|
||||
|
||||
assertThat(appContext.getBean("taskanaPropertiesFileName", String.class))
|
||||
.isEqualTo("/mytaskana.properties");
|
||||
assertThat(appContext.getBean("taskanaPropertiesDelimiter", String.class)).isEqualTo(";");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package pro.taskana.properties;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
||||
import org.springframework.transaction.PlatformTransactionManager;
|
||||
|
||||
@Configuration
|
||||
@ComponentScan("pro.taskana")
|
||||
public class MyTaskanaTestConfiguration {
|
||||
|
||||
@Bean
|
||||
@Primary
|
||||
public String taskanaPropertiesFileName() {
|
||||
return "/mytaskana.properties";
|
||||
}
|
||||
|
||||
@Bean
|
||||
@Primary
|
||||
public String taskanaPropertiesDelimiter() {
|
||||
return ";";
|
||||
}
|
||||
|
||||
@Bean
|
||||
public PlatformTransactionManager txManager(DataSource dataSource) {
|
||||
return new DataSourceTransactionManager(dataSource);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
## Used to test and demonstrate special configuration file
|
||||
taskana.roles.user=cn=ksc-users,cn=groups,OU=Test,O=TASKANA ; teamlead-1 ; teamlead-2 ; user-1-1
|
||||
taskana.roles.admin=admin ; uid=admin,cn=users,OU=Test,O=TASKANA
|
||||
taskana.roles.businessadmin=businessadmin ; cn=business-admins,cn=groups,OU=Test,O=TASKANA
|
||||
taskana.roles.monitor=monitor ; cn=monitor-users,cn=groups,OU=Test,O=TASKANA
|
||||
taskana.roles.taskadmin=taskadmin
|
||||
taskana.domains=DOMAIN_A,DOMAIN_B,DOMAIN_C,DOMAIN_TEST
|
||||
taskana.user.minimalPermissionsToAssignDomains=READ ; OPEN
|
||||
taskana.classification.types=TASK,DOCUMENT
|
||||
taskana.classification.categories.task=EXTERNAL, manual, autoMAtic, Process
|
||||
taskana.classification.categories.document=EXTERNAL
|
||||
taskana.jobs.maxRetries=3
|
||||
taskana.jobs.batchSize=50
|
||||
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.history.deletion.on.task.deletion.enabled=true
|
||||
|
|
@ -46,6 +46,7 @@ class DmnConverterServiceAccTest {
|
|||
String schemaName = "TASKANA";
|
||||
TaskanaConfiguration taskanaEngineConfiguration =
|
||||
new TaskanaConfiguration.Builder(dataSource, false, schemaName)
|
||||
.initTaskanaProperties()
|
||||
.germanPublicHolidaysEnabled(true)
|
||||
.build();
|
||||
SampleDataGenerator sampleDataGenerator =
|
||||
|
|
|
@ -34,6 +34,7 @@ public abstract class AbstractAccTest {
|
|||
dataSource = DataSourceGenerator.getDataSource();
|
||||
taskanaEngineConfiguration =
|
||||
new TaskanaConfiguration.Builder(dataSource, false, schemaName)
|
||||
.initTaskanaProperties()
|
||||
.germanPublicHolidaysEnabled(true)
|
||||
.build();
|
||||
DbSchemaCreator dbSchemaCreator =
|
||||
|
|
Loading…
Reference in New Issue