/** * Logback: the reliable, generic, fast and flexible logging framework. * Copyright (C) 2006-2011, QOS.ch. All rights reserved. * * This program and the accompanying materials are dual-licensed under * either the terms of the Eclipse Public License v1.0 as published by * the Eclipse Foundation * * or (per the licensee's choosing) * * under the terms of the GNU Lesser General Public License version 2.1 * as published by the Free Software Foundation. */ package ch.qos.logback.audit.persistent; import java.sql.SQLException; import junit.framework.TestCase; import org.hibernate.cfg.Configuration; import org.hibernate.cfg.Environment; import org.hibernate.dialect.HSQLDialect; import org.hsqldb.Server; import org.hsqldb.ServerConstants; import ch.qos.logback.audit.server.TableCreator; public class PersistorTestBase extends TestCase { Object cfgLock = new Integer(13); Server server; String user = "sa"; String password = ""; String url = null; // boolean isNetwork = true; boolean memMode = true; public PersistorTestBase(String name) { super(name); } protected void setUp() throws SQLException { if (memMode) { url = "jdbc:hsqldb:mem:test;sql.enforce_strict_size=true"; server = new Server(); server.setDatabaseName(0, "test"); server.setDatabasePath(0, url); //server.setLogWriter(new PrintWriter(System.out)); //server.setErrWriter(new PrintWriter(System.out)); server.setLogWriter(null); server.setErrWriter(null); server.setTrace(false); server.setSilent(true); server.start(); try { Thread.sleep(10); } catch (InterruptedException e) { } } else { url = "jdbc:hsqldb:hsql://localhost:4808/test"; } Configuration cfg = buildConfiguration(); //createTables(cfg); Persistor.setConfiguration(cfg, cfgLock); } protected void tearDown() throws Exception { super.tearDown(); server.stop(); int waitCount = 0; while (server.getState() != ServerConstants.SERVER_STATE_SHUTDOWN) { try { waitCount++; if (waitCount == 5) { throw new IllegalStateException("HSQLDB server could not be stopped"); } Thread.sleep(1); } catch (InterruptedException e) { } } } Configuration buildConfiguration() { Configuration cfg = Persistor.createConfiguration(); cfg.setProperty(Environment.USER, user); cfg.setProperty(Environment.PASS, password); cfg.setProperty(Environment.DIALECT, HSQLDialect.class.getName()); cfg.setProperty(Environment.URL, url); cfg.setProperty(Environment.DRIVER, org.hsqldb.jdbcDriver.class.getName()); cfg.setProperty(Environment.SHOW_SQL, "false"); cfg.setProperty(Environment.HBM2DDL_AUTO, "create-drop"); return cfg; } void createTables(Configuration cfg) { TableCreator tc = new TableCreator(cfg); tc.createTables(); } }