Updated Branches: refs/heads/develop cfde3aac2 -> 756b6a82b
improved test setup Project: http://git-wip-us.apache.org/repos/asf/marmotta/repo Commit: http://git-wip-us.apache.org/repos/asf/marmotta/commit/756b6a82 Tree: http://git-wip-us.apache.org/repos/asf/marmotta/tree/756b6a82 Diff: http://git-wip-us.apache.org/repos/asf/marmotta/diff/756b6a82 Branch: refs/heads/develop Commit: 756b6a82bac1505b6eece34990dedbf144ab9298 Parents: cfde3aa Author: Sebastian Schaffert <[email protected]> Authored: Tue Dec 10 19:01:16 2013 +0100 Committer: Sebastian Schaffert <[email protected]> Committed: Tue Dec 10 19:01:16 2013 +0100 ---------------------------------------------------------------------- .../apache/marmotta/kiwi/sail/KiWiStore.java | 31 +++++++++++++- .../kiwi/test/MySQLConcurrencyTest.java | 13 +++--- .../kiwi/test/PostgreSQLConcurrencyTest.java | 13 +++--- .../marmotta/kiwi/test/RepositoryTest.java | 43 ++++++++------------ .../kiwi/test/sesame/KiWiLocaleTest.java | 5 +-- .../test/sesame/KiWiSailConcurrencyTest.java | 19 +-------- .../kiwi/test/sesame/KiWiSailInterruptTest.java | 1 + .../kiwi/test/sesame/KiWiStoreTest.java | 19 +-------- .../KiWiRepositoryConnectionTest.java | 22 +--------- 9 files changed, 69 insertions(+), 97 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/marmotta/blob/756b6a82/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiStore.java ---------------------------------------------------------------------- diff --git a/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiStore.java b/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiStore.java index a3fec3a..89ed095 100644 --- a/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiStore.java +++ b/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiStore.java @@ -18,7 +18,6 @@ package org.apache.marmotta.kiwi.sail; import com.google.common.collect.MapMaker; - import org.apache.marmotta.commons.sesame.tripletable.IntArray; import org.apache.marmotta.kiwi.config.KiWiConfiguration; import org.apache.marmotta.kiwi.persistence.KiWiDialect; @@ -92,6 +91,12 @@ public class KiWiStore extends NotifyingSailBase { */ protected ConcurrentMap<IntArray,Statement> tripleRegistry; + + /** + * Drop databases when shutdown is called. This option is mostly useful for testing. + */ + private boolean dropTablesOnShutdown = false; + public KiWiStore(KiWiPersistence persistence, String defaultContext, String inferredContext) { this.persistence = persistence; this.defaultContext = defaultContext; @@ -158,6 +163,21 @@ public class KiWiStore extends NotifyingSailBase { return persistence; } + + /** + * Drop databases when shutdown is called. This option is mostly useful for testing. + */ + public boolean isDropTablesOnShutdown() { + return dropTablesOnShutdown; + } + + /** + * Drop databases when shutdown is called. This option is mostly useful for testing. + */ + public void setDropTablesOnShutdown(boolean dropTablesOnShutdown) { + this.dropTablesOnShutdown = dropTablesOnShutdown; + } + /** * Returns a store-specific SailConnection object. * @@ -174,6 +194,15 @@ public class KiWiStore extends NotifyingSailBase { @Override protected void shutDownInternal() throws SailException { closeValueFactory(); + + if(dropTablesOnShutdown) { + try { + persistence.dropDatabase(); + } catch (SQLException e) { + logger.error("error dropping database: {}", e.getMessage()); + } + } + persistence.shutdown(); tripleRegistry = null; initialized = false; http://git-wip-us.apache.org/repos/asf/marmotta/blob/756b6a82/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/MySQLConcurrencyTest.java ---------------------------------------------------------------------- diff --git a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/MySQLConcurrencyTest.java b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/MySQLConcurrencyTest.java index 29bfabf..91fce3f 100644 --- a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/MySQLConcurrencyTest.java +++ b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/MySQLConcurrencyTest.java @@ -17,11 +17,6 @@ package org.apache.marmotta.kiwi.test; -import static org.junit.Assert.assertTrue; - -import java.sql.SQLException; -import java.util.Random; - import org.apache.marmotta.kiwi.config.KiWiConfiguration; import org.apache.marmotta.kiwi.persistence.mysql.MySQLDialect; import org.apache.marmotta.kiwi.sail.KiWiStore; @@ -34,6 +29,11 @@ import org.openrdf.repository.sail.SailRepository; import org.openrdf.sail.SailException; import org.slf4j.LoggerFactory; +import java.sql.SQLException; +import java.util.Random; + +import static org.junit.Assert.assertTrue; + /** * This test starts many triplestore operations in parallel to check if concurrent operations will break things, * @@ -53,6 +53,7 @@ public class MySQLConcurrencyTest extends ConcurrencyTestBase { rnd = new Random(); store = new KiWiStore(mysqlConfig); + store.setDropTablesOnShutdown(true); repository = new SailRepository(store); repository.initialize(); } @@ -61,8 +62,6 @@ public class MySQLConcurrencyTest extends ConcurrencyTestBase { public static void dropDatabase() throws RepositoryException, SQLException, SailException { if (store != null && store.isInitialized()) { assertTrue(store.checkConsistency()); - store.closeValueFactory(); // release all connections before dropping the database - store.getPersistence().dropDatabase(); repository.shutDown(); } } http://git-wip-us.apache.org/repos/asf/marmotta/blob/756b6a82/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/PostgreSQLConcurrencyTest.java ---------------------------------------------------------------------- diff --git a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/PostgreSQLConcurrencyTest.java b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/PostgreSQLConcurrencyTest.java index 7b7b3c1..0cb8334 100644 --- a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/PostgreSQLConcurrencyTest.java +++ b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/PostgreSQLConcurrencyTest.java @@ -17,11 +17,6 @@ package org.apache.marmotta.kiwi.test; -import static org.junit.Assert.assertTrue; - -import java.sql.SQLException; -import java.util.Random; - import org.apache.marmotta.kiwi.config.KiWiConfiguration; import org.apache.marmotta.kiwi.persistence.pgsql.PostgreSQLDialect; import org.apache.marmotta.kiwi.sail.KiWiStore; @@ -34,6 +29,11 @@ import org.openrdf.repository.sail.SailRepository; import org.openrdf.sail.SailException; import org.slf4j.LoggerFactory; +import java.sql.SQLException; +import java.util.Random; + +import static org.junit.Assert.assertTrue; + /** * This test starts many triplestore operations in parallel to check if concurrent operations will break things, * @@ -55,6 +55,7 @@ public class PostgreSQLConcurrencyTest extends ConcurrencyTestBase { rnd = new Random(); store = new KiWiStore(psql); + store.setDropTablesOnShutdown(true); repository = new SailRepository(store); repository.initialize(); } @@ -64,8 +65,6 @@ public class PostgreSQLConcurrencyTest extends ConcurrencyTestBase { logger.info("cleaning up test setup..."); if (store != null && store.isInitialized()) { assertTrue(store.checkConsistency()); - store.closeValueFactory(); // release all connections before dropping the database - store.getPersistence().dropDatabase(); repository.shutDown(); } } http://git-wip-us.apache.org/repos/asf/marmotta/blob/756b6a82/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/RepositoryTest.java ---------------------------------------------------------------------- diff --git a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/RepositoryTest.java b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/RepositoryTest.java index 5627f1b..ce2adae 100644 --- a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/RepositoryTest.java +++ b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/RepositoryTest.java @@ -16,21 +16,9 @@ */ package org.apache.marmotta.kiwi.test; -import static org.hamcrest.CoreMatchers.hasItems; -import static org.hamcrest.CoreMatchers.not; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.hamcrest.Matchers.hasItem; -import static org.hamcrest.Matchers.hasProperty; -import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.lessThan; -import static org.junit.Assume.assumeThat; - -import java.io.IOException; -import java.io.InputStream; -import java.sql.SQLException; -import java.util.ConcurrentModificationException; -import java.util.List; - +import com.google.common.base.Function; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Iterables; import org.apache.commons.lang3.RandomStringUtils; import org.apache.marmotta.commons.sesame.repository.ResourceUtils; import org.apache.marmotta.kiwi.config.KiWiConfiguration; @@ -42,11 +30,7 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.openrdf.model.Literal; -import org.openrdf.model.Namespace; -import org.openrdf.model.Resource; -import org.openrdf.model.Statement; -import org.openrdf.model.URI; +import org.openrdf.model.*; import org.openrdf.query.MalformedQueryException; import org.openrdf.query.QueryLanguage; import org.openrdf.query.Update; @@ -60,9 +44,19 @@ import org.openrdf.rio.RDFParseException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Function; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.Iterables; +import java.io.IOException; +import java.io.InputStream; +import java.sql.SQLException; +import java.util.ConcurrentModificationException; +import java.util.List; + +import static org.hamcrest.CoreMatchers.hasItems; +import static org.hamcrest.CoreMatchers.not; +import static org.hamcrest.CoreMatchers.notNullValue; +import static org.hamcrest.Matchers.hasItem; +import static org.hamcrest.Matchers.*; +import static org.hamcrest.Matchers.is; +import static org.junit.Assume.assumeThat; /** * Test the Sesame repository functionality backed by the KiWi triple store. @@ -88,14 +82,13 @@ public class RepositoryTest { @Before public void initDatabase() throws RepositoryException { store = new KiWiStore(kiwiConfiguration); + store.setDropTablesOnShutdown(true); repository = new SailRepository(store); repository.initialize(); } @After public void dropDatabase() throws RepositoryException, SQLException { - store.closeValueFactory(); // release all connections before dropping the database - store.getPersistence().dropDatabase(); repository.shutDown(); } http://git-wip-us.apache.org/repos/asf/marmotta/blob/756b6a82/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiLocaleTest.java ---------------------------------------------------------------------- diff --git a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiLocaleTest.java b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiLocaleTest.java index 7815127..080aab1 100644 --- a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiLocaleTest.java +++ b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiLocaleTest.java @@ -26,7 +26,6 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.openrdf.model.Literal; -import org.openrdf.sail.SailConnection; import org.openrdf.sail.SailException; import java.sql.SQLException; @@ -50,14 +49,14 @@ public class KiWiLocaleTest { @Before public void initialize() throws SailException { - store = new KiWiStore(kiwiConfig); + store = new KiWiStore(kiwiConfig); + store.setDropTablesOnShutdown(true); store.initialize(); vf = new KiWiValueFactory(store, "http://example.org"); } @After public void shutdown() throws SailException, SQLException { - store.getPersistence().dropDatabase(); store.shutDown(); store = null; vf = null; http://git-wip-us.apache.org/repos/asf/marmotta/blob/756b6a82/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiSailConcurrencyTest.java ---------------------------------------------------------------------- diff --git a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiSailConcurrencyTest.java b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiSailConcurrencyTest.java index c5661c7..bffbd30 100644 --- a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiSailConcurrencyTest.java +++ b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiSailConcurrencyTest.java @@ -26,11 +26,6 @@ import org.junit.runner.RunWith; import org.openrdf.sail.Sail; import org.openrdf.sail.SailConcurrencyTest; import org.openrdf.sail.SailException; -import org.openrdf.sail.helpers.SailWrapper; - -import java.sql.SQLException; - -import static org.junit.Assert.fail; /** * Run the Sesame {@link SailConcurrencyTest} suite. @@ -48,18 +43,8 @@ public class KiWiSailConcurrencyTest extends SailConcurrencyTest { @Override protected Sail createSail() throws SailException { - Sail store = new SailWrapper(new KiWiStore(kiwiConfig)) { - @Override - public void shutDown() throws SailException { - try { - ((KiWiStore)getBaseSail()).getPersistence().dropDatabase(); - } catch (SQLException e) { - fail("SQL exception while deleting database"); - } - - super.shutDown(); - } - }; + KiWiStore store = new KiWiStore(kiwiConfig); + store.setDropTablesOnShutdown(true); return store; } http://git-wip-us.apache.org/repos/asf/marmotta/blob/756b6a82/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiSailInterruptTest.java ---------------------------------------------------------------------- diff --git a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiSailInterruptTest.java b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiSailInterruptTest.java index 710f128..92a5cff 100644 --- a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiSailInterruptTest.java +++ b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiSailInterruptTest.java @@ -48,6 +48,7 @@ public class KiWiSailInterruptTest extends SailInterruptTest { @Override protected Sail createSail() throws SailException { KiWiStore store = new KiWiStore(kiwiConfig); + store.setDropTablesOnShutdown(true); return store; } http://git-wip-us.apache.org/repos/asf/marmotta/blob/756b6a82/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiStoreTest.java ---------------------------------------------------------------------- diff --git a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiStoreTest.java b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiStoreTest.java index 081dae4..d1b1322 100644 --- a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiStoreTest.java +++ b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiStoreTest.java @@ -23,11 +23,6 @@ import org.junit.runner.RunWith; import org.openrdf.sail.RDFStoreTest; import org.openrdf.sail.Sail; import org.openrdf.sail.SailException; -import org.openrdf.sail.helpers.SailWrapper; - -import java.sql.SQLException; - -import static org.junit.Assert.fail; /** * Run the Sesame {@link RDFStoreTest} suite. @@ -44,18 +39,8 @@ public class KiWiStoreTest extends RDFStoreTest { @Override protected Sail createSail() throws SailException { - Sail store = new SailWrapper(new KiWiStore(kiwiConfig)) { - @Override - public void shutDown() throws SailException { - try { - ((KiWiStore)getBaseSail()).getPersistence().dropDatabase(); - } catch (SQLException e) { - fail("SQL exception while deleting database"); - } - - super.shutDown(); - } - }; + KiWiStore store = new KiWiStore(kiwiConfig); + store.setDropTablesOnShutdown(true); store.initialize(); return store; } http://git-wip-us.apache.org/repos/asf/marmotta/blob/756b6a82/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/repository/KiWiRepositoryConnectionTest.java ---------------------------------------------------------------------- diff --git a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/repository/KiWiRepositoryConnectionTest.java b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/repository/KiWiRepositoryConnectionTest.java index f71f964..4ff4632 100644 --- a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/repository/KiWiRepositoryConnectionTest.java +++ b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/repository/KiWiRepositoryConnectionTest.java @@ -17,20 +17,12 @@ package org.apache.marmotta.kiwi.test.sesame.repository; import org.apache.marmotta.kiwi.config.KiWiConfiguration; -import org.apache.marmotta.kiwi.persistence.h2.H2Dialect; import org.apache.marmotta.kiwi.sail.KiWiStore; import org.apache.marmotta.kiwi.test.junit.KiWiDatabaseRunner; import org.junit.runner.RunWith; import org.openrdf.repository.Repository; import org.openrdf.repository.RepositoryConnectionTest; import org.openrdf.repository.sail.SailRepository; -import org.openrdf.sail.Sail; -import org.openrdf.sail.SailException; -import org.openrdf.sail.helpers.SailWrapper; - -import java.sql.SQLException; - -import static org.junit.Assert.fail; /** * Run the {@link RepositoryConnectionTest}s. @@ -52,18 +44,8 @@ public class KiWiRepositoryConnectionTest extends RepositoryConnectionTest { @Override protected Repository createRepository() throws Exception { config.setDefaultContext(null); - Sail store = new SailWrapper(new KiWiStore(config)) { - @Override - public void shutDown() throws SailException { - try { - ((KiWiStore)getBaseSail()).getPersistence().dropDatabase(); - } catch (SQLException e) { - fail("SQL exception while deleting database"); - } - - super.shutDown(); - } - }; + KiWiStore store = new KiWiStore(config); + store.setDropTablesOnShutdown(true); return new SailRepository(store); }
