Fix JDBC and JPA benchmarks
diff --git a/log4j-perf/pom.xml b/log4j-perf/pom.xml
index b63dd09..c40542a 100644
--- a/log4j-perf/pom.xml
+++ b/log4j-perf/pom.xml
@@ -81,12 +81,6 @@
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
</dependency>
- <!-- JPA Tests -->
- <dependency>
- <groupId>org.eclipse.persistence</groupId>
- <artifactId>eclipselink</artifactId>
- <version>2.5.2</version>
- </dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
@@ -142,12 +136,6 @@
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.jpa</artifactId>
</dependency>
- <!-- Used for JPA appenders (needs an implementation of course) -->
- <dependency>
- <groupId>javax.persistence</groupId>
- <artifactId>persistence-api</artifactId>
- <version>1.0.2</version>
- </dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
@@ -214,12 +202,14 @@
<minimizeJar>false</minimizeJar>
<finalName>${uberjar.name}</finalName>
<transformers>
+ <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer"/>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>org.openjdk.jmh.Main</mainClass>
<manifestEntries>
<Multi-Release>true</Multi-Release>
</manifestEntries>
</transformer>
+ <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
<transformer implementation="com.github.edwgiz.maven_shade_plugin.log4j2_cache_transformer.PluginsCacheFileTransformer"/>
</transformers>
<filters>
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JdbcAppenderBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JdbcAppenderBenchmark.java
index 62e6218..774b32f 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JdbcAppenderBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JdbcAppenderBenchmark.java
@@ -173,7 +173,7 @@
private String toCreateTableSqlStringH2(final String tableName) {
return "CREATE TABLE " + tableName + " ( "
- + "id INTEGER IDENTITY, eventDate DATETIME, literalColumn VARCHAR(255), level NVARCHAR(10), "
+ + "id INTEGER GENERATED ALWAYS AS IDENTITY, eventDate DATETIME, literalColumn VARCHAR(255), level NVARCHAR(10), "
+ "logger NVARCHAR(255), message VARCHAR(1024), exception NCLOB" + " )";
}
diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JpaAppenderBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JpaAppenderBenchmark.java
index 462b74a..683c5a5 100644
--- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JpaAppenderBenchmark.java
+++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/JpaAppenderBenchmark.java
@@ -168,14 +168,14 @@
*/
public static Connection getConnectionH2() throws Exception {
Class.forName("org.h2.Driver");
- final Connection connection = DriverManager.getConnection("jdbc:h2:mem:Log4j", "sa", "");
+ final Connection connection = DriverManager.getConnection("jdbc:h2:mem:Log4j;MODE=PostgreSQL", "sa", "");
final Statement statement = connection.createStatement();
- statement
- .executeUpdate("CREATE TABLE jpaBasicLogEntry ( "
- + "id INTEGER IDENTITY, timemillis BIGINT, level NVARCHAR(10), loggerName NVARCHAR(255), "
- + "message NVARCHAR(1024), thrown NVARCHAR(1048576), contextMapJson NVARCHAR(1048576),"
- + "loggerFQCN NVARCHAR(1024), contextStack NVARCHAR(1048576), marker NVARCHAR(255), source NVARCHAR(2048),"
- + "threadName NVARCHAR(255)" + " )");
+ statement.executeUpdate("CREATE TABLE jpaBasicLogEntry ( "
+ + "id INTEGER GENERATED ALWAYS AS IDENTITY, timemillis BIGINT, instant NVARCHAR(64), nanoTime BIGINT, "
+ + "level NVARCHAR(10), loggerName NVARCHAR(255), message NVARCHAR(1024), "
+ + "thrown NVARCHAR(1048576), contextMapJson NVARCHAR(1048576), loggerFQCN NVARCHAR(1024), "
+ + "contextStack NVARCHAR(1048576), marker NVARCHAR(255), source NVARCHAR(2048),"
+ + "threadId BIGINT, threadName NVARCHAR(255), threadPriority INTEGER )");
statement.close();
return connection;
}
@@ -188,10 +188,11 @@
final Connection connection = DriverManager.getConnection("jdbc:hsqldb:mem:Log4j", "sa", "");
final Statement statement = connection.createStatement();
statement.executeUpdate("CREATE TABLE jpaBasicLogEntry ( "
- + "id INTEGER IDENTITY, timemillis BIGINT, level VARCHAR(10), loggerName VARCHAR(255), "
- + "message VARCHAR(1024), thrown VARCHAR(1048576), contextMapJson VARCHAR(1048576),"
- + "loggerFQCN VARCHAR(1024), contextStack VARCHAR(1048576), marker VARCHAR(255), source VARCHAR(2048),"
- + "threadName VARCHAR(255)" + " )");
+ + "id INTEGER IDENTITY, timemillis BIGINT, instant NVARCHAR(64), nanoTime BIGINT, "
+ + "level VARCHAR(10), loggerName VARCHAR(255), message VARCHAR(1024), thrown VARCHAR(1048576), "
+ + "contextMapJson VARCHAR(1048576), loggerFQCN VARCHAR(1024), "
+ + "contextStack VARCHAR(1048576), marker VARCHAR(255), source VARCHAR(2048),"
+ + "threadId BIGINT, threadName NVARCHAR(255), threadPriority INTEGER )");
statement.close();
return connection;
}
diff --git a/log4j-perf/src/main/resources/META-INF/persistence.xml b/log4j-perf/src/main/resources/META-INF/persistence.xml
index d800739..0442884 100644
--- a/log4j-perf/src/main/resources/META-INF/persistence.xml
+++ b/log4j-perf/src/main/resources/META-INF/persistence.xml
@@ -63,9 +63,14 @@
<shared-cache-mode>NONE</shared-cache-mode>
<properties>
<property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>
- <property name="javax.persistence.jdbc.url" value="jdbc:h2:mem:Log4j"/>
+ <property name="javax.persistence.jdbc.url" value="jdbc:h2:mem:Log4j;MODE=PostgreSQL"/>
<property name="javax.persistence.jdbc.user" value="sa"/>
<property name="javax.persistence.jdbc.password" value=""/>
+ <!--
+ Until the issue in https://github.com/eclipse-ee4j/eclipselink/issues/1393
+ we run in PostgreSQL compatibility mode.
+ -->
+ <property name="eclipselink.target-database" value="PostgreSQL"/>
<!--<property name="eclipselink.logging.level" value="FINE"/>
<property name="eclipselink.logging.level.sql" value="FINE"/>
<property name="eclipselink.logging.parameters" value="true"/> uncomment to troubleshoot SQL-->
diff --git a/pom.xml b/pom.xml
index a0014e0..2ae1ee5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -947,6 +947,12 @@
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.jpa</artifactId>
<version>2.7.10</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.eclipse.persistence</groupId>
+ <artifactId>jakarta.persistence</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.osgi</groupId>