This is an automated email from the ASF dual-hosted git repository.
pkarwasz pushed a commit to branch 2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
The following commit(s) were added to refs/heads/2.x by this push:
new 27f0627f92 Replace H2 file-based databases with in-memory databases
27f0627f92 is described below
commit 27f0627f9268a979ebb7806d9444d17096e4b5d8
Author: Piotr P. Karwasz <[email protected]>
AuthorDate: Tue Nov 7 13:38:08 2023 +0100
Replace H2 file-based databases with in-memory databases
This improves parallelization of the tests.
---
.../test/appender/db/jdbc/JdbcH2TestHelper.java | 29 +++++++++-------------
.../core/test/appender/db/jdbc/package-info.java | 2 +-
.../db/jdbc/log4j2-dm-column-mapping-literal.xml | 2 +-
3 files changed, 14 insertions(+), 19 deletions(-)
diff --git
a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/appender/db/jdbc/JdbcH2TestHelper.java
b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/appender/db/jdbc/JdbcH2TestHelper.java
index 6e789950d3..d36a27bb77 100644
---
a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/appender/db/jdbc/JdbcH2TestHelper.java
+++
b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/appender/db/jdbc/JdbcH2TestHelper.java
@@ -17,15 +17,11 @@
package org.apache.logging.log4j.core.test.appender.db.jdbc;
import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-import org.apache.commons.io.file.PathUtils;
-import org.apache.commons.lang3.SystemUtils;
import org.apache.logging.log4j.core.appender.db.jdbc.AbstractConnectionSource;
import org.apache.logging.log4j.core.appender.db.jdbc.ConnectionSource;
@@ -37,9 +33,12 @@ public class JdbcH2TestHelper {
public static final String CONNECTION_STRING_IN_MEMORY =
"jdbc:h2:mem:Log4j";
/**
- * A JDBC connection string for an H2 database in the Java temporary
directory.
+ * A JDBC connection string for a permanent H2 database.
+ *
+ * Since 2.22.0 this uses a permanent in-memory database.
*/
- public static final String CONNECTION_STRING_TEMP_DIR = "jdbc:h2:" +
getH2Path() + "/test_log4j;TRACE_LEVEL_SYSTEM_OUT=0";
+ @Deprecated
+ public static final String CONNECTION_STRING_TEMP_DIR =
"jdbc:h2:mem:Log4j_perm;DB_CLOSE_DELAY=-1";
public static final String USER_NAME = "sa";
public static final String PASSWORD = "";
@@ -51,6 +50,7 @@ public class JdbcH2TestHelper {
}
};
+ @Deprecated
public static ConnectionSource TEST_CONFIGURATION_SOURCE_TMPDIR = new
AbstractConnectionSource() {
@Override
public Connection getConnection() throws SQLException {
@@ -58,14 +58,9 @@ public class JdbcH2TestHelper {
}
};
- /** Directory used in configuration files and connection strings. */
- static final String H2_TEST_RELATIVE_DIR = "h2";
-
+ @Deprecated
public static void deleteDir() throws IOException {
- final Path resolve = getH2Path();
- if (Files.exists(resolve)) {
- PathUtils.deleteDirectory(resolve);
- }
+ // Since 2.22.0 this is a no-op
}
@SuppressFBWarnings(value = "DMI_EMPTY_DB_PASSWORD")
@@ -73,13 +68,13 @@ public class JdbcH2TestHelper {
return DriverManager.getConnection(CONNECTION_STRING_IN_MEMORY,
USER_NAME, PASSWORD);
}
+ /**
+ * Since 2.22.0 this uses a permanent in-memory database.
+ */
+ @Deprecated
@SuppressFBWarnings(value = "DMI_EMPTY_DB_PASSWORD")
public static Connection getConnectionTempDir() throws SQLException {
return DriverManager.getConnection(CONNECTION_STRING_TEMP_DIR,
USER_NAME, PASSWORD);
}
- private static Path getH2Path() {
- return
SystemUtils.getJavaIoTmpDir().toPath().resolve(H2_TEST_RELATIVE_DIR).normalize();
- }
-
}
diff --git
a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/appender/db/jdbc/package-info.java
b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/appender/db/jdbc/package-info.java
index 7d2d456a32..d7cbf102d7 100644
---
a/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/appender/db/jdbc/package-info.java
+++
b/log4j-core-test/src/main/java/org/apache/logging/log4j/core/test/appender/db/jdbc/package-info.java
@@ -15,7 +15,7 @@
* limitations under the license.
*/
@Export
-@Version("2.20.1")
+@Version("2.20.2")
package org.apache.logging.log4j.core.test.appender.db.jdbc;
import org.osgi.annotation.bundle.Export;
diff --git
a/log4j-core-test/src/test/resources/org/apache/logging/log4j/core/appender/db/jdbc/log4j2-dm-column-mapping-literal.xml
b/log4j-core-test/src/test/resources/org/apache/logging/log4j/core/appender/db/jdbc/log4j2-dm-column-mapping-literal.xml
index 20d235f915..07968012f1 100644
---
a/log4j-core-test/src/test/resources/org/apache/logging/log4j/core/appender/db/jdbc/log4j2-dm-column-mapping-literal.xml
+++
b/log4j-core-test/src/test/resources/org/apache/logging/log4j/core/appender/db/jdbc/log4j2-dm-column-mapping-literal.xml
@@ -22,7 +22,7 @@
<PatternLayout pattern="%C{1.} %m %level MDC%X%n"/>
</Console>
<Jdbc name="databaseAppender" tableName="dsMappingLogEntry"
ignoreExceptions="false">
- <DriverManager
connectionString="jdbc:h2:${sys:java.io.tmpdir}/h2/test_log4j;TRACE_LEVEL_SYSTEM_OUT=0"
userName="sa" password="" />
+ <DriverManager
connectionString="jdbc:h2:mem:Log4j_perm;DB_CLOSE_DELAY=-1" userName="sa"
password="" />
<ColumnMapping name="level" pattern="%level" />
<ColumnMapping name="logger" pattern="%logger" />
<ColumnMapping name="message" literal="'Hello World!'" />