This is an automated email from the ASF dual-hosted git repository. borinquenkid pushed a commit to branch 8.0.x-hibernate7-dev in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit d76b7ef1bb49b9d3b06f6b8b2f1a2f9309eac440 Author: Walter Duque de Estrada <[email protected]> AuthorDate: Wed Mar 4 09:14:59 2026 -0600 refactor(hibernate7): fold AbstractClosureEventTriggeringInterceptor into ClosureEventTriggeringInterceptor --- .../HibernateConnectionSourceFactory.java | 8 ++-- .../HibernateConnectionSourceSettings.groovy | 10 ++--- .../AbstractClosureEventTriggeringInterceptor.java | 43 ---------------------- .../support/ClosureEventTriggeringInterceptor.java | 28 +++++++++++++- 4 files changed, 35 insertions(+), 54 deletions(-) diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/connections/HibernateConnectionSourceFactory.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/connections/HibernateConnectionSourceFactory.java index 4af992756a..bf69e27f29 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/connections/HibernateConnectionSourceFactory.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/connections/HibernateConnectionSourceFactory.java @@ -39,7 +39,7 @@ import org.grails.orm.hibernate.cfg.HibernateMappingContext; import org.grails.orm.hibernate.cfg.HibernateMappingContextConfiguration; import org.grails.orm.hibernate.cfg.Settings; import org.grails.orm.hibernate.cfg.domainbinding.binder.GrailsDomainBinder; -import org.grails.orm.hibernate.support.AbstractClosureEventTriggeringInterceptor; +import org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor; import org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor; import org.hibernate.Interceptor; import org.hibernate.SessionFactory; @@ -142,7 +142,7 @@ public class HibernateConnectionSourceFactory configureNamingStrategy(name, hibernateSettings); - AbstractClosureEventTriggeringInterceptor eventTriggeringInterceptor = + ClosureEventTriggeringInterceptor eventTriggeringInterceptor = resolveEventTriggeringInterceptor( hibernateSettings.getClosureEventTriggeringInterceptorClass()); hibernateSettings.setEventTriggeringInterceptor(eventTriggeringInterceptor); @@ -248,8 +248,8 @@ public class HibernateConnectionSourceFactory } } - private static AbstractClosureEventTriggeringInterceptor resolveEventTriggeringInterceptor( - Class<? extends AbstractClosureEventTriggeringInterceptor> clazz) { + private static ClosureEventTriggeringInterceptor resolveEventTriggeringInterceptor( + Class<? extends ClosureEventTriggeringInterceptor> clazz) { return clazz != null ? BeanUtils.instantiateClass(clazz) : new ClosureEventTriggeringInterceptor(); diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/connections/HibernateConnectionSourceSettings.groovy b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/connections/HibernateConnectionSourceSettings.groovy index f87692be51..f3a18c27aa 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/connections/HibernateConnectionSourceSettings.groovy +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/connections/HibernateConnectionSourceSettings.groovy @@ -8,7 +8,7 @@ import org.grails.datastore.mapping.core.connections.ConnectionSourceSettings import org.grails.orm.hibernate.HibernateEventListeners import org.grails.datastore.gorm.jdbc.connections.DataSourceSettings import org.grails.orm.hibernate.dirty.GrailsEntityDirtinessStrategy -import org.grails.orm.hibernate.support.AbstractClosureEventTriggeringInterceptor +import org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor import org.hibernate.CustomEntityDirtinessStrategy import org.hibernate.boot.model.naming.CamelCaseToUnderscoresNamingStrategy import org.hibernate.boot.model.naming.PhysicalNamingStrategy @@ -97,14 +97,14 @@ class HibernateConnectionSourceSettings extends ConnectionSourceSettings { Class<? extends CustomEntityDirtinessStrategy> entity_dirtiness_strategy = GrailsEntityDirtinessStrategy /** - * A subclass of AbstractClosureEventTriggeringInterceptor + * A subclass of ClosureEventTriggeringInterceptor */ - Class<? extends AbstractClosureEventTriggeringInterceptor> closureEventTriggeringInterceptorClass + Class<? extends ClosureEventTriggeringInterceptor> closureEventTriggeringInterceptorClass /** * The event triggering interceptor */ - AbstractClosureEventTriggeringInterceptor eventTriggeringInterceptor + ClosureEventTriggeringInterceptor eventTriggeringInterceptor /** * The default hibernate event listeners */ @@ -191,7 +191,7 @@ class HibernateConnectionSourceSettings extends ConnectionSourceSettings { Properties additionalProperties = new Properties() @CompileStatic - Map<String, Object> toHibernateEventListeners(AbstractClosureEventTriggeringInterceptor eventTriggeringInterceptor) { + Map<String, Object> toHibernateEventListeners(ClosureEventTriggeringInterceptor eventTriggeringInterceptor) { if(eventTriggeringInterceptor != null) { return [ // 'save': eventTriggeringInterceptor, diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/support/AbstractClosureEventTriggeringInterceptor.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/support/AbstractClosureEventTriggeringInterceptor.java deleted file mode 100644 index d7fb9f90ff..0000000000 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/support/AbstractClosureEventTriggeringInterceptor.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.grails.orm.hibernate.support; - -import org.hibernate.event.spi.*; -import org.hibernate.jpa.event.spi.CallbackRegistryConsumer; -import org.springframework.context.ApplicationContextAware; - -/** - * Abstract class for defining the event triggering interceptor - * - * @author Graeme Rocher - * @since 6.0 - */ -public abstract class AbstractClosureEventTriggeringInterceptor - implements ApplicationContextAware, - PreLoadEventListener, - PostLoadEventListener, - PostInsertEventListener, - PostUpdateEventListener, - PostDeleteEventListener, - PreDeleteEventListener, - PreUpdateEventListener, - PreInsertEventListener, - MergeEventListener, - PersistEventListener, - CallbackRegistryConsumer {} diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/support/ClosureEventTriggeringInterceptor.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/support/ClosureEventTriggeringInterceptor.java index 2c44fc1e3f..922dccb4ab 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/support/ClosureEventTriggeringInterceptor.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/support/ClosureEventTriggeringInterceptor.java @@ -38,17 +38,29 @@ import org.hibernate.event.internal.DefaultMergeEventListener; import org.hibernate.event.internal.DefaultPersistEventListener; import org.hibernate.event.spi.MergeContext; import org.hibernate.event.spi.MergeEvent; +import org.hibernate.event.spi.MergeEventListener; import org.hibernate.event.spi.PersistContext; import org.hibernate.event.spi.PersistEvent; +import org.hibernate.event.spi.PersistEventListener; import org.hibernate.event.spi.PostDeleteEvent; +import org.hibernate.event.spi.PostDeleteEventListener; import org.hibernate.event.spi.PostInsertEvent; +import org.hibernate.event.spi.PostInsertEventListener; import org.hibernate.event.spi.PostLoadEvent; +import org.hibernate.event.spi.PostLoadEventListener; import org.hibernate.event.spi.PostUpdateEvent; +import org.hibernate.event.spi.PostUpdateEventListener; import org.hibernate.event.spi.PreDeleteEvent; +import org.hibernate.event.spi.PreDeleteEventListener; import org.hibernate.event.spi.PreInsertEvent; +import org.hibernate.event.spi.PreInsertEventListener; import org.hibernate.event.spi.PreLoadEvent; +import org.hibernate.event.spi.PreLoadEventListener; import org.hibernate.event.spi.PreUpdateEvent; +import org.hibernate.event.spi.PreUpdateEventListener; import org.hibernate.jpa.event.spi.CallbackRegistry; +import org.hibernate.jpa.event.spi.CallbackRegistryConsumer; +import org.springframework.context.ApplicationContextAware; import org.hibernate.metamodel.mapping.AttributeMapping; import org.hibernate.metamodel.mapping.EntityMappingType; import org.hibernate.persister.entity.EntityPersister; @@ -65,8 +77,20 @@ import org.springframework.context.ConfigurableApplicationContext; * @since 1.0 */ @SuppressWarnings({"PMD.DataflowAnomalyAnalysis", "PMD.NonSerializableClass"}) -public class ClosureEventTriggeringInterceptor extends AbstractClosureEventTriggeringInterceptor - implements Serializable { +public class ClosureEventTriggeringInterceptor + implements Serializable, + ApplicationContextAware, + PreLoadEventListener, + PostLoadEventListener, + PostInsertEventListener, + PostUpdateEventListener, + PostDeleteEventListener, + PreDeleteEventListener, + PreUpdateEventListener, + PreInsertEventListener, + MergeEventListener, + PersistEventListener, + CallbackRegistryConsumer { // private final Logger log = LoggerFactory.getLogger(getClass()); private static final long serialVersionUID = 1;
