This is an automated email from the ASF dual-hosted git repository. borinquenkid pushed a commit to branch test/abstract-datastore-initializer in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 4d44c4a60bb47088512862affbd09a61f06fd900 Author: Walter Duque de Estrada <[email protected]> AuthorDate: Thu Aug 13 15:57:08 2026 -0500 Fix defaultDataSourceBeanName being hardcoded around instead of used Same bug class as the mongoBeanName fix: configureDataSources() correctly used defaultDataSourceBeanName in its null-config fallback, but hardcoded the literal ConnectionSource.DEFAULT in the config-present branch (and, on Hibernate7, in the per-datasource bean-registration loop guard too). No current caller customizes this property, so today's behavior is unaffected, but the property is now internally consistent wherever it's referenced. Co-Authored-By: Claude Sonnet 5 <[email protected]> --- .../bootstrap/HibernateDatastoreSpringInitializer.groovy | 2 +- .../HibernateDatastoreSpringInitializerSpec.groovy | 12 ++++++++++++ .../bootstrap/HibernateDatastoreSpringInitializer.groovy | 4 ++-- .../HibernateDatastoreSpringInitializerSpec.groovy | 13 +++++++++++++ 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/grails-data-hibernate5/grails-plugin/src/main/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializer.groovy b/grails-data-hibernate5/grails-plugin/src/main/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializer.groovy index 0f36a69057..9342779524 100644 --- a/grails-data-hibernate5/grails-plugin/src/main/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializer.groovy +++ b/grails-data-hibernate5/grails-plugin/src/main/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializer.groovy @@ -97,7 +97,7 @@ class HibernateDatastoreSpringInitializer extends AbstractDatastoreInitializer { } Map dataSource = (Map) config.getProperty(DEFAULT_DATA_SOURCE_NAME, Map, Collections.emptyMap()) if (dataSource != null && !dataSource.isEmpty()) { - dataSourceNames.add(ConnectionSource.DEFAULT) + dataSourceNames.add(defaultDataSourceBeanName) } } this.dataSources = dataSourceNames diff --git a/grails-data-hibernate5/grails-plugin/src/test/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializerSpec.groovy b/grails-data-hibernate5/grails-plugin/src/test/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializerSpec.groovy index bd37fd7fe6..760171dfbf 100644 --- a/grails-data-hibernate5/grails-plugin/src/test/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializerSpec.groovy +++ b/grails-data-hibernate5/grails-plugin/src/test/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializerSpec.groovy @@ -103,6 +103,18 @@ class HibernateDatastoreSpringInitializerSpec extends Specification{ } + void "Test configureDataSources uses the customized default data source bean name consistently"() { + given: "an initializer with a customized default data source bean name" + def datastoreInitializer = new HibernateDatastoreSpringInitializer([:], Person) + datastoreInitializer.defaultDataSourceBeanName = 'primary' + + when: "data sources are configured from a resolver with only the default data source present" + datastoreInitializer.configureDataSources(DatastoreUtils.createPropertyResolver(['dataSource.url': 'jdbc:h2:mem:customDefaultDsName;LOCK_TIMEOUT=10000'])) + + then: "the default entry is recorded under the custom name, not the literal ConnectionSource.DEFAULT" + datastoreInitializer.dataSources == ['primary'] as Set<String> + } + void "Test the Map/Collection<Class> constructor bootstraps GORM"() { given: "An initializer built from a Collection of persistent classes" def datastoreInitializer = new HibernateDatastoreSpringInitializer( diff --git a/grails-data-hibernate7/grails-plugin/src/main/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializer.groovy b/grails-data-hibernate7/grails-plugin/src/main/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializer.groovy index 327729e083..2f0b4221ba 100644 --- a/grails-data-hibernate7/grails-plugin/src/main/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializer.groovy +++ b/grails-data-hibernate7/grails-plugin/src/main/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializer.groovy @@ -101,7 +101,7 @@ class HibernateDatastoreSpringInitializer extends AbstractDatastoreInitializer { } Map dataSource = (Map) config.getProperty(DEFAULT_DATA_SOURCE_NAME, Map, Collections.emptyMap()) if (dataSource != null && !dataSource.isEmpty()) { - dataSourceNames.add(ConnectionSource.DEFAULT) + dataSourceNames.add(defaultDataSourceBeanName) } } this.dataSources = dataSourceNames @@ -182,7 +182,7 @@ class HibernateDatastoreSpringInitializer extends AbstractDatastoreInitializer { getBeanDefinition('transactionManager').beanClass = PlatformTransactionManager for (String dataSourceName in dataSources) { - if (dataSourceName == ConnectionSource.DEFAULT) continue + if (dataSourceName == defaultDataSourceBeanName) continue "dataSource_$dataSourceName"(hibernateDatastore: 'getDataSource', dataSourceName) "sessionFactory_$dataSourceName"(hibernateDatastore: 'getSessionFactory', dataSourceName) diff --git a/grails-data-hibernate7/grails-plugin/src/test/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializerSpec.groovy b/grails-data-hibernate7/grails-plugin/src/test/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializerSpec.groovy index 8fbeeb238a..f8a68aedee 100644 --- a/grails-data-hibernate7/grails-plugin/src/test/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializerSpec.groovy +++ b/grails-data-hibernate7/grails-plugin/src/test/groovy/grails/orm/bootstrap/HibernateDatastoreSpringInitializerSpec.groovy @@ -19,6 +19,7 @@ package grails.orm.bootstrap import grails.gorm.annotation.Entity +import org.grails.datastore.mapping.core.DatastoreUtils import org.grails.orm.hibernate.HibernateDatastore import org.hibernate.Session import org.hibernate.SessionFactory @@ -100,6 +101,18 @@ class HibernateDatastoreSpringInitializerSpec extends Specification{ } } + void "Test configureDataSources uses the customized default data source bean name consistently"() { + given: "an initializer with a customized default data source bean name" + def datastoreInitializer = new HibernateDatastoreSpringInitializer([:], Person) + datastoreInitializer.defaultDataSourceBeanName = 'primary' + + when: "data sources are configured from a resolver with only the default data source present" + datastoreInitializer.configureDataSources(DatastoreUtils.createPropertyResolver(['dataSource.url': 'jdbc:h2:mem:customDefaultDsName;LOCK_TIMEOUT=10000'])) + + then: "the default entry is recorded under the custom name, not the literal ConnectionSource.DEFAULT" + datastoreInitializer.dataSources == ['primary'] as Set<String> + } + void "Test the Map/Collection<Class> constructor bootstraps GORM"() { given: "An initializer built from a Collection of persistent classes" def datastoreInitializer = new HibernateDatastoreSpringInitializer(
