From 10bb457a5a96aa565dd68999424bae322e8b830e Mon Sep 17 00:00:00 2001 From: Glenn Renfro Date: Thu, 15 Dec 2016 16:01:30 -0500 Subject: [PATCH] Allows user to set table prefix via properties. resolves #244 --- .../TaskBatchAutoConfiguration.java | 7 ++++- ...TaskBatchExecutionListenerFactoryBean.java | 28 ++++++++++++++++++- .../listener/support/JdbcTaskBatchDao.java | 21 ++++++++++++-- .../configuration/DefaultTaskConfigurer.java | 27 ++++++++++++++++-- .../SimpleTaskConfiguration.java | 8 ++++-- .../task/configuration/TaskProperties.java | 15 ++++++++++ .../repository/dao/JdbcTaskExecutionDao.java | 24 +++++++++++++--- .../support/TaskExecutionDaoFactoryBean.java | 23 +++++++++++---- .../task/SimpleTaskConfigurationTests.java | 6 ++-- .../TaskExecutionDaoFactoryBeanTests.java | 3 +- .../src/main/asciidoc/features.adoc | 27 ++++++++++++++++++ 11 files changed, 165 insertions(+), 24 deletions(-) diff --git a/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskBatchAutoConfiguration.java b/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskBatchAutoConfiguration.java index 12047a43..3ea8fad9 100644 --- a/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskBatchAutoConfiguration.java +++ b/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskBatchAutoConfiguration.java @@ -24,8 +24,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.task.batch.listener.TaskBatchExecutionListener; import org.springframework.cloud.task.configuration.TaskConfigurer; +import org.springframework.cloud.task.configuration.TaskProperties; import org.springframework.cloud.task.repository.TaskExplorer; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; @@ -50,14 +52,17 @@ public class TaskBatchAutoConfiguration { @Configuration @ConditionalOnMissingBean(name = "taskBatchExecutionListener") + @EnableConfigurationProperties(TaskProperties.class) public static class TaskBatchExecutionListenerAutoconfiguration { @Autowired private ApplicationContext context; + @Autowired + private TaskProperties taskProperties; + @Bean public TaskBatchExecutionListenerFactoryBean taskBatchExecutionListener(TaskExplorer taskExplorer) { - TaskConfigurer taskConfigurer = null; if(!context.getBeansOfType(TaskConfigurer.class).isEmpty()) { taskConfigurer = context.getBean(TaskConfigurer.class); diff --git a/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskBatchExecutionListenerFactoryBean.java b/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskBatchExecutionListenerFactoryBean.java index 9c47f5f7..15ed62be 100644 --- a/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskBatchExecutionListenerFactoryBean.java +++ b/spring-cloud-task-batch/src/main/java/org/springframework/cloud/task/batch/configuration/TaskBatchExecutionListenerFactoryBean.java @@ -24,9 +24,11 @@ import org.springframework.beans.factory.FactoryBean; import org.springframework.cloud.task.batch.listener.TaskBatchExecutionListener; import org.springframework.cloud.task.batch.listener.support.JdbcTaskBatchDao; import org.springframework.cloud.task.batch.listener.support.MapTaskBatchDao; +import org.springframework.cloud.task.configuration.TaskProperties; import org.springframework.cloud.task.repository.TaskExplorer; import org.springframework.cloud.task.repository.dao.MapTaskExecutionDao; import org.springframework.cloud.task.repository.support.SimpleTaskExplorer; +import org.springframework.util.Assert; import org.springframework.util.ReflectionUtils; /** @@ -44,11 +46,34 @@ public class TaskBatchExecutionListenerFactoryBean implements FactoryBean { - public static final String DEFAULT_TABLE_PREFIX = "TASK_"; - private DataSource dataSource; private TaskExecutionDao dao = null; - private String tablePrefix = DEFAULT_TABLE_PREFIX; + private String tablePrefix = TaskProperties.DEFAULT_TABLE_PREFIX; /** * Default constructor will result in a Map based TaskExecutionDao. This is only @@ -49,6 +50,18 @@ public class TaskExecutionDaoFactoryBean implements FactoryBean +``` + +[[features-table-initialization]] +=== Enable/Disable table initialization +In cases where you are creating the task tables and do not wish for +Spring Cloud Task to create them (if not present) at task startup set the +`spring.cloud.task.initialize.enable` property to `false`. It is currently +defaulted to `true`. + + +``` + spring.cloud.task.initialize.enable= +``` + [[features-generated_task_id]] === Externally Generated Task Id