From 6b912d4d3217c9c25271178b02331cbfaff21ebf Mon Sep 17 00:00:00 2001 From: marko-bekhta Date: Mon, 10 Nov 2025 09:31:38 +0100 Subject: [PATCH] HSEARCH-5518 Use Spring Boot 4 and corresponding Narayana starter in ITs --- Jenkinsfile | 9 +++---- build/parents/build/pom.xml | 9 ++++--- build/reports/pom.xml | 2 +- .../repackaged/application/Application.java | 2 +- .../SpringBeanResolutionIT.java | 4 ++-- .../JtaAndSpringApplicationConfiguration.java | 4 ++-- .../spring/outbox/TransactionOutboxIT.java | 2 +- .../spring/sessionproxy/SessionProxyIT.java | 2 +- .../testsupport/AbstractSpringITConfig.java | 4 ++-- .../spring/transaction/TransactionIT.java | 2 +- integrationtest/pom.xml | 2 +- .../IndexSearchLibraryRepositoryImpl.java | 24 +++++++++---------- lucene-next/integrationtest/pom.xml | 2 +- pom.xml | 12 ---------- 14 files changed, 32 insertions(+), 48 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index cc9a124da3c..5ee765e236c 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -523,13 +523,13 @@ stage('Non-default environments') { // so we skip them. String mavenBuildAdditionalArgs = ''' \ -pl !documentation \ + -pl !integrationtest/mapper/orm-spring \ -pl !integrationtest/v5migrationhelper/orm \ -pl !integrationtest/java/modules/orm-lucene \ -pl !integrationtest/java/modules/orm-elasticsearch \ -pl !integrationtest/java/modules/orm-outbox-polling-elasticsearch \ -pl !lucene-next/documentation \ -pl !lucene-next/integrationtest/java/modules/orm-lucene \ - -P !springITs \ ''' String mavenDockerArgs = "" def startedContainers = false @@ -600,8 +600,7 @@ stage('Non-default environments') { --fail-fast \ -pl ${[ 'org.hibernate.search:hibernate-search-integrationtest-backend-elasticsearch' - // Add back after Spring Boot 4 update: - //, 'org.hibernate.search:hibernate-search-integrationtest-showcase-library' + , 'org.hibernate.search:hibernate-search-integrationtest-showcase-library' ].join(',')} \ -Dtest.lucene.skip=true \ -Dtest.elasticsearch.distribution=$buildEnv.distribution \ @@ -643,11 +642,9 @@ stage('Non-default environments') { // Note that because we expect frequent failure and retries, // we use --fail-fast here, to make sure we don't waste time. retry(count: 3) { - // Add back after Spring Boot 4 update: - // ,org.hibernate.search:hibernate-search-integrationtest-showcase-library mavenNonDefaultBuild buildEnv, """ \ --fail-fast \ - -pl org.hibernate.search:hibernate-search-integrationtest-backend-elasticsearch \ + -pl org.hibernate.search:hibernate-search-integrationtest-backend-elasticsearch,org.hibernate.search:hibernate-search-integrationtest-showcase-library \ -Dtest.lucene.skip=true \ -Dtest.elasticsearch.distribution=$buildEnv.distribution \ -Dtest.elasticsearch.version=$buildEnv.version \ diff --git a/build/parents/build/pom.xml b/build/parents/build/pom.xml index 68af0b60829..1ea42c52ba3 100644 --- a/build/parents/build/pom.xml +++ b/build/parents/build/pom.xml @@ -178,11 +178,10 @@ 1.1.2.Final - - - 3.5.0 - - 3.5.0 + + 4.0.0-RC2 + + 4.0.0.Beta1 1.21.2 2.5 diff --git a/build/reports/pom.xml b/build/reports/pom.xml index 4452d1e4504..2517ed776a5 100644 --- a/build/reports/pom.xml +++ b/build/reports/pom.xml @@ -284,7 +284,7 @@ springITs - [17,25) + [17,) diff --git a/integrationtest/mapper/orm-spring-uberjar/application/src/main/java/org/hibernate/search/integrationtest/spring/repackaged/application/Application.java b/integrationtest/mapper/orm-spring-uberjar/application/src/main/java/org/hibernate/search/integrationtest/spring/repackaged/application/Application.java index a81ddc62040..6f205c76222 100644 --- a/integrationtest/mapper/orm-spring-uberjar/application/src/main/java/org/hibernate/search/integrationtest/spring/repackaged/application/Application.java +++ b/integrationtest/mapper/orm-spring-uberjar/application/src/main/java/org/hibernate/search/integrationtest/spring/repackaged/application/Application.java @@ -6,8 +6,8 @@ import org.springframework.boot.WebApplicationType; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.persistence.autoconfigure.EntityScan; import org.springframework.context.ConfigurableApplicationContext; // CHECKSTYLE:OFF: HideUtilityClassConstructor diff --git a/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/beanresolution/SpringBeanResolutionIT.java b/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/beanresolution/SpringBeanResolutionIT.java index b01f6712340..6b1182ae531 100644 --- a/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/beanresolution/SpringBeanResolutionIT.java +++ b/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/beanresolution/SpringBeanResolutionIT.java @@ -37,10 +37,10 @@ import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.boot.WebApplicationType; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.domain.EntityScan; -import org.springframework.boot.autoconfigure.orm.jpa.HibernatePropertiesCustomizer; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.context.event.ApplicationReadyEvent; +import org.springframework.boot.hibernate.autoconfigure.HibernatePropertiesCustomizer; +import org.springframework.boot.persistence.autoconfigure.EntityScan; import org.springframework.context.ApplicationContext; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; diff --git a/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/jta/JtaAndSpringApplicationConfiguration.java b/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/jta/JtaAndSpringApplicationConfiguration.java index ec7bcf4bf68..33017b4b0c5 100644 --- a/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/jta/JtaAndSpringApplicationConfiguration.java +++ b/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/jta/JtaAndSpringApplicationConfiguration.java @@ -7,8 +7,8 @@ import org.hibernate.search.integrationtest.spring.testsupport.AbstractSpringITConfig; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.domain.EntityScan; -import org.springframework.boot.autoconfigure.transaction.jta.JtaAutoConfiguration; +import org.springframework.boot.persistence.autoconfigure.EntityScan; +import org.springframework.boot.transaction.jta.autoconfigure.JtaAutoConfiguration; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; diff --git a/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/outbox/TransactionOutboxIT.java b/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/outbox/TransactionOutboxIT.java index 3c075f07996..a6ba555d465 100644 --- a/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/outbox/TransactionOutboxIT.java +++ b/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/outbox/TransactionOutboxIT.java @@ -18,7 +18,7 @@ import org.junit.jupiter.api.extension.RegisterExtension; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.domain.EntityScan; +import org.springframework.boot.persistence.autoconfigure.EntityScan; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Service; diff --git a/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/sessionproxy/SessionProxyIT.java b/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/sessionproxy/SessionProxyIT.java index 9c14418e508..1cd32a1f81d 100644 --- a/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/sessionproxy/SessionProxyIT.java +++ b/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/sessionproxy/SessionProxyIT.java @@ -31,7 +31,7 @@ import org.junit.jupiter.api.extension.RegisterExtension; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.domain.EntityScan; +import org.springframework.boot.persistence.autoconfigure.EntityScan; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Service; diff --git a/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/testsupport/AbstractSpringITConfig.java b/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/testsupport/AbstractSpringITConfig.java index 4c6c62d4500..cb7aab7d8c9 100644 --- a/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/testsupport/AbstractSpringITConfig.java +++ b/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/testsupport/AbstractSpringITConfig.java @@ -13,9 +13,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.orm.jpa.HibernatePropertiesCustomizer; -import org.springframework.boot.autoconfigure.transaction.jta.JtaAutoConfiguration; import org.springframework.boot.context.event.ApplicationReadyEvent; +import org.springframework.boot.hibernate.autoconfigure.HibernatePropertiesCustomizer; +import org.springframework.boot.transaction.jta.autoconfigure.JtaAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.event.EventListener; diff --git a/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/transaction/TransactionIT.java b/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/transaction/TransactionIT.java index 57998ff0dfb..1605bfe2a36 100644 --- a/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/transaction/TransactionIT.java +++ b/integrationtest/mapper/orm-spring/src/test/java/org/hibernate/search/integrationtest/spring/transaction/TransactionIT.java @@ -18,7 +18,7 @@ import org.junit.jupiter.api.extension.RegisterExtension; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.domain.EntityScan; +import org.springframework.boot.persistence.autoconfigure.EntityScan; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; diff --git a/integrationtest/pom.xml b/integrationtest/pom.xml index ec0baf17629..cea952211e5 100644 --- a/integrationtest/pom.xml +++ b/integrationtest/pom.xml @@ -48,7 +48,7 @@ springITs - [17,25) + [17,) mapper/orm-spring diff --git a/integrationtest/showcase/library/src/main/java/org/hibernate/search/integrationtest/showcase/library/repository/indexsearch/IndexSearchLibraryRepositoryImpl.java b/integrationtest/showcase/library/src/main/java/org/hibernate/search/integrationtest/showcase/library/repository/indexsearch/IndexSearchLibraryRepositoryImpl.java index fc568eb0ca7..12ba136aa39 100644 --- a/integrationtest/showcase/library/src/main/java/org/hibernate/search/integrationtest/showcase/library/repository/indexsearch/IndexSearchLibraryRepositoryImpl.java +++ b/integrationtest/showcase/library/src/main/java/org/hibernate/search/integrationtest/showcase/library/repository/indexsearch/IndexSearchLibraryRepositoryImpl.java @@ -58,23 +58,12 @@ public List searchAndProject(String terms, int offset, @Override public List searchAndProjectToMethodLocalClass(String terms, int offset, int limit) { - @ProjectionConstructor - class LocalClass { - public final String name; - public final List services; - - public LocalClass(String name, List services) { - this.name = name; - this.services = services; - } - } - if ( terms == null || terms.isEmpty() ) { return Collections.emptyList(); } return Search.session( entityManager ) .search( Library.class ) - .select( LocalClass.class ) + .select( SearchAndProjectToMethodLocalClass.class ) .where( f -> f.match().field( "name" ).matching( terms ) ) .sort( f -> f.field( "collectionSize" ).desc() .then().field( "name_sort" ) ) @@ -84,6 +73,17 @@ public LocalClass(String name, List services) { .collect( Collectors.toList() ); } + @ProjectionConstructor + static class SearchAndProjectToMethodLocalClass { + public final String name; + public final List services; + + public SearchAndProjectToMethodLocalClass(String name, List services) { + this.name = name; + this.services = services; + } + } + @Override public LibraryFacetedSearchResult searchFaceted(String terms, Integer minCollectionSize, List libraryServices, int offset, int limit) { diff --git a/lucene-next/integrationtest/pom.xml b/lucene-next/integrationtest/pom.xml index 3c8723f93dd..433a6696c13 100644 --- a/lucene-next/integrationtest/pom.xml +++ b/lucene-next/integrationtest/pom.xml @@ -25,7 +25,7 @@ springITs - [17,25) + [17,) showcase/library diff --git a/pom.xml b/pom.xml index 856c0d3d56d..1afbf31d41d 100644 --- a/pom.xml +++ b/pom.xml @@ -1348,18 +1348,6 @@ - - testWithJdk25 - - - [25,) - - - - true - - - testWithJdk26