This is an automated email from the ASF dual-hosted git repository. borinquenkid pushed a commit to branch merge-hibernate6 in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit de9934e174400c8952aadf88e27a04b9748be336 Author: Walter Duque de Estrada <[email protected]> AuthorDate: Mon Jul 7 22:53:29 2025 -0500 refactoring and testing TypeNameProvider --- .../hibernate/cfg/AbstractGrailsDomainBinder.java | 2 +- .../orm/hibernate/cfg/GrailsDomainBinder.java | 141 ++++++++------------- .../ConfigureDerivedPropertiesConsumer.java | 25 ++++ .../cfg/domainbinding/TypeNameProvider.java | 28 ++++ .../gorm/specs/HibernateGormDatastoreSpec.groovy | 7 +- .../hibernate/cfg/GrailsDomainBinderSpec.groovy | 3 +- .../cfg/domainbinding/ClassBinderSpec.groovy | 6 +- .../cfg/domainbinding/TypeNameProviderSpec.groovy | 79 ++++++++++++ .../data/testing/tck/tests/AttachMethodSpec.groovy | 2 +- .../testing/tck/tests/CircularOneToManySpec.groovy | 2 +- .../tck/tests/CommonTypesPersistenceSpec.groovy | 2 +- 11 files changed, 201 insertions(+), 96 deletions(-) diff --git a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/AbstractGrailsDomainBinder.java b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/AbstractGrailsDomainBinder.java index 3dd3a4ba68..264fe90497 100644 --- a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/AbstractGrailsDomainBinder.java +++ b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/AbstractGrailsDomainBinder.java @@ -47,7 +47,7 @@ public abstract class AbstractGrailsDomainBinder { * @param theClass The domain class in question * @return A Mapping object or null */ - static void cacheMapping(Class<?> theClass, Mapping mapping) { + public static void cacheMapping(Class<?> theClass, Mapping mapping) { MAPPING_CACHE.put(theClass, mapping); } diff --git a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java index 4e57e4739b..14084c1902 100644 --- a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java +++ b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java @@ -35,6 +35,8 @@ import org.grails.datastore.mapping.reflect.EntityReflector; import org.grails.datastore.mapping.reflect.NameUtils; import org.grails.orm.hibernate.access.TraitPropertyAccessStrategy; import org.grails.orm.hibernate.cfg.domainbinding.ClassBinder; +import org.grails.orm.hibernate.cfg.domainbinding.ConfigureDerivedPropertiesConsumer; +import org.grails.orm.hibernate.cfg.domainbinding.TypeNameProvider; import org.hibernate.FetchMode; import org.hibernate.MappingException; import org.hibernate.boot.internal.MetadataBuildingContextRootImpl; @@ -105,11 +107,13 @@ import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.Properties; import java.util.Set; import java.util.SortedSet; import java.util.StringTokenizer; +import static java.util.Optional.ofNullable; import static org.hibernate.boot.model.naming.Identifier.toIdentifier; ; @@ -307,7 +311,9 @@ public class GrailsDomainBinder implements MetadataContributor { SimpleValue elt = new BasicValue(metadataBuildingContext, map.getCollectionTable()); map.setElement(elt); - String typeName = getTypeName(property,getPropertyConfig(property), getMapping(property.getOwner())); + PropertyConfig config = getPropertyConfig(property); + Mapping mapping = getMapping(property.getOwner()); + String typeName = new TypeNameProvider().getTypeName(property, mapping); if (typeName == null ) { if(property instanceof Basic) { @@ -763,7 +769,8 @@ public class GrailsDomainBinder implements MetadataContributor { } else { - String typeName = getTypeName(property, config, getMapping(property.getOwner())); + Mapping mapping = getMapping(property.getOwner()); + String typeName = new TypeNameProvider().getTypeName(property, mapping); if (typeName == null) { Type type = mappings.getTypeConfiguration().getBasicTypeRegistry().getRegisteredType(className); if (type != null) { @@ -819,22 +826,6 @@ public class GrailsDomainBinder implements MetadataContributor { return element.getColumns().iterator().next(); } - private String getTypeName(PersistentProperty property, PropertyConfig config, Mapping mapping) { - if (config != null && config.getType() != null) { - final Object typeObj = config.getType(); - if (typeObj instanceof Class<?>) { - return ((Class<?>)typeObj).getName(); - } - return typeObj.toString(); - } - - if (mapping != null) { - return mapping.getTypeName(property.getType()); - } - - return null; - } - private void bindColumnConfigToColumn(PersistentProperty property, Column column, ColumnConfig columnConfig) { final PropertyConfig mappedForm = property != null ? (PropertyConfig) property.getMapping().getMappedForm() : null; boolean allowUnique = mappedForm != null && !mappedForm.isUniqueWithinGroup(); @@ -1324,7 +1315,7 @@ public class GrailsDomainBinder implements MetadataContributor { } } - private void evaluateMapping(PersistentEntity domainClass) { + public void evaluateMapping(PersistentEntity domainClass) { try { final Mapping m = (Mapping) domainClass.getMapping().getMappedForm(); trackCustomCascadingSaves(m, domainClass.getPersistentProperties()); @@ -1376,7 +1367,7 @@ public class GrailsDomainBinder implements MetadataContributor { * @return A Mapping object or null */ private static Mapping getMapping(Class<?> theClass) { - return AbstractGrailsDomainBinder.getMapping(theClass); + return Optional.ofNullable(AbstractGrailsDomainBinder.getMapping(theClass)).orElseThrow(); } /** @@ -1534,10 +1525,8 @@ public class GrailsDomainBinder implements MetadataContributor { DiscriminatorConfig discriminatorConfig = subMapping != null ? subMapping.getDiscriminator() : null; subClass.setDiscriminatorValue(discriminatorConfig != null && discriminatorConfig.getValue() != null ? discriminatorConfig.getValue() : fullName); + configureDerivedProperties(sub, subMapping); - if (subMapping != null) { - configureDerivedProperties(sub, subMapping); - } } Integer bs = (m == null) ? null : m.getBatchSize(); if (bs != null) { @@ -1743,12 +1732,7 @@ public class GrailsDomainBinder implements MetadataContributor { } private void configureDerivedProperties(PersistentEntity domainClass, Mapping m) { - for (PersistentProperty prop : domainClass.getPersistentProperties()) { - PropertyConfig propertyConfig = m.getPropertyConfig(prop.getName()); - if (propertyConfig != null && propertyConfig.getFormula() != null) { - propertyConfig.setDerived(true); - } - } + domainClass.getPersistentProperties().forEach(new ConfigureDerivedPropertiesConsumer( m)); } /* @@ -1758,71 +1742,48 @@ public class GrailsDomainBinder implements MetadataContributor { RootClass root, InFlightMetadataCollector mappings, String sessionFactoryBeanName) { // get the schema and catalog names from the configuration - Mapping m = getMapping(domainClass.getJavaClass()); + Mapping m = ofNullable(getMapping(domainClass.getJavaClass())).orElseThrow(); - String schema = getSchemaName(mappings); - String catalog = getCatalogName(mappings); - - if (m != null) { - configureDerivedProperties(domainClass, m); - CacheConfig cc = m.getCache(); - if (cc != null && cc.getEnabled()) { - root.setCacheConcurrencyStrategy(cc.getUsage()); - root.setCached(true); - if ("read-only".equals(cc.getUsage())) { - root.setMutable(false); - } - root.setLazyPropertiesCacheable(!"non-lazy".equals(cc.getInclude())); + configureDerivedProperties(domainClass, m); + CacheConfig cc = m.getCache(); + if (cc != null && cc.getEnabled()) { + root.setCacheConcurrencyStrategy(cc.getUsage()); + root.setCached(true); + if ("read-only".equals(cc.getUsage())) { + root.setMutable(false); } + root.setLazyPropertiesCacheable(!"non-lazy".equals(cc.getInclude())); + } + root.setBatchSize(ofNullable(m.getBatchSize()).orElse(0)); + root.setDynamicUpdate(m.getDynamicUpdate()); + root.setDynamicInsert(m.getDynamicInsert()); - Integer bs = m.getBatchSize(); - if (bs != null) { - root.setBatchSize(bs); - } - if (m.getDynamicUpdate()) { - root.setDynamicUpdate(true); - } - if (m.getDynamicInsert()) { - root.setDynamicInsert(true); - } - } + var schema = ofNullable(m.getTable()) + .map(org.grails.orm.hibernate.cfg.Table::getSchema) + .orElse(getSchemaName(mappings)); - final boolean hasTableDefinition = m != null && m.getTable() != null; - if (hasTableDefinition && m.getTable().getSchema() != null) { - schema = m.getTable().getSchema(); - } - if (hasTableDefinition && m.getTable().getCatalog() != null) { - catalog = m.getTable().getCatalog(); - } + var catalog = ofNullable(m.getTable()) + .map(org.grails.orm.hibernate.cfg.Table::getCatalog) + .orElse( getCatalogName(mappings)); - final boolean isAbstract = m != null && !m.getTablePerHierarchy() && m.isTablePerConcreteClass() && root.isAbstract(); + + var isAbstract = !m.getTablePerHierarchy() && m.isTablePerConcreteClass() && root.isAbstract(); // create the table - Table table = mappings.addTable(schema, catalog, - getTableName(domainClass, sessionFactoryBeanName), - null, isAbstract, metadataBuildingContext); + Table table = mappings.addTable(schema + , catalog + , getTableName(domainClass, sessionFactoryBeanName) + , null + , isAbstract + , metadataBuildingContext + ); root.setTable(table); - if (LOG.isDebugEnabled()) { LOG.debug("[GrailsDomainBinder] Mapping Grails domain class: " + domainClass.getName() + " -> " + root.getTable().getName()); } - bindIdentity(domainClass, root, mappings, m, sessionFactoryBeanName); - - if (m == null) { - bindVersion(domainClass.getVersion(), root, mappings, sessionFactoryBeanName); - } - else { - if (m.getVersioned()) { - bindVersion(domainClass.getVersion(), root, mappings, sessionFactoryBeanName); - } - else { - root.setOptimisticLockStyle(OptimisticLockStyle.NONE); - } - } - + bindVersion(domainClass.getVersion(), root, mappings, sessionFactoryBeanName); root.createPrimaryKey(); - createClassProperties(domainClass, root, mappings, sessionFactoryBeanName); } @@ -1941,7 +1902,8 @@ public class GrailsDomainBinder implements MetadataContributor { bindSimpleValue(currentGrailsProp, null, (SimpleValue) value, EMPTY_PATH, mappings, sessionFactoryBeanName); } else if (collectionType != null) { - String typeName = getTypeName(currentGrailsProp, getPropertyConfig(currentGrailsProp),gormMapping); + PropertyConfig config = getPropertyConfig(currentGrailsProp); + String typeName = new TypeNameProvider().getTypeName(currentGrailsProp, gormMapping); if ("serializable".equals(typeName)) { value = new BasicValue(metadataBuildingContext, table); bindSimpleValue(typeName, (SimpleValue) value, currentGrailsProp.isNullable(), @@ -2126,7 +2088,9 @@ public class GrailsDomainBinder implements MetadataContributor { PropertyConfig pc = getPropertyConfig(property); final PersistentEntity owner = property.getOwner(); - String typeName = getTypeName(property, getPropertyConfig(property), getMapping(owner)); + PropertyConfig config = getPropertyConfig(property); + Mapping mapping1 = getMapping(owner); + String typeName = new TypeNameProvider().getTypeName(property, mapping1); if (typeName == null) { Properties enumProperties = new Properties(); enumProperties.put(ENUM_CLASS_PROP, propertyType.getName()); @@ -2952,7 +2916,8 @@ public class GrailsDomainBinder implements MetadataContributor { } private void setTypeForPropertyConfig(PersistentProperty grailsProp, SimpleValue simpleValue, PropertyConfig config) { - final String typeName = getTypeName(grailsProp, getPropertyConfig(grailsProp), getMapping(grailsProp.getOwner())); + Mapping mapping = getMapping(grailsProp.getOwner()); + final String typeName = new TypeNameProvider().getTypeName(grailsProp, mapping); if (typeName == null) { simpleValue.setTypeName(grailsProp.getType().getName()); } @@ -3238,7 +3203,9 @@ public class GrailsDomainBinder implements MetadataContributor { private String getIndexColumnType(PersistentProperty property, String defaultType) { PropertyConfig pc = getPropertyConfig(property); if (pc != null && pc.getIndexColumn() != null && pc.getIndexColumn().getType() != null) { - return getTypeName(property, pc.getIndexColumn(), getMapping(property.getOwner())); + PropertyConfig config = pc.getIndexColumn(); + Mapping mapping = getMapping(property.getOwner()); + return new TypeNameProvider().getTypeName(property, mapping); } return defaultType; } @@ -3603,7 +3570,9 @@ public class GrailsDomainBinder implements MetadataContributor { } public String getTypeName(ToMany property) { - return binder.getTypeName(property, binder.getPropertyConfig(property), getMapping(property.getOwner())); + PropertyConfig config = binder.getPropertyConfig(property); + Mapping mapping = getMapping(property.getOwner()); + return new TypeNameProvider().getTypeName(property, mapping); } } diff --git a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/ConfigureDerivedPropertiesConsumer.java b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/ConfigureDerivedPropertiesConsumer.java new file mode 100644 index 0000000000..1400c6d223 --- /dev/null +++ b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/ConfigureDerivedPropertiesConsumer.java @@ -0,0 +1,25 @@ +package org.grails.orm.hibernate.cfg.domainbinding; + +import org.grails.datastore.mapping.model.PersistentProperty; +import org.grails.orm.hibernate.cfg.Mapping; + +import java.util.Objects; +import java.util.function.Consumer; +import static java.util.Optional.ofNullable; + + +public class ConfigureDerivedPropertiesConsumer implements Consumer<PersistentProperty> { + + private final Mapping m; + + public ConfigureDerivedPropertiesConsumer(Mapping m) { + this.m = m; + } + @Override + public void accept(PersistentProperty persistentProperty) { + ofNullable(m.getPropertyConfig(persistentProperty.getName())) + .ifPresent(propertyConfig -> + propertyConfig.setDerived(Objects.nonNull(propertyConfig.getFormula())) + ); + } +} diff --git a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/TypeNameProvider.java b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/TypeNameProvider.java new file mode 100644 index 0000000000..6aa05e5dfd --- /dev/null +++ b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/TypeNameProvider.java @@ -0,0 +1,28 @@ +package org.grails.orm.hibernate.cfg.domainbinding; + +import jakarta.validation.constraints.NotNull; +import org.grails.datastore.mapping.model.PersistentProperty; +import org.grails.orm.hibernate.cfg.Mapping; +import org.grails.orm.hibernate.cfg.PropertyConfig; + +import static java.util.Optional.ofNullable; + +public class TypeNameProvider { + + public String getTypeName(@NotNull PersistentProperty property + ,@NotNull Mapping mapping) { + return ofNullable(getPropertyConfig(property)) + .map(PropertyConfig::getType) + .map(typeObj -> typeObj instanceof Class<?> clazz ? + clazz.getName() : typeObj.toString() + ) + .orElse(mapping.getTypeName(property.getType())); + } + + private PropertyConfig getPropertyConfig(PersistentProperty property) { + return (PropertyConfig) property.getMapping().getMappedForm(); + } +} + + + diff --git a/grails-data-hibernate6/core/src/test/groovy/grails/gorm/specs/HibernateGormDatastoreSpec.groovy b/grails-data-hibernate6/core/src/test/groovy/grails/gorm/specs/HibernateGormDatastoreSpec.groovy index 11b5c31bb1..cb0697bf1f 100644 --- a/grails-data-hibernate6/core/src/test/groovy/grails/gorm/specs/HibernateGormDatastoreSpec.groovy +++ b/grails-data-hibernate6/core/src/test/groovy/grails/gorm/specs/HibernateGormDatastoreSpec.groovy @@ -40,7 +40,8 @@ class HibernateGormDatastoreSpec extends GrailsDataTckSpec<GrailsDataHibernate6T ] } - HibernatePersistentEntity createPersistentEntity(String className + HibernatePersistentEntity createPersistentEntity(GrailsDomainBinder binder + , String className , Map<String, Class> fieldProperties , Map<String, String> staticMapping @@ -62,7 +63,9 @@ class HibernateGormDatastoreSpec extends GrailsDataTckSpec<GrailsDataHibernate6T """ def clazz = classLoader.parseClass(classText) - getMappingContext().addPersistentEntity(clazz) as HibernatePersistentEntity + def entity = getMappingContext().addPersistentEntity(clazz) as HibernatePersistentEntity + binder.evaluateMapping(entity) + entity } protected InFlightMetadataCollectorImpl getCollector() { diff --git a/grails-data-hibernate6/core/src/test/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinderSpec.groovy b/grails-data-hibernate6/core/src/test/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinderSpec.groovy index eb3b349bb6..0c07c13bed 100644 --- a/grails-data-hibernate6/core/src/test/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinderSpec.groovy +++ b/grails-data-hibernate6/core/src/test/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinderSpec.groovy @@ -12,7 +12,8 @@ class GrailsDomainBinderSpec extends HibernateGormDatastoreSpec { def grailsDomainBinder = getGrailsDomainBinder() def simpleName = "Book" def fieldProperties = [title: String] - def persistentEntity = createPersistentEntity(simpleName, fieldProperties, [:]) + def persistentEntity = createPersistentEntity(grailsDomainBinder,simpleName, fieldProperties, [:]) + grailsDomainBinder.bindRoot(persistentEntity, collector,"sessionFactoryName") println("when") then: diff --git a/grails-data-hibernate6/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ClassBinderSpec.groovy b/grails-data-hibernate6/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ClassBinderSpec.groovy index 478a048d13..04ab545c60 100644 --- a/grails-data-hibernate6/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ClassBinderSpec.groovy +++ b/grails-data-hibernate6/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ClassBinderSpec.groovy @@ -14,7 +14,7 @@ class ClassBinderSpec extends HibernateGormDatastoreSpec { def simpleName = "Book" def persistentName = "foo.Book" - def persistentEntity = createPersistentEntity(simpleName, [:], [:]) + def persistentEntity = createPersistentEntity(grailsDomainBinder,simpleName, [:], [:]) def root = new RootClass(grailsDomainBinder.metadataBuildingContext); def binder = new ClassBinder() @@ -39,7 +39,7 @@ class ClassBinderSpec extends HibernateGormDatastoreSpec { def simpleName = "Book" def persistentName = "foo.Book" - def persistentEntity = createPersistentEntity(simpleName, [:], [autoImport: "true"]) + def persistentEntity = createPersistentEntity(grailsDomainBinder,simpleName, [:], [autoImport: "true"]) def root = new RootClass(grailsDomainBinder.metadataBuildingContext); def binder = new ClassBinder() @@ -64,7 +64,7 @@ class ClassBinderSpec extends HibernateGormDatastoreSpec { def simpleName = "Book" def persistentName = "foo.Book" - def persistentEntity = createPersistentEntity(simpleName, [:], [autoImport: "false"]) + def persistentEntity = createPersistentEntity(grailsDomainBinder, simpleName, [:], [autoImport: "false"]) def root = new RootClass(grailsDomainBinder.metadataBuildingContext); def binder = new ClassBinder() diff --git a/grails-data-hibernate6/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/TypeNameProviderSpec.groovy b/grails-data-hibernate6/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/TypeNameProviderSpec.groovy new file mode 100644 index 0000000000..14d276440c --- /dev/null +++ b/grails-data-hibernate6/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/TypeNameProviderSpec.groovy @@ -0,0 +1,79 @@ +package org.grails.orm.hibernate.cfg.domainbinding + +import grails.gorm.specs.HibernateGormDatastoreSpec +import grails.persistence.Entity +import org.grails.orm.hibernate.cfg.HibernatePersistentEntity +import org.grails.orm.hibernate.cfg.Mapping +import org.hibernate.type.descriptor.java.BasicJavaType +import org.hibernate.type.descriptor.jdbc.JdbcType +import org.hibernate.usertype.BaseUserTypeSupport + +import java.util.function.BiConsumer + +class TypeNameProviderSpec extends HibernateGormDatastoreSpec { + + void "Test - type not a class"() { + when: + def grailsDomainBinder = getGrailsDomainBinder() + def simpleName = "Book" + def fieldProperties = ["name": String] + def mappingProperties = ["name": "type: 'text'"] + def persistentEntity = createPersistentEntity(grailsDomainBinder, simpleName, fieldProperties, mappingProperties) + def property = persistentEntity.getPersistentProperties()[0] + Mapping mapping = new Mapping() + mapping.setUserTypes(["foo.Bar": persistentEntity.getJavaClass()]) + def name = new TypeNameProvider().getTypeName(property, mapping) + + then: + name == "text" + + } + + void "Test - type is a class"() { + when: + def grailsDomainBinder = getGrailsDomainBinder() + def simpleName = "Book" + def fieldProperties = ["name": String] + def mappingProperties = ["name": "type: String"] + def persistentEntity = createPersistentEntity(grailsDomainBinder, simpleName, fieldProperties, mappingProperties) + def property = persistentEntity.getPersistentProperties()[0] + Mapping mapping = new Mapping() + def name = new TypeNameProvider().getTypeName(property, mapping) + + then: + name == "java.lang.String" + + } + + void "Test - type not included but in general mapping"() { + when: + def grailsDomainBinder = getGrailsDomainBinder() + def persistentEntity = getMappingContext().addPersistentEntity(Employee) as HibernatePersistentEntity + grailsDomainBinder.evaluateMapping(persistentEntity) + def property = persistentEntity.getPersistentProperties()[0] + Mapping mapping = new Mapping() + mapping.setUserTypes([(Salary): SalaryType]) + def name = new TypeNameProvider().getTypeName(property, mapping) + + then: + name == SalaryType.name + + } + +} + +class Salary { + BigDecimal amount +} + +class SalaryType extends BaseUserTypeSupport<Salary> { + @Override + protected void resolve(BiConsumer<BasicJavaType<Salary>, JdbcType> resolutionConsumer) { + } +} +@Entity +class Employee { + Salary salary +} + + diff --git a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/AttachMethodSpec.groovy b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/AttachMethodSpec.groovy index 0530fc6537..742d65b802 100644 --- a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/AttachMethodSpec.groovy +++ b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/AttachMethodSpec.groovy @@ -26,7 +26,7 @@ import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec */ class AttachMethodSpec extends GrailsDataTckSpec { void setupSpec() { - manager.domainClasses.add(Person) + manager.addAllDomainClasses([Person]) } void "Test attach method"() { diff --git a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/CircularOneToManySpec.groovy b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/CircularOneToManySpec.groovy index fac928f18b..953e783ef3 100644 --- a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/CircularOneToManySpec.groovy +++ b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/CircularOneToManySpec.groovy @@ -27,7 +27,7 @@ import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec class CircularOneToManySpec extends GrailsDataTckSpec { void setupSpec() { - manager.domainClasses.add(Task) + manager.addAllDomainClasses([Task]) } void "Test circular one-to-many"() { diff --git a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/CommonTypesPersistenceSpec.groovy b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/CommonTypesPersistenceSpec.groovy index 34dcf1f08b..dd8e15cbbc 100644 --- a/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/CommonTypesPersistenceSpec.groovy +++ b/grails-datamapping-tck/src/main/groovy/org/apache/grails/data/testing/tck/tests/CommonTypesPersistenceSpec.groovy @@ -26,7 +26,7 @@ import org.apache.grails.data.testing.tck.base.GrailsDataTckSpec */ class CommonTypesPersistenceSpec extends GrailsDataTckSpec { void setupSpec() { - manager.domainClasses.add(CommonTypes) + manager.addAllDomainClasses([CommonTypes]) } def testPersistBasicTypes() {
