From 2e4fa28ca6ffeb9f6a50b4f642065fc5741854ac Mon Sep 17 00:00:00 2001 From: Keith Donald Date: Tue, 3 Nov 2009 23:19:26 +0000 Subject: [PATCH] removed embedded databases factory in favor of new useDefaultScripts builder method --- .../embedded/EmbeddedDatabaseBuilder.java | 11 ++++ .../embedded/EmbeddedDatabases.java | 56 ------------------- .../EmbeddedDatabaseBuilderTests.java | 7 +++ .../embedded/EmbeddedDatabasesTests.java | 22 -------- 4 files changed, 18 insertions(+), 78 deletions(-) delete mode 100644 org.springframework.jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabases.java delete mode 100644 org.springframework.jdbc/src/test/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabasesTests.java diff --git a/org.springframework.jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseBuilder.java b/org.springframework.jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseBuilder.java index 8393a8602f..3c51069ef9 100644 --- a/org.springframework.jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseBuilder.java +++ b/org.springframework.jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseBuilder.java @@ -94,6 +94,17 @@ public class EmbeddedDatabaseBuilder { return this; } + /** + * Add default scripts to execute to populate the database. + * The default scripts are schema.sql to create the db schema and data.sql to populate the db with data. + * @return this, for fluent call chaining + */ + public EmbeddedDatabaseBuilder addDefaultScripts() { + addScript("schema.sql"); + addScript("data.sql"); + return this; + } + /** * Build the embedded database. * @return the embedded database diff --git a/org.springframework.jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabases.java b/org.springframework.jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabases.java deleted file mode 100644 index d529aa3967..0000000000 --- a/org.springframework.jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabases.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2002-2009 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.jdbc.datasource.embedded; - -import org.springframework.core.io.ClassRelativeResourceLoader; - -/** - * Convenience factory for constructing commonly used EmbeddedDatabase configurations. - * @author Keith Donald - */ -public final class EmbeddedDatabases { - - private EmbeddedDatabases() { - - } - - /** - * Factory method that creates a default EmbeddedDatabase instance. - *

The default instance is HQL populated with a schema loaded from classpath:schema.sql and data loaded from classpath:data.sql. - * @return an embedded database - */ - public static EmbeddedDatabase createDefault() { - return buildDefault(new EmbeddedDatabaseBuilder()); - } - - /** - * Factory method that creates a default HSQL EmbeddedDatabase instance. - *

The default instance is HQL populated with a schema loaded from schema.sql and data loaded from data.sql, where - * each .sql file location is relative to the specified class. - * @param clazz the class to load .sql resources relative to - * @return an embedded database - */ - public static EmbeddedDatabase createDefault(Class clazz) { - return buildDefault(new EmbeddedDatabaseBuilder(new ClassRelativeResourceLoader(clazz))); - } - - // internal helpers - - private static EmbeddedDatabase buildDefault(EmbeddedDatabaseBuilder builder) { - return builder.addScript("schema.sql").addScript("data.sql").build(); - } - -} diff --git a/org.springframework.jdbc/src/test/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseBuilderTests.java b/org.springframework.jdbc/src/test/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseBuilderTests.java index 3784ff00a9..51ab788264 100644 --- a/org.springframework.jdbc/src/test/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseBuilderTests.java +++ b/org.springframework.jdbc/src/test/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseBuilderTests.java @@ -12,6 +12,13 @@ import org.springframework.jdbc.datasource.init.CannotReadScriptException; public class EmbeddedDatabaseBuilderTests { + @Test + public void testBuildDefaultScripts() { + EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder(); + EmbeddedDatabase db = builder.addDefaultScripts().build(); + assertDatabaseCreatedAndShutdown(db); + } + @Test public void testBuild() { EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder(new ClassRelativeResourceLoader(getClass())); diff --git a/org.springframework.jdbc/src/test/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabasesTests.java b/org.springframework.jdbc/src/test/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabasesTests.java deleted file mode 100644 index 6ab2653cc0..0000000000 --- a/org.springframework.jdbc/src/test/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabasesTests.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.springframework.jdbc.datasource.embedded; - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; -import org.springframework.jdbc.core.JdbcTemplate; - -public class EmbeddedDatabasesTests { - - @Test - public void testCreateDefault() { - EmbeddedDatabase db = EmbeddedDatabases.createDefault(); - assertDatabaseCreatedAndShutdown(db); - } - - private void assertDatabaseCreatedAndShutdown(EmbeddedDatabase db) { - JdbcTemplate template = new JdbcTemplate(db); - assertEquals("Keith", template.queryForObject("select NAME from T_TEST", String.class)); - db.shutdown(); - } - -} \ No newline at end of file