From f1aa63c874028c0a939883293e75417ad4dbc42f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Tue, 2 Mar 2021 13:37:53 +0100 Subject: [PATCH] HSEARCH-4173 Separate the test profiles for Elasticsearch 6.7 and 6.8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Yoann Rodière --- CONTRIBUTING.md | 3 +- Jenkinsfile | 9 +++- integrationtest/backend/elasticsearch/pom.xml | 12 ++++- parents/integrationtest/pom.xml | 28 +++++++++- pom.xml | 1 + .../dialect/Elasticsearch67TestDialect.java | 44 +-------------- .../dialect/Elasticsearch68TestDialect.java | 53 +++++++++++++++++++ 7 files changed, 102 insertions(+), 48 deletions(-) create mode 100644 util/internal/integrationtest/backend/elasticsearch/src/main/java/org/hibernate/search/util/impl/integrationtest/backend/elasticsearch/dialect/Elasticsearch68TestDialect.java diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 42c392518a9..0b7b7e2c98b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -198,7 +198,8 @@ The following profiles are available: * `elasticsearch-6.0` for 6.0.x to 6.2.x * `elasticsearch-6.3` for 6.3.x * `elasticsearch-6.4` for 6.4.x to 6.6.x - * `elasticsearch-6.7` for 6.7 and later 6.x + * `elasticsearch-6.7` for 6.7.x + * `elasticsearch-6.8` for 6.8 and later 6.x * `elasticsearch-7.0` for 7.0 to 7.2 * `elasticsearch-7.3` for 7.3 to 7.6 * `elasticsearch-7.7` for 7.7 diff --git a/Jenkinsfile b/Jenkinsfile index 7a8d5ce2e73..288819f244b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -220,7 +220,12 @@ stage('Configure') { new EsLocalBuildEnvironment(versionRange: '[6.4,6.7)', mavenProfile: 'elasticsearch-6.4', jdkTool: 'OpenJDK 8 Latest', condition: TestCondition.AFTER_MERGE), - new EsLocalBuildEnvironment(versionRange: '[6.7,7.0)', mavenProfile: 'elasticsearch-6.7', + // Not testing 6.7 to make the build quicker. + // The only difference with 6.8+ is a bug in field sorts that is already present in earlier versions. + new EsLocalBuildEnvironment(versionRange: '[6.7,6.8)', mavenProfile: 'elasticsearch-6.7', + jdkTool: 'OpenJDK 8 Latest', + condition: TestCondition.ON_DEMAND), + new EsLocalBuildEnvironment(versionRange: '[6.8,7.0)', mavenProfile: 'elasticsearch-6.8', jdkTool: 'OpenJDK 8 Latest', condition: TestCondition.AFTER_MERGE), // Not testing 7.0/7.1/7.2 to make the build quicker. @@ -271,7 +276,7 @@ stage('Configure') { condition: TestCondition.AFTER_MERGE), new EsAwsBuildEnvironment(version: '6.7', mavenProfile: 'elasticsearch-6.7', condition: TestCondition.AFTER_MERGE), - new EsAwsBuildEnvironment(version: '6.8', mavenProfile: 'elasticsearch-6.7', + new EsAwsBuildEnvironment(version: '6.8', mavenProfile: 'elasticsearch-6.8', condition: TestCondition.AFTER_MERGE), new EsAwsBuildEnvironment(version: '7.1', mavenProfile: 'elasticsearch-7.0', condition: TestCondition.AFTER_MERGE), diff --git a/integrationtest/backend/elasticsearch/pom.xml b/integrationtest/backend/elasticsearch/pom.xml index acca2967f1c..d9403344b60 100644 --- a/integrationtest/backend/elasticsearch/pom.xml +++ b/integrationtest/backend/elasticsearch/pom.xml @@ -170,7 +170,7 @@ - + elasticsearch-6.7 @@ -180,6 +180,16 @@ + + + elasticsearch-6.8 + + + + + + + elasticsearch-7.0 diff --git a/parents/integrationtest/pom.xml b/parents/integrationtest/pom.xml index f140d960bc8..71c3091e083 100644 --- a/parents/integrationtest/pom.xml +++ b/parents/integrationtest/pom.xml @@ -411,11 +411,11 @@ - + elasticsearch-6.7 - ${version.org.elasticsearch.latest-6.8} + ${version.org.elasticsearch.latest-6.7} org.hibernate.search.util.impl.integrationtest.backend.elasticsearch.dialect.Elasticsearch67TestDialect @@ -435,6 +435,30 @@ + + + elasticsearch-6.8 + + ${version.org.elasticsearch.latest-6.8} + org.hibernate.search.util.impl.integrationtest.backend.elasticsearch.dialect.Elasticsearch68TestDialect + + + + + + com.github.alexcojocaru + elasticsearch-maven-plugin + ${version.com.github.alexcojocaru.elasticsearch.plugin} + + ${project.build.directory}/elasticsearch-maven-plugin/6.0/configuration/ + ${project.build.directory}/elasticsearch-maven-plugin/6.0/init/init.script + + + + + + + elasticsearch-7.0 diff --git a/pom.xml b/pom.xml index ed63fa34c9d..ded06089d6a 100644 --- a/pom.xml +++ b/pom.xml @@ -219,6 +219,7 @@ 7.6.2 7.2.1 6.8.9 + 6.7.2 6.6.2 6.3.2 6.2.4 diff --git a/util/internal/integrationtest/backend/elasticsearch/src/main/java/org/hibernate/search/util/impl/integrationtest/backend/elasticsearch/dialect/Elasticsearch67TestDialect.java b/util/internal/integrationtest/backend/elasticsearch/src/main/java/org/hibernate/search/util/impl/integrationtest/backend/elasticsearch/dialect/Elasticsearch67TestDialect.java index c0de30e3a5b..f55e1d489c8 100644 --- a/util/internal/integrationtest/backend/elasticsearch/src/main/java/org/hibernate/search/util/impl/integrationtest/backend/elasticsearch/dialect/Elasticsearch67TestDialect.java +++ b/util/internal/integrationtest/backend/elasticsearch/src/main/java/org/hibernate/search/util/impl/integrationtest/backend/elasticsearch/dialect/Elasticsearch67TestDialect.java @@ -6,48 +6,8 @@ */ package org.hibernate.search.util.impl.integrationtest.backend.elasticsearch.dialect; -import java.util.Arrays; -import java.util.List; -import java.util.Optional; +public class Elasticsearch67TestDialect extends Elasticsearch68TestDialect { -import org.hibernate.search.backend.elasticsearch.client.impl.Paths; -import org.hibernate.search.backend.elasticsearch.util.spi.URLEncodedString; + // TODO HSEARCH-4173 add behavior specific to 6.7 here -@SuppressWarnings("deprecation") // We use Paths.DOC on purpose -public class Elasticsearch67TestDialect extends Elasticsearch70TestDialect { - - @Override - public boolean isEmptyMappingPossible() { - return true; - } - - @Override - public URLEncodedString getTypeKeywordForNonMappingApi() { - return Paths.DOC; - } - - @Override - public Optional getTypeNameForMappingAndBulkApi() { - return Optional.of( Paths.DOC ); - } - - @Override - public Boolean getIncludeTypeNameParameterForMappingApi() { - return true; - } - - @Override - public List getAllLocalDateDefaultMappingFormats() { - return Arrays.asList( "yyyy-MM-dd", "yyyyyyyyy-MM-dd" ); - } - - @Override - public boolean zonedDateTimeDocValueHasUTCZoneId() { - return true; - } - - @Override - public boolean supportsSkipOrLimitingTotalHitCount() { - return false; - } } diff --git a/util/internal/integrationtest/backend/elasticsearch/src/main/java/org/hibernate/search/util/impl/integrationtest/backend/elasticsearch/dialect/Elasticsearch68TestDialect.java b/util/internal/integrationtest/backend/elasticsearch/src/main/java/org/hibernate/search/util/impl/integrationtest/backend/elasticsearch/dialect/Elasticsearch68TestDialect.java new file mode 100644 index 00000000000..8fbe2f9388e --- /dev/null +++ b/util/internal/integrationtest/backend/elasticsearch/src/main/java/org/hibernate/search/util/impl/integrationtest/backend/elasticsearch/dialect/Elasticsearch68TestDialect.java @@ -0,0 +1,53 @@ +/* + * Hibernate Search, full-text search for your domain model + * + * License: GNU Lesser General Public License (LGPL), version 2.1 or later + * See the lgpl.txt file in the root directory or . + */ +package org.hibernate.search.util.impl.integrationtest.backend.elasticsearch.dialect; + +import java.util.Arrays; +import java.util.List; +import java.util.Optional; + +import org.hibernate.search.backend.elasticsearch.client.impl.Paths; +import org.hibernate.search.backend.elasticsearch.util.spi.URLEncodedString; + +@SuppressWarnings("deprecation") // We use Paths.DOC on purpose +public class Elasticsearch68TestDialect extends Elasticsearch70TestDialect { + + @Override + public boolean isEmptyMappingPossible() { + return true; + } + + @Override + public URLEncodedString getTypeKeywordForNonMappingApi() { + return Paths.DOC; + } + + @Override + public Optional getTypeNameForMappingAndBulkApi() { + return Optional.of( Paths.DOC ); + } + + @Override + public Boolean getIncludeTypeNameParameterForMappingApi() { + return true; + } + + @Override + public List getAllLocalDateDefaultMappingFormats() { + return Arrays.asList( "yyyy-MM-dd", "yyyyyyyyy-MM-dd" ); + } + + @Override + public boolean zonedDateTimeDocValueHasUTCZoneId() { + return true; + } + + @Override + public boolean supportsSkipOrLimitingTotalHitCount() { + return false; + } +}