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 bd2d1f812bf94bb7070a8f16916db56e58076e59 Author: Walter Duque de Estrada <[email protected]> AuthorDate: Wed Mar 4 09:33:58 2026 -0600 refactor(hibernate7): fold AbstractHibernateEventListener into HibernateEventListener --- .../grails/orm/hibernate/HibernateDatastore.java | 6 +- .../listener/AbstractHibernateEventListener.java | 76 ---------------------- .../event/listener/HibernateEventListener.java | 26 +++++++- 3 files changed, 28 insertions(+), 80 deletions(-) diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateDatastore.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateDatastore.java index 605149a7a1..94f6b27445 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateDatastore.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateDatastore.java @@ -74,7 +74,7 @@ import org.grails.orm.hibernate.cfg.Settings; import org.grails.orm.hibernate.connections.HibernateConnectionSource; import org.grails.orm.hibernate.connections.HibernateConnectionSourceFactory; import org.grails.orm.hibernate.connections.HibernateConnectionSourceSettings; -import org.grails.orm.hibernate.event.listener.AbstractHibernateEventListener; +import org.grails.orm.hibernate.event.listener.HibernateEventListener; import org.grails.orm.hibernate.event.listener.HibernateEventListener; import org.grails.orm.hibernate.multitenancy.MultiTenantEventListener; import org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor; @@ -146,7 +146,7 @@ public class HibernateDatastore extends AbstractDatastore protected final SchemaHandler schemaHandler; /** The event triggering interceptor. */ - protected AbstractHibernateEventListener eventTriggeringInterceptor; + protected HibernateEventListener eventTriggeringInterceptor; /** The auto timestamp event listener. */ protected AutoTimestampEventListener autoTimestampEventListener; @@ -1073,7 +1073,7 @@ public class HibernateDatastore extends AbstractDatastore } /** For testing: returns the event triggering interceptor. */ - public AbstractHibernateEventListener getEventTriggeringInterceptor() { + public HibernateEventListener getEventTriggeringInterceptor() { return eventTriggeringInterceptor; } diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/event/listener/AbstractHibernateEventListener.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/event/listener/AbstractHibernateEventListener.java deleted file mode 100644 index 5007ac3ff4..0000000000 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/event/listener/AbstractHibernateEventListener.java +++ /dev/null @@ -1,76 +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.event.listener; - -import java.util.List; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; -import org.grails.datastore.mapping.engine.event.AbstractPersistenceEvent; -import org.grails.datastore.mapping.engine.event.AbstractPersistenceEventListener; -import org.grails.orm.hibernate.HibernateDatastore; -import org.grails.orm.hibernate.connections.HibernateConnectionSourceSettings; -import org.grails.orm.hibernate.support.SoftKey; -import org.springframework.context.ApplicationEvent; - -/** - * Invokes closure events on domain entities such as beforeInsert, beforeUpdate and beforeDelete. - * - * @author Graeme Rocher - * @author Lari Hotari - * @author Burt Beckwith - * @since 2.0 - */ -public abstract class AbstractHibernateEventListener extends AbstractPersistenceEventListener { - - /** The cached should trigger. */ - protected final transient ConcurrentMap<SoftKey<Class<?>>, Boolean> cachedShouldTrigger = - new ConcurrentHashMap<SoftKey<Class<?>>, Boolean>(); - - /** The fail on error. */ - protected final boolean failOnError; - - /** The fail on error packages. */ - protected final List<?> failOnErrorPackages; - - /** Creates a new {@link AbstractHibernateEventListener} instance. */ - protected AbstractHibernateEventListener(HibernateDatastore datastore) { - super(datastore); - HibernateConnectionSourceSettings settings = - datastore.getConnectionSources().getDefaultConnectionSource().getSettings(); - this.failOnError = settings.isFailOnError(); - this.failOnErrorPackages = settings.getFailOnErrorPackages(); - } - - /** - * {@inheritDoc} - * - * @see org.springframework.context.event.SmartApplicationListener#supportsEventType( - * java.lang.Class) - */ - public boolean supportsEventType(Class<? extends ApplicationEvent> eventType) { - return AbstractPersistenceEvent.class.isAssignableFrom(eventType); - } - - /** - * @return The hibernate datastore - */ - protected HibernateDatastore getDatastore() { - return (HibernateDatastore) this.datastore; - } -} diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/event/listener/HibernateEventListener.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/event/listener/HibernateEventListener.java index bbd3005b67..bee8eb02e5 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/event/listener/HibernateEventListener.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/event/listener/HibernateEventListener.java @@ -19,15 +19,18 @@ package org.grails.orm.hibernate.event.listener; import grails.gorm.MultiTenant; +import java.util.List; import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import org.grails.datastore.gorm.timestamp.DefaultTimestampProvider; import org.grails.datastore.gorm.timestamp.TimestampProvider; import org.grails.datastore.mapping.engine.event.AbstractPersistenceEvent; +import org.grails.datastore.mapping.engine.event.AbstractPersistenceEventListener; import org.grails.datastore.mapping.engine.event.ValidationEvent; import org.grails.datastore.mapping.model.PersistentEntity; import org.grails.orm.hibernate.HibernateDatastore; +import org.grails.orm.hibernate.connections.HibernateConnectionSourceSettings; import org.grails.orm.hibernate.support.ClosureEventListener; import org.grails.orm.hibernate.support.SoftKey; import org.hibernate.Hibernate; @@ -44,13 +47,34 @@ import org.springframework.context.ApplicationEvent; * @since 2.0 */ @SuppressWarnings({"PMD.CloseResource", "PMD.DataflowAnomalyAnalysis"}) -public class HibernateEventListener extends AbstractHibernateEventListener { +public class HibernateEventListener extends AbstractPersistenceEventListener { + + /** The cached should trigger. */ + protected final transient ConcurrentMap<SoftKey<Class<?>>, Boolean> cachedShouldTrigger = + new ConcurrentHashMap<SoftKey<Class<?>>, Boolean>(); + + /** The fail on error. */ + protected final boolean failOnError; + + /** The fail on error packages. */ + protected final List<?> failOnErrorPackages; protected transient ConcurrentMap<SoftKey<Class<?>>, ClosureEventListener> eventListeners = new ConcurrentHashMap<>(); public HibernateEventListener(HibernateDatastore datastore) { super(datastore); + HibernateConnectionSourceSettings settings = + datastore.getConnectionSources().getDefaultConnectionSource().getSettings(); + this.failOnError = settings.isFailOnError(); + this.failOnErrorPackages = settings.getFailOnErrorPackages(); + } + + /** + * @return The hibernate datastore + */ + protected HibernateDatastore getDatastore() { + return (HibernateDatastore) this.datastore; } @Override
