Skip to content

Commit e6a5db1

Browse files
yrodieremarko-bekhta
authored andcommitted
HSEARCH-3277 Avoid deprecated Hibernate ORM SPIs
1 parent f77ba8d commit e6a5db1

File tree

7 files changed

+24
-26
lines changed

7 files changed

+24
-26
lines changed

mapper/orm-batch-jsr352/core/src/main/java/org/hibernate/search/batch/jsr352/core/context/jpa/impl/ActiveSessionFactoryRegistryUpdater.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
package org.hibernate.search.batch.jsr352.core.context.jpa.impl;
88

99
import org.hibernate.boot.Metadata;
10+
import org.hibernate.boot.spi.BootstrapContext;
1011
import org.hibernate.engine.spi.SessionFactoryImplementor;
1112
import org.hibernate.integrator.spi.Integrator;
1213
import org.hibernate.service.spi.SessionFactoryServiceRegistry;
@@ -17,7 +18,8 @@
1718
public class ActiveSessionFactoryRegistryUpdater implements Integrator {
1819

1920
@Override
20-
public void integrate(Metadata metadata, SessionFactoryImplementor sessionFactory, SessionFactoryServiceRegistry serviceRegistry) {
21+
public void integrate(Metadata metadata, BootstrapContext bootstrapContext,
22+
SessionFactoryImplementor sessionFactory) {
2123
ActiveSessionFactoryRegistry.getInstance().register( sessionFactory );
2224
}
2325

mapper/orm-batch-jsr352/core/src/main/java/org/hibernate/search/batch/jsr352/core/massindexing/util/impl/PersistenceUtil.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import org.hibernate.StatelessSession;
1919
import org.hibernate.StatelessSessionBuilder;
2020
import org.hibernate.engine.spi.SessionFactoryImplementor;
21-
import org.hibernate.metamodel.spi.MetamodelImplementor;
21+
import org.hibernate.metamodel.MappingMetamodel;
2222
import org.hibernate.persister.entity.EntityPersister;
2323
import org.hibernate.search.batch.jsr352.core.massindexing.step.impl.IndexScope;
2424
import org.hibernate.search.util.common.impl.StringHelper;
@@ -95,15 +95,15 @@ public static IndexScope getIndexScope(String hql) {
9595
public static List<EntityTypeDescriptor> createDescriptors(EntityManagerFactory entityManagerFactory, Set<Class<?>> types) {
9696
SessionFactoryImplementor sessionFactory = entityManagerFactory.unwrap( SessionFactoryImplementor.class );
9797
List<EntityTypeDescriptor> result = new ArrayList<>( types.size() );
98-
MetamodelImplementor metamodel = sessionFactory.getMetamodel();
98+
MappingMetamodel metamodel = sessionFactory.getMetamodel();
9999
for ( Class<?> type : types ) {
100100
result.add( createDescriptor( metamodel, type ) );
101101
}
102102
return result;
103103
}
104104

105-
private static <T> EntityTypeDescriptor createDescriptor(MetamodelImplementor metamodel, Class<T> type) {
106-
EntityPersister entityPersister = metamodel.entityPersister( type );
105+
private static <T> EntityTypeDescriptor createDescriptor(MappingMetamodel metamodel, Class<T> type) {
106+
EntityPersister entityPersister = metamodel.findEntityDescriptor( type );
107107
IdOrder idOrder = createIdOrder( entityPersister );
108108
return new EntityTypeDescriptor( type, idOrder );
109109
}

mapper/orm/src/main/java/org/hibernate/search/mapper/orm/bootstrap/impl/HibernateSearchIntegrator.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
import org.hibernate.boot.Metadata;
1414
import org.hibernate.boot.spi.BootstrapContext;
15-
import org.hibernate.boot.spi.MetadataImplementor;
1615
import org.hibernate.engine.spi.SessionFactoryImplementor;
1716
import org.hibernate.integrator.spi.Integrator;
1817

@@ -30,19 +29,16 @@
3029
public class HibernateSearchIntegrator implements Integrator {
3130

3231
@Override
33-
public void integrate(Metadata metadata, SessionFactoryImplementor sessionFactory,
34-
SessionFactoryServiceRegistry serviceRegistry) {
32+
public void integrate(Metadata metadata, BootstrapContext bootstrapContext,
33+
SessionFactoryImplementor sessionFactory) {
3534
Optional<HibernateSearchPreIntegrationService> preIntegrationServiceOptional =
36-
HibernateOrmUtils.getServiceOrEmpty( serviceRegistry, HibernateSearchPreIntegrationService.class );
35+
HibernateOrmUtils.getServiceOrEmpty( bootstrapContext.getServiceRegistry(), HibernateSearchPreIntegrationService.class );
3736

3837
if ( !preIntegrationServiceOptional.isPresent() ) {
3938
// Hibernate Search is disabled
4039
return;
4140
}
4241

43-
// TODO When we'll move to Hibernate ORM 6, use the bootstrapContext parameter passed to the integrate() method
44-
BootstrapContext bootstrapContext = ( (MetadataImplementor) metadata ).getTypeConfiguration()
45-
.getMetadataBuildingContext().getBootstrapContext();
4642
HibernateOrmIntegrationBooterImpl booter = new HibernateOrmIntegrationBooterImpl.BuilderImpl( metadata, bootstrapContext )
4743
.build();
4844
// Orchestrate bootstrap and shutdown

mapper/orm/src/main/java/org/hibernate/search/mapper/orm/common/impl/HibernateOrmUtils.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import org.hibernate.engine.spi.SessionFactoryImplementor;
2222
import org.hibernate.engine.spi.SessionImplementor;
2323
import org.hibernate.mapping.Property;
24-
import org.hibernate.metamodel.spi.MetamodelImplementor;
24+
import org.hibernate.metamodel.MappingMetamodel;
2525
import org.hibernate.persister.entity.EntityPersister;
2626
import org.hibernate.search.mapper.orm.logging.impl.Log;
2727
import org.hibernate.search.util.common.annotation.impl.SuppressForbiddenApis;
@@ -77,12 +77,12 @@ public static EntityPersister toRootEntityType(SessionFactoryImplementor session
7777
* where A and C are entity types and B is a mapped superclass.
7878
* So we need to exclude non-entity types, and for that we need the Hibernate ORM metamodel.
7979
*/
80-
MetamodelImplementor metamodel = sessionFactory.getMetamodel();
80+
MappingMetamodel metamodel = sessionFactory.getMetamodel();
8181
String rootEntityName = entityType.getRootEntityName();
82-
return metamodel.entityPersister( rootEntityName );
82+
return metamodel.getEntityDescriptor( rootEntityName );
8383
}
8484

85-
public static EntityPersister toMostSpecificCommonEntitySuperType(MetamodelImplementor metamodel,
85+
public static EntityPersister toMostSpecificCommonEntitySuperType(MappingMetamodel metamodel,
8686
EntityPersister type1, EntityPersister type2) {
8787
/*
8888
* We need to rely on Hibernate ORM's SPIs: this is complex stuff.
@@ -95,7 +95,7 @@ public static EntityPersister toMostSpecificCommonEntitySuperType(MetamodelImple
9595
while ( superTypeCandidate != null && !isSuperTypeOf( superTypeCandidate, type2 ) ) {
9696
String superSuperTypeEntityName = superTypeCandidate.getEntityMetamodel().getSuperclass();
9797
superTypeCandidate = superSuperTypeEntityName == null ? null
98-
: metamodel.entityPersister( superSuperTypeEntityName ).getEntityPersister();
98+
: metamodel.getEntityDescriptor( superSuperTypeEntityName ).getEntityPersister();
9999
}
100100
if ( superTypeCandidate == null ) {
101101
throw new AssertionFailure(
@@ -116,10 +116,10 @@ public static boolean targetsAllConcreteSubTypes(SessionFactoryImplementor sessi
116116
return true;
117117
}
118118

119-
MetamodelImplementor metamodel = sessionFactory.getMetamodel();
119+
MappingMetamodel metamodel = sessionFactory.getMetamodel();
120120
int concreteSubTypesCount = 0;
121121
for ( String subClassEntityName : subClassEntityNames ) {
122-
if ( !metamodel.entityPersister( subClassEntityName ).getEntityMetamodel().isAbstract() ) {
122+
if ( !metamodel.getEntityDescriptor( subClassEntityName ).getEntityMetamodel().isAbstract() ) {
123123
++concreteSubTypesCount;
124124
}
125125
}

mapper/orm/src/main/java/org/hibernate/search/mapper/orm/loading/impl/HibernateOrmEntityIdEntityLoadingStrategy.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import org.hibernate.AssertionFailure;
1313
import org.hibernate.engine.spi.SessionFactoryImplementor;
1414
import org.hibernate.engine.spi.SessionImplementor;
15-
import org.hibernate.metamodel.spi.MetamodelImplementor;
15+
import org.hibernate.metamodel.MappingMetamodel;
1616
import org.hibernate.persister.entity.EntityPersister;
1717
import org.hibernate.search.mapper.orm.common.impl.HibernateOrmUtils;
1818
import org.hibernate.search.mapper.orm.search.loading.EntityLoadingCacheLookupStrategy;
@@ -149,7 +149,7 @@ private PojoSelectionEntityLoader<?> doCreate(EntityPersister entityPersister,
149149

150150
private static EntityPersister toMostSpecificCommonEntitySuperType(SessionImplementor session,
151151
Iterable<? extends LoadingTypeContext<?>> targetEntityTypeContexts) {
152-
MetamodelImplementor metamodel = session.getSessionFactory().getMetamodel();
152+
MappingMetamodel metamodel = session.getSessionFactory().getMetamodel();
153153
EntityPersister result = null;
154154
for ( LoadingTypeContext<?> targetTypeContext : targetEntityTypeContexts ) {
155155
EntityPersister type = targetTypeContext.entityPersister();

mapper/orm/src/main/java/org/hibernate/search/mapper/orm/loading/impl/TypeQueryFactory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import org.hibernate.engine.spi.SessionImplementor;
1515
import org.hibernate.engine.spi.SharedSessionContractImplementor;
1616
import org.hibernate.metamodel.model.domain.EntityDomainType;
17-
import org.hibernate.metamodel.spi.MetamodelImplementor;
17+
import org.hibernate.metamodel.model.domain.JpaMetamodel;
1818
import org.hibernate.persister.entity.EntityPersister;
1919
import org.hibernate.query.Query;
2020
import org.hibernate.search.mapper.orm.massindexing.impl.ConditionalExpression;
@@ -23,7 +23,7 @@ public interface TypeQueryFactory<E, I> {
2323

2424
static TypeQueryFactory<?, ?> create(SessionFactoryImplementor sessionFactory, EntityPersister entityPersister,
2525
String uniquePropertyName) {
26-
MetamodelImplementor metamodel = sessionFactory.getMetamodel();
26+
JpaMetamodel metamodel = sessionFactory.getMetamodel();
2727
EntityDomainType<?> typeOrNull = metamodel.entity( entityPersister.getEntityName() );
2828
if ( typeOrNull != null && !( entityPersister.getMappedClass().equals( Map.class ) ) ) {
2929
return CriteriaTypeQueryFactory.create( typeOrNull, uniquePropertyName );

mapper/orm/src/main/java/org/hibernate/search/mapper/orm/mapping/impl/AbstractHibernateOrmTypeContext.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import java.util.stream.Collectors;
1111

1212
import org.hibernate.engine.spi.SessionFactoryImplementor;
13-
import org.hibernate.metamodel.spi.MetamodelImplementor;
13+
import org.hibernate.metamodel.MappingMetamodel;
1414
import org.hibernate.persister.entity.EntityPersister;
1515
import org.hibernate.search.mapper.orm.event.impl.HibernateOrmListenerTypeContext;
1616
import org.hibernate.search.mapper.orm.loading.impl.HibernateOrmEntityIdEntityLoadingStrategy;
@@ -43,8 +43,8 @@ abstract class AbstractHibernateOrmTypeContext<E>
4343
AbstractHibernateOrmTypeContext(AbstractBuilder<E> builder, SessionFactoryImplementor sessionFactory) {
4444
this.typeIdentifier = builder.typeIdentifier;
4545
this.jpaEntityName = builder.jpaEntityName;
46-
MetamodelImplementor metamodel = sessionFactory.getMetamodel();
47-
this.entityPersister = metamodel.entityPersister( builder.hibernateOrmEntityName );
46+
MappingMetamodel metamodel = sessionFactory.getMetamodel();
47+
this.entityPersister = metamodel.getEntityDescriptor( builder.hibernateOrmEntityName );
4848
this.ascendingSuperTypes = builder.ascendingSuperTypes;
4949
if ( builder.documentIdSourcePropertyName != null ) {
5050
if ( builder.documentIdSourcePropertyName.equals( entityPersister().getIdentifierPropertyName() ) ) {

0 commit comments

Comments
 (0)