Skip to content

Commit 3e15429

Browse files
committed
HSEARCH-5380 Upgrade to Hibernate ORM 7.0.0.CR2
1 parent 338b95e commit 3e15429

File tree

17 files changed

+128
-115
lines changed

17 files changed

+128
-115
lines changed

build/config/pom.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,8 @@
232232
This would mean that a corresponding pattern will only be applied to filtering of internal/public rules.
233233
If no prefix is specified then rule is considered to be both public and internal at the same time.
234234
-->
235+
<argument>^org\.hibernate\.Timeouts$</argument>
236+
235237
<argument>^org\.hibernate\.query\.Query$</argument>
236238
<argument>^org\.hibernate\.query\.SelectionQuery$</argument>
237239
<argument>^org\.hibernate\.query\.MutationQuery$</argument>

build/parents/build/pom.xml

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,8 @@
9494
NOTE: when Hibernate ORM updates Byte Buddy, make sure to check Jenkinsfile to see if
9595
`net.bytebuddy.experimental` property can be removed.
9696
-->
97-
<version.org.hibernate.orm>7.0.0.CR1</version.org.hibernate.orm>
98-
<version.org.hibernate.models>1.0.0.CR1</version.org.hibernate.models>
97+
<version.org.hibernate.orm>7.0.0.CR2</version.org.hibernate.orm>
98+
<version.org.hibernate.models>1.0.0.CR3</version.org.hibernate.models>
9999

100100
<javadoc.org.hibernate.orm.url>https://docs.jboss.org/hibernate/orm/${parsed-version.org.hibernate.orm.majorVersion}.${parsed-version.org.hibernate.orm.minorVersion}/javadocs/</javadoc.org.hibernate.orm.url>
101101
<documentation.org.hibernate.orm.url>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</documentation.org.hibernate.orm.url>
@@ -407,11 +407,6 @@
407407
<artifactId>jboss-logging</artifactId>
408408
<version>${version.org.jboss.logging.jboss-logging}</version>
409409
</dependency>
410-
<dependency>
411-
<groupId>org.hibernate.models</groupId>
412-
<artifactId>hibernate-models-jandex</artifactId>
413-
<version>${version.org.hibernate.models}</version>
414-
</dependency>
415410

416411
<!-- Other public dependencies -->
417412
<!-- Elasticsearch backend -->

engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/ClassResolver.java

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
*/
55
package org.hibernate.search.engine.environment.classpath.spi;
66

7-
import java.net.URL;
8-
import java.util.Collection;
97

108
import org.hibernate.search.util.common.annotation.Incubating;
119

@@ -37,24 +35,4 @@ public interface ClassResolver {
3735
@Incubating
3836
Package packageForName(String packageName);
3937

40-
/**
41-
* Locate a resource by name
42-
*
43-
* @param resourceName The name of the resource to resolve
44-
* @return The located resource;
45-
* may return {@code null} to indicate the resource was not found
46-
*/
47-
@Incubating
48-
URL locateResource(String resourceName);
49-
50-
/**
51-
* Discovers and instantiates implementations of the given {@link java.util.ServiceLoader Java service} contract.
52-
*
53-
* @param serviceType The java type defining the service contract
54-
* @param <S> The type of the service contract
55-
*
56-
* @return The ordered set of discovered services.
57-
*/
58-
@Incubating
59-
<S> Collection<S> loadJavaServices(Class<S> serviceType);
6038
}

engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/DefaultClassResolver.java

Lines changed: 4 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,9 @@
44
*/
55
package org.hibernate.search.engine.environment.classpath.spi;
66

7-
import java.net.URL;
8-
import java.util.Collection;
9-
import java.util.HashSet;
10-
import java.util.Iterator;
11-
import java.util.ServiceLoader;
12-
import java.util.Set;
137

148
import org.hibernate.search.engine.logging.impl.EngineMiscLog;
15-
9+
import org.hibernate.search.util.common.annotation.Incubating;
1610

