package com.m11n.jdbc.ssh; import com.m11n.jdbc.ssh.util.Slf4jDerbyBridge; import com.m11n.jdbc.ssh.util.Slf4jOutputStream; import org.apache.derby.drda.NetworkServerControl; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.PrintWriter; import java.net.InetAddress; public class DerbySshDriverTest extends JdbcSshDriverTest { private static final Logger logger = LoggerFactory.getLogger(DerbySshDriverTest.class); private static NetworkServerControl dbServerDerby; @BeforeClass public static void init() throws Exception { setUpDerby(); setUpSshd(); } @AfterClass public static void cleanup() throws Exception { dbServerDerby.shutdown(); shutDownSshd(); } private static void setUpDerby() throws Exception { System.setProperty("derby.drda.startNetworkServer", "true"); System.setProperty("jdbc.ssh.port.auto", "30000"); Slf4jDerbyBridge.setLogger(logger); System.setProperty("derby.stream.error.method", Slf4jDerbyBridge.class.getName() + ".bridge"); if(logger.isTraceEnabled()) { // see here for more options: http://wiki.apache.org/db-derby/DebugPropertiesTmpl System.setProperty("derby.drda.logConnections", "true"); System.setProperty("derby.language.logStatementText", "true"); System.setProperty("derby.language.logQueryPlan", "true"); System.setProperty("derby.locks.deadlockTrace", "true"); } dbServerDerby = new NetworkServerControl(InetAddress.getByName("localhost"), 1527); dbServerDerby.start(new PrintWriter(new Slf4jOutputStream(logger), true)); for (int i = 0; i < 10; ++i) { try { logger.info("Attempting to ping..."); dbServerDerby.ping(); break; } catch (Exception e) { logger.warn(e.getMessage()); } Thread.sleep(10); } } @Before public void setUp() throws Exception { sshUrl = System.getProperty("url")!=null ? System.getProperty("url") : "jdbc:ssh:derby://127.0.0.1:1527/target/test;create=true"; realUrl = System.getProperty("realUrl")!=null ? System.getProperty("realUrl") : "jdbc:derby://127.0.0.1:1527/target/test;create=true"; logger.info("JDBC URL (SSH) : {}", sshUrl); logger.info("JDBC URL (real): {}", realUrl); sql = "CREATE TABLE TEST_SSH(ID INT PRIMARY KEY, NAME VARCHAR(255))"; logger.info("JDBC Runtime Info:\n{}", dbServerDerby.getRuntimeInfo()); } }