Blob Blame History Raw
diff -up ./Server/src/config/config.xml.hsqldb ./Server/src/config/config.xml
--- ./Server/src/config/config.xml.hsqldb	2018-09-12 19:20:11.736264052 -0400
+++ ./Server/src/config/config.xml	2018-09-13 00:53:07.127082388 -0400
@@ -89,9 +89,9 @@
 		    db_user="sa"
 		    db_pwd="OpenAS2"
 		    db_name="openas2"
-		    db_directory="%home%/DB"
-			jdbc_driver="org.h2.Driver"
-			jdbc_connect_string="jdbc:h2:$component.db_directory$/$component.db_name$"
+		    db_directory="/var/lib/openas2/db"
+			jdbc_driver="org.hsqldb.jdbc.JDBCDriver"
+			jdbc_connect_string="jdbc:hsqldb:file:$component.db_directory$/$component.db_name$"
 			sql_escape_character="'"
 			tcp_server_start="true"
 			tcp_server_port="9092"
diff -up ./Server/src/main/java/org/openas2/processor/msgtracking/EmbeddedDBHandler.java.hsqldb ./Server/src/main/java/org/openas2/processor/msgtracking/EmbeddedDBHandler.java
--- ./Server/src/main/java/org/openas2/processor/msgtracking/EmbeddedDBHandler.java.hsqldb	2018-09-08 12:23:17.000000000 -0400
+++ ./Server/src/main/java/org/openas2/processor/msgtracking/EmbeddedDBHandler.java	2018-09-12 19:20:11.737264065 -0400
@@ -1,6 +1,7 @@
 package org.openas2.processor.msgtracking;
 
 import java.sql.Connection;
+import java.sql.DriverManager;
 import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.Map;
@@ -8,18 +9,19 @@ import java.util.concurrent.TimeUnit;
 
 import javax.annotation.Nullable;
 
-import org.h2.jdbcx.JdbcConnectionPool;
-import org.h2.tools.Server;
+import org.hsqldb.jdbc.JDBCPool;
+import org.hsqldb.jdbc.JDBCConnection;
+import org.hsqldb.server.Server;
 import org.openas2.OpenAS2Exception;
 
 class EmbeddedDBHandler extends DbTrackingModule implements IDBHandler {
 
     @Nullable
-    private JdbcConnectionPool cp = null;
+    private JDBCPool cp = null;
 
     private Server server = null;
 
-    private String connectString = "jdbc:h2:file:DB/openas2";
+    private String connectString = "jdbc:hsqldb:file:DB/openas2";
 
     public void createConnectionPool(String connectString, String userName, String pwd) throws OpenAS2Exception
     {
@@ -30,9 +32,14 @@ class EmbeddedDBHandler extends DbTracki
                     "Connection pool already initialized. Cannot create a new connection pool. Stop current one first. DB connect string:"
                             + connectString + " :: Active pool connect string: " + this.connectString);
         }
+	if (connectString.startsWith("jdbc:h2:/"))
+	    connectString = "jdbc:hsqldb:file:"+connectString.substring(8);
         this.connectString = connectString;
 
-        cp = JdbcConnectionPool.create(connectString, userName, pwd);
+        cp = new JDBCPool();
+	cp.setUrl(connectString);
+	cp.setUser(userName);
+	cp.setPassword(pwd);
     }
 
 	public void start(String connectString, String userName, String pwd, Map<String, String> params) throws OpenAS2Exception
@@ -50,7 +57,13 @@ class EmbeddedDBHandler extends DbTracki
 					
 			try
 			{
-				server = Server.createTcpServer( "-tcpPort", tcpPort, "-tcpPassword", tcpPwd, "-baseDir", dbDirectory, "-tcpAllowOthers").start();
+				server = new Server();
+				server.putPropertiesFromString(
+	"port="+tcpPort+";database.0=openas2;dbname.0="+dbDirectory
+				);
+				server.start();
+				if (server.getState() != 1)
+					throw new SQLException(server.getStateDescriptor());
 			} catch (SQLException e)
 			{
 				throw new OpenAS2Exception("Failed to start TCP server", e);
@@ -85,7 +98,10 @@ class EmbeddedDBHandler extends DbTracki
         {
             return;
         }
-        cp.dispose();
+	try
+	{
+		cp.close(0);
+	} catch (SQLException e) { }
         cp = null;
     }
 
@@ -96,7 +112,12 @@ class EmbeddedDBHandler extends DbTracki
         {
             throw new OpenAS2Exception("Connection pool not initialized.");
         }
-        return cp.getConnection();
+	try {
+            return cp.getConnection();
+	} catch (NullPointerException e) {
+	    System.err.println("url="+cp.getUrl()+";user="+cp.getUser());
+	    throw e;
+	}
     }
 
     public boolean shutdown(String connectString) throws SQLException, OpenAS2Exception
@@ -105,7 +126,7 @@ class EmbeddedDBHandler extends DbTracki
         int waitCount = 0;
         try
         {
-            while (cp != null && cp.getActiveConnections() > 0 && waitCount < 10)
+            while (cp != null && true && waitCount < 10)
             {
                 TimeUnit.MILLISECONDS.sleep(100);
                 waitCount++;
diff -up ./Server/src/test/resources/OpenAS2ServerTest/OpenAS2A/config/config.xml.hsqldb ./Server/src/test/resources/OpenAS2ServerTest/OpenAS2A/config/config.xml
--- ./Server/src/test/resources/OpenAS2ServerTest/OpenAS2A/config/config.xml.hsqldb	2018-09-08 12:23:17.000000000 -0400
+++ ./Server/src/test/resources/OpenAS2ServerTest/OpenAS2A/config/config.xml	2018-09-12 19:20:11.737264065 -0400
@@ -90,8 +90,8 @@
                 db_pwd="OpenAS2"
                 db_name="openas2"
                 db_directory="%home%/DB"
-                jdbc_driver="org.h2.Driver"
-                jdbc_connect_string="jdbc:h2:$component.db_directory$/$component.db_name$"
+                jdbc_driver="org.hsqldb.jdbc.JDBCDriver"
+                jdbc_connect_string="jdbc:hsqldb:file:$component.db_directory$/$component.db_name$"
                 sql_escape_character="'"
                 tcp_server_start="true"
                 tcp_server_port="9092"
diff -up ./Server/src/test/resources/OpenAS2ServerTest/OpenAS2B/config/config.xml.hsqldb ./Server/src/test/resources/OpenAS2ServerTest/OpenAS2B/config/config.xml
--- ./Server/src/test/resources/OpenAS2ServerTest/OpenAS2B/config/config.xml.hsqldb	2018-09-08 12:23:17.000000000 -0400
+++ ./Server/src/test/resources/OpenAS2ServerTest/OpenAS2B/config/config.xml	2018-09-12 19:20:11.737264065 -0400
@@ -90,8 +90,8 @@
                 db_pwd="OpenAS2"
                 db_name="openas2"
                 db_directory="%home%/DB"
-                jdbc_driver="org.h2.Driver"
-                jdbc_connect_string="jdbc:h2:$component.db_directory$/$component.db_name$"
+                jdbc_driver="org.hsqldb.jdbc.JDBCDriver"
+                jdbc_connect_string="jdbc:hsqldb:file:$component.db_directory$/$component.db_name$"
                 sql_escape_character="'"
                 tcp_server_start="true"
                 tcp_server_port="29092"