Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
9b379b43
Commit
9b379b43
authored
May 14, 2018
by
Stephane Nicoll
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '2.0.x'
parents
7391d56b
8f53c2e2
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
118 additions
and
3 deletions
+118
-3
QuartzDataSourceInitializer.java
...oot/autoconfigure/quartz/QuartzDataSourceInitializer.java
+7
-1
QuartzProperties.java
...framework/boot/autoconfigure/quartz/QuartzProperties.java
+14
-1
QuartzDataSourceInitializerTests.java
...utoconfigure/quartz/QuartzDataSourceInitializerTests.java
+77
-0
tables_h2.sql
...g/springframework/boot/autoconfigure/quartz/tables_h2.sql
+10
-0
appendix-application-properties.adoc
...cs/src/main/asciidoc/appendix-application-properties.adoc
+1
-0
AbstractDataSourceInitializer.java
...ingframework/boot/jdbc/AbstractDataSourceInitializer.java
+9
-1
No files found.
spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/quartz/QuartzDataSourceInitializer.java
View file @
9b379b43
/*
* Copyright 2012-201
7
the original author or authors.
* Copyright 2012-201
8
the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
...
...
@@ -21,6 +21,7 @@ import javax.sql.DataSource;
import
org.springframework.boot.jdbc.AbstractDataSourceInitializer
;
import
org.springframework.boot.jdbc.DataSourceInitializationMode
;
import
org.springframework.core.io.ResourceLoader
;
import
org.springframework.jdbc.datasource.init.ResourceDatabasePopulator
;
import
org.springframework.util.Assert
;
/**
...
...
@@ -40,6 +41,11 @@ public class QuartzDataSourceInitializer extends AbstractDataSourceInitializer {
this
.
properties
=
properties
;
}
@Override
protected
void
customize
(
ResourceDatabasePopulator
populator
)
{
populator
.
setCommentPrefix
(
this
.
properties
.
getJdbc
().
getCommentPrefix
());
}
@Override
protected
DataSourceInitializationMode
getMode
()
{
return
this
.
properties
.
getJdbc
().
getInitializeSchema
();
...
...
spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/quartz/QuartzProperties.java
View file @
9b379b43
/*
* Copyright 2012-201
7
the original author or authors.
* Copyright 2012-201
8
the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
...
...
@@ -75,6 +75,11 @@ public class QuartzProperties {
*/
private
DataSourceInitializationMode
initializeSchema
=
DataSourceInitializationMode
.
EMBEDDED
;
/**
* Prefix for single-line comments in SQL initialization scripts.
*/
private
String
commentPrefix
=
"--"
;
public
String
getSchema
()
{
return
this
.
schema
;
}
...
...
@@ -91,6 +96,14 @@ public class QuartzProperties {
this
.
initializeSchema
=
initializeSchema
;
}
public
String
getCommentPrefix
()
{
return
this
.
commentPrefix
;
}
public
void
setCommentPrefix
(
String
commentPrefix
)
{
this
.
commentPrefix
=
commentPrefix
;
}
}
}
spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/quartz/QuartzDataSourceInitializerTests.java
0 → 100644
View file @
9b379b43
/*
* Copyright 2012-2018 the original author or authors.
*
* Licensed 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
.
springframework
.
boot
.
autoconfigure
.
quartz
;
import
java.util.UUID
;
import
javax.sql.DataSource
;
import
org.junit.Test
;
import
org.springframework.boot.autoconfigure.AutoConfigurations
;
import
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
;
import
org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.boot.test.context.runner.ApplicationContextRunner
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.core.io.ResourceLoader
;
import
org.springframework.jdbc.core.JdbcTemplate
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
/**
* Tests for {@link QuartzDataSourceInitializer}.
*
* @author Stephane Nicoll
*/
public
class
QuartzDataSourceInitializerTests
{
private
final
ApplicationContextRunner
contextRunner
=
new
ApplicationContextRunner
()
.
withConfiguration
(
AutoConfigurations
.
of
(
DataSourceAutoConfiguration
.
class
,
JdbcTemplateAutoConfiguration
.
class
))
.
withPropertyValues
(
"spring.datasource.url="
+
String
.
format
(
"jdbc:h2:mem:test-%s;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE"
,
UUID
.
randomUUID
().
toString
()));
@Test
public
void
commentPrefixCanBeCustomized
()
{
this
.
contextRunner
.
withUserConfiguration
(
TestConfiguration
.
class
)
.
withPropertyValues
(
"spring.quartz.jdbc.comment-prefix=##"
,
"spring.quartz.jdbc.schema=classpath:org/springframework/boot/autoconfigure/quartz/tables_@@platform@@.sql"
)
.
run
((
context
)
->
{
JdbcTemplate
jdbcTemplate
=
context
.
getBean
(
JdbcTemplate
.
class
);
assertThat
(
jdbcTemplate
.
queryForObject
(
"SELECT COUNT(*) FROM QRTZ_TEST_TABLE"
,
Integer
.
class
))
.
isEqualTo
(
0
);
});
}
@Configuration
@EnableConfigurationProperties
(
QuartzProperties
.
class
)
static
class
TestConfiguration
{
@Bean
public
QuartzDataSourceInitializer
initializer
(
DataSource
dataSource
,
ResourceLoader
resourceLoader
,
QuartzProperties
properties
)
{
return
new
QuartzDataSourceInitializer
(
dataSource
,
resourceLoader
,
properties
);
}
}
}
spring-boot-project/spring-boot-autoconfigure/src/test/resources/org/springframework/boot/autoconfigure/quartz/tables_h2.sql
0 → 100644
View file @
9b379b43
##
This
is
a
test
script
to
check
custom
comment
prefix
is
taken
into
account
CREATE
TABLE
QRTZ_TEST_TABLE
(
SCHED_NAME
VARCHAR
(
120
)
NOT
NULL
,
CALENDAR_NAME
VARCHAR
(
200
)
NOT
NULL
);
##
Another
comment
COMMIT
;
spring-boot-project/spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc
View file @
9b379b43
...
...
@@ -140,6 +140,7 @@ content into your application. Rather, pick only the properties that you need.
spring.profiles.include= # Unconditionally activate the specified comma-separated list of profiles (or list of profiles if using YAML).
# QUARTZ SCHEDULER ({sc-spring-boot-autoconfigure}/quartz/QuartzProperties.{sc-ext}[QuartzProperties])
spring.quartz.jdbc.comment-prefix=-- # Prefix for single-line comments in SQL initialization scripts.
spring.quartz.jdbc.initialize-schema=embedded # Database schema initialization mode.
spring.quartz.jdbc.schema=classpath:org/quartz/impl/jdbcjobstore/tables_@@platform@@.sql # Path to the SQL file to use to initialize the database schema.
spring.quartz.job-store-type=memory # Quartz job store type.
...
...
spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/AbstractDataSourceInitializer.java
View file @
9b379b43
/*
* Copyright 2012-201
7
the original author or authors.
* Copyright 2012-201
8
the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
...
...
@@ -62,6 +62,7 @@ public abstract class AbstractDataSourceInitializer {
}
populator
.
addScript
(
this
.
resourceLoader
.
getResource
(
schemaLocation
));
populator
.
setContinueOnError
(
true
);
customize
(
populator
);
DatabasePopulatorUtils
.
execute
(
populator
,
this
.
dataSource
);
}
...
...
@@ -76,6 +77,13 @@ public abstract class AbstractDataSourceInitializer {
return
true
;
}
/**
* Customize the {@link ResourceDatabasePopulator}.
* @param populator the configured database populator
*/
protected
void
customize
(
ResourceDatabasePopulator
populator
)
{
}
protected
abstract
DataSourceInitializationMode
getMode
();
protected
abstract
String
getSchemaLocation
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment