Blob Blame History Raw
diff -up ./Server/src/config/config.xml.hsqldb ./Server/src/config/config.xml
--- ./Server/src/config/config.xml.hsqldb	2019-10-22 20:37:34.375906598 -0400
+++ ./Server/src/config/config.xml	2019-10-22 20:48:55.869446553 -0400
@@ -116,9 +116,9 @@
               db_pwd="OpenAS2"
               db_name="openas2"
               table_name="msg_metadata"
-              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	2019-10-22 20:37:34.375906598 -0400
+++ ./Server/src/main/java/org/openas2/processor/msgtracking/EmbeddedDBHandler.java	2019-10-22 20:44:37.915455002 -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
@@ -51,7 +58,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);
@@ -86,7 +99,10 @@ class EmbeddedDBHandler extends DbTracki
         {
             return;
         }
-        cp.dispose();
+	try
+	{
+		cp.close(0);
+	} catch (SQLException e) { }
         cp = null;
     }
 
@@ -97,7 +113,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
@@ -106,7 +127,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	2019-10-22 20:37:34.376906614 -0400
+++ ./Server/src/test/resources/OpenAS2ServerTest/OpenAS2A/config/config.xml	2019-10-22 20:47:03.489706996 -0400
@@ -102,8 +102,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	2019-10-22 20:37:34.377906629 -0400
+++ ./Server/src/test/resources/OpenAS2ServerTest/OpenAS2B/config/config.xml	2019-10-22 20:46:15.465963787 -0400
@@ -102,8 +102,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"