diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 7fc23a3830..523cb26d38 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -43,7 +43,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Configure pagefile
- uses: al-cheb/configure-pagefile-action@v1.3
+ uses: al-cheb/configure-pagefile-action@v1.4
with:
minimum-size: 8GB
maximum-size: 16GB
diff --git a/pom.xml b/pom.xml
index 8d0ff6336f..ad24fdd29f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -68,10 +68,10 @@
UTF-8
UTF-8
1.8
- 2.0.10
+ 2.0.12
4.11.0
2.2
- 5.10.1
+ 5.10.2
8
8
@@ -81,7 +81,7 @@
3.3.1
3.12.1
3.3.0
- 3.2.3
+ 3.2.5
3.21.2
3.3.0
3.6.3
@@ -94,7 +94,7 @@
3.5.0
3.4.2
3.0.0
- 3.10.2
+ 3.11.0
3.3.0
1.2
8059
@@ -467,7 +467,7 @@
maven-plugin-plugin
- 3.10.2
+ 3.11.0
maven-install-plugin
diff --git a/quickfixj-base/pom.xml b/quickfixj-base/pom.xml
index 4c2a7eb601..8f17ef5af8 100644
--- a/quickfixj-base/pom.xml
+++ b/quickfixj-base/pom.xml
@@ -229,7 +229,7 @@
maven-jxr-plugin
- 3.3.1
+ 3.3.2
diff --git a/quickfixj-codegenerator/pom.xml b/quickfixj-codegenerator/pom.xml
index 0bb96d8ca8..5cbee80d44 100644
--- a/quickfixj-codegenerator/pom.xml
+++ b/quickfixj-codegenerator/pom.xml
@@ -78,7 +78,10 @@
maven-plugin-plugin
- 3.10.2
+ 3.11.0
+
+ quickfixj-codegenerator
+
diff --git a/quickfixj-core/pom.xml b/quickfixj-core/pom.xml
index b7aafd9eae..b07c0d3dc6 100644
--- a/quickfixj-core/pom.xml
+++ b/quickfixj-core/pom.xml
@@ -234,7 +234,7 @@
org.apache.maven.plugins
maven-jxr-plugin
- 3.3.1
+ 3.3.2
diff --git a/quickfixj-core/src/main/java/quickfix/SessionSettings.java b/quickfixj-core/src/main/java/quickfix/SessionSettings.java
index 3765c35c1f..de52063503 100644
--- a/quickfixj-core/src/main/java/quickfix/SessionSettings.java
+++ b/quickfixj-core/src/main/java/quickfix/SessionSettings.java
@@ -877,4 +877,22 @@ public static Set parseRemoteAddresses(String raw) {
return result;
}
+ public void removeSection(final SessionID sessionID) throws ConfigError {
+ Properties properties = getSessionProperties(sessionID);
+
+ if (properties == null) {
+ throw new ConfigError("Session not found");
+ }
+ sections.remove(sessionID);
+ }
+
+ public void removeSection(final String propertyKey, final String propertyValue) throws ConfigError {
+ SessionID sessionIdToRemove = sections.entrySet().stream()
+ .filter(entry -> propertyValue.equals(entry.getValue().get(propertyKey)))
+ .map(Map.Entry::getKey)
+ .findFirst()
+ .orElseThrow(() -> new ConfigError("Session not found"));
+
+ sections.remove(sessionIdToRemove);
+ }
}
diff --git a/quickfixj-core/src/test/java/quickfix/JdbcLogTest.java b/quickfixj-core/src/test/java/quickfix/JdbcLogTest.java
index 189f9e1449..7436d7ca74 100644
--- a/quickfixj-core/src/test/java/quickfix/JdbcLogTest.java
+++ b/quickfixj-core/src/test/java/quickfix/JdbcLogTest.java
@@ -133,7 +133,6 @@ private void setUpJdbcLog(boolean filterHeartbeats, DataSource dataSource) throw
if (filterHeartbeats) {
settings.setBool(JdbcSetting.SETTING_JDBC_LOG_HEARTBEATS, false);
}
- settings.setString(sessionID, JdbcSetting.SETTING_JDBC_CONNECTION_TEST_QUERY, "SELECT COUNT(1) FROM INFORMATION_SCHEMA.SYSTEM_USERS WHERE 1 = 0;");
JdbcTestSupport.setHypersonicSettings(settings);
initializeTableDefinitions(connection);
logFactory = new JdbcLogFactory(settings);
diff --git a/quickfixj-core/src/test/java/quickfix/JdbcTestSupport.java b/quickfixj-core/src/test/java/quickfix/JdbcTestSupport.java
index a2f573f472..c29940bbb4 100644
--- a/quickfixj-core/src/test/java/quickfix/JdbcTestSupport.java
+++ b/quickfixj-core/src/test/java/quickfix/JdbcTestSupport.java
@@ -43,6 +43,8 @@ public static void setHypersonicSettings(SessionSettings settings) {
settings.setString(JdbcSetting.SETTING_JDBC_CONNECTION_URL, HSQL_CONNECTION_URL);
settings.setString(JdbcSetting.SETTING_JDBC_USER, HSQL_USER);
settings.setString(JdbcSetting.SETTING_JDBC_PASSWORD, "");
+ // HSQL doesn't support JDBC4 which means that test query has to be supplied to HikariCP
+ settings.setString(JdbcSetting.SETTING_JDBC_CONNECTION_TEST_QUERY, "SELECT COUNT(1) FROM INFORMATION_SCHEMA.SYSTEM_USERS WHERE 1 = 0;");
}
public static Connection getConnection() throws ClassNotFoundException, SQLException {
diff --git a/quickfixj-core/src/test/java/quickfix/SessionSettingsTest.java b/quickfixj-core/src/test/java/quickfix/SessionSettingsTest.java
index 2de5d1ad10..19f468b85a 100644
--- a/quickfixj-core/src/test/java/quickfix/SessionSettingsTest.java
+++ b/quickfixj-core/src/test/java/quickfix/SessionSettingsTest.java
@@ -31,6 +31,7 @@
import java.util.Iterator;
import java.util.Properties;
import java.util.Set;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
@@ -610,6 +611,51 @@ public void testConcurrentAccess() throws ConfigError, InterruptedException {
assertTrue(testHasPassed.get());
}
+ @Test
+ public void testRemoveSectionBySessionID() throws ConfigError {
+ final Map