diff --git a/build/config/pom.xml b/build/config/pom.xml index e43d84d2f5a..879fe8a49ac 100644 --- a/build/config/pom.xml +++ b/build/config/pom.xml @@ -96,11 +96,6 @@ jakarta.persistence:jakarta.persistence-api true - - ${version.org.hibernate.models} - org.hibernate.models:hibernate-models - true - @@ -232,6 +227,7 @@ This would mean that a corresponding pattern will only be applied to filtering of internal/public rules. If no prefix is specified then rule is considered to be both public and internal at the same time. --> + ^org\.hibernate\.query\.Query$ ^org\.hibernate\.query\.SelectionQuery$ ^org\.hibernate\.query\.MutationQuery$ @@ -243,6 +239,7 @@ ^org\.hibernate\.metamodel\.mapping\.SelectableMapping$ ^org\.hibernate\.metamodel\.mapping\.SelectablePath$ ^org\.hibernate\.metamodel\.model\.domain\.JpaMetamodel$ + ^org\.hibernate\.metamodel\.model\.domain\.NavigableRole$ ^org\.hibernate\.boot\.spi\.BootstrapContext\b.*+$ ^org\.hibernate\.boot\.spi\.AdditionalMappingContributor$ diff --git a/build/parents/build/pom.xml b/build/parents/build/pom.xml index ea3b8f7660f..8b043a4595e 100644 --- a/build/parents/build/pom.xml +++ b/build/parents/build/pom.xml @@ -94,8 +94,7 @@ NOTE: when Hibernate ORM updates Byte Buddy, make sure to check Jenkinsfile to see if `net.bytebuddy.experimental` property can be removed. --> - 7.0.0.CR1 - 1.0.0.CR1 + 7.0.0.Final https://docs.jboss.org/hibernate/orm/${parsed-version.org.hibernate.orm.majorVersion}.${parsed-version.org.hibernate.orm.minorVersion}/javadocs/ https://docs.jboss.org/hibernate/orm/${parsed-version.org.hibernate.orm.majorVersion}.${parsed-version.org.hibernate.orm.minorVersion}/userguide/html_single/Hibernate_User_Guide.html @@ -407,11 +406,6 @@ jboss-logging ${version.org.jboss.logging.jboss-logging} - - org.hibernate.models - hibernate-models-jandex - ${version.org.hibernate.models} - diff --git a/engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/ClassResolver.java b/engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/ClassResolver.java index a13cae9ae32..8407f98120d 100644 --- a/engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/ClassResolver.java +++ b/engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/ClassResolver.java @@ -4,8 +4,6 @@ */ package org.hibernate.search.engine.environment.classpath.spi; -import java.net.URL; -import java.util.Collection; import org.hibernate.search.util.common.annotation.Incubating; @@ -37,24 +35,4 @@ public interface ClassResolver { @Incubating Package packageForName(String packageName); - /** - * Locate a resource by name - * - * @param resourceName The name of the resource to resolve - * @return The located resource; - * may return {@code null} to indicate the resource was not found - */ - @Incubating - URL locateResource(String resourceName); - - /** - * Discovers and instantiates implementations of the given {@link java.util.ServiceLoader Java service} contract. - * - * @param serviceType The java type defining the service contract - * @param The type of the service contract - * - * @return The ordered set of discovered services. - */ - @Incubating - Collection loadJavaServices(Class serviceType); } diff --git a/engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/DefaultClassResolver.java b/engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/DefaultClassResolver.java index f21d99c7430..2dd77476dc9 100644 --- a/engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/DefaultClassResolver.java +++ b/engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/DefaultClassResolver.java @@ -4,15 +4,9 @@ */ package org.hibernate.search.engine.environment.classpath.spi; -import java.net.URL; -import java.util.Collection; -import java.util.HashSet; -import java.util.Iterator; -import java.util.ServiceLoader; -import java.util.Set; import org.hibernate.search.engine.logging.impl.EngineMiscLog; - +import org.hibernate.search.util.common.annotation.Incubating; /** * Default implementation of {@code ClassResolver} relying on an {@link AggregatedClassLoader}. @@ -52,27 +46,8 @@ public Package packageForName(String packageName) { } } - @Override - public URL locateResource(String resourceName) { - try { - return aggregatedClassLoader.getResource( resourceName ); - } - catch (Exception e) { - return null; - } + @Incubating + public AggregatedClassLoader aggregatedClassLoader() { + return aggregatedClassLoader; } - - @Override - public Collection loadJavaServices(Class serviceType) { - ServiceLoader loadedServices = ServiceLoader.load( serviceType, aggregatedClassLoader ); - Iterator iterator = loadedServices.iterator(); - Set services = new HashSet<>(); - - while ( iterator.hasNext() ) { - services.add( iterator.next() ); - } - - return services; - } - } diff --git a/engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/DefaultResourceResolver.java b/engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/DefaultResourceResolver.java index 320d2cb7cb5..cfb5bff08c9 100644 --- a/engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/DefaultResourceResolver.java +++ b/engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/DefaultResourceResolver.java @@ -69,4 +69,14 @@ public InputStream locateResourceStream(String name) { return null; } + @Override + public URL locateResource(String resourceName) { + try { + return aggregatedClassLoader.getResource( resourceName ); + } + catch (Exception e) { + return null; + } + } + } diff --git a/engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/ResourceResolver.java b/engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/ResourceResolver.java index 670de8b999f..7a6b0c4996d 100644 --- a/engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/ResourceResolver.java +++ b/engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/ResourceResolver.java @@ -5,6 +5,9 @@ package org.hibernate.search.engine.environment.classpath.spi; import java.io.InputStream; +import java.net.URL; + +import org.hibernate.search.util.common.annotation.Incubating; /** * A resolver of Java resources. @@ -22,4 +25,14 @@ public interface ResourceResolver { * @return The stream of the located resource; may return {@code null} to indicate the resource was not found */ InputStream locateResourceStream(String name); + + /** + * Locate a resource by name + * + * @param resourceName The name of the resource to resolve + * @return The located resource; + * may return {@code null} to indicate the resource was not found + */ + @Incubating + URL locateResource(String resourceName); } diff --git a/mapper/orm-outbox-polling/src/main/java/org/hibernate/search/mapper/orm/outboxpolling/event/impl/OutboxEventLoader.java b/mapper/orm-outbox-polling/src/main/java/org/hibernate/search/mapper/orm/outboxpolling/event/impl/OutboxEventLoader.java index 4a8a4a3733c..2c2731551fd 100644 --- a/mapper/orm-outbox-polling/src/main/java/org/hibernate/search/mapper/orm/outboxpolling/event/impl/OutboxEventLoader.java +++ b/mapper/orm-outbox-polling/src/main/java/org/hibernate/search/mapper/orm/outboxpolling/event/impl/OutboxEventLoader.java @@ -15,7 +15,6 @@ import jakarta.persistence.PessimisticLockException; import org.hibernate.LockMode; -import org.hibernate.LockOptions; import org.hibernate.Session; import org.hibernate.dialect.Dialect; import org.hibernate.query.Query; @@ -27,7 +26,7 @@ final class OutboxEventLoader implements ToStringTreeAppendable { private static final String LOAD_QUERY_STRING = "select e from " + ENTITY_NAME + " e where e.id in (:ids)"; - private final LockOptions lockOptions; + private final LockMode lockMode; OutboxEventLoader(Dialect dialect) { // HSEARCH-4289: some databases encounter deadlocks when multiple processors query or delete events @@ -46,7 +45,7 @@ final class OutboxEventLoader implements ToStringTreeAppendable { // so we can afford to just skip events that are already locked, // and process them later when they are no longer locked. if ( dialect.supportsSkipLocked() ) { - lockOptions = new LockOptions( LockMode.UPGRADE_SKIPLOCKED ); + lockMode = LockMode.UPGRADE_SKIPLOCKED; } // If LockMode.UPGRADE_SKIPLOCKED is not supported, we just do basic locking and hope for the best // (in particular we hope for transaction deadlocks to be detected by the database and result in a failure, @@ -57,7 +56,7 @@ final class OutboxEventLoader implements ToStringTreeAppendable { // so as long as we target a distinct set of events in each processor (we do), // locking shouldn't trigger any deadlocks. else { - lockOptions = new LockOptions( LockMode.PESSIMISTIC_WRITE ); + lockMode = LockMode.PESSIMISTIC_WRITE; } } @@ -69,8 +68,7 @@ public String toString() { @Override public void appendTo(ToStringTreeAppender appender) { appender.startObject( "lockOptions" ) - .attribute( "lockMode", lockOptions.getLockMode() ) - .attribute( "timeout", lockOptions.getTimeOut() ) + .attribute( "lockMode", lockMode ) .endObject(); } @@ -78,7 +76,7 @@ List loadLocking(Session session, Set ids, String processorNa try { Query query = session.createQuery( LOAD_QUERY_STRING, OutboxEvent.class ); query.setParameter( "ids", ids ); - query.setLockOptions( lockOptions ); + query.setHibernateLockMode( lockMode ); return query.getResultList(); } catch (PessimisticLockException | OptimisticLockException lockException) { diff --git a/mapper/orm/pom.xml b/mapper/orm/pom.xml index 011e38ad45a..413461ca826 100644 --- a/mapper/orm/pom.xml +++ b/mapper/orm/pom.xml @@ -41,10 +41,6 @@ org.hibernate.models hibernate-models - - org.hibernate.models - hibernate-models-jandex - jakarta.persistence jakarta.persistence-api diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/bootstrap/impl/HibernateOrmClassLoaderServiceClassAndResourceAndServiceResolver.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/bootstrap/impl/HibernateOrmClassLoaderServiceClassAndResourceAndServiceResolver.java index 9eb37b56ed9..1e69509dae7 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/bootstrap/impl/HibernateOrmClassLoaderServiceClassAndResourceAndServiceResolver.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/bootstrap/impl/HibernateOrmClassLoaderServiceClassAndResourceAndServiceResolver.java @@ -86,7 +86,7 @@ public URL locateResource(String resourceName) { // ignore } if ( url == null ) { - url = internalClassResolver.locateResource( resourceName ); + url = internalResourceResolver.locateResource( resourceName ); } return url; } diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/loading/impl/HibernateOrmMassEntityLoader.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/loading/impl/HibernateOrmMassEntityLoader.java index 1d0e503a409..d35e8c6edfb 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/loading/impl/HibernateOrmMassEntityLoader.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/loading/impl/HibernateOrmMassEntityLoader.java @@ -6,7 +6,7 @@ import java.util.List; -import org.hibernate.LockOptions; +import org.hibernate.LockMode; import org.hibernate.engine.spi.SessionImplementor; import org.hibernate.query.QueryFlushMode; import org.hibernate.search.mapper.orm.common.spi.TransactionHelper; @@ -57,7 +57,7 @@ public void load(List identifiers) throws InterruptedException { private List multiLoad(List identifiers) { return typeQueryLoader.createMultiIdentifierLoadAccess( session ) .with( options.cacheMode() ) - .with( LockOptions.NONE ) + .with( LockMode.NONE ) .multiLoad( identifiers ); } @@ -65,7 +65,7 @@ private List queryByIds(List identifiers) { return typeQueryLoader.createLoadingQuery( session, ID_PARAMETER_NAME ) .setParameter( ID_PARAMETER_NAME, identifiers ) .setCacheMode( options.cacheMode() ) - .setLockOptions( LockOptions.NONE ) + .setHibernateLockMode( LockMode.NONE ) .setCacheable( false ) .setQueryFlushMode( QueryFlushMode.NO_FLUSH ) .setFetchSize( identifiers.size() ) diff --git a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/search/query/impl/HibernateOrmSearchQueryAdapter.java b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/search/query/impl/HibernateOrmSearchQueryAdapter.java index abfbc8ddb28..ebbde2f93ae 100644 --- a/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/search/query/impl/HibernateOrmSearchQueryAdapter.java +++ b/mapper/orm/src/main/java/org/hibernate/search/mapper/orm/search/query/impl/HibernateOrmSearchQueryAdapter.java @@ -289,7 +289,9 @@ public LockModeType getLockMode() { throw lockOptionsNotSupported(); } + @Deprecated(since = "8.0") @Override + @SuppressWarnings("removal") public LockOptions getLockOptions() { /* * Ideally we'd throw an UnsupportedOperationException, diff --git a/mapper/orm/src/test/java/org/hibernate/search/mapper/orm/model/impl/AbstractHibernateOrmBootstrapIntrospectorPerReflectionStrategyTest.java b/mapper/orm/src/test/java/org/hibernate/search/mapper/orm/model/impl/AbstractHibernateOrmBootstrapIntrospectorPerReflectionStrategyTest.java index a793d4a2ccd..3b0e1b7cbef 100644 --- a/mapper/orm/src/test/java/org/hibernate/search/mapper/orm/model/impl/AbstractHibernateOrmBootstrapIntrospectorPerReflectionStrategyTest.java +++ b/mapper/orm/src/test/java/org/hibernate/search/mapper/orm/model/impl/AbstractHibernateOrmBootstrapIntrospectorPerReflectionStrategyTest.java @@ -22,7 +22,7 @@ import org.hibernate.boot.spi.MetadataImplementor; import org.hibernate.cfg.AvailableSettings; import org.hibernate.dialect.H2Dialect; -import org.hibernate.models.internal.BasicModelsContextImpl; +import org.hibernate.models.spi.ModelsConfiguration; import org.hibernate.models.spi.ModelsContext; import org.hibernate.search.util.common.impl.Closer; import org.hibernate.search.util.common.reflect.spi.ValueHandleFactory; @@ -78,12 +78,9 @@ public static ModelsContext createModelBuildingContext(BootstrapContext bootstra ClassLoaderService classLoaderService = getServiceOrEmpty( bootstrapContext.getServiceRegistry(), ClassLoaderService.class ) .orElseThrow(); - ClassLoaderServiceLoading classLoading = new ClassLoaderServiceLoading( classLoaderService ); - return new BasicModelsContextImpl( - classLoading, - ModelsHelper::preFillRegistries - ); + return new ModelsConfiguration() + .setClassLoading( new ClassLoaderServiceLoading( classLoaderService ) ) + .setRegistryPrimer( ModelsHelper::preFillRegistries ) + .bootstrap(); } - - } diff --git a/mapper/pojo-base/pom.xml b/mapper/pojo-base/pom.xml index 5625622027d..4abebc34dea 100644 --- a/mapper/pojo-base/pom.xml +++ b/mapper/pojo-base/pom.xml @@ -32,10 +32,6 @@ org.hibernate.models hibernate-models - - org.hibernate.models - hibernate-models-jandex - org.jboss.logging jboss-logging @@ -51,4 +47,27 @@ test + + + + + org.moditect + moditect-maven-plugin + + + add-module-infos + + + + + org.hibernate.models.spi.ModelsContextProvider; + + + + + + + + + diff --git a/mapper/pojo-base/src/main/java/org/hibernate/search/mapper/pojo/model/models/spi/AbstractPojoModelsBootstrapIntrospector.java b/mapper/pojo-base/src/main/java/org/hibernate/search/mapper/pojo/model/models/spi/AbstractPojoModelsBootstrapIntrospector.java index ac9592cd588..261870a3b76 100644 --- a/mapper/pojo-base/src/main/java/org/hibernate/search/mapper/pojo/model/models/spi/AbstractPojoModelsBootstrapIntrospector.java +++ b/mapper/pojo-base/src/main/java/org/hibernate/search/mapper/pojo/model/models/spi/AbstractPojoModelsBootstrapIntrospector.java @@ -11,8 +11,12 @@ import java.lang.reflect.Method; import java.net.URL; import java.util.Collection; +import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.ServiceLoader; +import java.util.Set; import java.util.TreeMap; import java.util.function.Function; import java.util.function.Predicate; @@ -20,16 +24,17 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import org.hibernate.models.internal.BasicModelsContextImpl; -import org.hibernate.models.jandex.internal.JandexModelsContextImpl; import org.hibernate.models.spi.AnnotationTarget; import org.hibernate.models.spi.ClassDetails; import org.hibernate.models.spi.ClassDetailsRegistry; import org.hibernate.models.spi.ClassLoading; import org.hibernate.models.spi.MemberDetails; import org.hibernate.models.spi.MethodDetails; +import org.hibernate.models.spi.ModelsConfiguration; import org.hibernate.search.engine.environment.classpath.spi.ClassLoadingException; import org.hibernate.search.engine.environment.classpath.spi.ClassResolver; +import org.hibernate.search.engine.environment.classpath.spi.DefaultClassResolver; +import org.hibernate.search.engine.environment.classpath.spi.ResourceResolver; import org.hibernate.search.mapper.pojo.model.spi.PojoBootstrapIntrospector; import org.hibernate.search.util.common.AssertionFailure; import org.hibernate.search.util.common.impl.StreamHelper; @@ -41,13 +46,16 @@ public abstract class AbstractPojoModelsBootstrapIntrospector implements PojoBootstrapIntrospector { + private static final String INDEX_MODELS_CONFIG_PARAM = "hibernate.models.jandex.index"; + private final PojoModelsClassOrdering typeOrdering; protected final ValueHandleFactory valueHandleFactory; private final ClassDetailsRegistry classDetailsRegistry; - protected AbstractPojoModelsBootstrapIntrospector(ClassResolver classResolver, IndexView indexView, + protected AbstractPojoModelsBootstrapIntrospector(ClassResolver classResolver, ResourceResolver resourceResolver, + IndexView indexView, ValueHandleFactory valueHandleFactory) { - this( simpleClassDetailsRegistry( classResolver, indexView ), valueHandleFactory ); + this( simpleClassDetailsRegistry( classResolver, resourceResolver, indexView ), valueHandleFactory ); } protected AbstractPojoModelsBootstrapIntrospector(ClassDetailsRegistry classDetailsRegistry, @@ -57,20 +65,15 @@ protected AbstractPojoModelsBootstrapIntrospector(ClassDetailsRegistry classDeta this.valueHandleFactory = valueHandleFactory; } - private static ClassDetailsRegistry simpleClassDetailsRegistry(ClassResolver classResolver, IndexView indexView) { - if ( indexView == null ) { - return new BasicModelsContextImpl( - new HibernateSearchClassLoading( classResolver ), - null - ).getClassDetailsRegistry(); - } - else { - return new JandexModelsContextImpl( - indexView, - new HibernateSearchClassLoading( classResolver ), - null - ).getClassDetailsRegistry(); - } + private static ClassDetailsRegistry simpleClassDetailsRegistry(ClassResolver classResolver, + ResourceResolver resourceResolver, + IndexView indexView) { + ModelsConfiguration configuration = new ModelsConfiguration(); + + configuration.setClassLoading( new HibernateSearchClassLoading( classResolver, resourceResolver ) ); + configuration.setConfigValue( INDEX_MODELS_CONFIG_PARAM, indexView ); + + return configuration.bootstrap().getClassDetailsRegistry(); } @Override @@ -148,19 +151,20 @@ private static String noPrefix(MemberDetails details) { return PojoBootstrapIntrospector.noPrefix( details.getName() ); } - private record HibernateSearchClassLoading(ClassResolver delegate) implements ClassLoading { + private record HibernateSearchClassLoading(ClassResolver classResolver, ResourceResolver resourceResolver) + implements ClassLoading { @SuppressWarnings("unchecked") @Override public Class classForName(String name) { - return (Class) delegate.classForName( name ); + return (Class) classResolver.classForName( name ); } @SuppressWarnings("unchecked") @Override public Class findClassForName(String name) { try { - return (Class) delegate.classForName( name ); + return (Class) classResolver.classForName( name ); } catch (ClassLoadingException e) { return null; @@ -169,12 +173,26 @@ public Class findClassForName(String name) { @Override public URL locateResource(String resourceName) { - return delegate.locateResource( resourceName ); + return resourceResolver.locateResource( resourceName ); } @Override public Collection loadJavaServices(Class serviceType) { - return delegate.loadJavaServices( serviceType ); + ServiceLoader loadedServices; + if ( classResolver instanceof DefaultClassResolver dcr ) { + loadedServices = ServiceLoader.load( serviceType, dcr.aggregatedClassLoader() ); + } + else { + loadedServices = ServiceLoader.load( serviceType ); + } + Iterator iterator = loadedServices.iterator(); + Set services = new HashSet<>(); + + while ( iterator.hasNext() ) { + services.add( iterator.next() ); + } + + return services; } } } diff --git a/mapper/pojo-base/src/test/java/org/hibernate/search/mapper/pojo/testsupport/TestIntrospector.java b/mapper/pojo-base/src/test/java/org/hibernate/search/mapper/pojo/testsupport/TestIntrospector.java index 0a639151176..f05ed7473f4 100644 --- a/mapper/pojo-base/src/test/java/org/hibernate/search/mapper/pojo/testsupport/TestIntrospector.java +++ b/mapper/pojo-base/src/test/java/org/hibernate/search/mapper/pojo/testsupport/TestIntrospector.java @@ -8,6 +8,7 @@ import org.hibernate.search.engine.environment.classpath.spi.AggregatedClassLoader; import org.hibernate.search.engine.environment.classpath.spi.DefaultClassResolver; +import org.hibernate.search.engine.environment.classpath.spi.DefaultResourceResolver; import org.hibernate.search.mapper.pojo.model.models.spi.AbstractPojoModelsBootstrapIntrospector; import org.hibernate.search.mapper.pojo.model.models.spi.PojoModelsGenericContextHelper; import org.hibernate.search.mapper.pojo.model.models.spi.PojoSimpleModelsRawTypeModel; @@ -23,7 +24,12 @@ public class TestIntrospector extends AbstractPojoModelsBootstrapIntrospector { private final PojoModelsGenericContextHelper genericContextHelper = new PojoModelsGenericContextHelper( this ); public TestIntrospector(ValueHandleFactory valueHandleFactory) { - super( DefaultClassResolver.create( AggregatedClassLoader.createDefault() ), null, valueHandleFactory ); + this( valueHandleFactory, AggregatedClassLoader.createDefault() ); + } + + private TestIntrospector(ValueHandleFactory valueHandleFactory, AggregatedClassLoader aggregatedClassLoader) { + super( DefaultClassResolver.create( aggregatedClassLoader ), DefaultResourceResolver.create( aggregatedClassLoader ), + null, valueHandleFactory ); } @Override diff --git a/mapper/pojo-standalone/src/main/java/org/hibernate/search/mapper/pojo/standalone/bootstrap/impl/StandalonePojoIntegrationBooterImpl.java b/mapper/pojo-standalone/src/main/java/org/hibernate/search/mapper/pojo/standalone/bootstrap/impl/StandalonePojoIntegrationBooterImpl.java index e671304b29d..6d66af73fc6 100644 --- a/mapper/pojo-standalone/src/main/java/org/hibernate/search/mapper/pojo/standalone/bootstrap/impl/StandalonePojoIntegrationBooterImpl.java +++ b/mapper/pojo-standalone/src/main/java/org/hibernate/search/mapper/pojo/standalone/bootstrap/impl/StandalonePojoIntegrationBooterImpl.java @@ -94,6 +94,7 @@ private StandalonePojoIntegrationPartialBuildState doBootFirstPhase() { PojoBootstrapIntrospector introspector = StandalonePojoBootstrapIntrospector.create( environment.classResolver(), + environment.resourceResolver(), null, valueHandleFactory != null ? valueHandleFactory diff --git a/mapper/pojo-standalone/src/main/java/org/hibernate/search/mapper/pojo/standalone/model/impl/StandalonePojoBootstrapIntrospector.java b/mapper/pojo-standalone/src/main/java/org/hibernate/search/mapper/pojo/standalone/model/impl/StandalonePojoBootstrapIntrospector.java index 736b7648d73..788555f4524 100644 --- a/mapper/pojo-standalone/src/main/java/org/hibernate/search/mapper/pojo/standalone/model/impl/StandalonePojoBootstrapIntrospector.java +++ b/mapper/pojo-standalone/src/main/java/org/hibernate/search/mapper/pojo/standalone/model/impl/StandalonePojoBootstrapIntrospector.java @@ -11,6 +11,7 @@ import java.util.Map; import org.hibernate.search.engine.environment.classpath.spi.ClassResolver; +import org.hibernate.search.engine.environment.classpath.spi.ResourceResolver; import org.hibernate.search.mapper.pojo.model.models.spi.AbstractPojoModelsBootstrapIntrospector; import org.hibernate.search.mapper.pojo.model.models.spi.PojoModelsGenericContextHelper; import org.hibernate.search.mapper.pojo.model.models.spi.PojoSimpleModelsRawTypeModel; @@ -32,18 +33,18 @@ public class StandalonePojoBootstrapIntrospector extends AbstractPojoModelsBootstrapIntrospector implements PojoBootstrapIntrospector { - public static StandalonePojoBootstrapIntrospector create(ClassResolver classResolver, IndexView indexView, - ValueHandleFactory valueHandleFactory) { - return new StandalonePojoBootstrapIntrospector( classResolver, indexView, valueHandleFactory ); + public static StandalonePojoBootstrapIntrospector create(ClassResolver classResolver, ResourceResolver resourceResolver, + IndexView indexView, ValueHandleFactory valueHandleFactory) { + return new StandalonePojoBootstrapIntrospector( classResolver, resourceResolver, indexView, valueHandleFactory ); } private final PojoModelsGenericContextHelper genericContextHelper; private final Map, PojoRawTypeModel> typeModelCache = new HashMap<>(); - private StandalonePojoBootstrapIntrospector(ClassResolver classResolver, IndexView indexView, - ValueHandleFactory valueHandleFactory) { - super( classResolver, indexView, valueHandleFactory ); + private StandalonePojoBootstrapIntrospector(ClassResolver classResolver, ResourceResolver resourceResolver, + IndexView indexView, ValueHandleFactory valueHandleFactory) { + super( classResolver, resourceResolver, indexView, valueHandleFactory ); this.genericContextHelper = new PojoModelsGenericContextHelper( this ); }