1711
/**
1812
* Default implementation of {@code ClassResolver} relying on an {@link AggregatedClassLoader}.
@@ -52,27 +46,8 @@ public Package packageForName(String packageName) {
5246
}
5347
}
5448

55-
@Override
56-
public URL locateResource(String resourceName) {
57-
try {
58-
return aggregatedClassLoader.getResource( resourceName );
59-
}
60-
catch (Exception e) {
61-
return null;
62-
}
49+
@Incubating
50+
public AggregatedClassLoader aggregatedClassLoader() {
51+
return aggregatedClassLoader;
6352
}
64-
65-
@Override
66-
public <S> Collection<S> loadJavaServices(Class<S> serviceType) {
67-
ServiceLoader<S> loadedServices = ServiceLoader.load( serviceType, aggregatedClassLoader );
68-
Iterator<S> iterator = loadedServices.iterator();
69-
Set<S> services = new HashSet<>();
70-
71-
while ( iterator.hasNext() ) {
72-
services.add( iterator.next() );
73-
}
74-
75-
return services;
76-
}
77-
7853
}

engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/DefaultResourceResolver.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,4 +69,14 @@ public InputStream locateResourceStream(String name) {
6969
return null;
7070
}
7171

72+
@Override
73+
public URL locateResource(String resourceName) {
74+
try {
75+
return aggregatedClassLoader.getResource( resourceName );
76+
}
77+
catch (Exception e) {
78+
return null;
79+
}
80+
}
81+
7282
}

engine/src/main/java/org/hibernate/search/engine/environment/classpath/spi/ResourceResolver.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
package org.hibernate.search.engine.environment.classpath.spi;
66

77
import java.io.InputStream;
8+
import java.net.URL;
9+
10+
import org.hibernate.search.util.common.annotation.Incubating;
811

912
/**
1013
* A resolver of Java resources.
@@ -22,4 +25,14 @@ public interface ResourceResolver {
2225
* @return The stream of the located resource; may return {@code null} to indicate the resource was not found
2326
*/
2427
InputStream locateResourceStream(String name);
28+
29+
/**
30+
* Locate a resource by name
31+
*
32+
* @param resourceName The name of the resource to resolve
33+
* @return The located resource;
34+
* may return {@code null} to indicate the resource was not found
35+
*/
36+
@Incubating
37+
URL locateResource(String resourceName);
2538
}

mapper/orm-outbox-polling/src/main/java/org/hibernate/search/mapper/orm/outboxpolling/event/impl/OutboxEventLoader.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
import jakarta.persistence.PessimisticLockException;
1616

