Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HBX-2873: Replace use of deprecated classes 'org.hibernate.cfg.NamingStrategy' and 'org.hibernate.cfg.DefaultNamingStrategy' #4887

Merged
merged 1 commit into from
Jul 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
import java.util.Map;
import java.util.Properties;

import org.hibernate.boot.model.naming.ImplicitNamingStrategy;
import org.hibernate.cfg.Configuration;
import org.hibernate.cfg.NamingStrategy;
import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.Table;
import org.hibernate.tool.api.reveng.RevengStrategy;
Expand Down Expand Up @@ -89,7 +89,7 @@ public void setEntityResolver(EntityResolver entityResolver) {
@Override
public void setNamingStrategy(NamingStrategyWrapper namingStrategyWrapper) {
if (wrappedConfiguration instanceof ExtendedConfiguration) {
((ExtendedConfiguration)wrappedConfiguration).setNamingStrategy((NamingStrategy)namingStrategyWrapper.getWrappedObject());
((ExtendedConfiguration)wrappedConfiguration).setNamingStrategy((ImplicitNamingStrategy)namingStrategyWrapper.getWrappedObject());
}
}

Expand Down Expand Up @@ -192,7 +192,7 @@ public PersistentClassWrapper getClassMapping(String string) {

@Override
public NamingStrategyWrapper getNamingStrategy() {
NamingStrategy namingStrategy = null;
ImplicitNamingStrategy namingStrategy = null;
if (wrappedConfiguration instanceof ExtendedConfiguration) {
namingStrategy = ((ExtendedConfiguration)wrappedConfiguration).getNamingStrategy();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,32 +1,40 @@
package org.hibernate.tool.orm.jbt.internal.factory;

import org.hibernate.cfg.NamingStrategy;
import org.hibernate.boot.model.naming.EntityNaming;
import org.hibernate.boot.model.naming.Identifier;
import org.hibernate.boot.model.naming.ImplicitBasicColumnNameSource;
import org.hibernate.boot.model.naming.ImplicitCollectionTableNameSource;
import org.hibernate.boot.model.naming.ImplicitEntityNameSource;
import org.hibernate.boot.model.naming.ImplicitNamingStrategy;
import org.hibernate.boot.model.naming.ImplicitPrimaryKeyJoinColumnNameSource;
import org.hibernate.boot.model.source.spi.AttributePath;
import org.hibernate.boot.spi.MetadataBuildingContext;
import org.hibernate.tool.orm.jbt.api.wrp.NamingStrategyWrapper;
import org.hibernate.tool.orm.jbt.internal.util.ReflectUtil;
import org.hibernate.tool.orm.jbt.internal.wrp.AbstractWrapper;

public class NamingStrategyWrapperFactory {

public static NamingStrategyWrapper createNamingStrategyWrapper(String className) {
return createNamingStrategyWrapper((NamingStrategy)ReflectUtil.createInstance(className));
return createNamingStrategyWrapper((ImplicitNamingStrategy)ReflectUtil.createInstance(className));
}

static NamingStrategyWrapper createNamingStrategyWrapper(NamingStrategy wrappedNamingStrategy) {
static NamingStrategyWrapper createNamingStrategyWrapper(ImplicitNamingStrategy wrappedNamingStrategy) {
return new NamingStrategyWrapperImpl(wrappedNamingStrategy);
}

private static class NamingStrategyWrapperImpl
extends AbstractWrapper
implements NamingStrategyWrapper {

private NamingStrategy namingStrategy = null;
private ImplicitNamingStrategy namingStrategy = null;

private NamingStrategyWrapperImpl(NamingStrategy namingStrategy) {
private NamingStrategyWrapperImpl(ImplicitNamingStrategy namingStrategy) {
this.namingStrategy = namingStrategy;
}

@Override
public NamingStrategy getWrappedObject() {
public ImplicitNamingStrategy getWrappedObject() {
return namingStrategy;
}

Expand All @@ -37,41 +45,69 @@ public String collectionTableName(
String associatedEntity,
String associatedEntityTable,
String propertyName) {
return ((NamingStrategy)getWrappedObject()).collectionTableName(
ownerEntity,
ownerEntityTable,
associatedEntity,
associatedEntityTable,
propertyName);
ImplicitCollectionTableNameSource ictns = new ImplicitCollectionTableNameSource() {
@Override public MetadataBuildingContext getBuildingContext() { return null; }
@Override public Identifier getOwningPhysicalTableName() { return Identifier.toIdentifier(ownerEntityTable); }
@Override public AttributePath getOwningAttributePath() { return AttributePath.parse(propertyName); }
@Override
public EntityNaming getOwningEntityNaming() {
return new EntityNaming() {
@Override public String getJpaEntityName() { return ownerEntity; }
@Override public String getEntityName() { return ownerEntity; }
@Override public String getClassName() { return ownerEntity; }
};
}
};
return ((ImplicitNamingStrategy)getWrappedObject()).determineCollectionTableName(ictns).getText();
}

@Override
public String columnName(String name) {
return ((NamingStrategy)getWrappedObject()).columnName(name);
ImplicitBasicColumnNameSource ibcns = new ImplicitBasicColumnNameSource() {
@Override public MetadataBuildingContext getBuildingContext() { return null; }
@Override public AttributePath getAttributePath() { return AttributePath.parse(name); }
@Override public boolean isCollectionElement() { return false; }
};
return ((ImplicitNamingStrategy)getWrappedObject()).determineBasicColumnName(ibcns).getText();
}

@Override
public String propertyToColumnName(String name) {
return ((NamingStrategy)getWrappedObject()).propertyToColumnName(name);
return columnName(name);
}

@Override
public String tableName(String name) {
return ((NamingStrategy)getWrappedObject()).tableName(name);
ImplicitEntityNameSource iens = new ImplicitEntityNameSource() {
@Override public MetadataBuildingContext getBuildingContext() { return null; }
@Override
public EntityNaming getEntityNaming() {
return new EntityNaming() {
@Override public String getJpaEntityName() { return name; }
@Override public String getEntityName() { return name; }
@Override public String getClassName() { return name; }
};
}
};
return ((ImplicitNamingStrategy)getWrappedObject()).determinePrimaryTableName(iens).getText();
}

@Override
public String classToTableName(String name) {
return tableName(name);
}

@Override
public String joinKeyColumnName(
String primaryKeyColumnName,
String primaryTableName) {
return ((NamingStrategy)getWrappedObject()).joinKeyColumnName(
primaryKeyColumnName,
primaryTableName);
}

@Override
public String classToTableName(String name) {
return ((NamingStrategy)getWrappedObject()).classToTableName(name);
ImplicitPrimaryKeyJoinColumnNameSource ipkjcns = new ImplicitPrimaryKeyJoinColumnNameSource() {
@Override public MetadataBuildingContext getBuildingContext() { return null; }
@Override public Identifier getReferencedTableName() { return Identifier.toIdentifier(primaryTableName); }
@Override public Identifier getReferencedPrimaryKeyColumnName() { return Identifier.toIdentifier(primaryKeyColumnName); }
};
return ((ImplicitNamingStrategy)getWrappedObject()).determinePrimaryKeyJoinColumnName(ipkjcns).getText();

}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

import java.util.Iterator;

import org.hibernate.boot.model.naming.ImplicitNamingStrategy;
import org.hibernate.cfg.Configuration;
import org.hibernate.cfg.NamingStrategy;
import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.Table;
import org.hibernate.tool.api.reveng.RevengStrategy;
Expand All @@ -14,7 +14,7 @@ public interface ExtendedConfiguration {

void setEntityResolver(EntityResolver entityResolver);

void setNamingStrategy(NamingStrategy namingStrategy);
void setNamingStrategy(ImplicitNamingStrategy namingStrategy);

Configuration configure(Document document);

Expand All @@ -30,7 +30,7 @@ public interface ExtendedConfiguration {

PersistentClass getClassMapping(String string);

NamingStrategy getNamingStrategy();
ImplicitNamingStrategy getNamingStrategy();

EntityResolver getEntityResolver();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,12 @@

import org.hibernate.SessionFactory;
import org.hibernate.boot.Metadata;
import org.hibernate.boot.model.naming.ImplicitNamingStrategy;
import org.hibernate.cfg.Configuration;
import org.hibernate.cfg.NamingStrategy;
import org.hibernate.engine.spi.SessionFactoryImplementor;
import org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl;
import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.Table;
import org.hibernate.tool.api.reveng.RevengStrategy;
import org.hibernate.tool.orm.jbt.api.wrp.SessionFactoryWrapper;
import org.hibernate.tool.orm.jbt.internal.factory.SessionFactoryWrapperFactory;
import org.w3c.dom.Document;
import org.xml.sax.EntityResolver;

Expand Down Expand Up @@ -111,7 +108,7 @@ public void setEntityResolver(EntityResolver entityResolver) {
this.getClass().getName());
}

public void setNamingStrategy(NamingStrategy namingStrategy) {
public void setNamingStrategy(ImplicitNamingStrategy namingStrategy) {
throw new RuntimeException(
"Method 'setNamingStrategy' should not be called on instances of " +
this.getClass().getName());
Expand Down Expand Up @@ -145,7 +142,7 @@ public Iterator<Table> getTableMappings() {
return getMetadata().collectTableMappings().iterator();
}

public NamingStrategy getNamingStrategy() {
public ImplicitNamingStrategy getNamingStrategy() {
throw new RuntimeException(
"Method 'getNamingStrategy' should not be called on instances of " +
this.getClass().getName());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@

import org.hibernate.boot.Metadata;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.model.naming.ImplicitNamingStrategy;
import org.hibernate.cfg.Configuration;
import org.hibernate.cfg.NamingStrategy;
import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.Table;
import org.hibernate.tool.api.reveng.RevengStrategy;
Expand All @@ -28,7 +28,7 @@ public class NativeConfiguration extends Configuration implements ExtendedConfig
private EntityResolver entityResolver = null;

@SuppressWarnings("unused")
private NamingStrategy namingStrategy = null;
private ImplicitNamingStrategy namingStrategy = null;

private Metadata metadata = null;

Expand All @@ -44,7 +44,7 @@ public EntityResolver getEntityResolver() {
return entityResolver;
}

public void setNamingStrategy(NamingStrategy namingStrategy) {
public void setNamingStrategy(ImplicitNamingStrategy namingStrategy) {
// The method Configuration.setNamingStrategy() is not supported
// anymore from Hibernate 5+.
// Naming strategies can be configured using the
Expand All @@ -53,7 +53,7 @@ public void setNamingStrategy(NamingStrategy namingStrategy) {
this.namingStrategy = namingStrategy;
}

public NamingStrategy getNamingStrategy() {
public ImplicitNamingStrategy getNamingStrategy() {
// This method is not supported anymore from Hibernate 5+
// Returning the cached NamingStrategy for bookkeeping purposes
return namingStrategy;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@

import org.hibernate.SessionFactory;
import org.hibernate.boot.Metadata;
import org.hibernate.boot.model.naming.ImplicitNamingStrategy;
import org.hibernate.cfg.Configuration;
import org.hibernate.cfg.NamingStrategy;
import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.Table;
import org.hibernate.tool.api.metadata.MetadataConstants;
Expand Down Expand Up @@ -93,7 +93,7 @@ public void setEntityResolver(EntityResolver entityResolver) {
this.getClass().getName());
}

public void setNamingStrategy(NamingStrategy namingStrategy) {
public void setNamingStrategy(ImplicitNamingStrategy namingStrategy) {
throw new RuntimeException(
"Method 'setNamingStrategy' should not be called on instances of " +
this.getClass().getName());
Expand Down Expand Up @@ -129,7 +129,7 @@ public SessionFactory buildSessionFactory() {
this.getClass().getName());
}

public NamingStrategy getNamingStrategy() {
public ImplicitNamingStrategy getNamingStrategy() {
throw new RuntimeException(
"Method 'getNamingStrategy' should not be called on instances of " +
this.getClass().getName());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
import java.util.Properties;

import org.hibernate.boot.Metadata;
import org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl;
import org.hibernate.cfg.Configuration;
import org.hibernate.cfg.DefaultNamingStrategy;
import org.hibernate.mapping.Any;
import org.hibernate.mapping.Array;
import org.hibernate.mapping.Bag;
Expand Down Expand Up @@ -101,11 +101,11 @@ public void testCreateCfg2HbmWrapper() {

@Test
public void testCreateNamingStrategyWrapper() {
Object namingStrategyWrapper = WrapperFactory.createNamingStrategyWrapper(DefaultNamingStrategy.class.getName());
Object namingStrategyWrapper = WrapperFactory.createNamingStrategyWrapper(ImplicitNamingStrategyJpaCompliantImpl.class.getName());
assertNotNull(namingStrategyWrapper);
assertTrue(namingStrategyWrapper instanceof NamingStrategyWrapper);
Object wrappedNamingStrategy = ((NamingStrategyWrapper)namingStrategyWrapper).getWrappedObject();
assertTrue(wrappedNamingStrategy instanceof DefaultNamingStrategy);
assertTrue(wrappedNamingStrategy instanceof ImplicitNamingStrategyJpaCompliantImpl);
namingStrategyWrapper = null;
assertNull(namingStrategyWrapper);
try {
Expand Down Expand Up @@ -504,9 +504,6 @@ public void testCreateHqlCodeAssistWrapper() throws Exception {

}

@SuppressWarnings("serial")
public static class TestNamingStrategy extends DefaultNamingStrategy {}

public static class TestRevengStrategy extends DefaultStrategy {}
public static class TestDelegatingStrategy extends DelegatingStrategy {
public TestDelegatingStrategy(RevengStrategy delegate) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@
import org.hibernate.boot.Metadata;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.jaxb.spi.Binding;
import org.hibernate.boot.model.naming.ImplicitNamingStrategy;
import org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl;
import org.hibernate.cfg.AvailableSettings;
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.orm.jbt.internal.factory.ConfigurationWrapperFactory;
Expand Down Expand Up @@ -251,8 +251,8 @@ public void testSetEntityResolver() throws Exception {
@Test
public void testSetNamingStrategy() throws Exception {
NamingStrategyWrapper namingStrategyWrapper =
NamingStrategyWrapperFactory.createNamingStrategyWrapper(DefaultNamingStrategy.class.getName());
NamingStrategy namingStrategy = (NamingStrategy)namingStrategyWrapper.getWrappedObject();
NamingStrategyWrapperFactory.createNamingStrategyWrapper(ImplicitNamingStrategyJpaCompliantImpl.class.getName());
ImplicitNamingStrategy namingStrategy = (ImplicitNamingStrategy)namingStrategyWrapper.getWrappedObject();
// For native configuration
Field namingStrategyField = wrappedNativeConfiguration.getClass().getDeclaredField("namingStrategy");
namingStrategyField.setAccessible(true);
Expand Down Expand Up @@ -739,7 +739,7 @@ public void testGetClassMapping() throws Exception {
@Test
public void testGetNamingStrategy() {
// For native configuration
NamingStrategy namingStrategy = new DefaultNamingStrategy();
ImplicitNamingStrategy namingStrategy = new ImplicitNamingStrategyJpaCompliantImpl();
assertNull(nativeConfigurationWrapper.getNamingStrategy());
((NativeConfiguration)wrappedNativeConfiguration).setNamingStrategy(namingStrategy);
assertSame(nativeConfigurationWrapper.getNamingStrategy().getWrappedObject(), namingStrategy);
Expand Down
Loading
Loading