This is an automated email from the ASF dual-hosted git repository. borinquenkid pushed a commit to branch 8.0.x-hibernate7 in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit fd8f3ba117d48c64f908a9a189fe0243ec5e3738 Author: Walter Duque de Estrada <[email protected]> AuthorDate: Sat Feb 14 16:52:25 2026 -0600 Refactor second pass classes to remove GrailsDomainBinder dependency - Remove GrailsDomainBinder and CollectionBinder from ListSecondPass, MapSecondPass, and SetSecondPass constructors and fields. - Remove grailsDomainBinder from CollectionBinder and update its constructor. - Update second pass instantiations in CollectionBinder. - Update GrailsDomainBinder and unit tests to reflect these changes. --- .../org/grails/orm/hibernate/cfg/GrailsDomainBinder.java | 1 - .../cfg/domainbinding/binder/CollectionBinder.java | 14 +++++--------- .../cfg/domainbinding/secondpass/ListSecondPass.java | 8 +------- .../cfg/domainbinding/secondpass/MapSecondPass.java | 8 +------- .../cfg/domainbinding/secondpass/SetSecondPass.java | 10 +--------- .../cfg/domainbinding/CollectionBinderSpec.groovy | 1 - .../domainbinding/CollectionSecondPassBinderSpec.groovy | 1 - .../cfg/domainbinding/GrailsPropertyBinderSpec.groovy | 1 - .../cfg/domainbinding/ListSecondPassBinderSpec.groovy | 1 - .../cfg/domainbinding/MapSecondPassBinderSpec.groovy | 1 - 10 files changed, 8 insertions(+), 38 deletions(-) diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java index c17485f379..3d35c5a9cc 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java @@ -208,7 +208,6 @@ public class GrailsDomainBinder CollectionBinder collectionBinder = new CollectionBinder( metadataBuildingContext, - this, namingStrategy, jdbcEnvironment, simpleValueBinder, diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/CollectionBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/CollectionBinder.java index 7fdd21fd7a..88624ae4ed 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/CollectionBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/CollectionBinder.java @@ -2,7 +2,6 @@ package org.grails.orm.hibernate.cfg.domainbinding.binder; import jakarta.annotation.Nonnull; -import org.grails.orm.hibernate.cfg.GrailsDomainBinder; import org.grails.orm.hibernate.cfg.GrailsHibernateUtil; import org.grails.orm.hibernate.cfg.GrailsHibernatePersistentProperty; import org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernateOneToManyProperty; @@ -40,7 +39,6 @@ public class CollectionBinder { private static final Logger LOG = LoggerFactory.getLogger(CollectionBinder.class); private final MetadataBuildingContext metadataBuildingContext; - public final GrailsDomainBinder grailsDomainBinder; private final PersistentEntityNamingStrategy namingStrategy; private final ListSecondPassBinder listSecondPassBinder; private final CollectionSecondPassBinder collectionSecondPassBinder; @@ -48,7 +46,6 @@ public class CollectionBinder { public CollectionBinder( MetadataBuildingContext metadataBuildingContext, - GrailsDomainBinder grailsDomainBinder, PersistentEntityNamingStrategy namingStrategy, JdbcEnvironment jdbcEnvironment, SimpleValueBinder simpleValueBinder, @@ -57,7 +54,6 @@ public class CollectionBinder { CompositeIdentifierToManyToOneBinder compositeIdentifierToManyToOneBinder, SimpleValueColumnFetcher simpleValueColumnFetcher) { this.metadataBuildingContext = metadataBuildingContext; - this.grailsDomainBinder = grailsDomainBinder; this.namingStrategy = namingStrategy; this.collectionSecondPassBinder = new CollectionSecondPassBinder( metadataBuildingContext, @@ -73,8 +69,8 @@ public class CollectionBinder { this.mapSecondPassBinder = new MapSecondPassBinder(metadataBuildingContext, namingStrategy, collectionSecondPassBinder); } - public CollectionBinder(MetadataBuildingContext metadataBuildingContext, GrailsDomainBinder grailsDomainBinder, PersistentEntityNamingStrategy namingStrategy, JdbcEnvironment jdbcEnvironment) { - this(metadataBuildingContext, grailsDomainBinder, namingStrategy, jdbcEnvironment, + public CollectionBinder(MetadataBuildingContext metadataBuildingContext, PersistentEntityNamingStrategy namingStrategy, JdbcEnvironment jdbcEnvironment) { + this(metadataBuildingContext, namingStrategy, jdbcEnvironment, new SimpleValueBinder(namingStrategy, jdbcEnvironment), new EnumTypeBinder(), new ManyToOneBinder(namingStrategy, jdbcEnvironment), @@ -137,13 +133,13 @@ public class CollectionBinder { // set up second pass if (collection instanceof org.hibernate.mapping.List) { - mappings.addSecondPass(new ListSecondPass(grailsDomainBinder, this, listSecondPassBinder, property, mappings, collection, sessionFactoryBeanName)); + mappings.addSecondPass(new ListSecondPass(listSecondPassBinder, property, mappings, collection, sessionFactoryBeanName)); } else if (collection instanceof org.hibernate.mapping.Map) { - mappings.addSecondPass(new MapSecondPass(grailsDomainBinder, this, mapSecondPassBinder, property, mappings, collection, sessionFactoryBeanName)); + mappings.addSecondPass(new MapSecondPass(mapSecondPassBinder, property, mappings, collection, sessionFactoryBeanName)); } else { // Collection -> Bag - mappings.addSecondPass(new SetSecondPass(grailsDomainBinder, this,collectionSecondPassBinder, property, mappings, collection, sessionFactoryBeanName)); + mappings.addSecondPass(new SetSecondPass(collectionSecondPassBinder, property, mappings, collection, sessionFactoryBeanName)); } } diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ListSecondPass.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ListSecondPass.java index 761cf4b1b7..ba6ad08a45 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ListSecondPass.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ListSecondPass.java @@ -9,26 +9,20 @@ import org.hibernate.MappingException; import org.hibernate.boot.spi.InFlightMetadataCollector; import org.hibernate.mapping.Collection; -import org.grails.orm.hibernate.cfg.GrailsDomainBinder; import org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernateToManyProperty; -import org.grails.orm.hibernate.cfg.domainbinding.binder.CollectionBinder; public class ListSecondPass implements org.hibernate.boot.spi.SecondPass, GrailsSecondPass { @Serial private static final long serialVersionUID = -3024674993774205193L; - protected final GrailsDomainBinder grailsDomainBinder; - protected final CollectionBinder collectionBinder; private final ListSecondPassBinder listSecondPassBinder; protected final HibernateToManyProperty property; protected final @Nonnull InFlightMetadataCollector mappings; protected final Collection collection; protected final String sessionFactoryBeanName; - public ListSecondPass(GrailsDomainBinder grailsDomainBinder, CollectionBinder collectionBinder, ListSecondPassBinder listSecondPassBinder, HibernateToManyProperty property, @Nonnull InFlightMetadataCollector mappings, + public ListSecondPass(ListSecondPassBinder listSecondPassBinder, HibernateToManyProperty property, @Nonnull InFlightMetadataCollector mappings, Collection coll, String sessionFactoryBeanName) { - this.grailsDomainBinder = grailsDomainBinder; - this.collectionBinder = collectionBinder; this.listSecondPassBinder = listSecondPassBinder; this.property = property; this.mappings = mappings; diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/MapSecondPass.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/MapSecondPass.java index c0ead55dd0..d6e1a987de 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/MapSecondPass.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/MapSecondPass.java @@ -9,26 +9,20 @@ import org.hibernate.MappingException; import org.hibernate.boot.spi.InFlightMetadataCollector; import org.hibernate.mapping.Collection; -import org.grails.orm.hibernate.cfg.GrailsDomainBinder; import org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernateToManyProperty; -import org.grails.orm.hibernate.cfg.domainbinding.binder.CollectionBinder; public class MapSecondPass implements org.hibernate.boot.spi.SecondPass, GrailsSecondPass { @Serial private static final long serialVersionUID = -3244991685626409031L; - protected final GrailsDomainBinder grailsDomainBinder; - protected final CollectionBinder collectionBinder; private final MapSecondPassBinder mapSecondPassBinder; protected final HibernateToManyProperty property; protected final @Nonnull InFlightMetadataCollector mappings; protected final Collection collection; protected final String sessionFactoryBeanName; - public MapSecondPass(GrailsDomainBinder grailsDomainBinder, CollectionBinder collectionBinder, MapSecondPassBinder mapSecondPassBinder, HibernateToManyProperty property, @Nonnull InFlightMetadataCollector mappings, + public MapSecondPass(MapSecondPassBinder mapSecondPassBinder, HibernateToManyProperty property, @Nonnull InFlightMetadataCollector mappings, Collection coll, String sessionFactoryBeanName) { - this.grailsDomainBinder = grailsDomainBinder; - this.collectionBinder = collectionBinder; this.mapSecondPassBinder = mapSecondPassBinder; this.property = property; this.mappings = mappings; diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/SetSecondPass.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/SetSecondPass.java index a1e1b38d74..09cc80dfbc 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/SetSecondPass.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/SetSecondPass.java @@ -8,9 +8,7 @@ import org.hibernate.MappingException; import org.hibernate.boot.spi.InFlightMetadataCollector; import org.hibernate.mapping.Collection; -import org.grails.orm.hibernate.cfg.GrailsDomainBinder; import org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernateToManyProperty; -import org.grails.orm.hibernate.cfg.domainbinding.binder.CollectionBinder; /** * Second pass class for grails relationships. This is required as all @@ -23,23 +21,17 @@ public class SetSecondPass implements org.hibernate.boot.spi.SecondPass, GrailsS private static final long serialVersionUID = -5540526942092611348L; - protected final GrailsDomainBinder grailsDomainBinder; - protected final CollectionBinder collectionBinder; private final CollectionSecondPassBinder collectionSecondPassBinder; protected final HibernateToManyProperty property; protected final @Nonnull InFlightMetadataCollector mappings; protected final Collection collection; protected final String sessionFactoryBeanName; - public SetSecondPass(GrailsDomainBinder grailsDomainBinder, - CollectionBinder collectionBinder, - CollectionSecondPassBinder collectionSecondPassBinder, + public SetSecondPass(CollectionSecondPassBinder collectionSecondPassBinder, HibernateToManyProperty property, @Nonnull InFlightMetadataCollector mappings, Collection coll, String sessionFactoryBeanName) { - this.grailsDomainBinder = grailsDomainBinder; - this.collectionBinder = collectionBinder; this.collectionSecondPassBinder = collectionSecondPassBinder; this.property = property; this.mappings = mappings; diff --git a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionBinderSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionBinderSpec.groovy index 49e798674e..84aaf1f6be 100644 --- a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionBinderSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionBinderSpec.groovy @@ -62,7 +62,6 @@ class CollectionBinderSpec extends HibernateGormDatastoreSpec { CollectionBinder collectionBinder = new CollectionBinder( metadataBuildingContext, - binder, namingStrategy, jdbcEnvironment, simpleValueBinder, diff --git a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionSecondPassBinderSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionSecondPassBinderSpec.groovy index b9ad7a642f..2bf547279e 100644 --- a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionSecondPassBinderSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionSecondPassBinderSpec.groovy @@ -64,7 +64,6 @@ class CollectionSecondPassBinderSpec extends HibernateGormDatastoreSpec { CollectionBinder collectionBinder = new CollectionBinder( metadataBuildingContext, - binder, namingStrategy, jdbcEnvironment, simpleValueBinder, diff --git a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsPropertyBinderSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsPropertyBinderSpec.groovy index 63b2def531..e90f4c1a0b 100644 --- a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsPropertyBinderSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsPropertyBinderSpec.groovy @@ -68,7 +68,6 @@ class GrailsPropertyBinderSpec extends HibernateGormDatastoreSpec { CollectionBinder collectionBinder = new CollectionBinder( metadataBuildingContext, - binder, namingStrategy, jdbcEnvironment, simpleValueBinder, diff --git a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ListSecondPassBinderSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ListSecondPassBinderSpec.groovy index a850f89cc0..1270d45e57 100644 --- a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ListSecondPassBinderSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ListSecondPassBinderSpec.groovy @@ -66,7 +66,6 @@ class ListSecondPassBinderSpec extends HibernateGormDatastoreSpec { CollectionBinder collectionBinder = new CollectionBinder( metadataBuildingContext, - binder, namingStrategy, jdbcEnvironment, simpleValueBinder, diff --git a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/MapSecondPassBinderSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/MapSecondPassBinderSpec.groovy index 5803d6508c..e07ffd467f 100644 --- a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/MapSecondPassBinderSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/MapSecondPassBinderSpec.groovy @@ -66,7 +66,6 @@ class MapSecondPassBinderSpec extends HibernateGormDatastoreSpec { CollectionBinder collectionBinder = new CollectionBinder( metadataBuildingContext, - binder, namingStrategy, jdbcEnvironment, simpleValueBinder,
