diff --git a/jbt/src/main/java/org/hibernate/tool/orm/jbt/wrp/ConfigurationWrapperFactory.java b/jbt/src/main/java/org/hibernate/tool/orm/jbt/wrp/ConfigurationWrapperFactory.java index 3fdc918c80..ec4bc7ef76 100644 --- a/jbt/src/main/java/org/hibernate/tool/orm/jbt/wrp/ConfigurationWrapperFactory.java +++ b/jbt/src/main/java/org/hibernate/tool/orm/jbt/wrp/ConfigurationWrapperFactory.java @@ -13,6 +13,7 @@ import org.hibernate.cfg.Configuration; import org.hibernate.cfg.NamingStrategy; import org.hibernate.mapping.PersistentClass; +import org.hibernate.tool.api.reveng.RevengStrategy; import org.hibernate.tool.orm.jbt.util.JpaConfiguration; import org.hibernate.tool.orm.jbt.util.NativeConfiguration; import org.hibernate.tool.orm.jbt.util.RevengConfiguration; @@ -62,6 +63,7 @@ static interface ConfigurationWrapper extends Wrapper { SessionFactory buildSessionFactory(); Iterator getClassMappings(); void setPreferBasicCompositeIds(boolean b); + void setReverseEngineeringStrategy(RevengStrategy reverseEngineeringStrategy); } static class ConfigurationWrapperInvocationHandler implements InvocationHandler { diff --git a/jbt/src/test/java/org/hibernate/tool/orm/jbt/wrp/ConfigurationWrapperFactoryTest.java b/jbt/src/test/java/org/hibernate/tool/orm/jbt/wrp/ConfigurationWrapperFactoryTest.java index 99215f848c..71f6e18144 100644 --- a/jbt/src/test/java/org/hibernate/tool/orm/jbt/wrp/ConfigurationWrapperFactoryTest.java +++ b/jbt/src/test/java/org/hibernate/tool/orm/jbt/wrp/ConfigurationWrapperFactoryTest.java @@ -34,6 +34,8 @@ import org.hibernate.cfg.DefaultNamingStrategy; import org.hibernate.cfg.NamingStrategy; import org.hibernate.mapping.PersistentClass; +import org.hibernate.tool.api.reveng.RevengStrategy; +import org.hibernate.tool.internal.reveng.strategy.DefaultStrategy; import org.hibernate.tool.orm.jbt.util.JpaConfiguration; import org.hibernate.tool.orm.jbt.util.MetadataHelper; import org.hibernate.tool.orm.jbt.util.MockConnectionProvider; @@ -633,6 +635,37 @@ public void testSetPreferBasicCompositeIds() { } } + @Test + public void testSetReverseEngineeringStrategy() { + RevengStrategy reverseEngineeringStrategy = new DefaultStrategy(); + // For native configuration + try { + nativeConfigurationWrapper.setReverseEngineeringStrategy(reverseEngineeringStrategy); + fail(); + } catch (RuntimeException e) { + assertEquals( + e.getMessage(), + "Method 'setReverseEngineeringStrategy' should not be called on instances of " + NativeConfigurationWrapperImpl.class.getName()); + } + // For reveng configuration + assertNotSame( + reverseEngineeringStrategy, + ((RevengConfiguration)wrappedRevengConfiguration).getReverseEngineeringStrategy()); + revengConfigurationWrapper.setReverseEngineeringStrategy(reverseEngineeringStrategy); + assertSame( + reverseEngineeringStrategy, + ((RevengConfiguration)wrappedRevengConfiguration).getReverseEngineeringStrategy()); + // For jpa configuration + try { + jpaConfigurationWrapper.setReverseEngineeringStrategy(reverseEngineeringStrategy); + fail(); + } catch (RuntimeException e) { + assertEquals( + e.getMessage(), + "Method 'setReverseEngineeringStrategy' should not be called on instances of " + JpaConfigurationWrapperImpl.class.getName()); + } + } + private void createPersistenceXml() throws Exception { File metaInf = new File(tempRoot, "META-INF"); metaInf.mkdirs();