You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by pk...@apache.org on 2022/10/04 22:14:54 UTC

[logging-log4j2] branch master updated: Fix JDBC and JPA benchmarks

This is an automated email from the ASF dual-hosted git repository.

pkarwasz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git


The following commit(s) were added to refs/heads/master by this push:
     new 67550d4169 Fix JDBC and JPA benchmarks
67550d4169 is described below

commit 67550d4169d8cbd31dc1c9be5e88f995a0fff0a8
Author: Piotr P. Karwasz <pi...@karwasz.org>
AuthorDate: Tue Oct 4 22:51:19 2022 +0200

    Fix JDBC and JPA benchmarks
    
    It also bumps EclipseLink to version 2.7.10 as in the `release-2.x`
    branch.
---
 log4j-perf/pom.xml                                 | 28 ++++++++++++----------
 .../log4j/perf/jmh/JdbcAppenderBenchmark.java      |  2 +-
 .../log4j/perf/jmh/JpaAppenderBenchmark.java       | 23 +++++++++---------
 .../src/main/resources/META-INF/persistence.xml    |  7 +++++-
 pom.xml                                            |  8 ++++++-
 5 files changed, 41 insertions(+), 27 deletions(-)

diff --git a/log4j-perf/pom.xml b/log4j-perf/pom.xml
index 02747622cd..cf928f4f0f 100644
--- a/log4j-perf/pom.xml
+++ b/log4j-perf/pom.xml
@@ -95,12 +95,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>
@@ -156,12 +150,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>
@@ -183,6 +171,19 @@
           </instructions>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <annotationProcessorPaths combine.children="append">
+            <path>
+              <groupId>org.openjdk.jmh</groupId>
+              <artifactId>jmh-generator-annprocess</artifactId>
+              <version>${jmh.version}</version>
+            </path>
+          </annotationProcessorPaths>
+        </configuration>
+      </plugin>
       <!-- Include the standard NOTICE and LICENSE -->
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
@@ -212,13 +213,14 @@
               <minimizeJar>false</minimizeJar>
               <finalName>${uberjar.name}</finalName>
               <transformers>
-                <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
+                <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"/>
               </transformers>
               <filters>
                 <filter>
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 14ae458db1..76f6c91c84 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 @@ public class JdbcAppenderBenchmark {
 
     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 2d9f9aad53..5ebd28e54f 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 class JpaAppenderBenchmark {
      */
     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 @@ public class JpaAppenderBenchmark {
         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 d80073902c..0442884e59 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 cb80f2f4d0..586d28b237 100644
--- a/pom.xml
+++ b/pom.xml
@@ -860,7 +860,13 @@
       <dependency>
         <groupId>org.eclipse.persistence</groupId>
         <artifactId>org.eclipse.persistence.jpa</artifactId>
-        <version>2.7.4</version>
+        <version>2.7.10</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.eclipse.persistence</groupId>
+            <artifactId>jakarta.persistence</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
       <dependency>
         <groupId>org.osgi</groupId>