From 243233ea83034c372bfc37021b1b385d92b6487c Mon Sep 17 00:00:00 2001 From: Gavin King Date: Thu, 20 Feb 2025 21:08:57 +0100 Subject: [PATCH] introduce VersionLogger --- .../engine/internal/VersionLogger.java | 38 +++++++++++++++++++ .../hibernate/engine/internal/Versioning.java | 23 +++-------- 2 files changed, 43 insertions(+), 18 deletions(-) create mode 100644 hibernate-core/src/main/java/org/hibernate/engine/internal/VersionLogger.java diff --git a/hibernate-core/src/main/java/org/hibernate/engine/internal/VersionLogger.java b/hibernate-core/src/main/java/org/hibernate/engine/internal/VersionLogger.java new file mode 100644 index 000000000000..b461c456be17 --- /dev/null +++ b/hibernate-core/src/main/java/org/hibernate/engine/internal/VersionLogger.java @@ -0,0 +1,38 @@ +/* + * SPDX-License-Identifier: LGPL-2.1-or-later + * Copyright Red Hat Inc. and Hibernate Authors + */ +package org.hibernate.engine.internal; + +import org.hibernate.internal.log.SubSystemLogging; +import org.jboss.logging.BasicLogger; +import org.jboss.logging.Logger; +import org.jboss.logging.annotations.LogMessage; +import org.jboss.logging.annotations.Message; +import org.jboss.logging.annotations.MessageLogger; +import org.jboss.logging.annotations.ValidIdRange; + +import java.lang.invoke.MethodHandles; + +import static org.jboss.logging.Logger.Level.TRACE; + +@MessageLogger(projectCode = "HHH") +@ValidIdRange(min=160000,max = 160100) +@SubSystemLogging( + name = VersionLogger.LOGGER_NAME, + description = "Logging related to versioning" +) +public interface VersionLogger extends BasicLogger { + String LOGGER_NAME = SubSystemLogging.BASE + ".versioning"; + VersionLogger INSTANCE = Logger.getMessageLogger( MethodHandles.lookup(), VersionLogger.class, LOGGER_NAME ); + + @LogMessage(level = TRACE) + @Message(value = "Seeding version: %s", id = 160001) + void seed(Object seededVersion); + @LogMessage(level = TRACE) + @Message(value = "Using initial version: %s", id = 160002) + void initial(Object initialVersion); + @LogMessage(level = TRACE) + @Message(value = "Incrementing version: %s to: %s", id = 160003) + void incrementing(Object oldVersion, Object newVersion); +} diff --git a/hibernate-core/src/main/java/org/hibernate/engine/internal/Versioning.java b/hibernate-core/src/main/java/org/hibernate/engine/internal/Versioning.java index 64aea5d0d91f..f28d93bbdd98 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/internal/Versioning.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/internal/Versioning.java @@ -5,14 +5,11 @@ package org.hibernate.engine.internal; import org.hibernate.engine.spi.SharedSessionContractImplementor; -import org.hibernate.internal.CoreMessageLogger; import org.hibernate.metamodel.mapping.EntityVersionMapping; import org.hibernate.persister.entity.EntityPersister; import org.hibernate.type.descriptor.java.VersionJavaType; -import org.jboss.logging.Logger; -import java.lang.invoke.MethodHandles; import static org.hibernate.generator.EventType.INSERT; import static org.hibernate.generator.EventType.UPDATE; @@ -23,11 +20,7 @@ * @author Gavin King */ public final class Versioning { - private static final CoreMessageLogger LOG = Logger.getMessageLogger( - MethodHandles.lookup(), - CoreMessageLogger.class, - Versioning.class.getName() - ); + private static final VersionLogger LOG = VersionLogger.INSTANCE; /** * Private constructor disallowing instantiation. @@ -52,7 +45,7 @@ public static Object seed(EntityVersionMapping versionMapping, SharedSessionCont versionMapping.getScale(), session ); - LOG.tracef( "Seeding: %s", seed ); + LOG.seed( seed ); return seed; } @@ -81,7 +74,7 @@ public static boolean seedVersion( return true; } else { - LOG.tracev( "Using initial version: {0}", initialVersion ); + LOG.initial( initialVersion ); return false; } } @@ -100,7 +93,7 @@ public static boolean isNullInitialVersion(Object initialVersion) { // and for "older" behavior where version number did not get // seeded if it was already set in the object // TODO: shift it into unsaved-value strategy - initialVersion instanceof Number && ((Number) initialVersion).longValue() < 0; + initialVersion instanceof Number number && number.longValue() < 0; } /** @@ -142,13 +135,7 @@ public static Object increment(Object version, EntityVersionMapping versionMappi versionMapping.getScale(), session ); - if ( LOG.isTraceEnabled() ) { - LOG.tracef( - "Incrementing: %s to %s", - versionType.toString( version ), - versionType.toString( next ) - ); - } + LOG.incrementing( version, next ); return next; }