diff --git a/quartz-manager-parent/quartz-manager-common/src/main/java/it/fabioformosa/quartzmanager/common/properties/QuartzModuleProperties.java b/quartz-manager-parent/quartz-manager-common/src/main/java/it/fabioformosa/quartzmanager/common/properties/QuartzModuleProperties.java index 9140b82..72e41c7 100644 --- a/quartz-manager-parent/quartz-manager-common/src/main/java/it/fabioformosa/quartzmanager/common/properties/QuartzModuleProperties.java +++ b/quartz-manager-parent/quartz-manager-common/src/main/java/it/fabioformosa/quartzmanager/common/properties/QuartzModuleProperties.java @@ -1,12 +1,12 @@ -package it.fabioformosa.quartzmanager.common.properties; - -import java.util.Properties; - -import lombok.Data; - -@Data -public class QuartzModuleProperties{ - - private Properties properties; - -} +package it.fabioformosa.quartzmanager.common.properties; + +import lombok.Data; + +import java.util.Properties; + +@Data +public class QuartzModuleProperties{ + + private Properties properties = new Properties(); + +} diff --git a/quartz-manager-parent/quartz-manager-starter-persistence/src/main/java/it/fabioformosa/quartzmanager/persistence/PersistenceConfig.java b/quartz-manager-parent/quartz-manager-starter-persistence/src/main/java/it/fabioformosa/quartzmanager/persistence/PersistenceConfig.java index 517bd29..aa0621b 100644 --- a/quartz-manager-parent/quartz-manager-starter-persistence/src/main/java/it/fabioformosa/quartzmanager/persistence/PersistenceConfig.java +++ b/quartz-manager-parent/quartz-manager-starter-persistence/src/main/java/it/fabioformosa/quartzmanager/persistence/PersistenceConfig.java @@ -3,26 +3,30 @@ package it.fabioformosa.quartzmanager.persistence; import it.fabioformosa.quartzmanager.common.properties.QuartzModuleProperties; import liquibase.integration.spring.SpringLiquibase; import lombok.Data; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdbc.DataSourceBuilder; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; -import org.springframework.context.annotation.PropertySource; +import org.springframework.context.annotation.*; import javax.sql.DataSource; @Configuration -@PropertySource("classpath:quartz-manager-application-persistence.properties") +@PropertySource("classpath:quartz-persistence.properties") public class PersistenceConfig { + @Value("${quartz-manager.persistence.quartz.datasource.url}") + private String quartzDatasourceUrl; + + @Value("${quartz-manager.persistence.quartz.datasource.user}") + private String quartzDatasourceUser; + + @Value("${quartz-manager.persistence.quartz.datasource.password}") + private String quartzDatasourcePassword; + @Data public class PersistenceDatasourceProps { - private String url; private String changeLog; private String contexts; - private String user; - private String password; } @Bean @@ -42,19 +46,23 @@ public class PersistenceConfig { } @Bean("quartzPersistenceProperties") - @ConfigurationProperties(prefix = "spring.quartz") - public QuartzModuleProperties persistenceQuartzProps() { - return new QuartzModuleProperties(); + public QuartzModuleProperties persistenceQuartzProps(QuartzPersistencePropConfig quartzPersistencePropConfig) { + QuartzModuleProperties quartzModuleProperties = new QuartzModuleProperties(); + quartzModuleProperties.setProperties(quartzPersistencePropConfig.getProperties()); + quartzModuleProperties.getProperties().setProperty("org.quartz.dataSource.quartzDataSource.URL", quartzDatasourceUrl); + quartzModuleProperties.getProperties().setProperty("org.quartz.dataSource.quartzDataSource.user", quartzDatasourceUser); + quartzModuleProperties.getProperties().setProperty("org.quartz.dataSource.quartzDataSource.password", quartzDatasourcePassword); + return quartzModuleProperties; } @Primary @Bean public DataSource quartzManagerDatasource(PersistenceDatasourceProps persistenceDatasourceProps) { return DataSourceBuilder.create() - .url(persistenceDatasourceProps.getUrl()) + .url(quartzDatasourceUrl) .driverClassName("org.postgresql.Driver") - .username(persistenceDatasourceProps.getUser()) - .password(persistenceDatasourceProps.getPassword()) + .username(quartzDatasourceUser) + .password(quartzDatasourcePassword) .build(); } diff --git a/quartz-manager-parent/quartz-manager-starter-persistence/src/main/java/it/fabioformosa/quartzmanager/persistence/QuartzPersistencePropConfig.java b/quartz-manager-parent/quartz-manager-starter-persistence/src/main/java/it/fabioformosa/quartzmanager/persistence/QuartzPersistencePropConfig.java new file mode 100644 index 0000000..800f95c --- /dev/null +++ b/quartz-manager-parent/quartz-manager-starter-persistence/src/main/java/it/fabioformosa/quartzmanager/persistence/QuartzPersistencePropConfig.java @@ -0,0 +1,17 @@ +package it.fabioformosa.quartzmanager.persistence; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; + +import java.util.Properties; + +@Configuration +@PropertySource("classpath:quartz-persistence.properties") +@ConfigurationProperties(prefix = "spring.quartz") +@Getter @Setter +public class QuartzPersistencePropConfig { + private Properties properties; +} diff --git a/quartz-manager-parent/quartz-manager-starter-persistence/src/main/resources/quartz-manager-application-persistence.properties b/quartz-manager-parent/quartz-manager-starter-persistence/src/main/resources/quartz-manager-application-persistence.properties deleted file mode 100644 index 9edbfcf..0000000 --- a/quartz-manager-parent/quartz-manager-starter-persistence/src/main/resources/quartz-manager-application-persistence.properties +++ /dev/null @@ -1,20 +0,0 @@ -spring.liquibase.url=jdbc:postgresql://localhost:5432/quartzmanager -spring.liquibase.change-log=classpath:db/quartz-scheduler/liquibase-changelog-master.xml -spring.liquibase.contexts=default -spring.liquibase.user=quartzmanager -spring.liquibase.password=quartzmanager -spring.quartz.job-store-type=jdbc -spring.quartz.initialize-schema=never -spring.quartz.properties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate -spring.quartz.properties.org.quartz.dataSource.quartzDataSource.driver=org.postgresql.Driver -spring.quartz.properties.org.quartz.dataSource.quartzDataSource.URL=jdbc:postgresql://localhost:5432/quartzmanager -spring.quartz.properties.org.quartz.dataSource.quartzDataSource.user=quartzmanager -spring.quartz.properties.org.quartz.dataSource.quartzDataSource.password=quartzmanager -spring.quartz.properties.org.quartz.dataSource.quartzDataSource.maxConnections=5 -spring.quartz.properties.org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX -spring.quartz.properties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate -spring.quartz.properties.org.quartz.jobStore.dataSource=quartzDataSource -spring.quartz.properties.org.quartz.dataSource.quartzDataSource.provider=hikaricp -spring.quartz.properties.org.quartz.jobStore.misfireThreshold=1000 -# org.quartz.jobStore.isClustered=true -# org.quartz.scheduler.instanceId=AUTO \ No newline at end of file diff --git a/quartz-manager-parent/quartz-manager-starter-persistence/src/main/resources/quartz-persistence.properties b/quartz-manager-parent/quartz-manager-starter-persistence/src/main/resources/quartz-persistence.properties index 3e68aac..fbd821c 100644 --- a/quartz-manager-parent/quartz-manager-starter-persistence/src/main/resources/quartz-persistence.properties +++ b/quartz-manager-parent/quartz-manager-starter-persistence/src/main/resources/quartz-persistence.properties @@ -1,10 +1,13 @@ -org.quartz.dataSource.quartzDataSource.driver = org.postgresql.Driver -org.quartz.dataSource.quartzDataSource.URL = jdbc:postgresql://localhost:5432/quartzmanager -org.quartz.dataSource.quartzDataSource.user quartzmanager -org.quartz.dataSource.quartzDataSource.password = quartzmanager -org.quartz.dataSource.quartzDataSource.maxConnections = 5 -org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX -org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.PostgreSQLDelegate -org.quartz.jobStore.dataSource = quartzDataSource -org.quartz.dataSource.quartzDataSource.provider=hikaricp -org.quartz.jobStore.misfireThreshold=1000 \ No newline at end of file +spring.liquibase.change-log=classpath:db/quartz-scheduler/liquibase-changelog-master.xml +spring.liquibase.contexts=default +spring.quartz.job-store-type=jdbc +spring.quartz.initialize-schema=never +spring.quartz.properties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate +spring.quartz.properties.org.quartz.dataSource.quartzDataSource.driver=org.postgresql.Driver +spring.quartz.properties.org.quartz.dataSource.quartzDataSource.maxConnections=5 +spring.quartz.properties.org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +spring.quartz.properties.org.quartz.jobStore.dataSource=quartzDataSource +spring.quartz.properties.org.quartz.dataSource.quartzDataSource.provider=hikaricp +spring.quartz.properties.org.quartz.jobStore.misfireThreshold=1000 +# org.quartz.jobStore.isClustered=true +# org.quartz.scheduler.instanceId=AUTO diff --git a/quartz-manager-parent/quartz-manager-web-showcase/pom.xml b/quartz-manager-parent/quartz-manager-web-showcase/pom.xml index e4787b0..bfc2f24 100644 --- a/quartz-manager-parent/quartz-manager-web-showcase/pom.xml +++ b/quartz-manager-parent/quartz-manager-web-showcase/pom.xml @@ -1,160 +1,160 @@ - - - 4.0.0 - - - it.fabioformosa.quartz-manager - quartz-manager-parent - 3.0.2-SNAPSHOT - - - quartz-manager-web-showcase - - war - - Quartz Manager Web Showcase - A webapp that imports Quartz Manager API lib and the frontend webjar - - - UTF-8 - UTF-8 - 2.9.2 - 1.8 - - - - - it.fabioformosa.quartz-manager - quartz-manager-starter-api - - - it.fabioformosa.quartz-manager - quartz-manager-starter-ui - - - it.fabioformosa.quartz-manager - quartz-manager-starter-security - - - it.fabioformosa.quartz-manager - quartz-manager-starter-persistence - - - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-security - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-devtools - - - org.springframework.boot - spring-boot-configuration-processor - true - - - org.springframework.boot - spring-boot-starter-tomcat - provided - - - org.springframework.boot - spring-boot-starter-test - test - - - - - io.jsonwebtoken - jjwt - 0.9.0 - - - com.fasterxml.jackson.core - jackson-databind - - - com.fasterxml.jackson.core - jackson-annotations - - - com.h2database - h2 - runtime - - - org.codehaus.groovy - groovy - - - net.sourceforge.nekohtml - nekohtml - - - io.rest-assured - spring-mock-mvc - test - - - org.projectlombok - lombok - provided - - - org.apache.commons - commons-lang3 - - - - - org.liquibase - liquibase-core - - - - org.postgresql - postgresql - - - - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - repackage - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.8.0 - - 1.8 - 1.8 - - - - - - - - + + + 4.0.0 + + + it.fabioformosa.quartz-manager + quartz-manager-parent + 3.0.2-SNAPSHOT + + + quartz-manager-web-showcase + + war + + Quartz Manager Web Showcase + A webapp that imports Quartz Manager API lib and the frontend webjar + + + UTF-8 + UTF-8 + 2.9.2 + 1.8 + + + + + it.fabioformosa.quartz-manager + quartz-manager-starter-api + + + it.fabioformosa.quartz-manager + quartz-manager-starter-ui + + + it.fabioformosa.quartz-manager + quartz-manager-starter-security + + + + + + + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-security + + + org.springframework.boot + spring-boot-starter-data-jpa + + + org.springframework.boot + spring-boot-devtools + + + org.springframework.boot + spring-boot-configuration-processor + true + + + org.springframework.boot + spring-boot-starter-tomcat + provided + + + org.springframework.boot + spring-boot-starter-test + test + + + + + io.jsonwebtoken + jjwt + 0.9.0 + + + com.fasterxml.jackson.core + jackson-databind + + + com.fasterxml.jackson.core + jackson-annotations + + + com.h2database + h2 + runtime + + + org.codehaus.groovy + groovy + + + net.sourceforge.nekohtml + nekohtml + + + io.rest-assured + spring-mock-mvc + test + + + org.projectlombok + lombok + provided + + + org.apache.commons + commons-lang3 + + + + + org.liquibase + liquibase-core + + + + + + + + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + repackage + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.0 + + 1.8 + 1.8 + + + + + + + + diff --git a/quartz-manager-parent/quartz-manager-web-showcase/src/main/resources/application.yml b/quartz-manager-parent/quartz-manager-web-showcase/src/main/resources/application.yml index 5d2e4ab..74a5d68 100644 --- a/quartz-manager-parent/quartz-manager-web-showcase/src/main/resources/application.yml +++ b/quartz-manager-parent/quartz-manager-web-showcase/src/main/resources/application.yml @@ -47,6 +47,12 @@ logging: org.quartz: DEBUG quartz-manager: +# persistence: +# quartz: +# datasource: +# url: "jdbc:postgresql://localhost:5432/quartzmanager" +# user: "quartzmanager" +# password: "quartzmanager" security: login-model: form-login-enabled: true diff --git a/quartz-manager-parent/quartz-manager-web-showcase/src/main/resources/quartz.properties b/quartz-manager-parent/quartz-manager-web-showcase/src/main/resources/quartz.properties index 44b1da1..d00f153 100644 --- a/quartz-manager-parent/quartz-manager-web-showcase/src/main/resources/quartz.properties +++ b/quartz-manager-parent/quartz-manager-web-showcase/src/main/resources/quartz.properties @@ -1,13 +1,3 @@ org.quartz.scheduler.instanceName=example org.quartz.scheduler.instanceId=AUTO org.quartz.threadPool.threadCount=1 -#org.quartz.dataSource.quartzDataSource.driver = org.postgresql.Driver -#org.quartz.dataSource.quartzDataSource.URL = jdbc:postgresql://localhost:5432/quartzmanager -#org.quartz.dataSource.quartzDataSource.user quartzmanager -#org.quartz.dataSource.quartzDataSource.password = quartzmanager -#org.quartz.dataSource.quartzDataSource.maxConnections = 5 -#org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX -#org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.PostgreSQLDelegate -#org.quartz.jobStore.dataSource = quartzDataSource -#org.quartz.dataSource.quartzDataSource.provider=hikaricp -#org.quartz.jobStore.misfireThreshold=1000 \ No newline at end of file