From 7dcb3b5841ee5dec13b64cfd038c2134174a6a49 Mon Sep 17 00:00:00 2001 From: Scott Andrews Date: Fri, 23 Jan 2009 22:32:26 +0000 Subject: [PATCH] fixing broken unit test related to SPR-5429 --- .../config/DbcpDataSourceFactory.java | 18 ++++++++++++++++++ .../resources/META-INF/hsqldb/dropTables.txt | 7 +++++++ .../src/main/resources/jdbc.properties | 2 ++ .../petclinic/AbstractClinicTests-context.xml | 10 ++++++---- .../jpa/applicationContext-jpaCommon.xml | 10 ++++++---- 5 files changed, 39 insertions(+), 8 deletions(-) create mode 100644 org.springframework.samples.petclinic/src/main/resources/META-INF/hsqldb/dropTables.txt diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/config/DbcpDataSourceFactory.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/config/DbcpDataSourceFactory.java index aaf71dca0b..16fe921483 100644 --- a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/config/DbcpDataSourceFactory.java +++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/config/DbcpDataSourceFactory.java @@ -62,6 +62,8 @@ public class DbcpDataSourceFactory implements FactoryBean, Disposabl private Resource dataLocation; + private Resource dropLocation; + /** * The object created by this factory. */ @@ -115,6 +117,14 @@ public class DbcpDataSourceFactory implements FactoryBean, Disposabl this.dataLocation = testDataLocation; } + /** + * Sets the location of the file containing the drop scripts for the database. + * @param testDataLocation the location of the data file + */ + public void setDropLocation(Resource testDropLocation) { + this.dropLocation = testDropLocation; + } + // implementing FactoryBean // this method is called by Spring to expose the DataSource as a bean @@ -163,6 +173,14 @@ public class DbcpDataSourceFactory implements FactoryBean, Disposabl private void populateDataSource() { DatabasePopulator populator = new DatabasePopulator(dataSource); + if (dropLocation != null) { + try { + populator.populate(this.dropLocation); + } + catch (Exception e) { + // ignore + } + } populator.populate(this.schemaLocation); populator.populate(this.dataLocation); } diff --git a/org.springframework.samples.petclinic/src/main/resources/META-INF/hsqldb/dropTables.txt b/org.springframework.samples.petclinic/src/main/resources/META-INF/hsqldb/dropTables.txt new file mode 100644 index 0000000000..90ae6329f9 --- /dev/null +++ b/org.springframework.samples.petclinic/src/main/resources/META-INF/hsqldb/dropTables.txt @@ -0,0 +1,7 @@ +DROP TABLE visits; +DROP TABLE pets; +DROP TABLE owners; +DROP TABLE types; +DROP TABLE vet_specialties; +DROP TABLE specialties; +DROP TABLE vets; diff --git a/org.springframework.samples.petclinic/src/main/resources/jdbc.properties b/org.springframework.samples.petclinic/src/main/resources/jdbc.properties index f27b7002d7..e039cdf1b6 100644 --- a/org.springframework.samples.petclinic/src/main/resources/jdbc.properties +++ b/org.springframework.samples.petclinic/src/main/resources/jdbc.properties @@ -25,6 +25,7 @@ jdbc.password= jdbc.populate=true jdbc.schemaLocation=classpath:/META-INF/hsqldb/initDB.txt jdbc.dataLocation=classpath:/META-INF/hsqldb/populateDB.txt +jdbc.dropLocation=classpath:/META-INF/hsqldb/dropTables.txt # Property that determines which Hibernate dialect to use # (only applied with "applicationContext-hibernate.xml") @@ -49,6 +50,7 @@ jpa.database=HSQL #jdbc.populate=false #jdbc.schemaLocation= #jdbc.dataLocation= +#jdbc.dropLocation= # Property that determines which Hibernate dialect to use # (only applied with "applicationContext-hibernate.xml") diff --git a/org.springframework.samples.petclinic/src/test/resources/org/springframework/samples/petclinic/AbstractClinicTests-context.xml b/org.springframework.samples.petclinic/src/test/resources/org/springframework/samples/petclinic/AbstractClinicTests-context.xml index 91d0ff475c..3f79cbc093 100644 --- a/org.springframework.samples.petclinic/src/test/resources/org/springframework/samples/petclinic/AbstractClinicTests-context.xml +++ b/org.springframework.samples.petclinic/src/test/resources/org/springframework/samples/petclinic/AbstractClinicTests-context.xml @@ -13,8 +13,10 @@ - - + + diff --git a/org.springframework.samples.petclinic/src/test/resources/org/springframework/samples/petclinic/jpa/applicationContext-jpaCommon.xml b/org.springframework.samples.petclinic/src/test/resources/org/springframework/samples/petclinic/jpa/applicationContext-jpaCommon.xml index a501cba07f..b873dfc47e 100644 --- a/org.springframework.samples.petclinic/src/test/resources/org/springframework/samples/petclinic/jpa/applicationContext-jpaCommon.xml +++ b/org.springframework.samples.petclinic/src/test/resources/org/springframework/samples/petclinic/jpa/applicationContext-jpaCommon.xml @@ -11,10 +11,12 @@ - - + +