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 );
}