Skip to content

Metamodel Integration Tasks

gbadner edited this page Jan 27, 2014 · 40 revisions

JIRA issue: HHH-8897

Repository: https://github.com/gbadner/hibernate-core Branch: HHH-8897-replace-metamodel

In order to minimize the impact of diverging functionality in master/metamodel branches, I took the following approach:

  • create a branch of master (HHH-8897-replace-metamodel);
  • delete the existing org.hibernate.metamodel package (main and test);
  • org.hibernate.metamodel package (main and test) from the metamodel branch into into HHH-8897-replace-metamodel;
  • make minimal code changes to accommodate the new metamodel.

This allows new/diverging functionality from the metamodel branch (outside of org.hibernate.metamodel) to be merged by the person must knowledgeable about that new/diverging functionality.

I did merge some functionality from metamodel branch that was required by org.hibernate.metamodel. In these cases, I made my best guess. It would be good for someone more familiar with the code to ensure that I did the right thing.

  • TBD

The following test failures probably require functionality to be merged from metamodel branch:

org.hibernate.test.cid.CompositeIdWithGeneratorTest fails in master because new metamodel cannot handle an IdentityGenerator w/ more than one column. (was changed to IdentifierGenerator on metamodel branch). org.hibernate.test.propertyref.basic.BasicPropertiesTest fails on master; not in metamodel branch.

Tests that extend BaseUnitTestCase (and not BaseCoreFunctionalTestCase) that explicitly build Configuration (requires merging changes to testing code from metamodel branch). For now, they throw NotYetImplementedException:

  • org.hibernate.test.annotations.access.xml.XmlAccessTest
  • org.hibernate.test.annotations.id.JoinColumnOverrideTest
  • org.hibernate.test.annotations.id.sequences.JoinColumnOverrideTest
  • org.hibernate.test.annotations.uniqueconstraint.UniqueConstraintValidationTest
  • org.hibernate.test.cfg.cache.CacheConfigurationTest
  • org.hibernate.test.nationalized.SimpleNationalizedTest
  • org.hibernate.test.naturalid.inheritance.spread.SpreadNaturalIdTest
  • org.hibernate.test.type.AttributeConverterTest
  • org.hibernate.serialization.SessionFactorySerializationTest

Tests that don't support new metamodel yet:

  • org.hibernate.test.constraint.ConstraintTest

Don't know why the following are passing with new metamodel (they are marked @FailureExpected in both metamodel and master branches):

  • org.hibernate.test.collection.set.PersistentSetNonLazyTest.testLoadChildCheckParentContainsChildCache

Don't know why the following are passing after integration into master (they are marked @FailureExpectedWithNewMetamodel in metamodel branch):

  • org.hibernate.test.instrument.runtime.JavassistInstrumentationTest.testLazy()
  • org.hibernate.test.instrument.runtime.JavassistInstrumentationTest.testLazyManyToOne
  • org.hibernate.test.instrument.runtime.JavassistInstrumentationTest.testManyToOneProxy
  • org.hibernate.test.instrument.runtime.JavassistInstrumentationTest.testSharedPKOneToOne

BeanValidation is not working:

  • org.hibernate.test.annotations.beanvalidation.BeanValidationAutoTest
  • org.hibernate.test.annotations.beanvalidation.BeanValidationGroupsTest
  • org.hibernate.test.annotations.beanvalidation.BeanValidationProvidedFactoryTest
  • org.hibernate.test.annotations.beanvalidation.DDLTest
  • org.hibernate.test.annotations.beanvalidation.DDLWithoutCallbackTest
  • org.hibernate.test.annotations.beanvalidation.HibernateTraversableResolverTest

not supported (need to rebuild xsd) (introduced by HHH-7807):

  • org.hibernate.test.hql.BulkManipulationTest
  • org.hibernate.test.idprops.IdentifierPropertyReferencesTest
  • org.hibernate.test.immutable.ImmutableTest
  • org.hibernate.test.keymanytoone.bidir.component.EagerKeyManyToOneTest
  • org.hibernate.test.keymanytoone.bidir.component.LazyKeyManyToOneTest
  • org.hibernate.test.keymanytoone.bidir.embedded.KeyManyToOneTest
  • org.hibernate.test.keymanytoone.bidir.ondelete.KeyManyToOneCascadeDeleteTest
  • org.hibernate.test.keymanytoone.unidir.ondelete.KeyManyToOneCascadeDeleteTest
  • org.hibernate.test.loadplans.process.NonEncapsulatedCompositeIdResultSetProcessorTest
  • org.hibernate.test.loadplans.walking.KeyManyToOneWalkingTest
  • org.hibernate.test.onetoone.formula.OneToOneFormulaTest

EntityMode.MAP not working:

  • org.hibernate.test.entitymode.map.basic.DynamicClassTest
  • org.hibernate.test.entitymode.map.subclass.SubclassDynamicMapTest
  • org.hibernate.test.legacy.MapTest
  • org.hibernate.test.onetoone.nopojo.DynamicMapOneToOneTest
  • org.hibernate.test.tm.CMTTest

Discriminators for joined subclasses has wrong type sometimes:

  • org.hibernate.test.joinedsubclass.JoinedSubclassWithImplicitDiscriminatorTest.metadataAssertions()
  • org.hibernate.test.joinedsubclass.JoinedSubclassWithExplicitDiscriminatorTest.metadataAssertions()
  • org.hibernate.test.collection.lazynocascade.LazyAssociationNoCascadeTest

Default index type when @MapKeyColumn is used:

  • org.hibernate.test.collection.map.PersistentMapTest

New metamodel does not support a registered default tuplizer:

  • org.hibernate.test.dynamicentity.tuplizer2.ImprovedTuplizerDynamicEntityTest
Clone this wiki locally