From 94973ed6d33fa4849ca533771ff347c4dc7138cf Mon Sep 17 00:00:00 2001 From: marko-bekhta Date: Tue, 29 Jul 2025 21:48:43 +0200 Subject: [PATCH 1/5] HSEARCH-5438 Add Elasticsearch 9.1.0 compatibility --- .../dialect/impl/ElasticsearchDialectFactory.java | 2 +- .../dialect/impl/ElasticsearchDialectFactoryTest.java | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/dialect/impl/ElasticsearchDialectFactory.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/dialect/impl/ElasticsearchDialectFactory.java index 0c797d09e2c..26717ef6389 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/dialect/impl/ElasticsearchDialectFactory.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/dialect/impl/ElasticsearchDialectFactory.java @@ -213,7 +213,7 @@ else if ( minor == 0 ) { } private ElasticsearchProtocolDialect createProtocolDialectElasticV9(ElasticsearchVersion version, int minor) { - if ( minor > 0 ) { + if ( minor > 1 ) { VersionLog.INSTANCE.unknownElasticsearchVersion( version ); } return new Elasticsearch81ProtocolDialect(); diff --git a/backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/dialect/impl/ElasticsearchDialectFactoryTest.java b/backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/dialect/impl/ElasticsearchDialectFactoryTest.java index 9dca736a1cb..1a230e2340f 100644 --- a/backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/dialect/impl/ElasticsearchDialectFactoryTest.java +++ b/backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/dialect/impl/ElasticsearchDialectFactoryTest.java @@ -317,10 +317,18 @@ public static List params() { ElasticsearchDistributionName.ELASTIC, "9.0.0", "9.0.0", Elasticsearch814ModelDialect.class, Elasticsearch81ProtocolDialect.class ), - successWithWarning( + success( + ElasticsearchDistributionName.ELASTIC, "9.1", "9.1.0", + Elasticsearch814ModelDialect.class, Elasticsearch81ProtocolDialect.class + ), + success( ElasticsearchDistributionName.ELASTIC, "9.1.0", "9.1.0", Elasticsearch814ModelDialect.class, Elasticsearch81ProtocolDialect.class ), + successWithWarning( + ElasticsearchDistributionName.ELASTIC, "9.2.0", "9.2.0", + Elasticsearch814ModelDialect.class, Elasticsearch81ProtocolDialect.class + ), success( ElasticsearchDistributionName.OPENSEARCH, "1", "1.3.1", OpenSearch1ModelDialect.class, Elasticsearch70ProtocolDialect.class From 982d93a7c04f0f46264a6639492559d06eeb00f1 Mon Sep 17 00:00:00 2001 From: marko-bekhta Date: Tue, 29 Jul 2025 21:53:08 +0200 Subject: [PATCH 2/5] HSEARCH-5438 Test against Elasticsearch 9.1.0 by default --- Jenkinsfile | 3 ++- build/container/search-backend/elastic.Dockerfile | 2 +- build/parents/build/pom.xml | 2 +- ci/dependency-update/Jenkinsfile | 4 ++-- pom.xml | 2 +- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 96a51fadf9e..cd3bc6c6c8b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -260,7 +260,8 @@ stage('Configure') { new LocalElasticsearchBuildEnvironment(version: '8.16.1', condition: TestCondition.ON_DEMAND), new LocalElasticsearchBuildEnvironment(version: '8.17.6', condition: TestCondition.ON_DEMAND), new LocalElasticsearchBuildEnvironment(version: '8.18.4', condition: TestCondition.AFTER_MERGE), - new LocalElasticsearchBuildEnvironment(version: '9.0.4', condition: TestCondition.BEFORE_MERGE, isDefault: true), + new LocalElasticsearchBuildEnvironment(version: '9.0.4', condition: TestCondition.ON_DEMAND), + new LocalElasticsearchBuildEnvironment(version: '9.1.0', condition: TestCondition.BEFORE_MERGE, isDefault: true), // IMPORTANT: Make sure to update the documentation for any newly supported Elasticsearch versions // See version.org.elasticsearch.compatible.expected.text // and version.org.elasticsearch.compatible.regularly-tested.text in POMs. diff --git a/build/container/search-backend/elastic.Dockerfile b/build/container/search-backend/elastic.Dockerfile index dbdb68b5052..20fcdaf68db 100644 --- a/build/container/search-backend/elastic.Dockerfile +++ b/build/container/search-backend/elastic.Dockerfile @@ -5,4 +5,4 @@ # * update `version.org.elasticsearch.latest` property in a POM file. # * update the tags for 'elasticsearch-current' and 'elasticsearch-next' builds in ci/dependency-update/Jenkinsfile # -FROM docker.io/elastic/elasticsearch:9.0.4 +FROM docker.io/elastic/elasticsearch:9.1.0 diff --git a/build/parents/build/pom.xml b/build/parents/build/pom.xml index 349006f67b6..eae3469d568 100644 --- a/build/parents/build/pom.xml +++ b/build/parents/build/pom.xml @@ -57,7 +57,7 @@ - 7.10, 7.17, 8.18 or 9.0 + 7.10, 7.17, 8.18 or 9.1 diff --git a/ci/dependency-update/Jenkinsfile b/ci/dependency-update/Jenkinsfile index ec4d13d426b..b91113e1c1e 100644 --- a/ci/dependency-update/Jenkinsfile +++ b/ci/dependency-update/Jenkinsfile @@ -60,7 +60,7 @@ Map settings() { updateProperties: [], onlyRunTestDependingOn: ['hibernate-search-backend-elasticsearch'], // We want to use the snapshot version of an image from the ES registry since that's where they are publishing their snapshots. - additionalMavenArgs: '-Dtest.lucene.skip=true -Dtest.elasticsearch.run.elastic.image.name=docker.elastic.co/elasticsearch/elasticsearch -Dtest.elasticsearch.run.elastic.image.tag=9.0.5-SNAPSHOT', + additionalMavenArgs: '-Dtest.lucene.skip=true -Dtest.elasticsearch.run.elastic.image.name=docker.elastic.co/elasticsearch/elasticsearch -Dtest.elasticsearch.run.elastic.image.tag=9.1.1-SNAPSHOT', // This job won't change the versions in the pom. We are passing the latest Elasticsearch version through an additional maven argument `-D` skipSourceModifiedCheck: true ] @@ -72,7 +72,7 @@ Map settings() { updateProperties: [], onlyRunTestDependingOn: ['hibernate-search-backend-elasticsearch'], // We want to use the snapshot version of an image from the ES registry since that's where they are publishing their snapshots. - additionalMavenArgs: '-Dtest.lucene.skip=true -Dtest.elasticsearch.run.elastic.image.name=docker.elastic.co/elasticsearch/elasticsearch -Dtest.elasticsearch.run.elastic.image.tag=9.1.0-SNAPSHOT', + additionalMavenArgs: '-Dtest.lucene.skip=true -Dtest.elasticsearch.run.elastic.image.name=docker.elastic.co/elasticsearch/elasticsearch -Dtest.elasticsearch.run.elastic.image.tag=9.2.0-SNAPSHOT', // This job won't change the versions in the pom. We are passing the latest Elasticsearch version through an additional maven argument `-D` skipSourceModifiedCheck: true ] diff --git a/pom.xml b/pom.xml index 72b0c1dbc40..2318299c89a 100644 --- a/pom.xml +++ b/pom.xml @@ -389,7 +389,7 @@ - 9.0.4 + 9.1.0 elastic From 6cf70b096f1f4206cebe862a336365f16ae5ddb4 Mon Sep 17 00:00:00 2001 From: marko-bekhta Date: Tue, 29 Jul 2025 21:53:50 +0200 Subject: [PATCH 3/5] HSEARCH-5439 Upgrade to Elasticsearch client 9.1.0 --- build/parents/build/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/parents/build/pom.xml b/build/parents/build/pom.xml index eae3469d568..29d956572b9 100644 --- a/build/parents/build/pom.xml +++ b/build/parents/build/pom.xml @@ -49,7 +49,7 @@ - 9.0.4 + 9.1.0 ${version.org.elasticsearch.latest} https://www.elastic.co/guide/en/elasticsearch/reference/${parsed-version.org.elasticsearch.compatible.main.majorVersion}.${parsed-version.org.elasticsearch.compatible.main.minorVersion} From 1303aa7bf849161e3b8746512fa0f67a3ddbad7f Mon Sep 17 00:00:00 2001 From: marko-bekhta Date: Tue, 29 Jul 2025 21:56:50 +0200 Subject: [PATCH 4/5] HSEARCH-5440 Add Elasticsearch 8.19.0 compatibility --- .../dialect/impl/ElasticsearchDialectFactory.java | 2 +- .../impl/ElasticsearchDialectFactoryTest.java | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/dialect/impl/ElasticsearchDialectFactory.java b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/dialect/impl/ElasticsearchDialectFactory.java index 26717ef6389..6244abc0f2f 100644 --- a/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/dialect/impl/ElasticsearchDialectFactory.java +++ b/backend/elasticsearch/src/main/java/org/hibernate/search/backend/elasticsearch/dialect/impl/ElasticsearchDialectFactory.java @@ -203,7 +203,7 @@ private ElasticsearchProtocolDialect createProtocolDialectElasticV7(Elasticsearc } private ElasticsearchProtocolDialect createProtocolDialectElasticV8(ElasticsearchVersion version, int minor) { - if ( minor > 18 ) { + if ( minor > 19 ) { VersionLog.INSTANCE.unknownElasticsearchVersion( version ); } else if ( minor == 0 ) { diff --git a/backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/dialect/impl/ElasticsearchDialectFactoryTest.java b/backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/dialect/impl/ElasticsearchDialectFactoryTest.java index 1a230e2340f..77389d54975 100644 --- a/backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/dialect/impl/ElasticsearchDialectFactoryTest.java +++ b/backend/elasticsearch/src/test/java/org/hibernate/search/backend/elasticsearch/dialect/impl/ElasticsearchDialectFactoryTest.java @@ -301,14 +301,22 @@ public static List params() { ElasticsearchDistributionName.ELASTIC, "8.18.0", "8.18.0", Elasticsearch814ModelDialect.class, Elasticsearch81ProtocolDialect.class ), - successWithWarning( + success( ElasticsearchDistributionName.ELASTIC, "8.19", "8.19.0", Elasticsearch814ModelDialect.class, Elasticsearch81ProtocolDialect.class ), - successWithWarning( + success( ElasticsearchDistributionName.ELASTIC, "8.19.0", "8.19.0", Elasticsearch814ModelDialect.class, Elasticsearch81ProtocolDialect.class ), + successWithWarning( + ElasticsearchDistributionName.ELASTIC, "8.20", "8.20.0", + Elasticsearch814ModelDialect.class, Elasticsearch81ProtocolDialect.class + ), + successWithWarning( + ElasticsearchDistributionName.ELASTIC, "8.20.0", "8.20.0", + Elasticsearch814ModelDialect.class, Elasticsearch81ProtocolDialect.class + ), success( ElasticsearchDistributionName.ELASTIC, "9.0", "9.0.0", Elasticsearch814ModelDialect.class, Elasticsearch81ProtocolDialect.class From 6f4d600c4bcef3f63e224e0ad280d5af660c4f7d Mon Sep 17 00:00:00 2001 From: marko-bekhta Date: Tue, 29 Jul 2025 22:00:00 +0200 Subject: [PATCH 5/5] HSEARCH-5440 Test against Elasticsearch 8.19.0 --- Jenkinsfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index cd3bc6c6c8b..02ac4afdbd8 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -259,7 +259,8 @@ stage('Configure') { new LocalElasticsearchBuildEnvironment(version: '8.15.4', condition: TestCondition.ON_DEMAND), new LocalElasticsearchBuildEnvironment(version: '8.16.1', condition: TestCondition.ON_DEMAND), new LocalElasticsearchBuildEnvironment(version: '8.17.6', condition: TestCondition.ON_DEMAND), - new LocalElasticsearchBuildEnvironment(version: '8.18.4', condition: TestCondition.AFTER_MERGE), + new LocalElasticsearchBuildEnvironment(version: '8.18.4', condition: TestCondition.ON_DEMAND), + new LocalElasticsearchBuildEnvironment(version: '8.19.0', condition: TestCondition.AFTER_MERGE), new LocalElasticsearchBuildEnvironment(version: '9.0.4', condition: TestCondition.ON_DEMAND), new LocalElasticsearchBuildEnvironment(version: '9.1.0', condition: TestCondition.BEFORE_MERGE, isDefault: true), // IMPORTANT: Make sure to update the documentation for any newly supported Elasticsearch versions