1717
import org.hibernate.LockMode;
18-
import org.hibernate.LockOptions;
1918
import org.hibernate.Session;
19+
import org.hibernate.Timeouts;
2020
import org.hibernate.dialect.Dialect;
2121
import org.hibernate.query.Query;
2222
import org.hibernate.search.mapper.orm.outboxpolling.logging.impl.OutboxPollingEventsLog;
@@ -27,7 +27,7 @@ final class OutboxEventLoader implements ToStringTreeAppendable {
2727

2828
private static final String LOAD_QUERY_STRING = "select e from " + ENTITY_NAME + " e where e.id in (:ids)";
2929

30-
private final LockOptions lockOptions;
30+
private final LockMode lockMode;
3131

3232
OutboxEventLoader(Dialect dialect) {
3333
// HSEARCH-4289: some databases encounter deadlocks when multiple processors query or delete events
@@ -46,7 +46,7 @@ final class OutboxEventLoader implements ToStringTreeAppendable {
4646
// so we can afford to just skip events that are already locked,
4747
// and process them later when they are no longer locked.
4848
if ( dialect.supportsSkipLocked() ) {
49-
lockOptions = new LockOptions( LockMode.UPGRADE_SKIPLOCKED );
49+
lockMode = LockMode.UPGRADE_SKIPLOCKED;
5050
}
5151
// If LockMode.UPGRADE_SKIPLOCKED is not supported, we just do basic locking and hope for the best
5252
// (in particular we hope for transaction deadlocks to be detected by the database and result in a failure,
@@ -57,7 +57,7 @@ final class OutboxEventLoader implements ToStringTreeAppendable {
5757
// so as long as we target a distinct set of events in each processor (we do),
5858
// locking shouldn't trigger any deadlocks.
5959
else {
60-
lockOptions = new LockOptions( LockMode.PESSIMISTIC_WRITE );
60+
lockMode = LockMode.PESSIMISTIC_WRITE;
6161
}
6262
}
6363

@@ -69,16 +69,16 @@ public String toString() {
6969
@Override
7070
public void appendTo(ToStringTreeAppender appender) {
7171
appender.startObject( "lockOptions" )
72-
.attribute( "lockMode", lockOptions.getLockMode() )
73-
.attribute( "timeout", lockOptions.getTimeOut() )
72+
.attribute( "lockMode", lockMode )
73+
.attribute( "timeout", Timeouts.WAIT_FOREVER )
7474
.endObject();
7575
}
7676

7777
List<OutboxEvent> loadLocking(Session session, Set<UUID> ids, String processorName) {
7878
try {
7979
Query<OutboxEvent> query = session.createQuery( LOAD_QUERY_STRING, OutboxEvent.class );
8080
query.setParameter( "ids", ids );
81-
query.setLockOptions( lockOptions );
81+
query.setHibernateLockMode( lockMode );
8282
return query.getResultList();
8383
}
8484
catch (PessimisticLockException | OptimisticLockException lockException) {

mapper/orm/pom.xml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,6 @@
4141
<groupId>org.hibernate.models</groupId>
4242
<artifactId>hibernate-models</artifactId>
4343
</dependency>
44-
<dependency>
45-
<groupId>org.hibernate.models</groupId>
46-
<artifactId>hibernate-models-jandex</artifactId>
47-
</dependency>
4844
<dependency>
4945
<groupId>jakarta.persistence</groupId>
5046
<artifactId>jakarta.persistence-api</artifactId>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public URL locateResource(String resourceName) {
8686
// ignore
8787
}
8888
if ( url == null ) {
89-
url = internalClassResolver.locateResource( resourceName );
89+
url = internalResourceResolver.locateResource( resourceName );
9090
}
9191
return url;
9292
}

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

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

77
import java.util.List;
88

9-
import org.hibernate.LockOptions;
9+
import org.hibernate.LockMode;
1010
import org.hibernate.engine.spi.SessionImplementor;
1111
import org.hibernate.query.QueryFlushMode;
1212
import org.hibernate.search.mapper.orm.common.spi.TransactionHelper;
@@ -57,15 +57,15 @@ public void load(List<I> identifiers) throws InterruptedException {
5757
private List<E> multiLoad(List<I> identifiers) {
5858
return typeQueryLoader.createMultiIdentifierLoadAccess( session )
5959
.with( options.cacheMode() )
60-
.with( LockOptions.NONE )
60+
.with( LockMode.NONE )
6161
.multiLoad( identifiers );
6262
}
6363

6464
private List<E> queryByIds(List<I> identifiers) {
6565
return typeQueryLoader.createLoadingQuery( session, ID_PARAMETER_NAME )
6666
.setParameter( ID_PARAMETER_NAME, identifiers )
6767
.setCacheMode( options.cacheMode() )
68-
.setLockOptions( LockOptions.NONE )
68+
.setHibernateLockMode( LockMode.NONE )
6969
.setCacheable( false )
7070
.setQueryFlushMode( QueryFlushMode.NO_FLUSH )
7171
.setFetchSize( identifiers.size() )

mapper/orm/src/main/java/org/hibernate/search/mapper/orm/search/query/impl/HibernateOrmSearchQueryAdapter.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,9 @@ public LockModeType getLockMode() {
289289
throw lockOptionsNotSupported();
290290
}
291291

292+
@Deprecated(since = "8.0")
292293
@Override
294+
@SuppressWarnings("removal")
293295
public LockOptions getLockOptions() {
294296
/*
295297
* Ideally we'd throw an UnsupportedOperationException,

mapper/orm/src/test/java/org/hibernate/search/mapper/orm/model/impl/AbstractHibernateOrmBootstrapIntrospectorPerReflectionStrategyTest.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import org.hibernate.boot.spi.MetadataImplementor;
2323
import org.hibernate.cfg.AvailableSettings;
2424
import org.hibernate.dialect.H2Dialect;
25-
import org.hibernate.models.internal.BasicModelsContextImpl;
25+
import org.hibernate.models.spi.ModelsConfiguration;
2626
import org.hibernate.models.spi.ModelsContext;
2727
import org.hibernate.search.util.common.impl.Closer;
2828
import org.hibernate.search.util.common.reflect.spi.ValueHandleFactory;
@@ -78,12 +78,9 @@ public static ModelsContext createModelBuildingContext(BootstrapContext bootstra
7878
ClassLoaderService classLoaderService =
7979
getServiceOrEmpty( bootstrapContext.getServiceRegistry(), ClassLoaderService.class )
8080
.orElseThrow();
81-
ClassLoaderServiceLoading classLoading = new ClassLoaderServiceLoading( classLoaderService );
82-
return new BasicModelsContextImpl(
83-
classLoading,
84-
ModelsHelper::preFillRegistries
85-
);
81+
return new ModelsConfiguration()
82+
.setClassLoading( new ClassLoaderServiceLoading( classLoaderService ) )
83+
.setRegistryPrimer( ModelsHelper::preFillRegistries )
84+
.bootstrap();
8685
}
87-
88-
8986
}

mapper/pojo-base/pom.xml

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,6 @@
3232
<groupId>org.hibernate.models</groupId>
3333
<artifactId>hibernate-models</artifactId>
3434
</dependency>
35-
<dependency>
36-
<groupId>org.hibernate.models</groupId>
37-
<artifactId>hibernate-models-jandex</artifactId>
38-
</dependency>
3935
<dependency>
4036
<groupId>org.jboss.logging</groupId>
4137
<artifactId>jboss-logging</artifactId>
@@ -51,4 +47,27 @@
5147
<scope>test</scope>
5248
</dependency>
5349
</dependencies>
50+
51+
<build>
52+
<plugins>
53+
<plugin>
54+
<groupId>org.moditect</groupId>
55+
<artifactId>moditect-maven-plugin</artifactId>
56+
<executions>
57+
<execution>
58+
<id>add-module-infos</id>
59+
<configuration>
60+
<module>
61+
<moduleInfo>
62+
<uses>
63+
org.hibernate.models.spi.ModelsContextProvider;
64+
</uses>
65+
</moduleInfo>
66+
</module>
67+
</configuration>
68+
</execution>
69+
</executions>
70+
</plugin>
71+
</plugins>
72+
</build>
5473
</project>

0 commit comments

Comments
 (0)