Browse Source
* pr/8881: Polish "Add database initializer for Spring Integration" Add database initializer for Spring Integrationpull/5311/head
7 changed files with 253 additions and 10 deletions
@ -0,0 +1,52 @@
@@ -0,0 +1,52 @@
|
||||
/* |
||||
* Copyright 2012-2017 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.integration; |
||||
|
||||
import javax.sql.DataSource; |
||||
|
||||
import org.springframework.boot.autoconfigure.AbstractDatabaseInitializer; |
||||
import org.springframework.core.io.ResourceLoader; |
||||
import org.springframework.util.Assert; |
||||
|
||||
/** |
||||
* Initializer for Spring Integration schema. |
||||
* |
||||
* @author Vedran Pavic |
||||
* @since 2.0.0 |
||||
*/ |
||||
public class IntegrationDatabaseInitializer extends AbstractDatabaseInitializer { |
||||
|
||||
private final IntegrationProperties.Jdbc properties; |
||||
|
||||
public IntegrationDatabaseInitializer(DataSource dataSource, |
||||
ResourceLoader resourceLoader, IntegrationProperties properties) { |
||||
super(dataSource, resourceLoader); |
||||
Assert.notNull(properties, "IntegrationProperties must not be null"); |
||||
this.properties = properties.getJdbc(); |
||||
} |
||||
|
||||
@Override |
||||
protected boolean isEnabled() { |
||||
return this.properties.getInitializer().isEnabled(); |
||||
} |
||||
|
||||
@Override |
||||
protected String getSchemaLocation() { |
||||
return this.properties.getSchema(); |
||||
} |
||||
|
||||
} |
||||
@ -0,0 +1,80 @@
@@ -0,0 +1,80 @@
|
||||
/* |
||||
* Copyright 2012-2017 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.integration; |
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties; |
||||
|
||||
/** |
||||
* Configuration properties for Spring Integration. |
||||
* |
||||
* @author Vedran Pavic |
||||
* @author Stephane Nicoll |
||||
* @since 2.0.0 |
||||
*/ |
||||
@ConfigurationProperties(prefix = "spring.integration") |
||||
public class IntegrationProperties { |
||||
|
||||
private final Jdbc jdbc = new Jdbc(); |
||||
|
||||
public Jdbc getJdbc() { |
||||
return this.jdbc; |
||||
} |
||||
|
||||
public static class Jdbc { |
||||
|
||||
private static final String DEFAULT_SCHEMA_LOCATION = "classpath:org/springframework/" |
||||
+ "integration/jdbc/schema-@@platform@@.sql"; |
||||
|
||||
/** |
||||
* Path to the SQL file to use to initialize the database schema. |
||||
*/ |
||||
private String schema = DEFAULT_SCHEMA_LOCATION; |
||||
|
||||
private final Initializer initializer = new Initializer(); |
||||
|
||||
public String getSchema() { |
||||
return this.schema; |
||||
} |
||||
|
||||
public void setSchema(String schema) { |
||||
this.schema = schema; |
||||
} |
||||
|
||||
public Initializer getInitializer() { |
||||
return this.initializer; |
||||
} |
||||
|
||||
public class Initializer { |
||||
|
||||
/** |
||||
* Create the required integration tables on startup. |
||||
*/ |
||||
private boolean enabled = false; |
||||
|
||||
public boolean isEnabled() { |
||||
return this.enabled; |
||||
} |
||||
|
||||
public void setEnabled(boolean enabled) { |
||||
this.enabled = enabled; |
||||
} |
||||
|
||||
} |
||||
|
||||
} |
||||
|
||||
} |
||||
Loading…
Reference in new issue