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"