This is an automated email from the ASF dual-hosted git repository. borinquenkid pushed a commit to branch 8.0.x-hibernate6 in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 27952547d94bf451bcb69c831446ff06e8372ec4 Author: Walter B Duque de Estrada <[email protected]> AuthorDate: Sun Dec 14 20:53:23 2025 -0600 Partial --- gradle/hibernate7-test-config.gradle | 71 ++++++++++++++++++++++ .../orm/hibernate/HibernateGormInstanceApi.groovy | 57 +++++++++++++++-- .../orm/hibernate/cfg/GrailsDomainBinder.java | 28 +++++++-- .../cfg/HibernateMappingContextConfiguration.java | 11 +++- .../cfg/domainbinding/CascadeBehaviorFetcher.java | 8 +-- .../HibernateConnectionSourceSettings.groovy | 6 +- ...bernateOptimisticLockingStyleMappingSpec.groovy | 4 +- .../grails/gorm/specs/AutoTimestampSpec.groovy | 4 +- .../CascadeToBidirectionalAsssociationSpec.groovy | 4 +- .../gorm/specs/CountByWithEmbeddedSpec.groovy | 4 +- .../grails/gorm/specs/DeleteAllWhereSpec.groovy | 4 +- .../grails/gorm/specs/DomainGetterSpec.groovy | 4 +- .../grails/gorm/specs/EnumMappingSpec.groovy | 4 +- .../gorm/specs/HibernateGormDatastoreSpec.groovy | 9 ++- .../specs/LastUpdateWithDynamicUpdateSpec.groovy | 4 +- .../groovy/grails/gorm/specs/ManyToOneSpec.groovy | 4 +- .../specs/MultiColumnUniqueConstraintSpec.groovy | 4 +- .../test/groovy/grails/gorm/specs/RLikeSpec.groovy | 4 +- .../grails/gorm/specs/ReadOperationSpec.groovy | 4 +- .../grails/gorm/specs/SizeConstraintSpec.groovy | 4 +- .../groovy/grails/gorm/specs/ToOneProxySpec.groovy | 4 +- .../specs/WhereQueryWithAssociationSortSpec.groovy | 6 +- ...WithNewSessionAndExistingTransactionSpec.groovy | 4 +- .../gorm/specs/autoimport/AutoImportSpec.groovy | 4 +- .../BidirectionalOneToOneWithUniqueSpec.groovy | 4 +- .../inheritance/SubclassToOneProxySpec.groovy | 4 +- .../TablePerConcreteClassAndDateCreatedSpec.groovy | 4 +- .../TablePerConcreteClassImportedSpec.groovy | 4 +- .../specs/mappedby/MultipleOneToOneSpec.groovy | 4 +- .../specs/proxy/Hibernate6GroovyProxySpec.groovy | 4 +- .../gorm/specs/traits/InterfacePropertySpec.groovy | 4 +- .../specs/validation/DeepValidationSpec.groovy | 4 +- .../core/GrailsDataHibernate7TckManager.groovy} | 8 +-- ...ails.data.testing.tck.base.GrailsDataTckManager | 2 +- .../data/testing/tck/base/GrailsDataTckSpec.groovy | 5 +- 35 files changed, 225 insertions(+), 82 deletions(-) diff --git a/gradle/hibernate7-test-config.gradle b/gradle/hibernate7-test-config.gradle index e69de29bb2..429111909b 100644 --- a/gradle/hibernate7-test-config.gradle +++ b/gradle/hibernate7-test-config.gradle @@ -0,0 +1,71 @@ +/* + * 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. + */ + +dependencies { + // https://docs.gradle.org/8.3/userguide/upgrading_version_8.html#test_framework_implementation_dependencies + add('testRuntimeOnly', 'org.junit.platform:junit-platform-launcher') +} + +tasks.withType(Test).configureEach { + onlyIf { + ![ + 'onlyFunctionalTests', + 'onlyHibernate5Tests', + 'skipHibernate6Tests', + 'onlyMongodbTests', + 'onlyCoreTests', + 'skipTests' + ].find { + project.hasProperty(it) + } + } + + useJUnitPlatform() + systemProperty('hibernate7.gorm.suite', System.getProperty('hibernate7.gorm.suite') ?: true) + reports.html.required = !System.getenv('CI') + reports.junitXml.required = !System.getenv('CI') + testLogging { + events('passed', 'skipped', 'failed') + showExceptions = true + exceptionFormat = 'full' + showCauses = true + showStackTraces = true + showStandardStreams = true + + // set options for log level DEBUG and INFO + debug { + events('started', 'passed', 'skipped', 'failed', 'standardOut', 'standardError') + exceptionFormat = 'full' + } + info.events = debug.events + info.exceptionFormat = debug.exceptionFormat + } + afterTest { desc, result -> + logger.quiet(' -- Executed test {} [{}] with result: {}', desc.name, desc.className, result.resultType) + } + afterSuite { desc, result -> + if (!desc.parent) { // will match the outermost suite + def output = "Results: ${result.resultType} (${result.testCount} tests, ${result.successfulTestCount} successes, ${result.failedTestCount} failures, ${result.skippedTestCount} skipped)" + def startItem = '| ', endItem = ' |' + def repeatLength = startItem.length() + output.length() + endItem.length() + def dashes = '-' * repeatLength + logger.quiet('\n{}\n{}{}{}\n{}', dashes, startItem, output, endItem, dashes) + } + } +} diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateGormInstanceApi.groovy b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateGormInstanceApi.groovy index 44414d9c5b..c658d05033 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateGormInstanceApi.groovy +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateGormInstanceApi.groovy @@ -17,6 +17,12 @@ package org.grails.orm.hibernate import org.codehaus.groovy.runtime.InvokerHelper +import org.hibernate.engine.spi.SessionFactoryImplementor +import org.hibernate.engine.spi.SharedSessionContractImplementor +import org.hibernate.generator.Generator +import org.hibernate.id.CompositeNestedGeneratedValueGenerator +import org.hibernate.id.IdentifierGenerationException + import grails.gorm.validation.CascadingValidator import groovy.transform.CompileDynamic import groovy.transform.CompileStatic @@ -147,12 +153,49 @@ class HibernateGormInstanceApi<D> extends GormInstanceApi<D> { try { + Serializable idVal = (Serializable) InvokerHelper.getProperty(target, "id") + boolean hasInsert = shouldInsert(arguments) boolean hasMerge = shouldMerge(arguments) - if (hasInsert || (!hasMerge && !isItInDb(target))) { + + def isNotInDb = !isItInDb(target, idVal) + def shouldInsert = !hasMerge && isNotInDb + println ("hasInsert " + hasInsert) + println ("hasMerge " + hasMerge) + println("isNotInDb " + isNotInDb) + println("shouldInsert " + shouldInsert) + if (hasInsert || shouldInsert) { + if (!idVal){ + EntityPersister persister = ((SessionFactoryImplementor) sessionFactory) + .getMappingMetamodel() + .getEntityDescriptor(domainClass.getName()) + final Generator generator = persister.getGenerator(); + + def doesNotGenerateOnInsert = !generator.generatesOnInsert() + def isCompositeGenerator = generator instanceof CompositeNestedGeneratedValueGenerator + println("doesNotGenerateOnInsert " + doesNotGenerateOnInsert) + println("isCompositeGenerator " + isCompositeGenerator) + if ( doesNotGenerateOnInsert || isCompositeGenerator) { + idVal = (Serializable) persister.getIdentifier(target, (SharedSessionContractImplementor) sessionFactory.currentSession) + if ( idVal == null ) { + throw new IdentifierGenerationException( "Identifier of entity '" + persister.getEntityName() + + "' must be manually assigned before calling 'persist()'" ); + + } + println("idVal " + idVal) + InvokerHelper.setProperty(target, "id", idVal) + } + + } + return performPersist(target, shouldFlush) } else { + if ( idVal == null ) { + throw new IdentifierGenerationException( "Identifier of entity '" + persistentEntity.getName() + + "' must be manually assigned before calling 'merge()'" ); + + } return performMerge(target, shouldFlush) } } finally { @@ -160,10 +203,10 @@ class HibernateGormInstanceApi<D> extends GormInstanceApi<D> { } } - private boolean isItInDb(D target) { - Serializable idVal = (Serializable) InvokerHelper.getProperty(target, "id") + private boolean isItInDb(D target,Serializable idVal) { String hql = "select count(e.id) from ${persistentEntity.name} e where e.id = :id" - return HibernateHqlQuery.createHqlQuery( + + def result = HibernateHqlQuery.createHqlQuery( (HibernateDatastore) datastore, sessionFactory, persistentEntity, @@ -171,9 +214,10 @@ class HibernateGormInstanceApi<D> extends GormInstanceApi<D> { false, false, null, - ["id":idVal] + ["id": idVal] , null - , (GrailsHibernateTemplate) hibernateTemplate).list().size() == 1 + , (GrailsHibernateTemplate) hibernateTemplate).singleResult() + return result == 1 } @CompileDynamic @@ -259,6 +303,7 @@ class HibernateGormInstanceApi<D> extends GormInstanceApi<D> { } protected D performPersist(final D target, final boolean shouldFlush) { + println("target " + target) hibernateTemplate.execute { Session session -> try { markInsertActive() 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 1e2707bc0a..8c2b70fb0f 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 @@ -39,10 +39,15 @@ import org.grails.orm.hibernate.cfg.domainbinding.TypeNameProvider; import org.grails.orm.hibernate.cfg.domainbinding.*; import org.hibernate.FetchMode; import org.hibernate.MappingException; +import org.hibernate.boot.ResourceStreamLocator; import org.hibernate.boot.internal.MetadataBuildingContextRootImpl; import org.hibernate.boot.internal.RootMappingDefaults; +import org.hibernate.boot.model.TypeContributions; +import org.hibernate.boot.model.TypeContributor; import org.hibernate.boot.model.internal.BinderHelper; import org.hibernate.boot.model.naming.PhysicalNamingStrategy; +import org.hibernate.boot.spi.AdditionalMappingContributions; +import org.hibernate.boot.spi.AdditionalMappingContributor; import org.hibernate.boot.spi.InFlightMetadataCollector; import org.hibernate.boot.spi.MetadataBuildingContext; import org.hibernate.engine.OptimisticLockStyle; @@ -78,6 +83,7 @@ import org.hibernate.mapping.Table; import org.hibernate.mapping.UnionSubclass; import org.hibernate.mapping.Value; import org.hibernate.metamodel.mapping.JdbcMapping; +import org.hibernate.service.ServiceRegistry; import org.hibernate.type.ForeignKeyDirection; import org.hibernate.type.StandardBasicTypes; import org.hibernate.type.Type; @@ -113,7 +119,7 @@ import static org.hibernate.boot.model.naming.Identifier.toIdentifier; */ @SuppressWarnings("WeakerAccess") public class GrailsDomainBinder -// implements MetadataContributor + implements AdditionalMappingContributor, TypeContributor { private static final String CASCADE_ALL_DELETE_ORPHAN = "all-delete-orphan"; @@ -207,8 +213,9 @@ public class GrailsDomainBinder this.namingStrategy = namingStrategy; } - //TODO FIXME - public void contribute(InFlightMetadataCollector metadataCollector, IndexView jandexIndex) { + + @Override + public void contribute(AdditionalMappingContributions contributions, InFlightMetadataCollector metadataCollector, ResourceStreamLocator resourceStreamLocator, MetadataBuildingContext buildingContext) { RootMappingDefaults rootMappingDefaults = null; this.metadataBuildingContext = new MetadataBuildingContextRootImpl( "default", @@ -219,10 +226,10 @@ public class GrailsDomainBinder ); filterHibernateEntities(hibernateMappingContext.getHibernatePersistentEntities()) - .forEach(hibernatePersistentEntity -> bindRoot(hibernatePersistentEntity, metadataCollector, sessionFactoryName)); - + .forEach(hibernatePersistentEntity -> bindRoot(hibernatePersistentEntity, metadataCollector, sessionFactoryName)); } + private List<HibernatePersistentEntity> filterHibernateEntities(java.util.Collection<HibernatePersistentEntity> persistentEntities) { return persistentEntities.stream() .filter(this::isNotAnnotatedEntity) @@ -2136,6 +2143,17 @@ public class GrailsDomainBinder return metadataBuildingContext; } + @Override + public String getContributorName() { + return AdditionalMappingContributor.super.getContributorName(); + } + + + @Override + public void contribute(TypeContributions typeContributions, ServiceRegistry serviceRegistry) { + + } + /** * Second pass class for grails relationships. This is required as all * persistent classes need to be loaded in the first pass and then relationships diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateMappingContextConfiguration.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateMappingContextConfiguration.java index ea4b25576c..6d1f78309f 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateMappingContextConfiguration.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateMappingContextConfiguration.java @@ -20,7 +20,7 @@ import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl; import org.hibernate.boot.registry.classloading.spi.ClassLoaderService; import org.hibernate.boot.registry.selector.spi.StrategySelector; -//import org.hibernate.boot.spi.MetadataContributor; +import org.hibernate.boot.spi.AdditionalMappingContributor; import org.hibernate.cfg.AvailableSettings; import org.hibernate.cfg.Configuration; import org.hibernate.cfg.Environment; @@ -249,8 +249,13 @@ public class HibernateMappingContextConfiguration extends Configuration implemen ClassLoaderService classLoaderService = new ClassLoaderServiceImpl(appClassLoader) { @Override public <S> Collection<S> loadJavaServices(Class<S> serviceContract) { - - return super.loadJavaServices(serviceContract); + // Ensure Grails contributes mappings for GORM entities even if they lack JPA @Entity + if (AdditionalMappingContributor.class.isAssignableFrom(serviceContract)) { + @SuppressWarnings("unchecked") + Collection<S> contributors = (Collection<S>) Collections.singletonList(domainBinder); + return contributors; + } + return super.loadJavaServices(serviceContract); } }; EventListenerIntegrator eventListenerIntegrator = new EventListenerIntegrator(hibernateEventListeners, eventListeners); diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CascadeBehaviorFetcher.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CascadeBehaviorFetcher.java index bb48b01cc4..f61d9d0404 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CascadeBehaviorFetcher.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CascadeBehaviorFetcher.java @@ -54,12 +54,12 @@ public class CascadeBehaviorFetcher { return ALL; } else if (association.isOneToOne()) { - return association.isOwningSide() ? ALL : SAVE_UPDATE; + return ALL; } else if (association.isOneToMany()) { - return association.isOwningSide() ? ALL : SAVE_UPDATE; + return ALL; } else if (association.isManyToMany()) { - return association.isCorrectlyOwned() || association.isCircular() ? SAVE_UPDATE :NONE; + return association.isCorrectlyOwned() || association.isCircular() ? ALL :NONE; } else if (association.isManyToOne()) { if ( association.isCorrectlyOwned() && !association.isCircular()) { @@ -76,7 +76,7 @@ public class CascadeBehaviorFetcher { return ALL; } else if (Map.class.isAssignableFrom(association.getType())) { - return association.isCorrectlyOwned() ? ALL :SAVE_UPDATE; + return ALL; } else { throw new MappingException("Unrecognized association type " + association.getType() ); } 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 f7d2b2b4c2..f87692be51 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 @@ -194,8 +194,10 @@ class HibernateConnectionSourceSettings extends ConnectionSourceSettings { Map<String, Object> toHibernateEventListeners(AbstractClosureEventTriggeringInterceptor eventTriggeringInterceptor) { if(eventTriggeringInterceptor != null) { return [ - 'save': eventTriggeringInterceptor, - 'save-update': eventTriggeringInterceptor, +// 'save': eventTriggeringInterceptor, +// 'save-update': eventTriggeringInterceptor, +// "merge": eventTriggeringInterceptor, +// "persist": eventTriggeringInterceptor, 'pre-load': eventTriggeringInterceptor, 'post-load': eventTriggeringInterceptor, 'pre-insert': eventTriggeringInterceptor, diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/hibernate/mapping/HibernateOptimisticLockingStyleMappingSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/hibernate/mapping/HibernateOptimisticLockingStyleMappingSpec.groovy index 1f6d10338f..e66a823d43 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/hibernate/mapping/HibernateOptimisticLockingStyleMappingSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/hibernate/mapping/HibernateOptimisticLockingStyleMappingSpec.groovy @@ -19,13 +19,13 @@ package grails.gorm.hibernate.mapping import grails.persistence.Entity -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec import org.hibernate.boot.Metadata import org.hibernate.engine.OptimisticLockStyle import org.hibernate.mapping.PersistentClass -class HibernateOptimisticLockingStyleMappingSpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class HibernateOptimisticLockingStyleMappingSpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([HibernateOptLockingStyleVersioned, HibernateOptLockingStyleNotVersioned]) diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/AutoTimestampSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/AutoTimestampSpec.groovy index 361adc8aa5..73a65ac2ed 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/AutoTimestampSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/AutoTimestampSpec.groovy @@ -20,10 +20,10 @@ package grails.gorm.specs import grails.gorm.annotation.Entity -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec -class AutoTimestampSpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class AutoTimestampSpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([DateCreatedTestA, DateCreatedTestB]) } diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/CascadeToBidirectionalAsssociationSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/CascadeToBidirectionalAsssociationSpec.groovy index 09f9c242a4..16e67d8c68 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/CascadeToBidirectionalAsssociationSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/CascadeToBidirectionalAsssociationSpec.groovy @@ -22,7 +22,7 @@ import grails.gorm.specs.entities.Club import grails.gorm.specs.entities.Contract import grails.gorm.specs.entities.Player import grails.gorm.specs.entities.Team -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec import spock.lang.Issue @@ -30,7 +30,7 @@ import spock.lang.Issue * Created by graemerocher on 01/02/16. */ @Issue('https://github.com/grails/grails-core/issues/9290') -class CascadeToBidirectionalAsssociationSpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class CascadeToBidirectionalAsssociationSpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([Club, Team, Player, Contract]) } diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/CountByWithEmbeddedSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/CountByWithEmbeddedSpec.groovy index fd153814ed..77a9f5bf08 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/CountByWithEmbeddedSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/CountByWithEmbeddedSpec.groovy @@ -20,14 +20,14 @@ package grails.gorm.specs import grails.gorm.annotation.Entity -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec import spock.lang.Issue /** * Created by graemerocher on 20/04/16. */ -class CountByWithEmbeddedSpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class CountByWithEmbeddedSpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([CountByPerson]) } diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/DeleteAllWhereSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/DeleteAllWhereSpec.groovy index 57e9547d19..31419ecfd7 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/DeleteAllWhereSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/DeleteAllWhereSpec.groovy @@ -19,7 +19,7 @@ package grails.gorm.specs import grails.gorm.specs.entities.Club -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec import spock.lang.Issue @@ -27,7 +27,7 @@ import spock.lang.Issue * @author Graeme Rocher * @since 1.0 */ -class DeleteAllWhereSpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class DeleteAllWhereSpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([Club]) } diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/DomainGetterSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/DomainGetterSpec.groovy index dd925a7b94..ef08e00e46 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/DomainGetterSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/DomainGetterSpec.groovy @@ -19,13 +19,13 @@ package grails.gorm.specs import grails.gorm.annotation.Entity -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec /** * Created by graemerocher on 16/09/2016. */ -class DomainGetterSpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class DomainGetterSpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([DomainOne, DomainWithGetter]) } diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/EnumMappingSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/EnumMappingSpec.groovy index 5c30e40db7..7bf020b6cd 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/EnumMappingSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/EnumMappingSpec.groovy @@ -19,7 +19,7 @@ package grails.gorm.specs import grails.gorm.annotation.Entity -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec import org.hibernate.engine.spi.SessionImplementor @@ -28,7 +28,7 @@ import java.sql.ResultSet /** * Created by graemerocher on 24/02/16. */ -class EnumMappingSpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class EnumMappingSpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([Recipe]) } diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/HibernateGormDatastoreSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/HibernateGormDatastoreSpec.groovy index 34c723c753..ab0dd36c3d 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/HibernateGormDatastoreSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/HibernateGormDatastoreSpec.groovy @@ -1,8 +1,7 @@ package grails.gorm.specs -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec -import org.apache.grails.data.testing.tck.domains.Person import org.grails.datastore.mapping.model.PersistentEntity import org.grails.orm.hibernate.AbstractHibernateSession import org.grails.orm.hibernate.HibernateDatastore @@ -10,7 +9,7 @@ import org.grails.orm.hibernate.cfg.GrailsDomainBinder import org.grails.orm.hibernate.cfg.HibernateMappingContext import org.grails.orm.hibernate.cfg.HibernatePersistentEntity import org.grails.orm.hibernate.query.HibernateQuery -import org.hibernate.Session + import org.hibernate.boot.MetadataSources import org.hibernate.boot.internal.BootstrapContextImpl import org.hibernate.boot.internal.InFlightMetadataCollectorImpl @@ -30,7 +29,7 @@ import org.hibernate.service.spi.ServiceRegistryImplementor * Finally, it loaded all the test Entities, * now it can be setup individually. */ -class HibernateGormDatastoreSpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class HibernateGormDatastoreSpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.grailsConfig = [ @@ -107,7 +106,7 @@ class HibernateGormDatastoreSpec extends GrailsDataTckSpec<GrailsDataHibernate6T registry .getParentServiceRegistry() .getService(ClassLoaderService.class) - .loadJavaServices(MetadataContributor.class) + .loadJavaServices(AdditionalMappingContributor.class) .find { it instanceof GrailsDomainBinder } } diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/LastUpdateWithDynamicUpdateSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/LastUpdateWithDynamicUpdateSpec.groovy index 46bb9391ac..4d4e9595c9 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/LastUpdateWithDynamicUpdateSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/LastUpdateWithDynamicUpdateSpec.groovy @@ -19,13 +19,13 @@ package grails.gorm.specs import grails.gorm.annotation.Entity -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec /** * Created by graemerocher on 27/06/16. */ -class LastUpdateWithDynamicUpdateSpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class LastUpdateWithDynamicUpdateSpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([LastUpdateTestA, LastUpdateTestB, LastUpdateTestC]) } diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/ManyToOneSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/ManyToOneSpec.groovy index ab0223a27c..29db85b7fb 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/ManyToOneSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/ManyToOneSpec.groovy @@ -19,13 +19,13 @@ package grails.gorm.specs import grails.gorm.annotation.Entity -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec /** * Created by graemerocher on 27/06/16. */ -class ManyToOneSpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class ManyToOneSpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([Foo, Bar]) } diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/MultiColumnUniqueConstraintSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/MultiColumnUniqueConstraintSpec.groovy index 1025182d70..f169a76f6a 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/MultiColumnUniqueConstraintSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/MultiColumnUniqueConstraintSpec.groovy @@ -19,13 +19,13 @@ package grails.gorm.specs import grails.gorm.annotation.Entity -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec import org.springframework.dao.DataIntegrityViolationException import spock.lang.Issue @Issue('https://github.com/grails/grails-data-mapping/issues/617') -class MultiColumnUniqueConstraintSpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class MultiColumnUniqueConstraintSpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([DomainOne, Task1, TaskLink]) } diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/RLikeSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/RLikeSpec.groovy index 5ecf399d74..b5d5f04e2b 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/RLikeSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/RLikeSpec.groovy @@ -19,12 +19,12 @@ package grails.gorm.specs import grails.gorm.annotation.Entity -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec import spock.lang.Ignore //TODO Rlike Needs to be implemented for Hibernate 6 -class RLikeSpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class RLikeSpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([RlikeFoo]) } diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/ReadOperationSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/ReadOperationSpec.groovy index 7d6d9b13a8..c4658d2bc0 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/ReadOperationSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/ReadOperationSpec.groovy @@ -19,10 +19,10 @@ package grails.gorm.specs import org.apache.grails.data.testing.tck.domains.TestEntity -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec -class ReadOperationSpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class ReadOperationSpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([TestEntity]) } diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/SizeConstraintSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/SizeConstraintSpec.groovy index 1baf599c9e..a8b20a0cf1 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/SizeConstraintSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/SizeConstraintSpec.groovy @@ -19,7 +19,7 @@ package grails.gorm.specs import grails.gorm.annotation.Entity -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec import org.springframework.dao.DataIntegrityViolationException import spock.lang.Issue @@ -27,7 +27,7 @@ import spock.lang.Issue /** * Created by graemerocher on 25/01/2017. */ -class SizeConstraintSpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class SizeConstraintSpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([SizeConstrainedUser]) } diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/ToOneProxySpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/ToOneProxySpec.groovy index b086966a60..4eb5d64efb 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/ToOneProxySpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/ToOneProxySpec.groovy @@ -20,14 +20,14 @@ package grails.gorm.specs import grails.gorm.specs.entities.Club import grails.gorm.specs.entities.Team -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec import org.grails.orm.hibernate.proxy.HibernateProxyHandler /** * Created by graemerocher on 16/12/16. */ -class ToOneProxySpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class ToOneProxySpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([Team, Club]) } diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/WhereQueryWithAssociationSortSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/WhereQueryWithAssociationSortSpec.groovy index 4d7e42da4b..229a8ba73f 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/WhereQueryWithAssociationSortSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/WhereQueryWithAssociationSortSpec.groovy @@ -20,16 +20,16 @@ package grails.gorm.specs import grails.gorm.specs.entities.Club import grails.gorm.specs.entities.Team -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec -import org.hibernate.QueryException + import spock.lang.Issue /** * Created by graemerocher on 03/11/16. */ //TODO : How to create an alias inside a closure -class WhereQueryWithAssociationSortSpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class WhereQueryWithAssociationSortSpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([Club, Team]) } diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/WithNewSessionAndExistingTransactionSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/WithNewSessionAndExistingTransactionSpec.groovy index 928a28d7d6..0365eb0af5 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/WithNewSessionAndExistingTransactionSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/WithNewSessionAndExistingTransactionSpec.groovy @@ -19,7 +19,7 @@ package grails.gorm.specs import org.apache.grails.data.testing.tck.domains.Book -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec import org.grails.orm.hibernate.HibernateDatastore import org.hibernate.Session @@ -33,7 +33,7 @@ import javax.sql.DataSource /** * Created by graemerocher on 26/08/2016. */ -class WithNewSessionAndExistingTransactionSpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class WithNewSessionAndExistingTransactionSpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([Book]) } diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/autoimport/AutoImportSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/autoimport/AutoImportSpec.groovy index 47fd980cbc..fecbe7fb86 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/autoimport/AutoImportSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/autoimport/AutoImportSpec.groovy @@ -19,10 +19,10 @@ package grails.gorm.specs.autoimport import grails.gorm.annotation.Entity -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec -class AutoImportSpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class AutoImportSpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([A, grails.gorm.specs.autoimport.other.A]) } diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/belongsto/BidirectionalOneToOneWithUniqueSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/belongsto/BidirectionalOneToOneWithUniqueSpec.groovy index 1ff951a138..72b242cedc 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/belongsto/BidirectionalOneToOneWithUniqueSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/belongsto/BidirectionalOneToOneWithUniqueSpec.groovy @@ -19,13 +19,13 @@ package grails.gorm.specs.belongsto -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec /** * Created by graemerocher on 22/08/2017. */ -class BidirectionalOneToOneWithUniqueSpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class BidirectionalOneToOneWithUniqueSpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([HibernateFace, HibernateNose]) } diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/inheritance/SubclassToOneProxySpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/inheritance/SubclassToOneProxySpec.groovy index 95c21cf7d2..ecdd5455cb 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/inheritance/SubclassToOneProxySpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/inheritance/SubclassToOneProxySpec.groovy @@ -19,10 +19,10 @@ package grails.gorm.specs.inheritance import grails.gorm.annotation.Entity -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec -class SubclassToOneProxySpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class SubclassToOneProxySpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([SuperclassProxy, SubclassProxy, HasOneProxy]) } diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/inheritance/TablePerConcreteClassAndDateCreatedSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/inheritance/TablePerConcreteClassAndDateCreatedSpec.groovy index c7d3f42445..1104429f26 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/inheritance/TablePerConcreteClassAndDateCreatedSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/inheritance/TablePerConcreteClassAndDateCreatedSpec.groovy @@ -19,7 +19,7 @@ package grails.gorm.specs.inheritance import grails.gorm.annotation.Entity -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec import spock.lang.Issue @@ -27,7 +27,7 @@ import spock.lang.Issue * Created by graemerocher on 29/05/2017. */ @Issue('https://github.com/grails/grails-data-mapping/issues/937') -class TablePerConcreteClassAndDateCreatedSpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class TablePerConcreteClassAndDateCreatedSpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([Vehicle, Spaceship]) } diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/inheritance/TablePerConcreteClassImportedSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/inheritance/TablePerConcreteClassImportedSpec.groovy index 2cffa9c486..c71a7a133d 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/inheritance/TablePerConcreteClassImportedSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/inheritance/TablePerConcreteClassImportedSpec.groovy @@ -18,12 +18,12 @@ */ package grails.gorm.specs.inheritance -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec import spock.lang.Issue @Issue('https://github.com/grails/gorm-hibernate5/issues/151') -class TablePerConcreteClassImportedSpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class TablePerConcreteClassImportedSpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([Vehicle, Spaceship]) } diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/mappedby/MultipleOneToOneSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/mappedby/MultipleOneToOneSpec.groovy index 29e2839ff2..e66728a900 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/mappedby/MultipleOneToOneSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/mappedby/MultipleOneToOneSpec.groovy @@ -19,14 +19,14 @@ package grails.gorm.specs.mappedby import grails.gorm.annotation.Entity -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec import spock.lang.Issue /** * Created by graemerocher on 29/05/2017. */ -class MultipleOneToOneSpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class MultipleOneToOneSpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([Org, OrgMember]) } diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/proxy/Hibernate6GroovyProxySpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/proxy/Hibernate6GroovyProxySpec.groovy index 506f1af354..5944223f95 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/proxy/Hibernate6GroovyProxySpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/proxy/Hibernate6GroovyProxySpec.groovy @@ -1,6 +1,6 @@ package grails.gorm.specs.proxy -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec import org.apache.grails.data.testing.tck.domains.Location import org.grails.datastore.gorm.proxy.GroovyProxyFactory @@ -9,7 +9,7 @@ import org.grails.datastore.gorm.proxy.GroovyProxyFactory * @author graemerocher */ //TODO Are we still supporting Proxies? -class Hibernate6GroovyProxySpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class Hibernate6GroovyProxySpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([Location]) diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/traits/InterfacePropertySpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/traits/InterfacePropertySpec.groovy index 3f8269e02d..02c63d949c 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/traits/InterfacePropertySpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/traits/InterfacePropertySpec.groovy @@ -19,14 +19,14 @@ package grails.gorm.specs.traits import grails.gorm.annotation.Entity -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec import spock.lang.Issue /** * Created by graemerocher on 29/05/2017. */ -class InterfacePropertySpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class InterfacePropertySpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([TestDomain]) } diff --git a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/validation/DeepValidationSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/validation/DeepValidationSpec.groovy index 66163f4078..a4ebab8091 100644 --- a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/validation/DeepValidationSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/validation/DeepValidationSpec.groovy @@ -20,7 +20,7 @@ package grails.gorm.specs.validation import grails.gorm.annotation.Entity import grails.gorm.transactions.Rollback -import org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager +import org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec import org.springframework.dao.DataIntegrityViolationException import spock.lang.Issue @@ -28,7 +28,7 @@ import spock.lang.Issue /** * Created by francoiskha on 19/04/18. */ -class DeepValidationSpec extends GrailsDataTckSpec<GrailsDataHibernate6TckManager> { +class DeepValidationSpec extends GrailsDataTckSpec<GrailsDataHibernate7TckManager> { void setupSpec() { manager.addAllDomainClasses([AnotherCity, Market, Address]) } diff --git a/grails-data-hibernate7/core/src/test/groovy/org/apache/grails/data/hibernate6/core/GrailsDataHibernate6TckManager.groovy b/grails-data-hibernate7/core/src/test/groovy/org/apache/grails/data/hibernate7/core/GrailsDataHibernate7TckManager.groovy similarity index 95% rename from grails-data-hibernate7/core/src/test/groovy/org/apache/grails/data/hibernate6/core/GrailsDataHibernate6TckManager.groovy rename to grails-data-hibernate7/core/src/test/groovy/org/apache/grails/data/hibernate7/core/GrailsDataHibernate7TckManager.groovy index 5d278f88bd..130e20aeff 100644 --- a/grails-data-hibernate7/core/src/test/groovy/org/apache/grails/data/hibernate6/core/GrailsDataHibernate6TckManager.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/org/apache/grails/data/hibernate7/core/GrailsDataHibernate7TckManager.groovy @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.grails.data.hibernate6.core +package org.apache.grails.data.hibernate7.core import grails.core.DefaultGrailsApplication import grails.core.GrailsApplication @@ -39,7 +39,7 @@ import org.springframework.transaction.support.DefaultTransactionDefinition import org.springframework.transaction.support.TransactionSynchronizationManager import spock.lang.Specification -class GrailsDataHibernate6TckManager extends GrailsDataTckManager { +class GrailsDataHibernate7TckManager extends GrailsDataTckManager { GrailsApplication grailsApplication HibernateDatastore hibernateDatastore org.hibernate.Session hibernateSession @@ -59,8 +59,8 @@ class GrailsDataHibernate6TckManager extends GrailsDataTckManager { @Override Session createSession() { - System.setProperty('hibernate6.gorm.suite', "true") - grailsApplication = new DefaultGrailsApplication(domainClasses as Class[], new GroovyClassLoader(GrailsDataHibernate6TckManager.getClassLoader())) + System.setProperty('hibernate7.gorm.suite', "true") + grailsApplication = new DefaultGrailsApplication(domainClasses as Class[], new GroovyClassLoader(GrailsDataHibernate7TckManager.getClassLoader())) grailsConfig.dataSource.dbCreate = "create-drop" grailsConfig.hibernate.proxy_factory_class = "yakworks.hibernate.proxy.ByteBuddyGroovyProxyFactory" if (grailsConfig) { diff --git a/grails-data-hibernate7/core/src/test/resources/META-INF/services/org.apache.grails.data.testing.tck.base.GrailsDataTckManager b/grails-data-hibernate7/core/src/test/resources/META-INF/services/org.apache.grails.data.testing.tck.base.GrailsDataTckManager index f1cca2aa38..ce171b3e54 100644 --- a/grails-data-hibernate7/core/src/test/resources/META-INF/services/org.apache.grails.data.testing.tck.base.GrailsDataTckManager +++ b/grails-data-hibernate7/core/src/test/resources/META-INF/services/org.apache.grails.data.testing.tck.base.GrailsDataTckManager @@ -17,4 +17,4 @@ # under the License. # -org.apache.grails.data.hibernate6.core.GrailsDataHibernate6TckManager \ No newline at end of file +org.apache.grails.data.hibernate7.core.GrailsDataHibernate7TckManager \ No newline at end of file diff --git a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/base/GrailsDataTckSpec.groovy b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/base/GrailsDataTckSpec.groovy index 9e9e22cfd4..616d3aeac4 100644 --- a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/base/GrailsDataTckSpec.groovy +++ b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/base/GrailsDataTckSpec.groovy @@ -29,7 +29,10 @@ class GrailsDataTckSpec<T extends GrailsDataTckManager> extends Specification { void setupSpec() { ServiceLoader<GrailsDataTckManager> loader = ServiceLoader.load(GrailsDataTckManager) - manager = loader.findFirst().get() as T + // Prefer a provider whose class name indicates the target suite (e.g. hibernate7) if available + def providers = loader.stream().map { it.get() }.toList() + def preferred = providers.find { it.class.name.toLowerCase().contains('hibernate7') } + manager = (preferred ?: providers ? providers.first() : loader.findFirst().get()) as T manager.setupSpec() }
